Skip to content

Commit ffd95f4

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.99' into linux-linaro-lsk-v4.4
This is the 4.4.99 stable release
2 parents d983367 + 0cbac00 commit ffd95f4

41 files changed

Lines changed: 298 additions & 146 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 98
3+
SUBLEVEL = 99
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

arch/powerpc/Kconfig

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,11 +1083,6 @@ source "arch/powerpc/Kconfig.debug"
10831083

10841084
source "security/Kconfig"
10851085

1086-
config KEYS_COMPAT
1087-
bool
1088-
depends on COMPAT && KEYS
1089-
default y
1090-
10911086
source "crypto/Kconfig"
10921087

10931088
config PPC_LIB_RHEAP

arch/s390/Kconfig

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -350,9 +350,6 @@ config COMPAT
350350
config SYSVIPC_COMPAT
351351
def_bool y if COMPAT && SYSVIPC
352352

353-
config KEYS_COMPAT
354-
def_bool y if COMPAT && KEYS
355-
356353
config SMP
357354
def_bool y
358355
prompt "Symmetric multi-processing support"

arch/sparc/Kconfig

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -550,9 +550,6 @@ config SYSVIPC_COMPAT
550550
depends on COMPAT && SYSVIPC
551551
default y
552552

553-
config KEYS_COMPAT
554-
def_bool y if COMPAT && KEYS
555-
556553
endmenu
557554

558555
source "net/Kconfig"

arch/x86/Kconfig

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2645,10 +2645,6 @@ config COMPAT_FOR_U64_ALIGNMENT
26452645
config SYSVIPC_COMPAT
26462646
def_bool y
26472647
depends on SYSVIPC
2648-
2649-
config KEYS_COMPAT
2650-
def_bool y
2651-
depends on KEYS
26522648
endif
26532649

26542650
endmenu

drivers/input/misc/ims-pcu.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1635,13 +1635,25 @@ ims_pcu_get_cdc_union_desc(struct usb_interface *intf)
16351635
return NULL;
16361636
}
16371637

1638-
while (buflen > 0) {
1638+
while (buflen >= sizeof(*union_desc)) {
16391639
union_desc = (struct usb_cdc_union_desc *)buf;
16401640

1641+
if (union_desc->bLength > buflen) {
1642+
dev_err(&intf->dev, "Too large descriptor\n");
1643+
return NULL;
1644+
}
1645+
16411646
if (union_desc->bDescriptorType == USB_DT_CS_INTERFACE &&
16421647
union_desc->bDescriptorSubType == USB_CDC_UNION_TYPE) {
16431648
dev_dbg(&intf->dev, "Found union header\n");
1644-
return union_desc;
1649+
1650+
if (union_desc->bLength >= sizeof(*union_desc))
1651+
return union_desc;
1652+
1653+
dev_err(&intf->dev,
1654+
"Union descriptor to short (%d vs %zd\n)",
1655+
union_desc->bLength, sizeof(*union_desc));
1656+
return NULL;
16451657
}
16461658

16471659
buflen -= union_desc->bLength;

drivers/net/macvtap.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,6 +1117,8 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
11171117
case TUNSETSNDBUF:
11181118
if (get_user(s, sp))
11191119
return -EFAULT;
1120+
if (s <= 0)
1121+
return -EINVAL;
11201122

11211123
q->sk.sk_sndbuf = s;
11221124
return 0;

drivers/net/ppp/ppp_generic.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1110,7 +1110,17 @@ ppp_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats64)
11101110
static struct lock_class_key ppp_tx_busylock;
11111111
static int ppp_dev_init(struct net_device *dev)
11121112
{
1113+
struct ppp *ppp;
1114+
11131115
dev->qdisc_tx_busylock = &ppp_tx_busylock;
1116+
1117+
ppp = netdev_priv(dev);
1118+
/* Let the netdevice take a reference on the ppp file. This ensures
1119+
* that ppp_destroy_interface() won't run before the device gets
1120+
* unregistered.
1121+
*/
1122+
atomic_inc(&ppp->file.refcnt);
1123+
11141124
return 0;
11151125
}
11161126

@@ -1133,6 +1143,15 @@ static void ppp_dev_uninit(struct net_device *dev)
11331143
wake_up_interruptible(&ppp->file.rwait);
11341144
}
11351145

1146+
static void ppp_dev_priv_destructor(struct net_device *dev)
1147+
{
1148+
struct ppp *ppp;
1149+
1150+
ppp = netdev_priv(dev);
1151+
if (atomic_dec_and_test(&ppp->file.refcnt))
1152+
ppp_destroy_interface(ppp);
1153+
}
1154+
11361155
static const struct net_device_ops ppp_netdev_ops = {
11371156
.ndo_init = ppp_dev_init,
11381157
.ndo_uninit = ppp_dev_uninit,
@@ -1150,6 +1169,7 @@ static void ppp_setup(struct net_device *dev)
11501169
dev->tx_queue_len = 3;
11511170
dev->type = ARPHRD_PPP;
11521171
dev->flags = IFF_POINTOPOINT | IFF_NOARP | IFF_MULTICAST;
1172+
dev->destructor = ppp_dev_priv_destructor;
11531173
netif_keep_dst(dev);
11541174
}
11551175

drivers/net/tun.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,6 +1684,9 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
16841684

16851685
if (!dev)
16861686
return -ENOMEM;
1687+
err = dev_get_valid_name(net, dev, name);
1688+
if (err < 0)
1689+
goto err_free_dev;
16871690

16881691
dev_net_set(dev, net);
16891692
dev->rtnl_link_ops = &tun_link_ops;
@@ -2065,6 +2068,10 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
20652068
ret = -EFAULT;
20662069
break;
20672070
}
2071+
if (sndbuf <= 0) {
2072+
ret = -EINVAL;
2073+
break;
2074+
}
20682075

20692076
tun->sndbuf = sndbuf;
20702077
tun_set_sndbuf(tun);

drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4295,9 +4295,6 @@ static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev)
42954295
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0);
42964296
if (err < 0)
42974297
brcmf_err("setting AP mode failed %d\n", err);
4298-
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_INFRA, 0);
4299-
if (err < 0)
4300-
brcmf_err("setting INFRA mode failed %d\n", err);
43014298
if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS))
43024299
brcmf_fil_iovar_int_set(ifp, "mbss", 0);
43034300
err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_REGULATORY,

0 commit comments

Comments
 (0)