aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2014-01-23 13:29:51 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2014-01-23 14:29:38 +0000
commit7bb600ae51b7efb86d9f309f25ebba10171b77eb (patch)
treec413b501436d77451e245d531927b57f415bad1e
parentacb8ee44c2df9371b3e3ad1928209ceaa869b150 (diff)
downloadaports-7bb600ae51b7efb86d9f309f25ebba10171b77eb.tar.bz2
aports-7bb600ae51b7efb86d9f309f25ebba10171b77eb.tar.xz
main/linux-grsec: upgrade to 3.10.27
-rw-r--r--main/linux-grsec/0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch60
-rw-r--r--main/linux-grsec/APKBUILD22
-rw-r--r--main/linux-grsec/grsecurity-2.9.1-3.10.27-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch)326
-rw-r--r--main/linux-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch67
4 files changed, 170 insertions, 305 deletions
diff --git a/main/linux-grsec/0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch b/main/linux-grsec/0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
deleted file mode 100644
index ca86acacf9..0000000000
--- a/main/linux-grsec/0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 08dd44d9ba398ecd23975603aa05ab9b8a9a8f94 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Mon, 16 Dec 2013 11:02:09 +0200
-Subject: [PATCH] ip_gre: fix msg_name parsing for recvfrom/recvmsg
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-ipgre_header_parse() needs to parse the tunnel's ip header and it
-uses mac_header to locate the iphdr. This got broken when gre tunneling
-was refactored as mac_header is no longer updated to point to iphdr.
-Introduce skb_pop_mac_header() helper to do the mac_header assignment
-and use it in ipgre_rcv() to fix msg_name parsing.
-
-Bug introduced in commit c54419321455 (GRE: Refactor GRE tunneling code.)
-
-Cc: Pravin B Shelar <pshelar@nicira.com>
-Signed-off-by: Timo Teräs <timo.teras@iki.fi>
-Signed-off-by: David S. Miller <davem@davemloft.net>
-
-Conflicts:
- include/linux/skbuff.h
- net/ipv4/ip_gre.c
----
- include/linux/skbuff.h | 5 +++++
- net/ipv4/ip_gre.c | 1 +
- 2 files changed, 6 insertions(+)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index c42c51d..d3500f8 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -1519,6 +1519,11 @@ static inline void skb_reset_inner_headers(struct sk_buff *skb)
- skb->inner_transport_header = skb->transport_header;
- }
-
-+static inline void skb_pop_mac_header(struct sk_buff *skb)
-+{
-+ skb->mac_header = skb->network_header;
-+}
-+
- static inline void skb_reset_mac_len(struct sk_buff *skb)
- {
- skb->mac_len = skb->network_header - skb->mac_header;
-diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
-index db77052..79f1e8d 100644
---- a/net/ipv4/ip_gre.c
-+++ b/net/ipv4/ip_gre.c
-@@ -335,6 +335,7 @@ static int ipgre_rcv(struct sk_buff *skb)
- iph->saddr, iph->daddr, tpi.key);
-
- if (tunnel) {
-+ skb_pop_mac_header(skb);
- ip_tunnel_rcv(tunnel, skb, &tpi, hdr_len, log_ecn_error);
- return 0;
- }
---
-1.8.5.2
-
-
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 8abb88c8c6..6ec74145f9 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,7 +2,7 @@
_flavor=grsec
pkgname=linux-${_flavor}
-pkgver=3.10.25
+pkgver=3.10.27
case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=${pkgver};;
@@ -25,8 +25,6 @@ source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
- net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
- 0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
fix-memory-map-for-PIE-applications.patch
sysctl_lxc.patch
@@ -153,46 +151,40 @@ dev() {
}
md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz
-a216b82ba3670c979241a9ef9f1438e4 patch-3.10.25.xz
-83142ed6972c71cf8996e988669a5369 grsecurity-2.9.1-3.10.25-unofficial.patch
+58009825fb7ca7ca7913ab68fbf8a8a7 patch-3.10.27.xz
+406a1cf82437ba99abdbe77b8efc1ad4 grsecurity-2.9.1-3.10.27-unofficial.patch
a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
2a12a3717052e878c0cd42aa935bfcf4 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
6ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
1a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
-ae36fdf685dd97f51bce3a5124f7dff6 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
-c5f660933430a03f3346c66fbfb26100 0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch
b3c0153d53e508e03d73b94d15b24a96 sysctl_lxc.patch
cb5c938dccbee36cfb8bb7ee3546b8af kernelconfig.x86
daa81b89f18254155ac33c5239abf3a4 kernelconfig.x86_64"
sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz
-58323f60a2c5156e9e46b5947e7b3d81be44895c2b5dc31ced8d0e5346ca4d43 patch-3.10.25.xz
-069ba22e11bbed3d833546e16b91399731cd82ac97882716841c679c83c2b247 grsecurity-2.9.1-3.10.25-unofficial.patch
+88ea7b4edb7f84d1806c8063b61a23dd16b87f7ed030c1848c76f3bf54942cb0 patch-3.10.27.xz
+2e11f7ff0d1350cc7638feecefafe93f170b850242f43db657e383375d7fda2d grsecurity-2.9.1-3.10.27-unofficial.patch
6af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
0985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
260fd1807838b68305a96992bf7d3302a2a8ef3a3b08fe079ba9a07e6422f736 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
-b130be723743442140637b74da6065061aabb0a0ce6ce6f5cf784f6e5776ae14 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
-dcdef241ddd315c6c8296f122fc94f77792fde0304aff07f72afe11333b7ebfb 0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch
9ba55b0f45d5aa97503e376a13be6d249a10f32e36687055b2fa1e5a39fa0584 sysctl_lxc.patch
3e6c4101bfb90b6a30173ef81cd0d0bea51d6a995fc045ca67db7fed271d969d kernelconfig.x86
da67ef700372d080bffb12a86f0a16c987dc79e18fdfb1a88d2704660239e5f0 kernelconfig.x86_64"
sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz
-89e009d91e90ed76f860e48a944d702d3b1bf5179c07e591918152baacd5592ae0e4d50accfc6bfdccccda0557d61bb30a88bbe0f90afd8be69c638c63c015fc patch-3.10.25.xz
-25aa4922fc0b4a9cd689def07929f9e1bc2fe92424115f74c89c74167b9e94db8f6114125d664268ce8ce3084e9d7b734b81f48d22fd27584c2bf0d51fd03d43 grsecurity-2.9.1-3.10.25-unofficial.patch
+f6aba104b36e20675f0d1e40ce14e61c0338ab0c194cdf09466b805a0686851bb6d69b4ebef8f6f35e22a4979c7936ea72b908bddbc02514c68ef24fddc28ede patch-3.10.27.xz
+fb9e2f0dba48ef179a0b53b1a471c7b1f821257480d7e969c14b8a32cd853eb9df662c0b768ad2bd6c782c51d6321f5e4de0811008afe71bf6f3c34dc0773ac3 grsecurity-2.9.1-3.10.27-unofficial.patch
81e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
51ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
57d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d711e3486628ed56ab996484e219d79ac4b0c0ec684ebd380aa 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
28a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
-100fddcb0311d01bed68831287805921afd6a788a81ac6aa1c71823eb10b83c906bc38b0607fdbe71515aef43e628a9863b3fd53953698fe91326c70918c9bd9 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
-ccb0695d96521d27e318a9936037a9cf9705dade1feeed271b65f0199653e8817c1696fcc1c2c83a9328ca23354213e1bed513212056e636d780a49fa7791d82 0001-ip_gre-fix-msg_name-parsing-for-recvfrom-recvmsg.patch
4665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch
41071e21c59997604a380575d3c4171d35a12eaae6ddcf158d95e4fd5ccc69d61753cbd38b7bd08d879cce5bfea3fed2df15e5a3dca944f6f7cbd95d5d2daa23 sysctl_lxc.patch
e81d6780a33f00d5ee03b069fc3610da2eda3ba43e515707ae67cd2d609a226b18e9ec446eeacd2afaafe6aa480bb30b9908cce41e0d90f1a3b41e7daf2034c5 kernelconfig.x86
diff --git a/main/linux-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch b/main/linux-grsec/grsecurity-2.9.1-3.10.27-unofficial.patch
index a8bca6ee2b..e9aafba269 100644
--- a/main/linux-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch
+++ b/main/linux-grsec/grsecurity-2.9.1-3.10.27-unofficial.patch
@@ -229,7 +229,7 @@ index b89a739..79768fb 100644
+zconf.lex.c
zoffset.h
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
-index 2fe6e76..889ee23 100644
+index 1311a48..f233324 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -976,6 +976,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
@@ -243,7 +243,7 @@ index 2fe6e76..889ee23 100644
hashdist= [KNL,NUMA] Large hashes allocated during boot
are distributed across NUMA nodes. Defaults on
for 64-bit NUMA, off otherwise.
-@@ -1928,6 +1932,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -1932,6 +1936,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
noexec=on: enable non-executable mappings (default)
noexec=off: disable non-executable mappings
@@ -254,7 +254,7 @@ index 2fe6e76..889ee23 100644
nosmap [X86]
Disable SMAP (Supervisor Mode Access Prevention)
even if it is supported by processor.
-@@ -2195,6 +2203,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
+@@ -2199,6 +2207,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
the specified number of seconds. This is to be used if
your oopses keep scrolling off the screen.
@@ -281,7 +281,7 @@ index 2fe6e76..889ee23 100644
pcd. [PARIDE]
diff --git a/Makefile b/Makefile
-index cd97e9a..a803acc 100644
+index 09675a5..18b21bb 100644
--- a/Makefile
+++ b/Makefile
@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -3154,10 +3154,10 @@ index 5919eb4..b5d6dfe 100644
void __init smp_set_ops(struct smp_operations *ops)
{
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index 6b9567e..b8af2d6 100644
+index d6a0fdb..6b90ade 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
-@@ -55,7 +55,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
+@@ -61,7 +61,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
{
#ifdef CONFIG_KALLSYMS
@@ -3166,7 +3166,7 @@ index 6b9567e..b8af2d6 100644
#else
printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
#endif
-@@ -257,6 +257,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
+@@ -263,6 +263,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
static int die_owner = -1;
static unsigned int die_nest_count;
@@ -3175,7 +3175,7 @@ index 6b9567e..b8af2d6 100644
static unsigned long oops_begin(void)
{
int cpu;
-@@ -299,6 +301,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
+@@ -305,6 +307,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
panic("Fatal exception in interrupt");
if (panic_on_oops)
panic("Fatal exception");
@@ -3185,7 +3185,7 @@ index 6b9567e..b8af2d6 100644
if (signr)
do_exit(signr);
}
-@@ -592,7 +597,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
+@@ -598,7 +603,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
* The user helper at 0xffff0fe0 must be used instead.
* (see entry-armv.S for details)
*/
@@ -3195,7 +3195,7 @@ index 6b9567e..b8af2d6 100644
}
return 0;
-@@ -848,5 +855,9 @@ void __init early_trap_init(void *vectors_base)
+@@ -854,5 +861,9 @@ void __init early_trap_init(void *vectors_base)
kuser_init(vectors_base);
flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
@@ -15511,7 +15511,7 @@ index 75ce3f4..882e801 100644
#endif /* _ASM_X86_EMERGENCY_RESTART_H */
diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
-index e25cc33..7d3ec01 100644
+index e72b2e4..ca915d2 100644
--- a/arch/x86/include/asm/fpu-internal.h
+++ b/arch/x86/include/asm/fpu-internal.h
@@ -126,8 +126,11 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
@@ -15536,14 +15536,14 @@ index e25cc33..7d3ec01 100644
})
@@ -300,7 +304,7 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
- "emms\n\t" /* clear stack tags */
- "fildl %P[addr]", /* set F?P to defined value */
- X86_FEATURE_FXSAVE_LEAK,
-- [addr] "m" (tsk->thread.fpu.has_fpu));
-+ [addr] "m" (init_tss[raw_smp_processor_id()].x86_tss.sp0));
+ "fnclex\n\t"
+ "emms\n\t"
+ "fildl %P[addr]" /* set F?P to defined value */
+- : : [addr] "m" (tsk->thread.fpu.has_fpu));
++ : : [addr] "m" (init_tss[raw_smp_processor_id()].x86_tss.sp0));
+ }
return fpu_restore_checking(&tsk->thread.fpu);
- }
diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
index be27ba1..04a8801 100644
--- a/arch/x86/include/asm/futex.h
@@ -16527,7 +16527,7 @@ index 4cc9f2b..5fd9226 100644
/*
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
-index 1e67223..92a9585 100644
+index 5460bf9..9a16fc3 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -44,6 +44,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
@@ -16650,7 +16650,7 @@ index 1e67223..92a9585 100644
#include <linux/mm_types.h>
#include <linux/log2.h>
-@@ -529,7 +604,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
+@@ -536,7 +611,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
* Currently stuck as a macro due to indirect forward reference to
* linux/mmzone.h's __section_mem_map_addr() definition:
*/
@@ -16659,7 +16659,7 @@ index 1e67223..92a9585 100644
/* Find an entry in the second-level page table.. */
static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
-@@ -569,7 +644,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
+@@ -576,7 +651,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
* Currently stuck as a macro due to indirect forward reference to
* linux/mmzone.h's __section_mem_map_addr() definition:
*/
@@ -16668,7 +16668,7 @@ index 1e67223..92a9585 100644
/* to find an entry in a page-table-directory. */
static inline unsigned long pud_index(unsigned long address)
-@@ -584,7 +659,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
+@@ -591,7 +666,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
static inline int pgd_bad(pgd_t pgd)
{
@@ -16677,7 +16677,7 @@ index 1e67223..92a9585 100644
}
static inline int pgd_none(pgd_t pgd)
-@@ -607,7 +682,12 @@ static inline int pgd_none(pgd_t pgd)
+@@ -614,7 +689,12 @@ static inline int pgd_none(pgd_t pgd)
* pgd_offset() returns a (pgd_t *)
* pgd_index() is used get the offset into the pgd page's array of pgd_t's;
*/
@@ -16691,7 +16691,7 @@ index 1e67223..92a9585 100644
/*
* a shortcut which implies the use of the kernel's pgd, instead
* of a process's
-@@ -618,6 +698,23 @@ static inline int pgd_none(pgd_t pgd)
+@@ -625,6 +705,23 @@ static inline int pgd_none(pgd_t pgd)
#define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
#define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
@@ -16715,7 +16715,7 @@ index 1e67223..92a9585 100644
#ifndef __ASSEMBLY__
extern int direct_gbpages;
-@@ -784,11 +881,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
+@@ -791,11 +888,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
* dst and src can be on the same page, but the range must not overlap,
* and must not cross a page boundary.
*/
@@ -17670,7 +17670,7 @@ index b073aae..39f9bdd 100644
#endif
diff --git a/arch/x86/include/asm/spinlock.h b/arch/x86/include/asm/spinlock.h
-index 33692ea..350a534 100644
+index e3ddd7d..3611fce 100644
--- a/arch/x86/include/asm/spinlock.h
+++ b/arch/x86/include/asm/spinlock.h
@@ -172,6 +172,14 @@ static inline int arch_write_can_lock(arch_rwlock_t *lock)
@@ -26879,7 +26879,7 @@ index 5484d54..d5f90d0 100644
case 1: \
____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
-index 0987c63..412bedd 100644
+index d0a97e8..70b4c32 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -55,7 +55,7 @@
@@ -35133,7 +35133,7 @@ index 8905e03..d1b0719 100644
unsigned long timeout_msec)
{
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
-index cd6aa28..6f5e966 100644
+index 8cacd16..bf1a85a 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -98,7 +98,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
@@ -35145,7 +35145,7 @@ index cd6aa28..6f5e966 100644
struct ata_force_param {
const char *name;
-@@ -4793,7 +4793,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
+@@ -4796,7 +4796,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
struct ata_port *ap;
unsigned int tag;
@@ -35154,7 +35154,7 @@ index cd6aa28..6f5e966 100644
ap = qc->ap;
qc->flags = 0;
-@@ -4809,7 +4809,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
+@@ -4812,7 +4812,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
struct ata_port *ap;
struct ata_link *link;
@@ -35163,7 +35163,7 @@ index cd6aa28..6f5e966 100644
WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
ap = qc->ap;
link = qc->dev->link;
-@@ -5927,6 +5927,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5930,6 +5930,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
return;
spin_lock(&lock);
@@ -35171,7 +35171,7 @@ index cd6aa28..6f5e966 100644
for (cur = ops->inherits; cur; cur = cur->inherits) {
void **inherit = (void **)cur;
-@@ -5940,8 +5941,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
+@@ -5943,8 +5944,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
if (IS_ERR(*pp))
*pp = NULL;
@@ -35182,7 +35182,7 @@ index cd6aa28..6f5e966 100644
spin_unlock(&lock);
}
-@@ -6134,7 +6136,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
+@@ -6137,7 +6139,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
/* give ports names and add SCSI hosts */
for (i = 0; i < host->n_ports; i++)
@@ -35192,10 +35192,10 @@ index cd6aa28..6f5e966 100644
/* Create associated sysfs transport objects */
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
-index 4abdbdf..b7a724e 100644
+index 81a3535..f6c50e5 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
-@@ -4106,7 +4106,7 @@ int ata_sas_port_init(struct ata_port *ap)
+@@ -4127,7 +4127,7 @@ int ata_sas_port_init(struct ata_port *ap)
if (rc)
return rc;
@@ -37583,10 +37583,10 @@ index bd11315..7f87098 100644
clk = clk_register(NULL, &socfpga_clk->hw.hw);
diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
-index a2b2541..bc1e7ff 100644
+index 053d846..5f48afe 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
-@@ -264,7 +264,7 @@ static int __cpuinit arch_timer_cpu_notify(struct notifier_block *self,
+@@ -256,7 +256,7 @@ static int __cpuinit arch_timer_cpu_notify(struct notifier_block *self,
return NOTIFY_OK;
}
@@ -38806,10 +38806,10 @@ index e913d32..4d9b351 100644
if (IS_GEN6(dev) || IS_GEN7(dev)) {
seq_printf(m,
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index 17d9b0b..860e6d9 100644
+index d9d7d675..8628850 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1259,7 +1259,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
+@@ -1267,7 +1267,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
bool can_switch;
spin_lock(&dev->count_lock);
@@ -38995,7 +38995,7 @@ index c8d16a6..ca71b5e 100644
iir = I915_READ(IIR);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index f1e6004..d0200ac 100644
+index 15358ad..e6ac791 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -8939,13 +8939,13 @@ struct intel_quirk {
@@ -39609,10 +39609,10 @@ index 6c0ce89..57a2529 100644
return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
-index 55880d5..9e95342 100644
+index ea28ecb..0502e96 100644
--- a/drivers/gpu/drm/radeon/rs690.c
+++ b/drivers/gpu/drm/radeon/rs690.c
-@@ -327,9 +327,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
+@@ -337,9 +337,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
if (rdev->pm.max_bandwidth.full > rdev->pm.sideport_bandwidth.full &&
rdev->pm.sideport_bandwidth.full)
rdev->pm.max_bandwidth = rdev->pm.sideport_bandwidth;
@@ -41226,10 +41226,10 @@ index da739d9..da1c7f4 100644
gameport->dev.release = gameport_release_port;
if (gameport->parent)
diff --git a/drivers/input/input.c b/drivers/input/input.c
-index c044699..174d71a 100644
+index 66984e2..256ba8f 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
-@@ -2019,7 +2019,7 @@ static void devm_input_device_unregister(struct device *dev, void *res)
+@@ -2023,7 +2023,7 @@ static void devm_input_device_unregister(struct device *dev, void *res)
*/
int input_register_device(struct input_dev *dev)
{
@@ -41238,7 +41238,7 @@ index c044699..174d71a 100644
struct input_devres *devres = NULL;
struct input_handler *handler;
unsigned int packet_size;
-@@ -2074,7 +2074,7 @@ int input_register_device(struct input_dev *dev)
+@@ -2078,7 +2078,7 @@ int input_register_device(struct input_dev *dev)
dev->setkeycode = input_default_setkeycode;
dev_set_name(&dev->dev, "input%ld",
@@ -44094,10 +44094,10 @@ index 06eba6e..a06bf31 100644
};
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index c70ff7d..10fcffc 100644
+index 9e56eb4..f5ec625 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
-@@ -1116,7 +1116,7 @@ static int macvtap_device_event(struct notifier_block *unused,
+@@ -1112,7 +1112,7 @@ static int macvtap_device_event(struct notifier_block *unused,
return NOTIFY_DONE;
}
@@ -44167,10 +44167,10 @@ index fe3fd77..b048392 100644
};
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index 9ef85fe..64e88b0 100644
+index 5824971..6841f73 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
-@@ -1884,7 +1884,7 @@ unlock:
+@@ -1886,7 +1886,7 @@ unlock:
}
static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -44179,7 +44179,7 @@ index 9ef85fe..64e88b0 100644
{
struct tun_file *tfile = file->private_data;
struct tun_struct *tun;
-@@ -1896,6 +1896,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
+@@ -1898,6 +1898,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
int vnet_hdr_sz;
int ret;
@@ -44329,10 +44329,10 @@ index 34c8a33..3261fdc 100644
return msecs_to_jiffies((s->poll_timeout[2] << 16)
| (s->poll_timeout[1] << 8)
diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
-index 8d78253..bebbb68 100644
+index a366d6b..b6f28f8 100644
--- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
+++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
-@@ -184,8 +184,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+@@ -218,8 +218,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
@@ -44343,7 +44343,7 @@ index 8d78253..bebbb68 100644
ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
ctl6 = SM(i->keytype, AR_EncrType);
-@@ -199,26 +199,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+@@ -233,26 +233,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
if ((i->is_first || i->is_last) &&
i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
@@ -44377,7 +44377,7 @@ index 8d78253..bebbb68 100644
return;
}
-@@ -243,7 +243,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+@@ -277,7 +277,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
break;
}
@@ -44386,7 +44386,7 @@ index 8d78253..bebbb68 100644
| (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
| SM(i->txpower, AR_XmitPower)
| (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
-@@ -253,19 +253,19 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
+@@ -287,19 +287,19 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
| (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
(i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
@@ -46806,10 +46806,10 @@ index f379c7f..e8fc69c 100644
transport_setup_device(&rport->dev);
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index 9bc913b..1b49616 100644
+index 26b543b..3a23cf1 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
-@@ -2929,7 +2929,7 @@ static int sd_probe(struct device *dev)
+@@ -2932,7 +2932,7 @@ static int sd_probe(struct device *dev)
sdkp->disk = gd;
sdkp->index = index;
atomic_set(&sdkp->openers, 0);
@@ -46818,7 +46818,7 @@ index 9bc913b..1b49616 100644
if (!sdp->request_queue->rq_timeout) {
if (sdp->type != TYPE_MOD)
-@@ -2942,7 +2942,7 @@ static int sd_probe(struct device *dev)
+@@ -2945,7 +2945,7 @@ static int sd_probe(struct device *dev)
device_initialize(&sdkp->dev);
sdkp->dev.parent = dev;
sdkp->dev.class = &sd_disk_class;
@@ -47163,10 +47163,10 @@ index d3536f5..a0c2ce9 100644
login->tgt_agt = sbp_target_agent_register(login);
if (IS_ERR(login->tgt_agt)) {
diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 4630481..c26782a 100644
+index 660b109..239d5b9 100644
--- a/drivers/target/target_core_device.c
+++ b/drivers/target/target_core_device.c
-@@ -1400,7 +1400,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
+@@ -1405,7 +1405,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
spin_lock_init(&dev->se_port_lock);
spin_lock_init(&dev->se_tmr_lock);
spin_lock_init(&dev->qf_cmd_lock);
@@ -54098,7 +54098,7 @@ index f02d82b..2632cf86 100644
u32 ftype;
struct ceph_mds_reply_info_parsed *rinfo;
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
-index 7d377c9..3fb6559 100644
+index 6627b26..634ec4b 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -839,7 +839,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
@@ -55828,10 +55828,10 @@ index 3742e4c..69a797f 100644
if (free_clusters >= (nclusters + dirty_clusters +
resv_clusters))
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 5aae3d1..b5da7f8 100644
+index 7bb2e2e..7742269 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
-@@ -1252,19 +1252,19 @@ struct ext4_sb_info {
+@@ -1262,19 +1262,19 @@ struct ext4_sb_info {
unsigned long s_mb_last_start;
/* stats for buddy allocator */
@@ -55862,7 +55862,7 @@ index 5aae3d1..b5da7f8 100644
/* locality groups */
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
-index 59c6750..a549154 100644
+index fba960e..12519f6 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1865,7 +1865,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
@@ -55942,7 +55942,7 @@ index 59c6750..a549154 100644
}
if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
-@@ -3559,7 +3559,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
+@@ -3564,7 +3564,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
trace_ext4_mb_new_inode_pa(ac, pa);
ext4_mb_use_inode_pa(ac, pa);
@@ -55951,7 +55951,7 @@ index 59c6750..a549154 100644
ei = EXT4_I(ac->ac_inode);
grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
-@@ -3619,7 +3619,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
+@@ -3624,7 +3624,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
trace_ext4_mb_new_group_pa(ac, pa);
ext4_mb_use_group_pa(ac, pa);
@@ -55960,7 +55960,7 @@ index 59c6750..a549154 100644
grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
lg = ac->ac_lg;
-@@ -3708,7 +3708,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
+@@ -3713,7 +3713,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
* from the bitmap and continue.
*/
}
@@ -55969,7 +55969,7 @@ index 59c6750..a549154 100644
return err;
}
-@@ -3726,7 +3726,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
+@@ -3731,7 +3731,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
@@ -56031,7 +56031,7 @@ index 49d3c01..9579efd 100644
else if (input->reserved_blocks > input->blocks_count / 5)
ext4_warning(sb, "Reserved blocks too high (%u)",
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index 3f7c39e..227f24f 100644
+index e4923b6..bb73620 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -1236,7 +1236,7 @@ static ext4_fsblk_t get_sb_block(void **data)
@@ -72853,7 +72853,7 @@ index 810431d..0ec4804f 100644
* (puds are folded into pgds so this doesn't get actually called,
* but the define is needed for a generic inline function.)
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index a59ff51..2594a70 100644
+index b58268a..4311ff2 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -688,6 +688,14 @@ static inline pmd_t pmd_mknuma(pmd_t pmd)
@@ -75640,10 +75640,10 @@ index 8db53cf..c21121d 100644
int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
diff --git a/include/linux/libata.h b/include/linux/libata.h
-index eae7a05..2cdd875 100644
+index 9a4c194..85e933c 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
-@@ -919,7 +919,7 @@ struct ata_port_operations {
+@@ -920,7 +920,7 @@ struct ata_port_operations {
* fields must be pointers.
*/
const struct ata_port_operations *inherits;
@@ -75983,7 +75983,7 @@ index e0c8528..bcf0c29 100644
#endif /* __KERNEL__ */
#endif /* _LINUX_MM_H */
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
-index 4a189ba..04101d6 100644
+index 10a9a17..22ec569 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -289,6 +289,8 @@ struct vm_area_struct {
@@ -75995,8 +75995,8 @@ index 4a189ba..04101d6 100644
};
struct core_thread {
-@@ -438,6 +440,24 @@ struct mm_struct {
- int first_nid;
+@@ -446,6 +448,24 @@ struct mm_struct {
+ bool tlb_flush_pending;
#endif
struct uprobes_state uprobes_state;
+
@@ -76309,7 +76309,7 @@ index 5a5ff57..5ae5070 100644
return nd->saved_names[nd->depth];
}
diff --git a/include/linux/net.h b/include/linux/net.h
-index 0c4ae5d..87874be 100644
+index 65545ac..7335a0c 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -191,7 +191,7 @@ struct net_proto_family {
@@ -76322,7 +76322,7 @@ index 0c4ae5d..87874be 100644
struct iovec;
struct kvec;
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index 96e4c21..9cc8278 100644
+index abf7756..13c93cb 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1026,6 +1026,7 @@ struct net_device_ops {
@@ -77258,7 +77258,7 @@ index 2ac423b..237c72e 100644
#define save_altstack_ex(uss, sp) do { \
stack_t __user *__uss = uss; \
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 74db47e..c42c51d 100644
+index ded45ec..675c1f6 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -631,7 +631,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
@@ -77297,7 +77297,7 @@ index 74db47e..c42c51d 100644
}
/**
-@@ -1844,7 +1844,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
+@@ -1849,7 +1849,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
@@ -77306,7 +77306,7 @@ index 74db47e..c42c51d 100644
#endif
extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
-@@ -2439,7 +2439,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
+@@ -2444,7 +2444,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
int noblock, int *err);
extern unsigned int datagram_poll(struct file *file, struct socket *sock,
struct poll_table_struct *wait);
@@ -77315,7 +77315,7 @@ index 74db47e..c42c51d 100644
int offset, struct iovec *to,
int size);
extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
-@@ -2713,6 +2713,9 @@ static inline void nf_reset(struct sk_buff *skb)
+@@ -2718,6 +2718,9 @@ static inline void nf_reset(struct sk_buff *skb)
nf_bridge_put(skb->nf_bridge);
skb->nf_bridge = NULL;
#endif
@@ -79070,10 +79070,10 @@ index 85c1522..f44bad1 100644
struct snd_soc_platform {
const char *name;
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index 4ea4f98..a63629b 100644
+index 7d99c0b..27d8983 100644
--- a/include/target/target_core_base.h
+++ b/include/target/target_core_base.h
-@@ -653,7 +653,7 @@ struct se_device {
+@@ -654,7 +654,7 @@ struct se_device {
spinlock_t stats_lock;
/* Active commands on this virtual SE device */
atomic_t simple_cmds;
@@ -81081,7 +81081,7 @@ index 7bb73f9..d7978ed 100644
{
struct signal_struct *sig = current->signal;
diff --git a/kernel/fork.c b/kernel/fork.c
-index 80d92e9..c9ab9de 100644
+index ff7be9d..c27d611 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -319,7 +319,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
@@ -81297,7 +81297,7 @@ index 80d92e9..c9ab9de 100644
}
static inline int mm_alloc_pgd(struct mm_struct *mm)
-@@ -695,8 +738,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+@@ -696,8 +739,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
return ERR_PTR(err);
mm = get_task_mm(task);
@@ -81308,7 +81308,7 @@ index 80d92e9..c9ab9de 100644
mmput(mm);
mm = ERR_PTR(-EACCES);
}
-@@ -918,13 +961,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
+@@ -919,13 +962,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
spin_unlock(&fs->lock);
return -EAGAIN;
}
@@ -81330,7 +81330,7 @@ index 80d92e9..c9ab9de 100644
return 0;
}
-@@ -1198,10 +1248,13 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1199,10 +1249,13 @@ static struct task_struct *copy_process(unsigned long clone_flags,
DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
#endif
retval = -EAGAIN;
@@ -81346,7 +81346,7 @@ index 80d92e9..c9ab9de 100644
goto bad_fork_free;
}
current->flags &= ~PF_NPROC_EXCEEDED;
-@@ -1447,6 +1500,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
+@@ -1448,6 +1501,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
goto bad_fork_free_pid;
}
@@ -81358,7 +81358,7 @@ index 80d92e9..c9ab9de 100644
if (clone_flags & CLONE_THREAD) {
current->signal->nr_threads++;
atomic_inc(&current->signal->live);
-@@ -1530,6 +1588,8 @@ bad_fork_cleanup_count:
+@@ -1531,6 +1589,8 @@ bad_fork_cleanup_count:
bad_fork_free:
free_task(p);
fork_out:
@@ -81367,7 +81367,7 @@ index 80d92e9..c9ab9de 100644
return ERR_PTR(retval);
}
-@@ -1614,6 +1674,8 @@ long do_fork(unsigned long clone_flags,
+@@ -1615,6 +1675,8 @@ long do_fork(unsigned long clone_flags,
if (clone_flags & CLONE_PARENT_SETTID)
put_user(nr, parent_tidptr);
@@ -81376,7 +81376,7 @@ index 80d92e9..c9ab9de 100644
if (clone_flags & CLONE_VFORK) {
p->vfork_done = &vfork;
init_completion(&vfork);
-@@ -1730,7 +1792,7 @@ void __init proc_caches_init(void)
+@@ -1731,7 +1793,7 @@ void __init proc_caches_init(void)
mm_cachep = kmem_cache_create("mm_struct",
sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
@@ -81385,7 +81385,7 @@ index 80d92e9..c9ab9de 100644
mmap_init();
nsproxy_cache_init();
}
-@@ -1770,7 +1832,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
+@@ -1771,7 +1833,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
return 0;
/* don't need lock here; in the worst case we'll do useless copy */
@@ -81394,7 +81394,7 @@ index 80d92e9..c9ab9de 100644
return 0;
*new_fsp = copy_fs_struct(fs);
-@@ -1882,7 +1944,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
+@@ -1883,7 +1945,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
fs = current->fs;
spin_lock(&fs->lock);
current->fs = new_fs;
@@ -84232,10 +84232,10 @@ index 64de5f8..7735e12 100644
#ifdef CONFIG_RT_GROUP_SCHED
/*
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
-index e8b3350..d83d44e 100644
+index b4308d7..9da0717 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
-@@ -3440,7 +3440,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible);
+@@ -3452,7 +3452,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible);
* The return value is -ERESTARTSYS if interrupted, 0 if timed out,
* positive (at least 1, or number of jiffies left till timeout) if completed.
*/
@@ -84244,7 +84244,7 @@ index e8b3350..d83d44e 100644
wait_for_completion_interruptible_timeout(struct completion *x,
unsigned long timeout)
{
-@@ -3457,7 +3457,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
+@@ -3469,7 +3469,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
*
* The return value is -ERESTARTSYS if interrupted, 0 if completed.
*/
@@ -84253,7 +84253,7 @@ index e8b3350..d83d44e 100644
{
long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_KILLABLE);
if (t == -ERESTARTSYS)
-@@ -3478,7 +3478,7 @@ EXPORT_SYMBOL(wait_for_completion_killable);
+@@ -3490,7 +3490,7 @@ EXPORT_SYMBOL(wait_for_completion_killable);
* The return value is -ERESTARTSYS if interrupted, 0 if timed out,
* positive (at least 1, or number of jiffies left till timeout) if completed.
*/
@@ -84262,7 +84262,7 @@ index e8b3350..d83d44e 100644
wait_for_completion_killable_timeout(struct completion *x,
unsigned long timeout)
{
-@@ -3704,6 +3704,8 @@ int can_nice(const struct task_struct *p, const int nice)
+@@ -3716,6 +3716,8 @@ int can_nice(const struct task_struct *p, const int nice)
/* convert nice value [19,-20] to rlimit style value [1,40] */
int nice_rlim = 20 - nice;
@@ -84271,7 +84271,7 @@ index e8b3350..d83d44e 100644
return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
capable(CAP_SYS_NICE));
}
-@@ -3737,7 +3739,8 @@ SYSCALL_DEFINE1(nice, int, increment)
+@@ -3749,7 +3751,8 @@ SYSCALL_DEFINE1(nice, int, increment)
if (nice > 19)
nice = 19;
@@ -84281,7 +84281,7 @@ index e8b3350..d83d44e 100644
return -EPERM;
retval = security_task_setnice(current, nice);
-@@ -3891,6 +3894,7 @@ recheck:
+@@ -3903,6 +3906,7 @@ recheck:
unsigned long rlim_rtprio =
task_rlimit(p, RLIMIT_RTPRIO);
@@ -84289,7 +84289,7 @@ index e8b3350..d83d44e 100644
/* can't set/change the rt policy */
if (policy != p->policy && !rlim_rtprio)
return -EPERM;
-@@ -4988,7 +4992,7 @@ static void migrate_tasks(unsigned int dead_cpu)
+@@ -5000,7 +5004,7 @@ static void migrate_tasks(unsigned int dead_cpu)
#if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
@@ -84298,7 +84298,7 @@ index e8b3350..d83d44e 100644
{
.procname = "sched_domain",
.mode = 0555,
-@@ -5005,17 +5009,17 @@ static struct ctl_table sd_ctl_root[] = {
+@@ -5017,17 +5021,17 @@ static struct ctl_table sd_ctl_root[] = {
{}
};
@@ -84320,7 +84320,7 @@ index e8b3350..d83d44e 100644
/*
* In the intermediate directories, both the child directory and
-@@ -5023,22 +5027,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
+@@ -5035,22 +5039,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
* will always be set. In the lowest directory the names are
* static strings and all have proc handlers.
*/
@@ -84352,7 +84352,7 @@ index e8b3350..d83d44e 100644
const char *procname, void *data, int maxlen,
umode_t mode, proc_handler *proc_handler,
bool load_idx)
-@@ -5058,7 +5065,7 @@ set_table_entry(struct ctl_table *entry,
+@@ -5070,7 +5077,7 @@ set_table_entry(struct ctl_table *entry,
static struct ctl_table *
sd_alloc_ctl_domain_table(struct sched_domain *sd)
{
@@ -84361,7 +84361,7 @@ index e8b3350..d83d44e 100644
if (table == NULL)
return NULL;
-@@ -5093,9 +5100,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
+@@ -5105,9 +5112,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
return table;
}
@@ -84373,7 +84373,7 @@ index e8b3350..d83d44e 100644
struct sched_domain *sd;
int domain_num = 0, i;
char buf[32];
-@@ -5122,11 +5129,13 @@ static struct ctl_table_header *sd_sysctl_header;
+@@ -5134,11 +5141,13 @@ static struct ctl_table_header *sd_sysctl_header;
static void register_sched_domain_sysctl(void)
{
int i, cpu_num = num_possible_cpus();
@@ -84388,7 +84388,7 @@ index e8b3350..d83d44e 100644
if (entry == NULL)
return;
-@@ -5149,8 +5158,12 @@ static void unregister_sched_domain_sysctl(void)
+@@ -5161,8 +5170,12 @@ static void unregister_sched_domain_sysctl(void)
if (sd_sysctl_header)
unregister_sysctl_table(sd_sysctl_header);
sd_sysctl_header = NULL;
@@ -84403,7 +84403,7 @@ index e8b3350..d83d44e 100644
}
#else
static void register_sched_domain_sysctl(void)
-@@ -5249,7 +5262,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
+@@ -5261,7 +5274,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
* happens before everything else. This has to be lower priority than
* the notifier in the perf_event subsystem, though.
*/
@@ -84413,7 +84413,7 @@ index e8b3350..d83d44e 100644
.priority = CPU_PRI_MIGRATION,
};
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
-index da7eebb..9a71428 100644
+index 305ef88..bfc7419 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -831,7 +831,7 @@ void task_numa_fault(int node, int pages, bool migrated)
@@ -84425,7 +84425,7 @@ index da7eebb..9a71428 100644
p->mm->numa_scan_offset = 0;
}
-@@ -5689,7 +5689,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
+@@ -5713,7 +5713,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
* run_rebalance_domains is triggered when needed from the scheduler tick.
* Also triggered for nohz idle balancing (with nohz_balancing_kick set).
*/
@@ -84435,7 +84435,7 @@ index da7eebb..9a71428 100644
int this_cpu = smp_processor_id();
struct rq *this_rq = cpu_rq(this_cpu);
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
-index ce39224d..0e09343 100644
+index dfa31d5..6e12de9 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -1009,7 +1009,7 @@ struct sched_class {
@@ -85397,7 +85397,7 @@ index b8b8560..75b1a09 100644
ret = -EIO;
bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt,
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index 331c102..b7a32e2 100644
+index d0c5c3f..15951e4 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1919,12 +1919,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
@@ -86761,7 +86761,7 @@ index 7905fe7..f59502b 100644
send_sig(SIGXFSZ, current, 0);
return -EFBIG;
diff --git a/mm/fremap.c b/mm/fremap.c
-index 87da359..3f41cb1 100644
+index 1fb6bfe..cd16ebb 100644
--- a/mm/fremap.c
+++ b/mm/fremap.c
@@ -158,6 +158,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
@@ -87085,7 +87085,7 @@ index 7055883..aafb1ed 100644
if (end == start)
return error;
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index ceb0c7f..b2b8e94 100644
+index 6a7f9ca..d1e94b2 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
@@ -87115,7 +87115,7 @@ index ceb0c7f..b2b8e94 100644
{ reserved, reserved, "reserved kernel", me_kernel },
/*
* free pages are specially detected outside this table:
-@@ -1051,7 +1051,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1061,7 +1061,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
nr_pages = 1 << compound_order(hpage);
else /* normal page or thp */
nr_pages = 1;
@@ -87124,7 +87124,7 @@ index ceb0c7f..b2b8e94 100644
/*
* We need/can do nothing about count=0 pages.
-@@ -1081,7 +1081,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1091,7 +1091,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
if (!PageHWPoison(hpage)
|| (hwpoison_filter(p) && TestClearPageHWPoison(p))
|| (p != hpage && TestSetPageHWPoison(hpage))) {
@@ -87133,7 +87133,7 @@ index ceb0c7f..b2b8e94 100644
return 0;
}
set_page_hwpoison_huge_page(hpage);
-@@ -1148,7 +1148,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
+@@ -1158,7 +1158,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
}
if (hwpoison_filter(p)) {
if (TestClearPageHWPoison(p))
@@ -87142,7 +87142,7 @@ index ceb0c7f..b2b8e94 100644
unlock_page(hpage);
put_page(hpage);
return 0;
-@@ -1350,7 +1350,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1360,7 +1360,7 @@ int unpoison_memory(unsigned long pfn)
return 0;
}
if (TestClearPageHWPoison(p))
@@ -87151,7 +87151,7 @@ index ceb0c7f..b2b8e94 100644
pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
return 0;
}
-@@ -1364,7 +1364,7 @@ int unpoison_memory(unsigned long pfn)
+@@ -1374,7 +1374,7 @@ int unpoison_memory(unsigned long pfn)
*/
if (TestClearPageHWPoison(page)) {
pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
@@ -87160,7 +87160,7 @@ index ceb0c7f..b2b8e94 100644
freeit = 1;
if (PageHuge(page))
clear_page_hwpoison_huge_page(page);
-@@ -1491,7 +1491,7 @@ static int soft_offline_huge_page(struct page *page, int flags)
+@@ -1501,7 +1501,7 @@ static int soft_offline_huge_page(struct page *page, int flags)
} else {
set_page_hwpoison_huge_page(hpage);
dequeue_hwpoisoned_huge_page(hpage);
@@ -87169,7 +87169,7 @@ index ceb0c7f..b2b8e94 100644
&num_poisoned_pages);
}
/* keep elevated page count for bad page */
-@@ -1552,11 +1552,11 @@ int soft_offline_page(struct page *page, int flags)
+@@ -1562,11 +1562,11 @@ int soft_offline_page(struct page *page, int flags)
if (PageHuge(page)) {
set_page_hwpoison_huge_page(hpage);
dequeue_hwpoisoned_huge_page(hpage);
@@ -87183,7 +87183,7 @@ index ceb0c7f..b2b8e94 100644
}
}
/* keep elevated page count for bad page */
-@@ -1596,7 +1596,7 @@ static int __soft_offline_page(struct page *page, int flags)
+@@ -1606,7 +1606,7 @@ static int __soft_offline_page(struct page *page, int flags)
put_page(page);
pr_info("soft_offline: %#lx: invalidated\n", pfn);
SetPageHWPoison(page);
@@ -87192,7 +87192,7 @@ index ceb0c7f..b2b8e94 100644
return 0;
}
-@@ -1626,7 +1626,7 @@ static int __soft_offline_page(struct page *page, int flags)
+@@ -1636,7 +1636,7 @@ static int __soft_offline_page(struct page *page, int flags)
ret = -EIO;
} else {
SetPageHWPoison(page);
@@ -87977,7 +87977,7 @@ index 4baf12e..5497066 100644
capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
diff --git a/mm/migrate.c b/mm/migrate.c
-index bf436c1..f571994 100644
+index a88c12f..c3c45f5 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1399,8 +1399,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
@@ -89361,7 +89361,7 @@ index 8f87b14..5748b4e 100644
vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
diff --git a/mm/mprotect.c b/mm/mprotect.c
-index d4d5399..48cbd4a 100644
+index e9f65aa..249332f 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -23,10 +23,18 @@
@@ -89383,7 +89383,7 @@ index d4d5399..48cbd4a 100644
#ifndef pgprot_modify
static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
-@@ -238,6 +246,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
+@@ -240,6 +248,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
return pages;
}
@@ -89432,7 +89432,7 @@ index d4d5399..48cbd4a 100644
int
mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
unsigned long start, unsigned long end, unsigned long newflags)
-@@ -250,11 +300,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -252,11 +302,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
int error;
int dirty_accountable = 0;
@@ -89462,7 +89462,7 @@ index d4d5399..48cbd4a 100644
/*
* If we make a private mapping writable we increase our commit;
* but (without finer accounting) cannot reduce our commit if we
-@@ -271,6 +339,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -273,6 +341,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
}
}
@@ -89505,7 +89505,7 @@ index d4d5399..48cbd4a 100644
/*
* First try to merge with previous and/or next vma.
*/
-@@ -301,9 +405,21 @@ success:
+@@ -303,9 +407,21 @@ success:
* vm_flags and vm_page_prot are protected by the mmap_sem
* held in write mode.
*/
@@ -89528,7 +89528,7 @@ index d4d5399..48cbd4a 100644
if (vma_wants_writenotify(vma)) {
vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED);
-@@ -342,6 +458,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -344,6 +460,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
end = start + len;
if (end <= start)
return -ENOMEM;
@@ -89546,7 +89546,7 @@ index d4d5399..48cbd4a 100644
if (!arch_validate_prot(prot))
return -EINVAL;
-@@ -349,7 +476,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -351,7 +478,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
/*
* Does the application expect PROT_READ to imply PROT_EXEC:
*/
@@ -89555,7 +89555,7 @@ index d4d5399..48cbd4a 100644
prot |= PROT_EXEC;
vm_flags = calc_vm_prot_bits(prot);
-@@ -381,6 +508,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -383,6 +510,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
if (start > vma->vm_start)
prev = vma;
@@ -89567,7 +89567,7 @@ index d4d5399..48cbd4a 100644
for (nstart = start ; ; ) {
unsigned long newflags;
-@@ -391,6 +523,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -393,6 +525,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
/* newflags >> 4 shift VM_MAY% in place of VM_% */
if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
@@ -89582,7 +89582,7 @@ index d4d5399..48cbd4a 100644
error = -EACCES;
goto out;
}
-@@ -405,6 +545,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
+@@ -407,6 +547,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
if (error)
goto out;
@@ -89962,7 +89962,7 @@ index fd26d04..0cea1b0 100644
if (!mm || IS_ERR(mm)) {
rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
diff --git a/mm/rmap.c b/mm/rmap.c
-index 6280da8..b5c090e 100644
+index 3f60774..31f4df5 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -163,6 +163,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
@@ -92624,7 +92624,7 @@ index 9a31515..4fd45a6 100644
m->msg_iov = iov;
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
-index 0034b61..a74fbe7 100644
+index 49aeab8..f73c2ce 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -2773,7 +2773,7 @@ static int proc_unres_qlen(ctl_table *ctl, int write, void __user *buffer,
@@ -92708,10 +92708,10 @@ index f9765203..9feaef8 100644
return error;
}
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
-index b04f738..452b054 100644
+index 27f33f2..04f7985 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
-@@ -428,7 +428,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
+@@ -435,7 +435,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
struct udphdr *udph;
struct iphdr *iph;
struct ethhdr *eth;
@@ -92720,7 +92720,7 @@ index b04f738..452b054 100644
struct ipv6hdr *ip6h;
udp_len = len + sizeof(*udph);
-@@ -499,7 +499,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
+@@ -506,7 +506,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
put_unaligned(0x45, (unsigned char *)iph);
iph->tos = 0;
put_unaligned(htons(ip_len), &(iph->tot_len));
@@ -92809,10 +92809,10 @@ index b4da80b..98d6bdb 100644
{
struct socket *sock;
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index d9e8736..6abcdf9 100644
+index c35b81b..14bfc76 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
-@@ -3084,13 +3084,15 @@ void __init skb_init(void)
+@@ -3085,13 +3085,15 @@ void __init skb_init(void)
skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
sizeof(struct sk_buff),
0,
@@ -92831,7 +92831,7 @@ index d9e8736..6abcdf9 100644
}
diff --git a/net/core/sock.c b/net/core/sock.c
-index 6565431..4012941 100644
+index 50a345e..40b04b1 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -390,7 +390,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -93380,7 +93380,7 @@ index b66910a..cfe416e 100644
return -ENOMEM;
}
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
-index 64e4e98..db77052 100644
+index 828b2e8..79f1e8d 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -115,7 +115,7 @@ static bool log_ecn_error = true;
@@ -93392,7 +93392,7 @@ index 64e4e98..db77052 100644
static int ipgre_tunnel_init(struct net_device *dev);
static int ipgre_net_id __read_mostly;
-@@ -919,7 +919,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
+@@ -920,7 +920,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
[IFLA_GRE_PMTUDISC] = { .type = NLA_U8 },
};
@@ -93401,7 +93401,7 @@ index 64e4e98..db77052 100644
.kind = "gre",
.maxtype = IFLA_GRE_MAX,
.policy = ipgre_policy,
-@@ -933,7 +933,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
+@@ -934,7 +934,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
.fill_info = ipgre_fill_info,
};
@@ -94625,10 +94625,10 @@ index 1aeb473..bea761c 100644
return -ENOMEM;
}
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 5a8bf536..72b1d94 100644
+index 6c38930..167262c 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
-@@ -2937,7 +2937,7 @@ ctl_table ipv6_route_table_template[] = {
+@@ -2931,7 +2931,7 @@ ctl_table ipv6_route_table_template[] = {
struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
{
@@ -96015,10 +96015,10 @@ index 13b92982..9ae9c97 100644
*uaddr_len = sizeof(struct sockaddr_ax25);
}
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
-index c503ad6..fbb6ef8 100644
+index e8b5a0d..ed870c1 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
-@@ -1688,7 +1688,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1709,7 +1709,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
spin_lock(&sk->sk_receive_queue.lock);
po->stats.stats1.tp_packets++;
@@ -96027,7 +96027,7 @@ index c503ad6..fbb6ef8 100644
__skb_queue_tail(&sk->sk_receive_queue, skb);
spin_unlock(&sk->sk_receive_queue.lock);
sk->sk_data_ready(sk, skb->len);
-@@ -1697,7 +1697,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
+@@ -1718,7 +1718,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
drop_n_acct:
spin_lock(&sk->sk_receive_queue.lock);
po->stats.stats1.tp_drops++;
@@ -96036,7 +96036,7 @@ index c503ad6..fbb6ef8 100644
spin_unlock(&sk->sk_receive_queue.lock);
drop_n_restore:
-@@ -2653,6 +2653,7 @@ out:
+@@ -2667,6 +2667,7 @@ out:
static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
{
@@ -96044,7 +96044,7 @@ index c503ad6..fbb6ef8 100644
struct sock_exterr_skb *serr;
struct sk_buff *skb, *skb2;
int copied, err;
-@@ -2674,8 +2675,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
+@@ -2688,8 +2689,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
sock_recv_timestamp(msg, sk, skb);
serr = SKB_EXT_ERR(skb);
@@ -96055,7 +96055,7 @@ index c503ad6..fbb6ef8 100644
msg->msg_flags |= MSG_ERRQUEUE;
err = copied;
-@@ -3294,7 +3296,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3308,7 +3310,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
case PACKET_HDRLEN:
if (len > sizeof(int))
len = sizeof(int);
@@ -96064,7 +96064,7 @@ index c503ad6..fbb6ef8 100644
return -EFAULT;
switch (val) {
case TPACKET_V1:
-@@ -3337,7 +3339,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
+@@ -3351,7 +3353,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
len = lv;
if (put_user(len, optlen))
return -EFAULT;
@@ -97391,10 +97391,10 @@ index 6b42d47..2ac24d5 100644
sub->evt.event = htohl(event, sub->swap);
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index 8664ad0..afe30af 100644
+index 3ca7927..f8bc389 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
-@@ -783,6 +783,12 @@ static struct sock *unix_find_other(struct net *net,
+@@ -789,6 +789,12 @@ static struct sock *unix_find_other(struct net *net,
err = -ECONNREFUSED;
if (!S_ISSOCK(inode->i_mode))
goto put_fail;
@@ -97407,7 +97407,7 @@ index 8664ad0..afe30af 100644
u = unix_find_socket_byinode(inode);
if (!u)
goto put_fail;
-@@ -803,6 +809,13 @@ static struct sock *unix_find_other(struct net *net,
+@@ -809,6 +815,13 @@ static struct sock *unix_find_other(struct net *net,
if (u) {
struct dentry *dentry;
dentry = unix_sk(u)->path.dentry;
@@ -97421,7 +97421,7 @@ index 8664ad0..afe30af 100644
if (dentry)
touch_atime(&unix_sk(u)->path);
} else
-@@ -836,12 +849,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
+@@ -842,12 +855,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
*/
err = security_path_mknod(&path, dentry, mode, 0);
if (!err) {
@@ -97440,7 +97440,7 @@ index 8664ad0..afe30af 100644
done_path_create(&path, dentry);
return err;
}
-@@ -2329,9 +2348,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
+@@ -2337,9 +2356,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
seq_puts(seq, "Num RefCount Protocol Flags Type St "
"Inode Path\n");
else {
@@ -97455,7 +97455,7 @@ index 8664ad0..afe30af 100644
seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
s,
-@@ -2358,8 +2381,10 @@ static int unix_seq_show(struct seq_file *seq, void *v)
+@@ -2366,8 +2389,10 @@ static int unix_seq_show(struct seq_file *seq, void *v)
}
for ( ; i < len; i++)
seq_putc(seq, u->addr->name->sun_path[i]);
@@ -99840,7 +99840,7 @@ index dad36a6..7e5ffbf 100644
lock = &avc_cache.slots_lock[hvalue];
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
-index 5e58d7d..98eef77 100644
+index 57f1418..a01a8a7 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -97,8 +97,6 @@
@@ -99852,7 +99852,7 @@ index 5e58d7d..98eef77 100644
/* SECMARK reference count */
static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
-@@ -5588,7 +5586,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
+@@ -5619,7 +5617,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
#endif
@@ -99862,10 +99862,10 @@ index 5e58d7d..98eef77 100644
.ptrace_access_check = selinux_ptrace_access_check,
diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
-index 65f67cb..3f141ef 100644
+index 3ffdadc..06f2a44 100644
--- a/security/selinux/include/xfrm.h
+++ b/security/selinux/include/xfrm.h
-@@ -50,7 +50,7 @@ int selinux_xfrm_decode_session(struct sk_buff *skb, u32 *sid, int ckall);
+@@ -51,7 +51,7 @@ int selinux_xfrm_skb_sid(struct sk_buff *skb, u32 *sid);
static inline void selinux_xfrm_notify_policyload(void)
{
diff --git a/main/linux-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch b/main/linux-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
deleted file mode 100644
index 2d0be38c09..0000000000
--- a/main/linux-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 1cdbcb7957cf9e5f841dbcde9b38fd18a804208b Mon Sep 17 00:00:00 2001
-From: Simon Horman <horms@verge.net.au>
-Date: Sun, 19 May 2013 15:46:49 +0000
-Subject: net: Loosen constraints for recalculating checksum in skb_segment()
-
-This is a generic solution to resolve a specific problem that I have observed.
-
-If the encapsulation of an skb changes then ability to offload checksums
-may also change. In particular it may be necessary to perform checksumming
-in software.
-
-An example of such a case is where a non-GRE packet is received but
-is to be encapsulated and transmitted as GRE.
-
-Another example relates to my proposed support for for packets
-that are non-MPLS when received but MPLS when transmitted.
-
-The cost of this change is that the value of the csum variable may be
-checked when it previously was not. In the case where the csum variable is
-true this is pure overhead. In the case where the csum variable is false it
-leads to software checksumming, which I believe also leads to correct
-checksums in transmitted packets for the cases described above.
-
-Further analysis:
-
-This patch relies on the return value of can_checksum_protocol()
-being correct and in turn the return value of skb_network_protocol(),
-used to provide the protocol parameter of can_checksum_protocol(),
-being correct. It also relies on the features passed to skb_segment()
-and in turn to can_checksum_protocol() being correct.
-
-I believe that this problem has not been observed for VLANs because it
-appears that almost all drivers, the exception being xgbe, set
-vlan_features such that that the checksum offload support for VLAN packets
-is greater than or equal to that of non-VLAN packets.
-
-I wonder if the code in xgbe may be an oversight and the hardware does
-support checksumming of VLAN packets. If so it may be worth updating the
-vlan_features of the driver as this patch will force such checksums to be
-performed in software rather than hardware.
-
-Signed-off-by: Simon Horman <horms@verge.net.au>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index af9185d..d629891 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -2853,7 +2853,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features)
- doffset + tnl_hlen);
-
- if (fskb != skb_shinfo(skb)->frag_list)
-- continue;
-+ goto perform_csum_check;
-
- if (!sg) {
- nskb->ip_summed = CHECKSUM_NONE;
-@@ -2917,6 +2917,7 @@ skip_fraglist:
- nskb->len += nskb->data_len;
- nskb->truesize += nskb->data_len;
-
-+perform_csum_check:
- if (!csum) {
- nskb->csum = skb_checksum(nskb, doffset,
- nskb->len - doffset, 0);
---
-cgit v0.9.2