diff options
| author | Natanael Copa <ncopa@alpinelinux.org> | 2014-01-23 13:29:51 +0000 |
|---|---|---|
| committer | Natanael Copa <ncopa@alpinelinux.org> | 2014-01-23 14:29:38 +0000 |
| commit | 7bb600ae51b7efb86d9f309f25ebba10171b77eb (patch) | |
| tree | c413b501436d77451e245d531927b57f415bad1e | |
| parent | acb8ee44c2df9371b3e3ad1928209ceaa869b150 (diff) | |
| download | aports-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.patch | 60 | ||||
| -rw-r--r-- | main/linux-grsec/APKBUILD | 22 | ||||
| -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.patch | 67 |
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(¤t->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 |
