aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeonardo Arena <rnalrd@alpinelinux.org>2014-01-07 14:49:56 +0000
committerLeonardo Arena <rnalrd@alpinelinux.org>2014-01-07 14:49:56 +0000
commit0b27f90764ff485db3bbcf1edccc3dafdf6935d0 (patch)
tree485f199b8739758737b5a7616c0bb3cdb4e80530
parentdaf1071258d41b2e18b9603aab13a0812dcc5a03 (diff)
downloadalpine_aports-0b27f90764ff485db3bbcf1edccc3dafdf6935d0.tar.bz2
alpine_aports-0b27f90764ff485db3bbcf1edccc3dafdf6935d0.tar.xz
alpine_aports-0b27f90764ff485db3bbcf1edccc3dafdf6935d0.zip
main/linux-virt-grsec: upgrade to 3.10.25
-rw-r--r--main/linux-virt-grsec/APKBUILD18
-rw-r--r--main/linux-virt-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch (renamed from main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch)244
-rw-r--r--main/linux-virt-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch67
3 files changed, 195 insertions, 134 deletions
diff --git a/main/linux-virt-grsec/APKBUILD b/main/linux-virt-grsec/APKBUILD
index d844817155..dd1f263743 100644
--- a/main/linux-virt-grsec/APKBUILD
+++ b/main/linux-virt-grsec/APKBUILD
@@ -3,7 +3,7 @@
3 3
4_flavor=grsec 4_flavor=grsec
5pkgname=linux-virt-${_flavor} 5pkgname=linux-virt-${_flavor}
6pkgver=3.10.23 6pkgver=3.10.25
7case $pkgver in 7case $pkgver in
8*.*.*) _kernver=${pkgver%.*};; 8*.*.*) _kernver=${pkgver%.*};;
9*.*) _kernver=${pkgver};; 9*.*) _kernver=${pkgver};;
@@ -27,6 +27,7 @@ source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
27 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 27 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
28 fix-memory-map-for-PIE-applications.patch 28 fix-memory-map-for-PIE-applications.patch
29 sysctl_lxc.patch 29 sysctl_lxc.patch
30 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
30 31
31 kernelconfig.x86 32 kernelconfig.x86
32 kernelconfig.x86_64 33 kernelconfig.x86_64
@@ -151,8 +152,8 @@ dev() {
151} 152}
152 153
153md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz 154md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz
1548b9650e10f8beee769545b51202766a5 patch-3.10.23.xz 155a216b82ba3670c979241a9ef9f1438e4 patch-3.10.25.xz
15582efe899230f7246ca99f3d334c0c1b8 grsecurity-2.9.1-3.10.23-unofficial.patch 15683142ed6972c71cf8996e988669a5369 grsecurity-2.9.1-3.10.25-unofficial.patch
156a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 157a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
157656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 158656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
158aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 159aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -161,11 +162,12 @@ aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-p
1611a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 1621a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
162c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch 163c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch
163b3c0153d53e508e03d73b94d15b24a96 sysctl_lxc.patch 164b3c0153d53e508e03d73b94d15b24a96 sysctl_lxc.patch
165ae36fdf685dd97f51bce3a5124f7dff6 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
164539c848d541c1656851fe865018273df kernelconfig.x86 166539c848d541c1656851fe865018273df kernelconfig.x86
16582cd965fc82651f2e6b35e75c17d8031 kernelconfig.x86_64" 16782cd965fc82651f2e6b35e75c17d8031 kernelconfig.x86_64"
166sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz 168sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz
167bdf3983ff3e26c5781edb19a8d0d7765e2e0282cfabda2b0652cc0deff53f445 patch-3.10.23.xz 16958323f60a2c5156e9e46b5947e7b3d81be44895c2b5dc31ced8d0e5346ca4d43 patch-3.10.25.xz
168f0dfa654e64e79c96127a0f8cd4867a0170f099c7116e7f45e27572294b1b818 grsecurity-2.9.1-3.10.23-unofficial.patch 170069ba22e11bbed3d833546e16b91399731cd82ac97882716841c679c83c2b247 grsecurity-2.9.1-3.10.25-unofficial.patch
1696af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 1716af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
170dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 172dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
1710985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 1730985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -174,11 +176,12 @@ ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-
174fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 176fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
175500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch 177500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch
1769ba55b0f45d5aa97503e376a13be6d249a10f32e36687055b2fa1e5a39fa0584 sysctl_lxc.patch 1789ba55b0f45d5aa97503e376a13be6d249a10f32e36687055b2fa1e5a39fa0584 sysctl_lxc.patch
179b130be723743442140637b74da6065061aabb0a0ce6ce6f5cf784f6e5776ae14 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
177997d4c8a5a2b911047d26fe1bf8ee8d5cd3b7133e6abdc07b7deacd0b3eb2330 kernelconfig.x86 180997d4c8a5a2b911047d26fe1bf8ee8d5cd3b7133e6abdc07b7deacd0b3eb2330 kernelconfig.x86
1787845194551137fbc3b69a75249696bc843bb7fe7f4a4e6b0582c0ca0856caa64 kernelconfig.x86_64" 1817845194551137fbc3b69a75249696bc843bb7fe7f4a4e6b0582c0ca0856caa64 kernelconfig.x86_64"
179sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz 182sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz
1800fdb65f1c45e490e1f2206589273e4b8f0f142ab6b16341cb52977e0c6a983b359f01456a9cae3e1c139d5ead5de106c10909b7fdb6a156675cad5d39374e97f patch-3.10.23.xz 18389e009d91e90ed76f860e48a944d702d3b1bf5179c07e591918152baacd5592ae0e4d50accfc6bfdccccda0557d61bb30a88bbe0f90afd8be69c638c63c015fc patch-3.10.25.xz
1818905d7215d9f82662e0e7b897fc2fb258c5978d12fed9cf618e60c7b0926af2f76e3b242140e9d3ab4988cee684f350aaf26270d1a8518297cde9928361d146d grsecurity-2.9.1-3.10.23-unofficial.patch 18425aa4922fc0b4a9cd689def07929f9e1bc2fe92424115f74c89c74167b9e94db8f6114125d664268ce8ce3084e9d7b734b81f48d22fd27584c2bf0d51fd03d43 grsecurity-2.9.1-3.10.25-unofficial.patch
18281e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 18581e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
18351ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 18651ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
18457d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 18757d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -187,5 +190,6 @@ d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d71
187249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 190249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
1884665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch 1914665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch
18941071e21c59997604a380575d3c4171d35a12eaae6ddcf158d95e4fd5ccc69d61753cbd38b7bd08d879cce5bfea3fed2df15e5a3dca944f6f7cbd95d5d2daa23 sysctl_lxc.patch 19241071e21c59997604a380575d3c4171d35a12eaae6ddcf158d95e4fd5ccc69d61753cbd38b7bd08d879cce5bfea3fed2df15e5a3dca944f6f7cbd95d5d2daa23 sysctl_lxc.patch
193100fddcb0311d01bed68831287805921afd6a788a81ac6aa1c71823eb10b83c906bc38b0607fdbe71515aef43e628a9863b3fd53953698fe91326c70918c9bd9 net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
19008f5bb86f03415f60e9bb171ffa192fa70fa85dafeada10817a4b8ae7932fffd1b0f2df01750407e576bb71cd6c3f2c5fe76f2613922cd77f398bce134fd3ec2 kernelconfig.x86 19408f5bb86f03415f60e9bb171ffa192fa70fa85dafeada10817a4b8ae7932fffd1b0f2df01750407e576bb71cd6c3f2c5fe76f2613922cd77f398bce134fd3ec2 kernelconfig.x86
1917a373bec279fe00601bff7ed64c5a09bb4318bf07557fece194afb426d78bf13191b0510642192518f3ffa68b9a36aa6f971f77f55ea09ae4f42c4a84afc00a5 kernelconfig.x86_64" 1957a373bec279fe00601bff7ed64c5a09bb4318bf07557fece194afb426d78bf13191b0510642192518f3ffa68b9a36aa6f971f77f55ea09ae4f42c4a84afc00a5 kernelconfig.x86_64"
diff --git a/main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch b/main/linux-virt-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch
index cc4eeaf731..a8bca6ee2b 100644
--- a/main/linux-virt-grsec/grsecurity-2.9.1-3.10.23-unofficial.patch
+++ b/main/linux-virt-grsec/grsecurity-2.9.1-3.10.25-unofficial.patch
@@ -281,7 +281,7 @@ index 2fe6e76..889ee23 100644
281 281
282 pcd. [PARIDE] 282 pcd. [PARIDE]
283diff --git a/Makefile b/Makefile 283diff --git a/Makefile b/Makefile
284index c6d2ec5..b2bfe62 100644 284index cd97e9a..a803acc 100644
285--- a/Makefile 285--- a/Makefile
286+++ b/Makefile 286+++ b/Makefile
287@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ 287@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -1972,7 +1972,7 @@ index 86b8fe3..e25f975 100644
1972 #define L_PTE_DIRTY_HIGH (1 << (55 - 32)) 1972 #define L_PTE_DIRTY_HIGH (1 << (55 - 32))
1973 1973
1974diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h 1974diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
1975index 9bcd262..1ff999b 100644 1975index 5aac06f..4cd2e7f 100644
1976--- a/arch/arm/include/asm/pgtable.h 1976--- a/arch/arm/include/asm/pgtable.h
1977+++ b/arch/arm/include/asm/pgtable.h 1977+++ b/arch/arm/include/asm/pgtable.h
1978@@ -30,6 +30,9 @@ 1978@@ -30,6 +30,9 @@
@@ -2890,7 +2890,7 @@ index 1f2740e..b36e225 100644
2890 }; 2890 };
2891 2891
2892diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c 2892diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2893index ab1fe3b..dcd439f 100644 2893index ac4c2e5..234fb25 100644
2894--- a/arch/arm/kernel/process.c 2894--- a/arch/arm/kernel/process.c
2895+++ b/arch/arm/kernel/process.c 2895+++ b/arch/arm/kernel/process.c
2896@@ -223,6 +223,7 @@ void machine_power_off(void) 2896@@ -223,6 +223,7 @@ void machine_power_off(void)
@@ -2921,7 +2921,7 @@ index ab1fe3b..dcd439f 100644
2921 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n" 2921 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2922 "sp : %08lx ip : %08lx fp : %08lx\n", 2922 "sp : %08lx ip : %08lx fp : %08lx\n",
2923 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr, 2923 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2924@@ -426,12 +427,6 @@ unsigned long get_wchan(struct task_struct *p) 2924@@ -429,12 +430,6 @@ unsigned long get_wchan(struct task_struct *p)
2925 return 0; 2925 return 0;
2926 } 2926 }
2927 2927
@@ -2934,7 +2934,7 @@ index ab1fe3b..dcd439f 100644
2934 #ifdef CONFIG_MMU 2934 #ifdef CONFIG_MMU
2935 #ifdef CONFIG_KUSER_HELPERS 2935 #ifdef CONFIG_KUSER_HELPERS
2936 /* 2936 /*
2937@@ -447,7 +442,7 @@ static struct vm_area_struct gate_vma = { 2937@@ -450,7 +445,7 @@ static struct vm_area_struct gate_vma = {
2938 2938
2939 static int __init gate_vma_init(void) 2939 static int __init gate_vma_init(void)
2940 { 2940 {
@@ -2943,7 +2943,7 @@ index ab1fe3b..dcd439f 100644
2943 return 0; 2943 return 0;
2944 } 2944 }
2945 arch_initcall(gate_vma_init); 2945 arch_initcall(gate_vma_init);
2946@@ -473,41 +468,16 @@ int in_gate_area_no_mm(unsigned long addr) 2946@@ -476,41 +471,16 @@ int in_gate_area_no_mm(unsigned long addr)
2947 2947
2948 const char *arch_vma_name(struct vm_area_struct *vma) 2948 const char *arch_vma_name(struct vm_area_struct *vma)
2949 { 2949 {
@@ -3596,7 +3596,7 @@ index 044c31d..2ee0861 100644
3596 struct omap_device *omap_device_alloc(struct platform_device *pdev, 3596 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3597 struct omap_hwmod **ohs, int oh_cnt); 3597 struct omap_hwmod **ohs, int oh_cnt);
3598diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c 3598diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3599index 7341eff..fd75e34 100644 3599index 44c609a..a63fbf8 100644
3600--- a/arch/arm/mach-omap2/omap_hwmod.c 3600--- a/arch/arm/mach-omap2/omap_hwmod.c
3601+++ b/arch/arm/mach-omap2/omap_hwmod.c 3601+++ b/arch/arm/mach-omap2/omap_hwmod.c
3602@@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops { 3602@@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops {
@@ -4098,7 +4098,7 @@ index 04d9006..c547d85 100644
4098 return __arm_ioremap_caller(phys_addr, size, mtype, 4098 return __arm_ioremap_caller(phys_addr, size, mtype,
4099 __builtin_return_address(0)); 4099 __builtin_return_address(0));
4100diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c 4100diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
4101index 10062ce..8695745 100644 4101index f0ef2f7..08d2f76a 100644
4102--- a/arch/arm/mm/mmap.c 4102--- a/arch/arm/mm/mmap.c
4103+++ b/arch/arm/mm/mmap.c 4103+++ b/arch/arm/mm/mmap.c
4104@@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, 4104@@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
@@ -7265,7 +7265,7 @@ index 2a625fb..9908930 100644
7265 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n", 7265 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
7266 me->arch.unwind_section, table, end, gp); 7266 me->arch.unwind_section, table, end, gp);
7267diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c 7267diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
7268index 5dfd248..64914ac 100644 7268index 0d3a9d4..a11bc6b 100644
7269--- a/arch/parisc/kernel/sys_parisc.c 7269--- a/arch/parisc/kernel/sys_parisc.c
7270+++ b/arch/parisc/kernel/sys_parisc.c 7270+++ b/arch/parisc/kernel/sys_parisc.c
7271@@ -33,9 +33,11 @@ 7271@@ -33,9 +33,11 @@
@@ -7289,12 +7289,12 @@ index 5dfd248..64914ac 100644
7289 return vm_unmapped_area(&info); 7289 return vm_unmapped_area(&info);
7290 } 7290 }
7291 7291
7292@@ -61,10 +64,11 @@ static int get_offset(struct address_space *mapping) 7292@@ -68,16 +71,18 @@ static unsigned long shared_align_offset(struct file *filp, unsigned long pgoff)
7293 return (unsigned long) mapping >> 8; 7293 return (get_offset(mapping) + pgoff) << PAGE_SHIFT;
7294 } 7294 }
7295 7295
7296-static unsigned long get_shared_area(struct address_space *mapping, 7296-static unsigned long get_shared_area(struct file *filp, unsigned long addr,
7297- unsigned long addr, unsigned long len, unsigned long pgoff) 7297- unsigned long len, unsigned long pgoff)
7298+static unsigned long get_shared_area(struct file *filp, struct address_space *mapping, 7298+static unsigned long get_shared_area(struct file *filp, struct address_space *mapping,
7299+ unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags) 7299+ unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags)
7300 { 7300 {
@@ -7303,15 +7303,14 @@ index 5dfd248..64914ac 100644
7303 7303
7304 info.flags = 0; 7304 info.flags = 0;
7305 info.length = len; 7305 info.length = len;
7306@@ -72,6 +76,7 @@ static unsigned long get_shared_area(struct address_space *mapping, 7306 info.low_limit = PAGE_ALIGN(addr);
7307 info.high_limit = TASK_SIZE; 7307 info.high_limit = TASK_SIZE;
7308 info.align_mask = PAGE_MASK & (SHMLBA - 1); 7308 info.align_mask = PAGE_MASK & (SHMLBA - 1);
7309 info.align_offset = (get_offset(mapping) + pgoff) << PAGE_SHIFT;
7310+ info.threadstack_offset = offset; 7309+ info.threadstack_offset = offset;
7310 info.align_offset = shared_align_offset(filp, pgoff);
7311 return vm_unmapped_area(&info); 7311 return vm_unmapped_area(&info);
7312 } 7312 }
7313 7313@@ -93,13 +98,20 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7314@@ -86,15 +91,22 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7315 return -EINVAL; 7314 return -EINVAL;
7316 return addr; 7315 return addr;
7317 } 7316 }
@@ -7326,16 +7325,13 @@ index 5dfd248..64914ac 100644
7326+ 7325+
7327+ } 7326+ }
7328+ 7327+
7329 if (filp) { 7328 if (filp || (flags & MAP_SHARED))
7330- addr = get_shared_area(filp->f_mapping, addr, len, pgoff); 7329- addr = get_shared_area(filp, addr, len, pgoff);
7331+ addr = get_shared_area(filp, filp->f_mapping, addr, len, pgoff, flags); 7330+ addr = get_shared_area(filp, addr, len, pgoff, flags);
7332 } else if(flags & MAP_SHARED) { 7331 else
7333- addr = get_shared_area(NULL, addr, len, pgoff);
7334+ addr = get_shared_area(filp, NULL, addr, len, pgoff, flags);
7335 } else {
7336- addr = get_unshared_area(addr, len); 7332- addr = get_unshared_area(addr, len);
7337+ addr = get_unshared_area(filp, addr, len, flags); 7333+ addr = get_unshared_area(addr, len, flags);
7338 } 7334
7339 return addr; 7335 return addr;
7340 } 7336 }
7341diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c 7337diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
@@ -7695,7 +7691,7 @@ index 88693ce..ac6f9ab 100644
7695 #include <asm-generic/getorder.h> 7691 #include <asm-generic/getorder.h>
7696 7692
7697diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h 7693diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
7698index b66ae72..4a378cd 100644 7694index 64aaf01..7ea1463 100644
7699--- a/arch/powerpc/include/asm/pgalloc-64.h 7695--- a/arch/powerpc/include/asm/pgalloc-64.h
7700+++ b/arch/powerpc/include/asm/pgalloc-64.h 7696+++ b/arch/powerpc/include/asm/pgalloc-64.h
7701@@ -53,6 +53,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) 7697@@ -53,6 +53,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
@@ -7718,7 +7714,7 @@ index b66ae72..4a378cd 100644
7718 #define pmd_populate(mm, pmd, pte_page) \ 7714 #define pmd_populate(mm, pmd, pte_page) \
7719 pmd_populate_kernel(mm, pmd, page_address(pte_page)) 7715 pmd_populate_kernel(mm, pmd, page_address(pte_page))
7720 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte)) 7716 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
7721@@ -171,6 +177,7 @@ extern void __tlb_remove_table(void *_table); 7717@@ -169,6 +175,7 @@ extern void __tlb_remove_table(void *_table);
7722 #endif 7718 #endif
7723 7719
7724 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd) 7720 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
@@ -11841,10 +11837,10 @@ index c198b7e..63eea60 100644
11841 This option helps catch unintended modifications to loadable 11837 This option helps catch unintended modifications to loadable
11842 kernel module's text and read-only data. It also prevents execution 11838 kernel module's text and read-only data. It also prevents execution
11843diff --git a/arch/x86/Makefile b/arch/x86/Makefile 11839diff --git a/arch/x86/Makefile b/arch/x86/Makefile
11844index 5c47726..8c4fa67 100644 11840index 412189d..bcbad06 100644
11845--- a/arch/x86/Makefile 11841--- a/arch/x86/Makefile
11846+++ b/arch/x86/Makefile 11842+++ b/arch/x86/Makefile
11847@@ -54,6 +54,7 @@ else 11843@@ -57,6 +57,7 @@ else
11848 UTS_MACHINE := x86_64 11844 UTS_MACHINE := x86_64
11849 CHECKFLAGS += -D__x86_64__ -m64 11845 CHECKFLAGS += -D__x86_64__ -m64
11850 11846
@@ -11852,7 +11848,7 @@ index 5c47726..8c4fa67 100644
11852 KBUILD_AFLAGS += -m64 11848 KBUILD_AFLAGS += -m64
11853 KBUILD_CFLAGS += -m64 11849 KBUILD_CFLAGS += -m64
11854 11850
11855@@ -234,3 +235,12 @@ define archhelp 11851@@ -240,3 +241,12 @@ define archhelp
11856 echo ' FDARGS="..." arguments for the booted kernel' 11852 echo ' FDARGS="..." arguments for the booted kernel'
11857 echo ' FDINITRD=file initrd for the booted kernel' 11853 echo ' FDINITRD=file initrd for the booted kernel'
11858 endef 11854 endef
@@ -11866,13 +11862,13 @@ index 5c47726..8c4fa67 100644
11866+archprepare: 11862+archprepare:
11867+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD))) 11863+ $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
11868diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile 11864diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
11869index 379814b..add62ce 100644 11865index 6cf0111..f2e2398 100644
11870--- a/arch/x86/boot/Makefile 11866--- a/arch/x86/boot/Makefile
11871+++ b/arch/x86/boot/Makefile 11867+++ b/arch/x86/boot/Makefile
11872@@ -65,6 +65,9 @@ KBUILD_CFLAGS := $(USERINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ 11868@@ -65,6 +65,9 @@ KBUILD_CFLAGS := $(USERINCLUDE) -m32 -g -Os -D_SETUP -D__KERNEL__ \
11869 $(call cc-option, -fno-unit-at-a-time)) \
11873 $(call cc-option, -fno-stack-protector) \ 11870 $(call cc-option, -fno-stack-protector) \
11874 $(call cc-option, -mpreferred-stack-boundary=2) 11871 $(call cc-option, -mpreferred-stack-boundary=2)
11875 KBUILD_CFLAGS += $(call cc-option, -m32)
11876+ifdef CONSTIFY_PLUGIN 11872+ifdef CONSTIFY_PLUGIN
11877+KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify 11873+KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
11878+endif 11874+endif
@@ -11924,11 +11920,11 @@ index 5b75319..331a4ca 100644
11924 return diff; 11920 return diff;
11925 } 11921 }
11926diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile 11922diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
11927index 5ef205c..342191d 100644 11923index 7194d9f..0ad497c 100644
11928--- a/arch/x86/boot/compressed/Makefile 11924--- a/arch/x86/boot/compressed/Makefile
11929+++ b/arch/x86/boot/compressed/Makefile 11925+++ b/arch/x86/boot/compressed/Makefile
11930@@ -14,6 +14,9 @@ cflags-$(CONFIG_X86_64) := -mcmodel=small 11926@@ -15,6 +15,9 @@ KBUILD_CFLAGS += $(cflags-y)
11931 KBUILD_CFLAGS += $(cflags-y) 11927 KBUILD_CFLAGS += -mno-mmx -mno-sse
11932 KBUILD_CFLAGS += $(call cc-option,-ffreestanding) 11928 KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
11933 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) 11929 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
11934+ifdef CONSTIFY_PLUGIN 11930+ifdef CONSTIFY_PLUGIN
@@ -26883,7 +26879,7 @@ index 5484d54..d5f90d0 100644
26883 case 1: \ 26879 case 1: \
26884 ____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \ 26880 ____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \
26885diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c 26881diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
26886index 0eee2c8..94a32c3 100644 26882index 0987c63..412bedd 100644
26887--- a/arch/x86/kvm/lapic.c 26883--- a/arch/x86/kvm/lapic.c
26888+++ b/arch/x86/kvm/lapic.c 26884+++ b/arch/x86/kvm/lapic.c
26889@@ -55,7 +55,7 @@ 26885@@ -55,7 +55,7 @@
@@ -27087,7 +27083,7 @@ index 5402c94..c3bdeee 100644
27087 27083
27088 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP) 27084 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
27089diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c 27085diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
27090index e8ba99c..ee9d7d9 100644 27086index ad6a016..16ec1e1 100644
27091--- a/arch/x86/kvm/x86.c 27087--- a/arch/x86/kvm/x86.c
27092+++ b/arch/x86/kvm/x86.c 27088+++ b/arch/x86/kvm/x86.c
27093@@ -1725,8 +1725,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data) 27089@@ -1725,8 +1725,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
@@ -27110,7 +27106,7 @@ index e8ba99c..ee9d7d9 100644
27110 if (copy_to_user(user_msr_list->indices, &msrs_to_save, 27106 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
27111 num_msrs_to_save * sizeof(u32))) 27107 num_msrs_to_save * sizeof(u32)))
27112 goto out; 27108 goto out;
27113@@ -5297,7 +5299,7 @@ static struct notifier_block pvclock_gtod_notifier = { 27109@@ -5296,7 +5298,7 @@ static struct notifier_block pvclock_gtod_notifier = {
27114 }; 27110 };
27115 #endif 27111 #endif
27116 27112
@@ -33804,11 +33800,11 @@ index a44f457..9140171 100644
33804 #endif 33800 #endif
33805 } 33801 }
33806diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile 33802diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile
33807index 8869287..d577672 100644 33803index 9cac825..4890b25 100644
33808--- a/arch/x86/realmode/rm/Makefile 33804--- a/arch/x86/realmode/rm/Makefile
33809+++ b/arch/x86/realmode/rm/Makefile 33805+++ b/arch/x86/realmode/rm/Makefile
33810@@ -78,5 +78,8 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -m32 -g -Os -D_SETUP -D__KERNEL__ -D_WAKEUP \ 33806@@ -79,5 +79,8 @@ KBUILD_CFLAGS := $(LINUXINCLUDE) -m32 -g -Os -D_SETUP -D__KERNEL__ -D_WAKEUP \
33811 $(call cc-option, -fno-unit-at-a-time)) \ 33807 $(call cc-option, -fno-unit-at-a-time)) \
33812 $(call cc-option, -fno-stack-protector) \ 33808 $(call cc-option, -fno-stack-protector) \
33813 $(call cc-option, -mpreferred-stack-boundary=2) 33809 $(call cc-option, -mpreferred-stack-boundary=2)
33814+ifdef CONSTIFY_PLUGIN 33810+ifdef CONSTIFY_PLUGIN
@@ -35196,10 +35192,10 @@ index cd6aa28..6f5e966 100644
35196 35192
35197 /* Create associated sysfs transport objects */ 35193 /* Create associated sysfs transport objects */
35198diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c 35194diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
35199index 0101af5..c70c325 100644 35195index 4abdbdf..b7a724e 100644
35200--- a/drivers/ata/libata-scsi.c 35196--- a/drivers/ata/libata-scsi.c
35201+++ b/drivers/ata/libata-scsi.c 35197+++ b/drivers/ata/libata-scsi.c
35202@@ -4105,7 +4105,7 @@ int ata_sas_port_init(struct ata_port *ap) 35198@@ -4106,7 +4106,7 @@ int ata_sas_port_init(struct ata_port *ap)
35203 35199
35204 if (rc) 35200 if (rc)
35205 return rc; 35201 return rc;
@@ -38999,7 +38995,7 @@ index c8d16a6..ca71b5e 100644
38999 iir = I915_READ(IIR); 38995 iir = I915_READ(IIR);
39000 38996
39001diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c 38997diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
39002index c714d4d..665732e 100644 38998index f1e6004..d0200ac 100644
39003--- a/drivers/gpu/drm/i915/intel_display.c 38999--- a/drivers/gpu/drm/i915/intel_display.c
39004+++ b/drivers/gpu/drm/i915/intel_display.c 39000+++ b/drivers/gpu/drm/i915/intel_display.c
39005@@ -8939,13 +8939,13 @@ struct intel_quirk { 39001@@ -8939,13 +8939,13 @@ struct intel_quirk {
@@ -41264,10 +41260,10 @@ index 04c69af..5f92d00 100644
41264 #include <linux/input.h> 41260 #include <linux/input.h>
41265 #include <linux/gameport.h> 41261 #include <linux/gameport.h>
41266diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c 41262diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
41267index fa061d4..4a6957c 100644 41263index 75e3b10..fb390fd 100644
41268--- a/drivers/input/joystick/xpad.c 41264--- a/drivers/input/joystick/xpad.c
41269+++ b/drivers/input/joystick/xpad.c 41265+++ b/drivers/input/joystick/xpad.c
41270@@ -735,7 +735,7 @@ static void xpad_led_set(struct led_classdev *led_cdev, 41266@@ -736,7 +736,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
41271 41267
41272 static int xpad_led_probe(struct usb_xpad *xpad) 41268 static int xpad_led_probe(struct usb_xpad *xpad)
41273 { 41269 {
@@ -41276,7 +41272,7 @@ index fa061d4..4a6957c 100644
41276 long led_no; 41272 long led_no;
41277 struct xpad_led *led; 41273 struct xpad_led *led;
41278 struct led_classdev *led_cdev; 41274 struct led_classdev *led_cdev;
41279@@ -748,7 +748,7 @@ static int xpad_led_probe(struct usb_xpad *xpad) 41275@@ -749,7 +749,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
41280 if (!led) 41276 if (!led)
41281 return -ENOMEM; 41277 return -ENOMEM;
41282 41278
@@ -42001,10 +41997,10 @@ index d907ca6..cfb8384 100644
42001 schedule_work(&sc->trigger_event); 41997 schedule_work(&sc->trigger_event);
42002 } 41998 }
42003diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c 41999diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
42004index 9e3a045..9d0f95b 100644 42000index bd88d3da..b754a8b 100644
42005--- a/drivers/md/dm-table.c 42001--- a/drivers/md/dm-table.c
42006+++ b/drivers/md/dm-table.c 42002+++ b/drivers/md/dm-table.c
42007@@ -389,7 +389,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev, 42003@@ -394,7 +394,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
42008 if (!dev_size) 42004 if (!dev_size)
42009 return 0; 42005 return 0;
42010 42006
@@ -45934,7 +45930,7 @@ index 8c05ae01..b2cf224 100644
45934 error = bus_register(&fcoe_bus_type); 45930 error = bus_register(&fcoe_bus_type);
45935 if (error) 45931 if (error)
45936diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c 45932diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
45937index df0c3c7..b00e1d0 100644 45933index 3cafe0d..f1e87f8 100644
45938--- a/drivers/scsi/hosts.c 45934--- a/drivers/scsi/hosts.c
45939+++ b/drivers/scsi/hosts.c 45935+++ b/drivers/scsi/hosts.c
45940@@ -42,7 +42,7 @@ 45936@@ -42,7 +42,7 @@
@@ -45956,10 +45952,10 @@ index df0c3c7..b00e1d0 100644
45956 45952
45957 /* These three are default values which can be overridden */ 45953 /* These three are default values which can be overridden */
45958diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c 45954diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
45959index 7f4f790..b75b92a 100644 45955index 0353d7f..be4e66b 100644
45960--- a/drivers/scsi/hpsa.c 45956--- a/drivers/scsi/hpsa.c
45961+++ b/drivers/scsi/hpsa.c 45957+++ b/drivers/scsi/hpsa.c
45962@@ -554,7 +554,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q) 45958@@ -555,7 +555,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
45963 unsigned long flags; 45959 unsigned long flags;
45964 45960
45965 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant))) 45961 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -45968,7 +45964,7 @@ index 7f4f790..b75b92a 100644
45968 45964
45969 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) { 45965 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
45970 a = rq->head[rq->current_entry]; 45966 a = rq->head[rq->current_entry];
45971@@ -3422,7 +3422,7 @@ static void start_io(struct ctlr_info *h) 45967@@ -3423,7 +3423,7 @@ static void start_io(struct ctlr_info *h)
45972 while (!list_empty(&h->reqQ)) { 45968 while (!list_empty(&h->reqQ)) {
45973 c = list_entry(h->reqQ.next, struct CommandList, list); 45969 c = list_entry(h->reqQ.next, struct CommandList, list);
45974 /* can't do anything if fifo is full */ 45970 /* can't do anything if fifo is full */
@@ -45977,7 +45973,7 @@ index 7f4f790..b75b92a 100644
45977 dev_warn(&h->pdev->dev, "fifo full\n"); 45973 dev_warn(&h->pdev->dev, "fifo full\n");
45978 break; 45974 break;
45979 } 45975 }
45980@@ -3444,7 +3444,7 @@ static void start_io(struct ctlr_info *h) 45976@@ -3445,7 +3445,7 @@ static void start_io(struct ctlr_info *h)
45981 45977
45982 /* Tell the controller execute command */ 45978 /* Tell the controller execute command */
45983 spin_unlock_irqrestore(&h->lock, flags); 45979 spin_unlock_irqrestore(&h->lock, flags);
@@ -45986,7 +45982,7 @@ index 7f4f790..b75b92a 100644
45986 spin_lock_irqsave(&h->lock, flags); 45982 spin_lock_irqsave(&h->lock, flags);
45987 } 45983 }
45988 spin_unlock_irqrestore(&h->lock, flags); 45984 spin_unlock_irqrestore(&h->lock, flags);
45989@@ -3452,17 +3452,17 @@ static void start_io(struct ctlr_info *h) 45985@@ -3453,17 +3453,17 @@ static void start_io(struct ctlr_info *h)
45990 45986
45991 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q) 45987 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
45992 { 45988 {
@@ -46007,7 +46003,7 @@ index 7f4f790..b75b92a 100644
46007 (h->interrupts_enabled == 0); 46003 (h->interrupts_enabled == 0);
46008 } 46004 }
46009 46005
46010@@ -4364,7 +4364,7 @@ static int hpsa_pci_init(struct ctlr_info *h) 46006@@ -4365,7 +4365,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
46011 if (prod_index < 0) 46007 if (prod_index < 0)
46012 return -ENODEV; 46008 return -ENODEV;
46013 h->product_name = products[prod_index].product_name; 46009 h->product_name = products[prod_index].product_name;
@@ -46016,7 +46012,7 @@ index 7f4f790..b75b92a 100644
46016 46012
46017 pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S | 46013 pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
46018 PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM); 46014 PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);
46019@@ -4646,7 +4646,7 @@ static void controller_lockup_detected(struct ctlr_info *h) 46015@@ -4647,7 +4647,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
46020 46016
46021 assert_spin_locked(&lockup_detector_lock); 46017 assert_spin_locked(&lockup_detector_lock);
46022 remove_ctlr_from_lockup_detector_list(h); 46018 remove_ctlr_from_lockup_detector_list(h);
@@ -46025,7 +46021,7 @@ index 7f4f790..b75b92a 100644
46025 spin_lock_irqsave(&h->lock, flags); 46021 spin_lock_irqsave(&h->lock, flags);
46026 h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET); 46022 h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
46027 spin_unlock_irqrestore(&h->lock, flags); 46023 spin_unlock_irqrestore(&h->lock, flags);
46028@@ -4823,7 +4823,7 @@ reinit_after_soft_reset: 46024@@ -4824,7 +4824,7 @@ reinit_after_soft_reset:
46029 } 46025 }
46030 46026
46031 /* make sure the board interrupts are off */ 46027 /* make sure the board interrupts are off */
@@ -46034,7 +46030,7 @@ index 7f4f790..b75b92a 100644
46034 46030
46035 if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx)) 46031 if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
46036 goto clean2; 46032 goto clean2;
46037@@ -4857,7 +4857,7 @@ reinit_after_soft_reset: 46033@@ -4858,7 +4858,7 @@ reinit_after_soft_reset:
46038 * fake ones to scoop up any residual completions. 46034 * fake ones to scoop up any residual completions.
46039 */ 46035 */
46040 spin_lock_irqsave(&h->lock, flags); 46036 spin_lock_irqsave(&h->lock, flags);
@@ -46043,7 +46039,7 @@ index 7f4f790..b75b92a 100644
46043 spin_unlock_irqrestore(&h->lock, flags); 46039 spin_unlock_irqrestore(&h->lock, flags);
46044 free_irqs(h); 46040 free_irqs(h);
46045 rc = hpsa_request_irq(h, hpsa_msix_discard_completions, 46041 rc = hpsa_request_irq(h, hpsa_msix_discard_completions,
46046@@ -4876,9 +4876,9 @@ reinit_after_soft_reset: 46042@@ -4877,9 +4877,9 @@ reinit_after_soft_reset:
46047 dev_info(&h->pdev->dev, "Board READY.\n"); 46043 dev_info(&h->pdev->dev, "Board READY.\n");
46048 dev_info(&h->pdev->dev, 46044 dev_info(&h->pdev->dev,
46049 "Waiting for stale completions to drain.\n"); 46045 "Waiting for stale completions to drain.\n");
@@ -46055,7 +46051,7 @@ index 7f4f790..b75b92a 100644
46055 46051
46056 rc = controller_reset_failed(h->cfgtable); 46052 rc = controller_reset_failed(h->cfgtable);
46057 if (rc) 46053 if (rc)
46058@@ -4899,7 +4899,7 @@ reinit_after_soft_reset: 46054@@ -4900,7 +4900,7 @@ reinit_after_soft_reset:
46059 } 46055 }
46060 46056
46061 /* Turn the interrupts on so we can service requests */ 46057 /* Turn the interrupts on so we can service requests */
@@ -46064,7 +46060,7 @@ index 7f4f790..b75b92a 100644
46064 46060
46065 hpsa_hba_inquiry(h); 46061 hpsa_hba_inquiry(h);
46066 hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */ 46062 hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */
46067@@ -4954,7 +4954,7 @@ static void hpsa_shutdown(struct pci_dev *pdev) 46063@@ -4955,7 +4955,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
46068 * To write all data in the battery backed cache to disks 46064 * To write all data in the battery backed cache to disks
46069 */ 46065 */
46070 hpsa_flush_cache(h); 46066 hpsa_flush_cache(h);
@@ -46073,7 +46069,7 @@ index 7f4f790..b75b92a 100644
46073 hpsa_free_irqs_and_disable_msix(h); 46069 hpsa_free_irqs_and_disable_msix(h);
46074 } 46070 }
46075 46071
46076@@ -5122,7 +5122,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags) 46072@@ -5123,7 +5123,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags)
46077 return; 46073 return;
46078 } 46074 }
46079 /* Change the access methods to the performant access methods */ 46075 /* Change the access methods to the performant access methods */
@@ -46241,7 +46237,7 @@ index 8b928c6..9c76300 100644
46241 } 46237 }
46242 EXPORT_SYMBOL(fc_exch_update_stats); 46238 EXPORT_SYMBOL(fc_exch_update_stats);
46243diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c 46239diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
46244index 161c98e..6d563b3 100644 46240index d289583..b745eec 100644
46245--- a/drivers/scsi/libsas/sas_ata.c 46241--- a/drivers/scsi/libsas/sas_ata.c
46246+++ b/drivers/scsi/libsas/sas_ata.c 46242+++ b/drivers/scsi/libsas/sas_ata.c
46247@@ -554,7 +554,7 @@ static struct ata_port_operations sas_sata_ops = { 46243@@ -554,7 +554,7 @@ static struct ata_port_operations sas_sata_ops = {
@@ -46442,7 +46438,7 @@ index 8523b278e..ce1d812 100644
46442 46438
46443 /** 46439 /**
46444diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c 46440diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
46445index 8e1b737..50ff510 100644 46441index bfb72ec..2cdcb0e 100644
46446--- a/drivers/scsi/pmcraid.c 46442--- a/drivers/scsi/pmcraid.c
46447+++ b/drivers/scsi/pmcraid.c 46443+++ b/drivers/scsi/pmcraid.c
46448@@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev) 46444@@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
@@ -46486,7 +46482,7 @@ index 8e1b737..50ff510 100644
46486 pinstance->num_hrrq; 46482 pinstance->num_hrrq;
46487 46483
46488 if (request_size) { 46484 if (request_size) {
46489@@ -4483,7 +4483,7 @@ static void pmcraid_worker_function(struct work_struct *workp) 46485@@ -4484,7 +4484,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
46490 46486
46491 pinstance = container_of(workp, struct pmcraid_instance, worker_q); 46487 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
46492 /* add resources only after host is added into system */ 46488 /* add resources only after host is added into system */
@@ -46495,7 +46491,7 @@ index 8e1b737..50ff510 100644
46495 return; 46491 return;
46496 46492
46497 fw_version = be16_to_cpu(pinstance->inq_data->fw_version); 46493 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
46498@@ -5310,8 +5310,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host, 46494@@ -5311,8 +5311,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
46499 init_waitqueue_head(&pinstance->reset_wait_q); 46495 init_waitqueue_head(&pinstance->reset_wait_q);
46500 46496
46501 atomic_set(&pinstance->outstanding_cmds, 0); 46497 atomic_set(&pinstance->outstanding_cmds, 0);
@@ -46506,7 +46502,7 @@ index 8e1b737..50ff510 100644
46506 46502
46507 INIT_LIST_HEAD(&pinstance->free_res_q); 46503 INIT_LIST_HEAD(&pinstance->free_res_q);
46508 INIT_LIST_HEAD(&pinstance->used_res_q); 46504 INIT_LIST_HEAD(&pinstance->used_res_q);
46509@@ -6024,7 +6024,7 @@ static int pmcraid_probe(struct pci_dev *pdev, 46505@@ -6025,7 +6025,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
46510 /* Schedule worker thread to handle CCN and take care of adding and 46506 /* Schedule worker thread to handle CCN and take care of adding and
46511 * removing devices to OS 46507 * removing devices to OS
46512 */ 46508 */
@@ -46810,10 +46806,10 @@ index f379c7f..e8fc69c 100644
46810 46806
46811 transport_setup_device(&rport->dev); 46807 transport_setup_device(&rport->dev);
46812diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c 46808diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
46813index 734a29a..6b06e4a 100644 46809index 9bc913b..1b49616 100644
46814--- a/drivers/scsi/sd.c 46810--- a/drivers/scsi/sd.c
46815+++ b/drivers/scsi/sd.c 46811+++ b/drivers/scsi/sd.c
46816@@ -2923,7 +2923,7 @@ static int sd_probe(struct device *dev) 46812@@ -2929,7 +2929,7 @@ static int sd_probe(struct device *dev)
46817 sdkp->disk = gd; 46813 sdkp->disk = gd;
46818 sdkp->index = index; 46814 sdkp->index = index;
46819 atomic_set(&sdkp->openers, 0); 46815 atomic_set(&sdkp->openers, 0);
@@ -46822,7 +46818,7 @@ index 734a29a..6b06e4a 100644
46822 46818
46823 if (!sdp->request_queue->rq_timeout) { 46819 if (!sdp->request_queue->rq_timeout) {
46824 if (sdp->type != TYPE_MOD) 46820 if (sdp->type != TYPE_MOD)
46825@@ -2936,7 +2936,7 @@ static int sd_probe(struct device *dev) 46821@@ -2942,7 +2942,7 @@ static int sd_probe(struct device *dev)
46826 device_initialize(&sdkp->dev); 46822 device_initialize(&sdkp->dev);
46827 sdkp->dev.parent = dev; 46823 sdkp->dev.parent = dev;
46828 sdkp->dev.class = &sd_disk_class; 46824 sdkp->dev.class = &sd_disk_class;
@@ -48742,7 +48738,7 @@ index d3aa353..0e284af 100644
48742 wake_up(&usb_kill_urb_queue); 48738 wake_up(&usb_kill_urb_queue);
48743 usb_put_urb(urb); 48739 usb_put_urb(urb);
48744diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c 48740diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
48745index 1424a89..62da951 100644 48741index 4d25bff2..56537dd 100644
48746--- a/drivers/usb/core/hub.c 48742--- a/drivers/usb/core/hub.c
48747+++ b/drivers/usb/core/hub.c 48743+++ b/drivers/usb/core/hub.c
48748@@ -27,6 +27,7 @@ 48744@@ -27,6 +27,7 @@
@@ -48804,7 +48800,7 @@ index b10da72..43aa0b2 100644
48804 INIT_LIST_HEAD(&dev->ep0.urb_list); 48800 INIT_LIST_HEAD(&dev->ep0.urb_list);
48805 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE; 48801 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
48806diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c 48802diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
48807index 14d28d6..5f511ac 100644 48803index 69948ad..0ad5f87 100644
48808--- a/drivers/usb/dwc3/gadget.c 48804--- a/drivers/usb/dwc3/gadget.c
48809+++ b/drivers/usb/dwc3/gadget.c 48805+++ b/drivers/usb/dwc3/gadget.c
48810@@ -550,8 +550,6 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep, 48806@@ -550,8 +550,6 @@ static int __dwc3_gadget_ep_enable(struct dwc3_ep *dep,
@@ -53881,10 +53877,10 @@ index 1d5c5f7..0ba0afc 100644
53881 spin_lock_init(&delayed_root->lock); 53877 spin_lock_init(&delayed_root->lock);
53882 init_waitqueue_head(&delayed_root->wait); 53878 init_waitqueue_head(&delayed_root->wait);
53883diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c 53879diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
53884index 8dedf40..1a83977 100644 53880index 145b2c7..7673563 100644
53885--- a/fs/btrfs/ioctl.c 53881--- a/fs/btrfs/ioctl.c
53886+++ b/fs/btrfs/ioctl.c 53882+++ b/fs/btrfs/ioctl.c
53887@@ -3084,9 +3084,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg) 53883@@ -3085,9 +3085,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
53888 for (i = 0; i < num_types; i++) { 53884 for (i = 0; i < num_types; i++) {
53889 struct btrfs_space_info *tmp; 53885 struct btrfs_space_info *tmp;
53890 53886
@@ -53897,7 +53893,7 @@ index 8dedf40..1a83977 100644
53897 info = NULL; 53893 info = NULL;
53898 rcu_read_lock(); 53894 rcu_read_lock();
53899 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 53895 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
53900@@ -3108,10 +3111,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg) 53896@@ -3109,10 +3112,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
53901 memcpy(dest, &space, sizeof(space)); 53897 memcpy(dest, &space, sizeof(space));
53902 dest++; 53898 dest++;
53903 space_args.total_spaces++; 53899 space_args.total_spaces++;
@@ -58707,10 +58703,10 @@ index 582321a..0224663 100644
58707 }; 58703 };
58708 58704
58709diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c 58705diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
58710index e76244e..9fe8f2f1 100644 58706index ec8d97d..3a01bcf 100644
58711--- a/fs/nfsd/nfscache.c 58707--- a/fs/nfsd/nfscache.c
58712+++ b/fs/nfsd/nfscache.c 58708+++ b/fs/nfsd/nfscache.c
58713@@ -526,14 +526,17 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp) 58709@@ -533,14 +533,17 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
58714 { 58710 {
58715 struct svc_cacherep *rp = rqstp->rq_cacherep; 58711 struct svc_cacherep *rp = rqstp->rq_cacherep;
58716 struct kvec *resv = &rqstp->rq_res.head[0], *cachv; 58712 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
@@ -59431,7 +59427,7 @@ index 8c74100..4239c48 100644
59431 } 59427 }
59432 putname(tmp); 59428 putname(tmp);
59433diff --git a/fs/pipe.c b/fs/pipe.c 59429diff --git a/fs/pipe.c b/fs/pipe.c
59434index d2c45e1..009fe1c 100644 59430index 0e0752e..7cfdd50 100644
59435--- a/fs/pipe.c 59431--- a/fs/pipe.c
59436+++ b/fs/pipe.c 59432+++ b/fs/pipe.c
59437@@ -56,7 +56,7 @@ unsigned int pipe_min_size = PAGE_SIZE; 59433@@ -56,7 +56,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
@@ -59512,7 +59508,16 @@ index d2c45e1..009fe1c 100644
59512 mask |= POLLERR; 59508 mask |= POLLERR;
59513 } 59509 }
59514 59510
59515@@ -734,17 +734,17 @@ pipe_release(struct inode *inode, struct file *file) 59511@@ -731,7 +731,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
59512 int kill = 0;
59513
59514 spin_lock(&inode->i_lock);
59515- if (!--pipe->files) {
59516+ if (atomic_dec_and_test(&pipe->files)) {
59517 inode->i_pipe = NULL;
59518 kill = 1;
59519 }
59520@@ -748,11 +748,11 @@ pipe_release(struct inode *inode, struct file *file)
59516 59521
59517 __pipe_lock(pipe); 59522 __pipe_lock(pipe);
59518 if (file->f_mode & FMODE_READ) 59523 if (file->f_mode & FMODE_READ)
@@ -59527,14 +59532,7 @@ index d2c45e1..009fe1c 100644
59527 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP); 59532 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
59528 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); 59533 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
59529 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT); 59534 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
59530 } 59535@@ -817,7 +817,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
59531 spin_lock(&inode->i_lock);
59532- if (!--pipe->files) {
59533+ if (atomic_dec_and_test(&pipe->files)) {
59534 inode->i_pipe = NULL;
59535 kill = 1;
59536 }
59537@@ -811,7 +811,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
59538 kfree(pipe); 59536 kfree(pipe);
59539 } 59537 }
59540 59538
@@ -59543,7 +59541,7 @@ index d2c45e1..009fe1c 100644
59543 59541
59544 /* 59542 /*
59545 * pipefs_dname() is called from d_path(). 59543 * pipefs_dname() is called from d_path().
59546@@ -841,8 +841,9 @@ static struct inode * get_pipe_inode(void) 59544@@ -847,8 +847,9 @@ static struct inode * get_pipe_inode(void)
59547 goto fail_iput; 59545 goto fail_iput;
59548 59546
59549 inode->i_pipe = pipe; 59547 inode->i_pipe = pipe;
@@ -59555,7 +59553,7 @@ index d2c45e1..009fe1c 100644
59555 inode->i_fop = &pipefifo_fops; 59553 inode->i_fop = &pipefifo_fops;
59556 59554
59557 /* 59555 /*
59558@@ -1022,17 +1023,17 @@ static int fifo_open(struct inode *inode, struct file *filp) 59556@@ -1027,17 +1028,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
59559 spin_lock(&inode->i_lock); 59557 spin_lock(&inode->i_lock);
59560 if (inode->i_pipe) { 59558 if (inode->i_pipe) {
59561 pipe = inode->i_pipe; 59559 pipe = inode->i_pipe;
@@ -59576,7 +59574,7 @@ index d2c45e1..009fe1c 100644
59576 spin_unlock(&inode->i_lock); 59574 spin_unlock(&inode->i_lock);
59577 free_pipe_info(pipe); 59575 free_pipe_info(pipe);
59578 pipe = inode->i_pipe; 59576 pipe = inode->i_pipe;
59579@@ -1057,10 +1058,10 @@ static int fifo_open(struct inode *inode, struct file *filp) 59577@@ -1062,10 +1063,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
59580 * opened, even when there is no process writing the FIFO. 59578 * opened, even when there is no process writing the FIFO.
59581 */ 59579 */
59582 pipe->r_counter++; 59580 pipe->r_counter++;
@@ -59589,7 +59587,7 @@ index d2c45e1..009fe1c 100644
59589 if ((filp->f_flags & O_NONBLOCK)) { 59587 if ((filp->f_flags & O_NONBLOCK)) {
59590 /* suppress POLLHUP until we have 59588 /* suppress POLLHUP until we have
59591 * seen a writer */ 59589 * seen a writer */
59592@@ -1079,14 +1080,14 @@ static int fifo_open(struct inode *inode, struct file *filp) 59590@@ -1084,14 +1085,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
59593 * errno=ENXIO when there is no process reading the FIFO. 59591 * errno=ENXIO when there is no process reading the FIFO.
59594 */ 59592 */
59595 ret = -ENXIO; 59593 ret = -ENXIO;
@@ -59607,7 +59605,7 @@ index d2c45e1..009fe1c 100644
59607 if (wait_for_partner(pipe, &pipe->r_counter)) 59605 if (wait_for_partner(pipe, &pipe->r_counter))
59608 goto err_wr; 59606 goto err_wr;
59609 } 59607 }
59610@@ -1100,11 +1101,11 @@ static int fifo_open(struct inode *inode, struct file *filp) 59608@@ -1105,11 +1106,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
59611 * the process can at least talk to itself. 59609 * the process can at least talk to itself.
59612 */ 59610 */
59613 59611
@@ -59622,7 +59620,7 @@ index d2c45e1..009fe1c 100644
59622 wake_up_partner(pipe); 59620 wake_up_partner(pipe);
59623 break; 59621 break;
59624 59622
59625@@ -1118,20 +1119,20 @@ static int fifo_open(struct inode *inode, struct file *filp) 59623@@ -1123,13 +1124,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
59626 return 0; 59624 return 0;
59627 59625
59628 err_rd: 59626 err_rd:
@@ -59638,14 +59636,6 @@ index d2c45e1..009fe1c 100644
59638 wake_up_interruptible(&pipe->wait); 59636 wake_up_interruptible(&pipe->wait);
59639 ret = -ERESTARTSYS; 59637 ret = -ERESTARTSYS;
59640 goto err; 59638 goto err;
59641
59642 err:
59643 spin_lock(&inode->i_lock);
59644- if (!--pipe->files) {
59645+ if (atomic_dec_and_test(&pipe->files)) {
59646 inode->i_pipe = NULL;
59647 kill = 1;
59648 }
59649diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig 59639diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
59650index 15af622..0e9f4467 100644 59640index 15af622..0e9f4467 100644
59651--- a/fs/proc/Kconfig 59641--- a/fs/proc/Kconfig
@@ -61814,7 +61804,7 @@ index 6157424..ac98f6d 100644
61814 *offset = off & 0x7fffffff; 61804 *offset = off & 0x7fffffff;
61815 return 0; 61805 return 0;
61816diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c 61806diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
61817index ca01d83..86b14a7 100644 61807index 83dfe6e..2d330c9 100644
61818--- a/fs/xfs/xfs_ioctl.c 61808--- a/fs/xfs/xfs_ioctl.c
61819+++ b/fs/xfs/xfs_ioctl.c 61809+++ b/fs/xfs/xfs_ioctl.c
61820@@ -127,7 +127,7 @@ xfs_find_handle( 61810@@ -127,7 +127,7 @@ xfs_find_handle(
@@ -81415,7 +81405,7 @@ index 80d92e9..c9ab9de 100644
81415 else 81405 else
81416 new_fs = fs; 81406 new_fs = fs;
81417diff --git a/kernel/futex.c b/kernel/futex.c 81407diff --git a/kernel/futex.c b/kernel/futex.c
81418index 49dacfb..2ac4526 100644 81408index a283b30..e35635d 100644
81419--- a/kernel/futex.c 81409--- a/kernel/futex.c
81420+++ b/kernel/futex.c 81410+++ b/kernel/futex.c
81421@@ -54,6 +54,7 @@ 81411@@ -54,6 +54,7 @@
@@ -81713,10 +81703,10 @@ index e30ac0f..3528cac 100644
81713 81703
81714 /* 81704 /*
81715diff --git a/kernel/kexec.c b/kernel/kexec.c 81705diff --git a/kernel/kexec.c b/kernel/kexec.c
81716index 59f7b55..4022f65 100644 81706index 1f8d938..915c3db 100644
81717--- a/kernel/kexec.c 81707--- a/kernel/kexec.c
81718+++ b/kernel/kexec.c 81708+++ b/kernel/kexec.c
81719@@ -1041,7 +1041,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry, 81709@@ -1044,7 +1044,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry,
81720 unsigned long flags) 81710 unsigned long flags)
81721 { 81711 {
81722 struct compat_kexec_segment in; 81712 struct compat_kexec_segment in;
@@ -84423,7 +84413,7 @@ index e8b3350..d83d44e 100644
84423 .priority = CPU_PRI_MIGRATION, 84413 .priority = CPU_PRI_MIGRATION,
84424 }; 84414 };
84425diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c 84415diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
84426index 009a62b..ae011f8 100644 84416index da7eebb..9a71428 100644
84427--- a/kernel/sched/fair.c 84417--- a/kernel/sched/fair.c
84428+++ b/kernel/sched/fair.c 84418+++ b/kernel/sched/fair.c
84429@@ -831,7 +831,7 @@ void task_numa_fault(int node, int pages, bool migrated) 84419@@ -831,7 +831,7 @@ void task_numa_fault(int node, int pages, bool migrated)
@@ -84435,7 +84425,7 @@ index 009a62b..ae011f8 100644
84435 p->mm->numa_scan_offset = 0; 84425 p->mm->numa_scan_offset = 0;
84436 } 84426 }
84437 84427
84438@@ -5687,7 +5687,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { } 84428@@ -5689,7 +5689,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
84439 * run_rebalance_domains is triggered when needed from the scheduler tick. 84429 * run_rebalance_domains is triggered when needed from the scheduler tick.
84440 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 84430 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
84441 */ 84431 */
@@ -85206,7 +85196,7 @@ index a8f5084..5a673cb 100644
85206 .clock_get = alarm_clock_get, 85196 .clock_get = alarm_clock_get,
85207 .timer_create = alarm_timer_create, 85197 .timer_create = alarm_timer_create,
85208diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c 85198diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
85209index fcc261c..119dc3b 100644 85199index 1c5b0fc..910e6e1 100644
85210--- a/kernel/time/timekeeping.c 85200--- a/kernel/time/timekeeping.c
85211+++ b/kernel/time/timekeeping.c 85201+++ b/kernel/time/timekeeping.c
85212@@ -15,6 +15,7 @@ 85202@@ -15,6 +15,7 @@
@@ -94341,7 +94331,7 @@ index 1f9a1a5..413e487 100644
94341 .maxtype = IFLA_GRE_MAX, 94331 .maxtype = IFLA_GRE_MAX,
94342 .policy = ip6gre_policy, 94332 .policy = ip6gre_policy,
94343diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c 94333diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
94344index 0516ebb..a5f065b 100644 94334index 209bb4d..e99677d 100644
94345--- a/net/ipv6/ip6_tunnel.c 94335--- a/net/ipv6/ip6_tunnel.c
94346+++ b/net/ipv6/ip6_tunnel.c 94336+++ b/net/ipv6/ip6_tunnel.c
94347@@ -88,7 +88,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2) 94337@@ -88,7 +88,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
@@ -94964,7 +94954,7 @@ index 66f51c5..8f0eef1 100644
94964 return res; 94954 return res;
94965 } 94955 }
94966diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c 94956diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
94967index 5ab17b8..5b0aae4 100644 94957index 18687f1..9c492c6 100644
94968--- a/net/mac80211/cfg.c 94958--- a/net/mac80211/cfg.c
94969+++ b/net/mac80211/cfg.c 94959+++ b/net/mac80211/cfg.c
94970@@ -806,7 +806,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy, 94960@@ -806,7 +806,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
@@ -94976,7 +94966,7 @@ index 5ab17b8..5b0aae4 100644
94976 local->_oper_chandef = *chandef; 94966 local->_oper_chandef = *chandef;
94977 ieee80211_hw_config(local, 0); 94967 ieee80211_hw_config(local, 0);
94978 } 94968 }
94979@@ -2922,7 +2922,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy, 94969@@ -2921,7 +2921,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
94980 else 94970 else
94981 local->probe_req_reg--; 94971 local->probe_req_reg--;
94982 94972
@@ -94985,7 +94975,7 @@ index 5ab17b8..5b0aae4 100644
94985 break; 94975 break;
94986 94976
94987 ieee80211_queue_work(&local->hw, &local->reconfig_filter); 94977 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
94988@@ -3385,8 +3385,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy, 94978@@ -3384,8 +3384,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
94989 if (chanctx_conf) { 94979 if (chanctx_conf) {
94990 *chandef = chanctx_conf->def; 94980 *chandef = chanctx_conf->def;
94991 ret = 0; 94981 ret = 0;
@@ -99850,10 +99840,10 @@ index dad36a6..7e5ffbf 100644
99850 lock = &avc_cache.slots_lock[hvalue]; 99840 lock = &avc_cache.slots_lock[hvalue];
99851 99841
99852diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c 99842diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
99853index 5c6f2cd..b4f945c 100644 99843index 5e58d7d..98eef77 100644
99854--- a/security/selinux/hooks.c 99844--- a/security/selinux/hooks.c
99855+++ b/security/selinux/hooks.c 99845+++ b/security/selinux/hooks.c
99856@@ -96,8 +96,6 @@ 99846@@ -97,8 +97,6 @@
99857 99847
99858 #define NUM_SEL_MNT_OPTS 5 99848 #define NUM_SEL_MNT_OPTS 5
99859 99849
@@ -99862,7 +99852,7 @@ index 5c6f2cd..b4f945c 100644
99862 /* SECMARK reference count */ 99852 /* SECMARK reference count */
99863 static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0); 99853 static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
99864 99854
99865@@ -5529,7 +5527,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) 99855@@ -5588,7 +5586,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
99866 99856
99867 #endif 99857 #endif
99868 99858
@@ -111787,7 +111777,7 @@ index 96b919d..c49bb74 100644
111787+ 111777+
111788 #endif 111778 #endif
111789diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c 111779diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
111790index 302681c..3bde377 100644 111780index eb99458..634c3ec 100644
111791--- a/virt/kvm/kvm_main.c 111781--- a/virt/kvm/kvm_main.c
111792+++ b/virt/kvm/kvm_main.c 111782+++ b/virt/kvm/kvm_main.c
111793@@ -75,12 +75,17 @@ LIST_HEAD(vm_list); 111783@@ -75,12 +75,17 @@ LIST_HEAD(vm_list);
@@ -111828,7 +111818,7 @@ index 302681c..3bde377 100644
111828 .release = kvm_vcpu_release, 111818 .release = kvm_vcpu_release,
111829 .unlocked_ioctl = kvm_vcpu_ioctl, 111819 .unlocked_ioctl = kvm_vcpu_ioctl,
111830 #ifdef CONFIG_COMPAT 111820 #ifdef CONFIG_COMPAT
111831@@ -2561,7 +2566,7 @@ static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) 111821@@ -2564,7 +2569,7 @@ static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma)
111832 return 0; 111822 return 0;
111833 } 111823 }
111834 111824
@@ -111837,7 +111827,7 @@ index 302681c..3bde377 100644
111837 .release = kvm_vm_release, 111827 .release = kvm_vm_release,
111838 .unlocked_ioctl = kvm_vm_ioctl, 111828 .unlocked_ioctl = kvm_vm_ioctl,
111839 #ifdef CONFIG_COMPAT 111829 #ifdef CONFIG_COMPAT
111840@@ -2662,7 +2667,7 @@ out: 111830@@ -2665,7 +2670,7 @@ out:
111841 return r; 111831 return r;
111842 } 111832 }
111843 111833
@@ -111846,7 +111836,7 @@ index 302681c..3bde377 100644
111846 .unlocked_ioctl = kvm_dev_ioctl, 111836 .unlocked_ioctl = kvm_dev_ioctl,
111847 .compat_ioctl = kvm_dev_ioctl, 111837 .compat_ioctl = kvm_dev_ioctl,
111848 .llseek = noop_llseek, 111838 .llseek = noop_llseek,
111849@@ -2688,7 +2693,7 @@ static void hardware_enable_nolock(void *junk) 111839@@ -2691,7 +2696,7 @@ static void hardware_enable_nolock(void *junk)
111850 111840
111851 if (r) { 111841 if (r) {
111852 cpumask_clear_cpu(cpu, cpus_hardware_enabled); 111842 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
@@ -111855,7 +111845,7 @@ index 302681c..3bde377 100644
111855 printk(KERN_INFO "kvm: enabling virtualization on " 111845 printk(KERN_INFO "kvm: enabling virtualization on "
111856 "CPU%d failed\n", cpu); 111846 "CPU%d failed\n", cpu);
111857 } 111847 }
111858@@ -2742,10 +2747,10 @@ static int hardware_enable_all(void) 111848@@ -2745,10 +2750,10 @@ static int hardware_enable_all(void)
111859 111849
111860 kvm_usage_count++; 111850 kvm_usage_count++;
111861 if (kvm_usage_count == 1) { 111851 if (kvm_usage_count == 1) {
@@ -111868,7 +111858,7 @@ index 302681c..3bde377 100644
111868 hardware_disable_all_nolock(); 111858 hardware_disable_all_nolock();
111869 r = -EBUSY; 111859 r = -EBUSY;
111870 } 111860 }
111871@@ -3099,7 +3104,7 @@ static void kvm_sched_out(struct preempt_notifier *pn, 111861@@ -3102,7 +3107,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
111872 kvm_arch_vcpu_put(vcpu); 111862 kvm_arch_vcpu_put(vcpu);
111873 } 111863 }
111874 111864
@@ -111877,7 +111867,7 @@ index 302681c..3bde377 100644
111877 struct module *module) 111867 struct module *module)
111878 { 111868 {
111879 int r; 111869 int r;
111880@@ -3146,7 +3151,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 111870@@ -3149,7 +3154,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
111881 if (!vcpu_align) 111871 if (!vcpu_align)
111882 vcpu_align = __alignof__(struct kvm_vcpu); 111872 vcpu_align = __alignof__(struct kvm_vcpu);
111883 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align, 111873 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
@@ -111886,7 +111876,7 @@ index 302681c..3bde377 100644
111886 if (!kvm_vcpu_cache) { 111876 if (!kvm_vcpu_cache) {
111887 r = -ENOMEM; 111877 r = -ENOMEM;
111888 goto out_free_3; 111878 goto out_free_3;
111889@@ -3156,9 +3161,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 111879@@ -3159,9 +3164,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
111890 if (r) 111880 if (r)
111891 goto out_free; 111881 goto out_free;
111892 111882
@@ -111898,7 +111888,7 @@ index 302681c..3bde377 100644
111898 111888
111899 r = misc_register(&kvm_dev); 111889 r = misc_register(&kvm_dev);
111900 if (r) { 111890 if (r) {
111901@@ -3168,9 +3175,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 111891@@ -3171,9 +3178,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
111902 111892
111903 register_syscore_ops(&kvm_syscore_ops); 111893 register_syscore_ops(&kvm_syscore_ops);
111904 111894
diff --git a/main/linux-virt-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch b/main/linux-virt-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
new file mode 100644
index 0000000000..2d0be38c09
--- /dev/null
+++ b/main/linux-virt-grsec/net-loosen-constraints-for-recalculating-checksum-in-skb_segment.patch
@@ -0,0 +1,67 @@
1From 1cdbcb7957cf9e5f841dbcde9b38fd18a804208b Mon Sep 17 00:00:00 2001
2From: Simon Horman <horms@verge.net.au>
3Date: Sun, 19 May 2013 15:46:49 +0000
4Subject: net: Loosen constraints for recalculating checksum in skb_segment()
5
6This is a generic solution to resolve a specific problem that I have observed.
7
8If the encapsulation of an skb changes then ability to offload checksums
9may also change. In particular it may be necessary to perform checksumming
10in software.
11
12An example of such a case is where a non-GRE packet is received but
13is to be encapsulated and transmitted as GRE.
14
15Another example relates to my proposed support for for packets
16that are non-MPLS when received but MPLS when transmitted.
17
18The cost of this change is that the value of the csum variable may be
19checked when it previously was not. In the case where the csum variable is
20true this is pure overhead. In the case where the csum variable is false it
21leads to software checksumming, which I believe also leads to correct
22checksums in transmitted packets for the cases described above.
23
24Further analysis:
25
26This patch relies on the return value of can_checksum_protocol()
27being correct and in turn the return value of skb_network_protocol(),
28used to provide the protocol parameter of can_checksum_protocol(),
29being correct. It also relies on the features passed to skb_segment()
30and in turn to can_checksum_protocol() being correct.
31
32I believe that this problem has not been observed for VLANs because it
33appears that almost all drivers, the exception being xgbe, set
34vlan_features such that that the checksum offload support for VLAN packets
35is greater than or equal to that of non-VLAN packets.
36
37I wonder if the code in xgbe may be an oversight and the hardware does
38support checksumming of VLAN packets. If so it may be worth updating the
39vlan_features of the driver as this patch will force such checksums to be
40performed in software rather than hardware.
41
42Signed-off-by: Simon Horman <horms@verge.net.au>
43Signed-off-by: David S. Miller <davem@davemloft.net>
44---
45diff --git a/net/core/skbuff.c b/net/core/skbuff.c
46index af9185d..d629891 100644
47--- a/net/core/skbuff.c
48+++ b/net/core/skbuff.c
49@@ -2853,7 +2853,7 @@ struct sk_buff *skb_segment(struct sk_buff *skb, netdev_features_t features)
50 doffset + tnl_hlen);
51
52 if (fskb != skb_shinfo(skb)->frag_list)
53- continue;
54+ goto perform_csum_check;
55
56 if (!sg) {
57 nskb->ip_summed = CHECKSUM_NONE;
58@@ -2917,6 +2917,7 @@ skip_fraglist:
59 nskb->len += nskb->data_len;
60 nskb->truesize += nskb->data_len;
61
62+perform_csum_check:
63 if (!csum) {
64 nskb->csum = skb_checksum(nskb, doffset,
65 nskb->len - doffset, 0);
66--
67cgit v0.9.2