kernel: refresh generic 3.10 patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43050
This commit is contained in:
parent
0aca075a97
commit
7004b79665
41 changed files with 100 additions and 104 deletions
|
@ -20,7 +20,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
||||||
|
|
||||||
--- a/arch/mips/kernel/unaligned.c
|
--- a/arch/mips/kernel/unaligned.c
|
||||||
+++ b/arch/mips/kernel/unaligned.c
|
+++ b/arch/mips/kernel/unaligned.c
|
||||||
@@ -684,7 +684,8 @@ const int reg16to32[] = { 16, 17, 2, 3,
|
@@ -683,7 +683,8 @@ const int reg16to32[] = { 16, 17, 2, 3,
|
||||||
/* Recode table from 16-bit STORE register notation to 32-bit GPR. */
|
/* Recode table from 16-bit STORE register notation to 32-bit GPR. */
|
||||||
const int reg16to32st[] = { 0, 17, 2, 3, 4, 5, 6, 7 };
|
const int reg16to32st[] = { 0, 17, 2, 3, 4, 5, 6, 7 };
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
{USB_DEVICE(0x0af0, 0xd155)},
|
{USB_DEVICE(0x0af0, 0xd155)},
|
||||||
--- a/drivers/usb/storage/unusual_devs.h
|
--- a/drivers/usb/storage/unusual_devs.h
|
||||||
+++ b/drivers/usb/storage/unusual_devs.h
|
+++ b/drivers/usb/storage/unusual_devs.h
|
||||||
@@ -1280,6 +1280,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
|
@@ -1304,6 +1304,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
|
||||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
0 ),
|
0 ),
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,7 @@
|
||||||
extern const struct file_operations pipefifo_fops;
|
extern const struct file_operations pipefifo_fops;
|
||||||
--- a/fs/namei.c
|
--- a/fs/namei.c
|
||||||
+++ b/fs/namei.c
|
+++ b/fs/namei.c
|
||||||
@@ -403,6 +403,7 @@ int __inode_permission(struct inode *ino
|
@@ -404,6 +404,7 @@ int __inode_permission(struct inode *ino
|
||||||
|
|
||||||
return security_inode_permission(inode, mask);
|
return security_inode_permission(inode, mask);
|
||||||
}
|
}
|
||||||
|
@ -348,7 +348,7 @@
|
||||||
goto out;
|
goto out;
|
||||||
--- a/fs/namespace.c
|
--- a/fs/namespace.c
|
||||||
+++ b/fs/namespace.c
|
+++ b/fs/namespace.c
|
||||||
@@ -1442,6 +1442,33 @@ void drop_collected_mounts(struct vfsmou
|
@@ -1455,6 +1455,33 @@ void drop_collected_mounts(struct vfsmou
|
||||||
namespace_unlock();
|
namespace_unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3220,7 +3220,7 @@
|
||||||
file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
|
file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
|
||||||
--- a/include/linux/mount.h
|
--- a/include/linux/mount.h
|
||||||
+++ b/include/linux/mount.h
|
+++ b/include/linux/mount.h
|
||||||
@@ -68,6 +68,9 @@ extern void mnt_pin(struct vfsmount *mnt
|
@@ -75,6 +75,9 @@ extern void mnt_pin(struct vfsmount *mnt
|
||||||
extern void mnt_unpin(struct vfsmount *mnt);
|
extern void mnt_unpin(struct vfsmount *mnt);
|
||||||
extern int __mnt_is_readonly(struct vfsmount *mnt);
|
extern int __mnt_is_readonly(struct vfsmount *mnt);
|
||||||
|
|
||||||
|
|
|
@ -179,7 +179,7 @@ Date: Wed Jul 9 12:08:23 2014 +0200
|
||||||
/* Avoid PM error messages for devices disconnected while suspended
|
/* Avoid PM error messages for devices disconnected while suspended
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -5263,11 +5263,10 @@ int usb_reset_device(struct usb_device *
|
@@ -5334,11 +5334,10 @@ int usb_reset_device(struct usb_device *
|
||||||
else if (cintf->condition ==
|
else if (cintf->condition ==
|
||||||
USB_INTERFACE_BOUND)
|
USB_INTERFACE_BOUND)
|
||||||
rebind = 1;
|
rebind = 1;
|
||||||
|
|
|
@ -99,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
--- a/init/Kconfig
|
--- a/init/Kconfig
|
||||||
+++ b/init/Kconfig
|
+++ b/init/Kconfig
|
||||||
@@ -1783,6 +1783,13 @@ config MODULE_SIG_HASH
|
@@ -1784,6 +1784,13 @@ config MODULE_SIG_HASH
|
||||||
default "sha384" if MODULE_SIG_SHA384
|
default "sha384" if MODULE_SIG_SHA384
|
||||||
default "sha512" if MODULE_SIG_SHA512
|
default "sha512" if MODULE_SIG_SHA512
|
||||||
|
|
||||||
|
|
|
@ -219,26 +219,26 @@
|
||||||
{
|
{
|
||||||
UInt32 dicSize;
|
UInt32 dicSize;
|
||||||
Byte d;
|
Byte d;
|
||||||
@@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma
|
@@ -935,33 +883,11 @@ static SRes LzmaDec_AllocateProbs2(CLzma
|
||||||
return SZ_OK;
|
return SZ_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
-SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
-SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
||||||
|
-{
|
||||||
|
- CLzmaProps propNew;
|
||||||
|
- RINOK(LzmaProps_Decode(&propNew, props, propsSize));
|
||||||
|
- RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
|
||||||
|
- p->prop = propNew;
|
||||||
|
- return SZ_OK;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
||||||
+static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
+static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
||||||
{
|
{
|
||||||
CLzmaProps propNew;
|
CLzmaProps propNew;
|
||||||
RINOK(LzmaProps_Decode(&propNew, props, propsSize));
|
|
||||||
@@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
|
|
||||||
p->prop = propNew;
|
|
||||||
return SZ_OK;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
|
|
||||||
-{
|
|
||||||
- CLzmaProps propNew;
|
|
||||||
- SizeT dicBufSize;
|
- SizeT dicBufSize;
|
||||||
- RINOK(LzmaProps_Decode(&propNew, props, propsSize));
|
RINOK(LzmaProps_Decode(&propNew, props, propsSize));
|
||||||
- RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
|
RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
|
||||||
- dicBufSize = propNew.dicSize;
|
- dicBufSize = propNew.dicSize;
|
||||||
- if (p->dic == 0 || dicBufSize != p->dicBufSize)
|
- if (p->dic == 0 || dicBufSize != p->dicBufSize)
|
||||||
- {
|
- {
|
||||||
|
@ -251,12 +251,9 @@
|
||||||
- }
|
- }
|
||||||
- }
|
- }
|
||||||
- p->dicBufSize = dicBufSize;
|
- p->dicBufSize = dicBufSize;
|
||||||
- p->prop = propNew;
|
p->prop = propNew;
|
||||||
- return SZ_OK;
|
return SZ_OK;
|
||||||
-}
|
}
|
||||||
|
|
||||||
SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
|
|
||||||
const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
|
|
||||||
--- a/include/linux/lzma/LzmaEnc.h
|
--- a/include/linux/lzma/LzmaEnc.h
|
||||||
+++ b/include/linux/lzma/LzmaEnc.h
|
+++ b/include/linux/lzma/LzmaEnc.h
|
||||||
@@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
|
@@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
|
||||||
|
|
|
@ -76,11 +76,10 @@
|
||||||
|
|
||||||
counters = alloc_counters(table);
|
counters = alloc_counters(table);
|
||||||
if (IS_ERR(counters))
|
if (IS_ERR(counters))
|
||||||
@@ -960,6 +989,14 @@ copy_entries_to_user(unsigned int total_
|
@@ -961,6 +990,14 @@ copy_entries_to_user(unsigned int total_
|
||||||
ret = -EFAULT;
|
|
||||||
goto free_counters;
|
goto free_counters;
|
||||||
}
|
}
|
||||||
+
|
|
||||||
+ flags = e->ip.flags & IPT_F_MASK;
|
+ flags = e->ip.flags & IPT_F_MASK;
|
||||||
+ if (copy_to_user(userptr + off
|
+ if (copy_to_user(userptr + off
|
||||||
+ + offsetof(struct ipt_entry, ip.flags),
|
+ + offsetof(struct ipt_entry, ip.flags),
|
||||||
|
@ -88,6 +87,7 @@
|
||||||
+ ret = -EFAULT;
|
+ ret = -EFAULT;
|
||||||
+ goto free_counters;
|
+ goto free_counters;
|
||||||
+ }
|
+ }
|
||||||
|
+
|
||||||
for (i = sizeof(struct ipt_entry);
|
for (i = sizeof(struct ipt_entry);
|
||||||
i < e->target_offset;
|
i < e->target_offset;
|
||||||
|
i += m->u.match_size) {
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
/*
|
/*
|
||||||
* Get the required data from the packet.
|
* Get the required data from the packet.
|
||||||
*/
|
*/
|
||||||
@@ -1440,6 +1446,13 @@ static struct ctl_table tcp_sysctl_table
|
@@ -1446,6 +1452,13 @@ static struct ctl_table tcp_sysctl_table
|
||||||
.mode = 0644,
|
.mode = 0644,
|
||||||
.proc_handler = proc_dointvec,
|
.proc_handler = proc_dointvec,
|
||||||
},
|
},
|
||||||
|
|
|
@ -10,4 +10,3 @@
|
||||||
err = xfrm_decode_session(skb, &fl, family);
|
err = xfrm_decode_session(skb, &fl, family);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
}
|
}
|
||||||
--- a/net/netfilter/nf_conntrack_standalone.c
|
--- a/net/netfilter/nf_conntrack_standalone.c
|
||||||
+++ b/net/netfilter/nf_conntrack_standalone.c
|
+++ b/net/netfilter/nf_conntrack_standalone.c
|
||||||
@@ -477,6 +477,13 @@ static ctl_table nf_ct_sysctl_table[] =
|
@@ -510,6 +510,13 @@ static ctl_table nf_ct_sysctl_table[] =
|
||||||
.extra2 = &log_invalid_proto_max,
|
.extra2 = &log_invalid_proto_max,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
.procname = "nf_conntrack_expect_max",
|
.procname = "nf_conntrack_expect_max",
|
||||||
.data = &nf_ct_expect_max,
|
.data = &nf_ct_expect_max,
|
||||||
.maxlen = sizeof(int),
|
.maxlen = sizeof(int),
|
||||||
@@ -512,6 +519,7 @@ static int nf_conntrack_standalone_init_
|
@@ -545,6 +552,7 @@ static int nf_conntrack_standalone_init_
|
||||||
table[2].data = &net->ct.htable_size;
|
table[2].data = &net->ct.htable_size;
|
||||||
table[3].data = &net->ct.sysctl_checksum;
|
table[3].data = &net->ct.sysctl_checksum;
|
||||||
table[4].data = &net->ct.sysctl_log_invalid;
|
table[4].data = &net->ct.sysctl_log_invalid;
|
||||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
#define PACKET_FANOUT_LB 1
|
#define PACKET_FANOUT_LB 1
|
||||||
--- a/net/packet/af_packet.c
|
--- a/net/packet/af_packet.c
|
||||||
+++ b/net/packet/af_packet.c
|
+++ b/net/packet/af_packet.c
|
||||||
@@ -1403,6 +1403,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1404,6 +1404,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
{
|
{
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
struct sockaddr_pkt *spkt;
|
struct sockaddr_pkt *spkt;
|
||||||
|
@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When we registered the protocol we saved the socket in the data
|
* When we registered the protocol we saved the socket in the data
|
||||||
@@ -1410,6 +1411,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1411,6 +1412,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sk = pt->af_packet_priv;
|
sk = pt->af_packet_priv;
|
||||||
|
@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Yank back the headers [hope the device set this
|
* Yank back the headers [hope the device set this
|
||||||
@@ -1422,7 +1424,7 @@ static int packet_rcv_spkt(struct sk_buf
|
@@ -1423,7 +1425,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||||
* so that this procedure is noop.
|
* so that this procedure is noop.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
@@ -1629,12 +1631,12 @@ static int packet_rcv(struct sk_buff *sk
|
@@ -1630,12 +1632,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||||
int skb_len = skb->len;
|
int skb_len = skb->len;
|
||||||
unsigned int snaplen, res;
|
unsigned int snaplen, res;
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -1747,12 +1749,12 @@ static int tpacket_rcv(struct sk_buff *s
|
@@ -1748,12 +1750,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
__u32 ts_status;
|
__u32 ts_status;
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||||
goto drop;
|
goto drop;
|
||||||
|
|
||||||
@@ -2641,6 +2643,7 @@ static int packet_create(struct net *net
|
@@ -2654,6 +2656,7 @@ static int packet_create(struct net *net
|
||||||
spin_lock_init(&po->bind_lock);
|
spin_lock_init(&po->bind_lock);
|
||||||
mutex_init(&po->pg_vec_lock);
|
mutex_init(&po->pg_vec_lock);
|
||||||
po->prot_hook.func = packet_rcv;
|
po->prot_hook.func = packet_rcv;
|
||||||
|
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
|
|
||||||
if (sock->type == SOCK_PACKET)
|
if (sock->type == SOCK_PACKET)
|
||||||
po->prot_hook.func = packet_rcv_spkt;
|
po->prot_hook.func = packet_rcv_spkt;
|
||||||
@@ -3251,6 +3254,16 @@ packet_setsockopt(struct socket *sock, i
|
@@ -3264,6 +3267,16 @@ packet_setsockopt(struct socket *sock, i
|
||||||
po->tp_tx_has_off = !!val;
|
po->tp_tx_has_off = !!val;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
default:
|
default:
|
||||||
return -ENOPROTOOPT;
|
return -ENOPROTOOPT;
|
||||||
}
|
}
|
||||||
@@ -3302,6 +3315,13 @@ static int packet_getsockopt(struct sock
|
@@ -3315,6 +3328,13 @@ static int packet_getsockopt(struct sock
|
||||||
case PACKET_VNET_HDR:
|
case PACKET_VNET_HDR:
|
||||||
val = po->has_vnet_hdr;
|
val = po->has_vnet_hdr;
|
||||||
break;
|
break;
|
||||||
|
@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
|
||||||
break;
|
break;
|
||||||
--- a/net/packet/internal.h
|
--- a/net/packet/internal.h
|
||||||
+++ b/net/packet/internal.h
|
+++ b/net/packet/internal.h
|
||||||
@@ -115,6 +115,7 @@ struct packet_sock {
|
@@ -116,6 +116,7 @@ struct packet_sock {
|
||||||
unsigned int tp_tstamp;
|
unsigned int tp_tstamp;
|
||||||
struct net_device __rcu *cached_dev;
|
struct net_device __rcu *cached_dev;
|
||||||
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
struct packet_type prot_hook ____cacheline_aligned_in_smp;
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
|
int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
|
||||||
unsigned char banned_flags)
|
unsigned char banned_flags)
|
||||||
@@ -5173,6 +5172,9 @@ int __init addrconf_init(void)
|
@@ -5183,6 +5182,9 @@ int __init addrconf_init(void)
|
||||||
|
|
||||||
ipv6_addr_label_rtnl_register();
|
ipv6_addr_label_rtnl_register();
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
return 0;
|
return 0;
|
||||||
errout:
|
errout:
|
||||||
rtnl_af_unregister(&inet6_ops);
|
rtnl_af_unregister(&inet6_ops);
|
||||||
@@ -5191,6 +5193,9 @@ void addrconf_cleanup(void)
|
@@ -5201,6 +5203,9 @@ void addrconf_cleanup(void)
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
@ -239,7 +239,7 @@
|
||||||
|
|
||||||
--- a/net/ipv4/route.c
|
--- a/net/ipv4/route.c
|
||||||
+++ b/net/ipv4/route.c
|
+++ b/net/ipv4/route.c
|
||||||
@@ -423,6 +423,9 @@ static struct pernet_operations ip_rt_pr
|
@@ -424,6 +424,9 @@ static struct pernet_operations ip_rt_pr
|
||||||
|
|
||||||
static int __init ip_rt_proc_init(void)
|
static int __init ip_rt_proc_init(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/init/main.c
|
--- a/init/main.c
|
||||||
+++ b/init/main.c
|
+++ b/init/main.c
|
||||||
@@ -840,7 +840,8 @@ static int __ref kernel_init(void *unuse
|
@@ -844,7 +844,8 @@ static int __ref kernel_init(void *unuse
|
||||||
pr_err("Failed to execute %s. Attempting defaults...\n",
|
pr_err("Failed to execute %s. Attempting defaults...\n",
|
||||||
execute_command);
|
execute_command);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/mm/shmem.c
|
--- a/mm/shmem.c
|
||||||
+++ b/mm/shmem.c
|
+++ b/mm/shmem.c
|
||||||
@@ -2883,6 +2883,15 @@ static struct dentry_operations anon_ops
|
@@ -2965,6 +2965,15 @@ static struct dentry_operations anon_ops
|
||||||
.d_dname = simple_dname
|
.d_dname = simple_dname
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
||||||
/**
|
/**
|
||||||
* shmem_file_setup - get an unlinked file living in tmpfs
|
* shmem_file_setup - get an unlinked file living in tmpfs
|
||||||
* @name: name for dentry (to be seen in /proc/<pid>/maps
|
* @name: name for dentry (to be seen in /proc/<pid>/maps
|
||||||
@@ -2956,11 +2965,8 @@ int shmem_zero_setup(struct vm_area_stru
|
@@ -3038,11 +3047,8 @@ int shmem_zero_setup(struct vm_area_stru
|
||||||
file = shmem_file_setup("dev/zero", size, vma->vm_flags);
|
file = shmem_file_setup("dev/zero", size, vma->vm_flags);
|
||||||
if (IS_ERR(file))
|
if (IS_ERR(file))
|
||||||
return PTR_ERR(file);
|
return PTR_ERR(file);
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
{
|
{
|
||||||
--- a/kernel/exit.c
|
--- a/kernel/exit.c
|
||||||
+++ b/kernel/exit.c
|
+++ b/kernel/exit.c
|
||||||
@@ -501,6 +501,8 @@ static void exit_mm(struct task_struct *
|
@@ -502,6 +502,8 @@ static void exit_mm(struct task_struct *
|
||||||
mm_update_next_owner(mm);
|
mm_update_next_owner(mm);
|
||||||
mmput(mm);
|
mmput(mm);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue