aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-10-15 16:53:08 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-10-23 12:59:09 +0000
commitd8ee0dcb189dc816442cce665f855cbf0d1c5821 (patch)
tree6dea815c064b2414c14a089c2770709223a99e30
parent7766fa282ba06cf58345a603599f4860f18b3a4c (diff)
downloadalpine_aports-d8ee0dcb189dc816442cce665f855cbf0d1c5821.tar.bz2
alpine_aports-d8ee0dcb189dc816442cce665f855cbf0d1c5821.tar.xz
alpine_aports-d8ee0dcb189dc816442cce665f855cbf0d1c5821.zip
main/linux-grsec: upgrade to 3.10.16
(cherry picked from commit 6c43f554f9f5294f9e26660187e08a8345ab43ba)
-rw-r--r--main/linux-grsec/APKBUILD18
-rw-r--r--main/linux-grsec/grsecurity-2.9.1-3.10.16-unofficial.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.10.15-unofficial.patch)197
-rw-r--r--main/linux-grsec/ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch118
3 files changed, 97 insertions, 236 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index 3ec21a29fb..52ace5b059 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,7 +2,7 @@
2 2
3_flavor=grsec 3_flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=3.10.15 5pkgver=3.10.16
6case $pkgver in 6case $pkgver in
7*.*.*) _kernver=${pkgver%.*};; 7*.*.*) _kernver=${pkgver%.*};;
8*.*) _kernver=${pkgver};; 8*.*) _kernver=${pkgver};;
@@ -26,7 +26,6 @@ source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
26 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 26 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
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 ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
30 29
31 kernelconfig.x86 30 kernelconfig.x86
32 kernelconfig.x86_64 31 kernelconfig.x86_64
@@ -151,8 +150,8 @@ dev() {
151} 150}
152 151
153md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz 152md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz
15470cc9bd12b04382c3783da96edda4562 patch-3.10.15.xz 153029a48f796bcf8c36fad09cfe689be5a patch-3.10.16.xz
15584a82b973a08abc43cbf74a8935c59ae grsecurity-2.9.1-3.10.15-unofficial.patch 154b2c8994b3b2fa2a2da739f8c78d60fee grsecurity-2.9.1-3.10.16-unofficial.patch
156a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 155a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
157656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 156656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
158aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 157aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -160,12 +159,11 @@ aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-p
1606ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 1596ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
1611a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 1601a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
162c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch 161c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch
163bbb9f3edd60fd5c53ac98f4eab83641c ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
164866e6c4daed45d563829804f8ad50ed9 kernelconfig.x86 162866e6c4daed45d563829804f8ad50ed9 kernelconfig.x86
165272aaddd0a19a5052208bc25551995a3 kernelconfig.x86_64" 163272aaddd0a19a5052208bc25551995a3 kernelconfig.x86_64"
166sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz 164sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz
167bb0108609a95ddfe5030938e45ad123445af4e29510a0b1bd8cede89de8c013b patch-3.10.15.xz 165115e02fe0a38eefdb1e4b1fa5e5878cb6b007db08e18901c2c4fb20a279790f4 patch-3.10.16.xz
16802736977e0abd475ba3c463b381186d306fd2f6c264968c47c685f0fce08c820 grsecurity-2.9.1-3.10.15-unofficial.patch 16689beaae3759cc53a3b061e48bbcdfaf53d7333959c6a22090aaf40eaf540e2e0 grsecurity-2.9.1-3.10.16-unofficial.patch
1696af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 1676af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
170dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 168dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
1710985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 1690985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -173,12 +171,11 @@ dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush
173ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 171ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
174fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 172fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
175500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch 173500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch
1764e2ac6cf0b5f6ef4c2f468aedb3f4b7a2737ef3abef4cf712492ba5daec4b30d ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
1777fd28634998ef1fddafed5f2516e902924245d2464b9e86476bfaa55ccfc3bc3 kernelconfig.x86 1747fd28634998ef1fddafed5f2516e902924245d2464b9e86476bfaa55ccfc3bc3 kernelconfig.x86
178f2843ae4f9b3e3c27f3138ce4b740c2803bdab0c7a910c662d951843803b9554 kernelconfig.x86_64" 175f2843ae4f9b3e3c27f3138ce4b740c2803bdab0c7a910c662d951843803b9554 kernelconfig.x86_64"
179sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz 176sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz
18041f612dc912df68a69bb44343748be5c7b3c1525654890a1d896f466ef6aa22d35343f59a2c4319cde1858a6407f9366817c762670dd711d9ff2890291fa60cc patch-3.10.15.xz 17734cf05008f8992b7cd4d4f34b13a6a55df75ce53328eef10119069f5b60e89fce18d786bdf47ed60083535917e8113a4b0da66530b9b783cfef271b433c0f58b patch-3.10.16.xz
1817838f4f43c1259d587979255a403b17be26d687aac91d43084417057267fd12643e99beccfbe21f22ed3d423080d9cdd7086598c8cc7e922ddae1024ce1f8005 grsecurity-2.9.1-3.10.15-unofficial.patch 178474ea9a25e1356772b079db354108dd14755853f89003996af0482a1a21b83a6e592167a7e4e456afd33d4bddef5f2165f38c0e5b2ec5c0a2dec53a8ebd7c6e9 grsecurity-2.9.1-3.10.16-unofficial.patch
18281e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 17981e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
18351ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 18051ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
18457d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 18157d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
@@ -186,6 +183,5 @@ d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d71
18628a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 18328a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
187249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 184249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
1884665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch 1854665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch
18939fc019ac5ea5ada03c29846f22ddab0735e288bb3ad8d2109628e5d77d24bd09e6972eea6ee912768391399efe069e77c0e53b8a22329328bcc51f09f963f05 ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
1901721542ff111c8ec550323dae6f6174131db180668cbf14f01dc4c76ffbbb479715919a80c35d8c8ac22a6479dd3b42700be6ddc5ef2a8b6a62de811c7ae86df kernelconfig.x86 1861721542ff111c8ec550323dae6f6174131db180668cbf14f01dc4c76ffbbb479715919a80c35d8c8ac22a6479dd3b42700be6ddc5ef2a8b6a62de811c7ae86df kernelconfig.x86
191d49bf57bd0aae17d762d87d5bf983e48219d71ca44bc0c3120db94d357192c07146a8938cef9d435218e4bb748691ec426387545837be637d47e45cdc4482d71 kernelconfig.x86_64" 187d49bf57bd0aae17d762d87d5bf983e48219d71ca44bc0c3120db94d357192c07146a8938cef9d435218e4bb748691ec426387545837be637d47e45cdc4482d71 kernelconfig.x86_64"
diff --git a/main/linux-grsec/grsecurity-2.9.1-3.10.15-unofficial.patch b/main/linux-grsec/grsecurity-2.9.1-3.10.16-unofficial.patch
index bd0f3808e8..e11ab9abf4 100644
--- a/main/linux-grsec/grsecurity-2.9.1-3.10.15-unofficial.patch
+++ b/main/linux-grsec/grsecurity-2.9.1-3.10.16-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 9a77179..052a254 100644 284index e9528d2..0c2aa58 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; \
@@ -8222,10 +8222,10 @@ index 887e99d..310bc11 100644
8222 } else { 8222 } else {
8223 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); 8223 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
8224diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c 8224diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
8225index e68a845..8b140e6 100644 8225index a15fd1a..869d32c 100644
8226--- a/arch/powerpc/kernel/sysfs.c 8226--- a/arch/powerpc/kernel/sysfs.c
8227+++ b/arch/powerpc/kernel/sysfs.c 8227+++ b/arch/powerpc/kernel/sysfs.c
8228@@ -522,7 +522,7 @@ static int __cpuinit sysfs_cpu_notify(struct notifier_block *self, 8228@@ -536,7 +536,7 @@ static int __cpuinit sysfs_cpu_notify(struct notifier_block *self,
8229 return NOTIFY_OK; 8229 return NOTIFY_OK;
8230 } 8230 }
8231 8231
@@ -9604,7 +9604,7 @@ index d432fb2..6056af1 100644
9604 extra-y := head_$(BITS).o 9604 extra-y := head_$(BITS).o
9605 9605
9606diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c 9606diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c
9607index 5ef48da..11d460f 100644 9607index 252f876..2656fdd 100644
9608--- a/arch/sparc/kernel/ds.c 9608--- a/arch/sparc/kernel/ds.c
9609+++ b/arch/sparc/kernel/ds.c 9609+++ b/arch/sparc/kernel/ds.c
9610@@ -783,6 +783,16 @@ void ldom_set_var(const char *var, const char *value) 9610@@ -783,6 +783,16 @@ void ldom_set_var(const char *var, const char *value)
@@ -9984,7 +9984,7 @@ index 2daaaa6..4fb84dc 100644
9984 mm->unmap_area = arch_unmap_area_topdown; 9984 mm->unmap_area = arch_unmap_area_topdown;
9985 } 9985 }
9986diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S 9986diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
9987index 22a1098..6255eb9 100644 9987index 73ec8a7..4611979 100644
9988--- a/arch/sparc/kernel/syscalls.S 9988--- a/arch/sparc/kernel/syscalls.S
9989+++ b/arch/sparc/kernel/syscalls.S 9989+++ b/arch/sparc/kernel/syscalls.S
9990@@ -52,7 +52,7 @@ sys32_rt_sigreturn: 9990@@ -52,7 +52,7 @@ sys32_rt_sigreturn:
@@ -9998,13 +9998,13 @@ index 22a1098..6255eb9 100644
9998 call syscall_trace_leave 9998 call syscall_trace_leave
9999@@ -184,7 +184,7 @@ linux_sparc_syscall32: 9999@@ -184,7 +184,7 @@ linux_sparc_syscall32:
10000 10000
10001 srl %i5, 0, %o5 ! IEU1 10001 srl %i3, 0, %o3 ! IEU0
10002 srl %i2, 0, %o2 ! IEU0 Group 10002 srl %i2, 0, %o2 ! IEU0 Group
10003- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0 10003- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
10004+ andcc %l0, _TIF_WORK_SYSCALL, %g0 10004+ andcc %l0, _TIF_WORK_SYSCALL, %g0
10005 bne,pn %icc, linux_syscall_trace32 ! CTI 10005 bne,pn %icc, linux_syscall_trace32 ! CTI
10006 mov %i0, %l5 ! IEU1 10006 mov %i0, %l5 ! IEU1
10007 call %l7 ! CTI Group brk forced 10007 5: call %l7 ! CTI Group brk forced
10008@@ -207,7 +207,7 @@ linux_sparc_syscall: 10008@@ -207,7 +207,7 @@ linux_sparc_syscall:
10009 10009
10010 mov %i3, %o3 ! IEU1 10010 mov %i3, %o3 ! IEU1
@@ -10500,10 +10500,10 @@ index 85c233d..68500e0 100644
10500 cmp %g1, %g7 10500 cmp %g1, %g7
10501 bne,pn %xcc, BACKOFF_LABEL(2f, 1b) 10501 bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
10502diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c 10502diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
10503index 0c4e35e..745d3e4 100644 10503index 323335b..ed85ea2 100644
10504--- a/arch/sparc/lib/ksyms.c 10504--- a/arch/sparc/lib/ksyms.c
10505+++ b/arch/sparc/lib/ksyms.c 10505+++ b/arch/sparc/lib/ksyms.c
10506@@ -109,12 +109,18 @@ EXPORT_SYMBOL(__downgrade_write); 10506@@ -100,12 +100,18 @@ EXPORT_SYMBOL(__clear_user);
10507 10507
10508 /* Atomic counter implementation. */ 10508 /* Atomic counter implementation. */
10509 EXPORT_SYMBOL(atomic_add); 10509 EXPORT_SYMBOL(atomic_add);
@@ -36418,19 +36418,10 @@ index e8d11b6..7b1b36f 100644
36418 } 36418 }
36419 EXPORT_SYMBOL_GPL(unregister_syscore_ops); 36419 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
36420diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c 36420diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
36421index 62b6c2c..4a11354 100644 36421index 90a4e6b..002d10f 100644
36422--- a/drivers/block/cciss.c 36422--- a/drivers/block/cciss.c
36423+++ b/drivers/block/cciss.c 36423+++ b/drivers/block/cciss.c
36424@@ -1189,6 +1189,8 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, 36424@@ -3011,7 +3011,7 @@ static void start_io(ctlr_info_t *h)
36425 int err;
36426 u32 cp;
36427
36428+ memset(&arg64, 0, sizeof(arg64));
36429+
36430 err = 0;
36431 err |=
36432 copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
36433@@ -3010,7 +3012,7 @@ static void start_io(ctlr_info_t *h)
36434 while (!list_empty(&h->reqQ)) { 36425 while (!list_empty(&h->reqQ)) {
36435 c = list_entry(h->reqQ.next, CommandList_struct, list); 36426 c = list_entry(h->reqQ.next, CommandList_struct, list);
36436 /* can't do anything if fifo is full */ 36427 /* can't do anything if fifo is full */
@@ -36439,7 +36430,7 @@ index 62b6c2c..4a11354 100644
36439 dev_warn(&h->pdev->dev, "fifo full\n"); 36430 dev_warn(&h->pdev->dev, "fifo full\n");
36440 break; 36431 break;
36441 } 36432 }
36442@@ -3020,7 +3022,7 @@ static void start_io(ctlr_info_t *h) 36433@@ -3021,7 +3021,7 @@ static void start_io(ctlr_info_t *h)
36443 h->Qdepth--; 36434 h->Qdepth--;
36444 36435
36445 /* Tell the controller execute command */ 36436 /* Tell the controller execute command */
@@ -36448,7 +36439,7 @@ index 62b6c2c..4a11354 100644
36448 36439
36449 /* Put job onto the completed Q */ 36440 /* Put job onto the completed Q */
36450 addQ(&h->cmpQ, c); 36441 addQ(&h->cmpQ, c);
36451@@ -3446,17 +3448,17 @@ startio: 36442@@ -3447,17 +3447,17 @@ startio:
36452 36443
36453 static inline unsigned long get_next_completion(ctlr_info_t *h) 36444 static inline unsigned long get_next_completion(ctlr_info_t *h)
36454 { 36445 {
@@ -36469,7 +36460,7 @@ index 62b6c2c..4a11354 100644
36469 (h->interrupts_enabled == 0)); 36460 (h->interrupts_enabled == 0));
36470 } 36461 }
36471 36462
36472@@ -3489,7 +3491,7 @@ static inline u32 next_command(ctlr_info_t *h) 36463@@ -3490,7 +3490,7 @@ static inline u32 next_command(ctlr_info_t *h)
36473 u32 a; 36464 u32 a;
36474 36465
36475 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant))) 36466 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -36478,7 +36469,7 @@ index 62b6c2c..4a11354 100644
36478 36469
36479 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) { 36470 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
36480 a = *(h->reply_pool_head); /* Next cmd in ring buffer */ 36471 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
36481@@ -4046,7 +4048,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h) 36472@@ -4047,7 +4047,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
36482 trans_support & CFGTBL_Trans_use_short_tags); 36473 trans_support & CFGTBL_Trans_use_short_tags);
36483 36474
36484 /* Change the access methods to the performant access methods */ 36475 /* Change the access methods to the performant access methods */
@@ -36487,7 +36478,7 @@ index 62b6c2c..4a11354 100644
36487 h->transMethod = CFGTBL_Trans_Performant; 36478 h->transMethod = CFGTBL_Trans_Performant;
36488 36479
36489 return; 36480 return;
36490@@ -4319,7 +4321,7 @@ static int cciss_pci_init(ctlr_info_t *h) 36481@@ -4320,7 +4320,7 @@ static int cciss_pci_init(ctlr_info_t *h)
36491 if (prod_index < 0) 36482 if (prod_index < 0)
36492 return -ENODEV; 36483 return -ENODEV;
36493 h->product_name = products[prod_index].product_name; 36484 h->product_name = products[prod_index].product_name;
@@ -36496,7 +36487,7 @@ index 62b6c2c..4a11354 100644
36496 36487
36497 if (cciss_board_disabled(h)) { 36488 if (cciss_board_disabled(h)) {
36498 dev_warn(&h->pdev->dev, "controller appears to be disabled\n"); 36489 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
36499@@ -5051,7 +5053,7 @@ reinit_after_soft_reset: 36490@@ -5052,7 +5052,7 @@ reinit_after_soft_reset:
36500 } 36491 }
36501 36492
36502 /* make sure the board interrupts are off */ 36493 /* make sure the board interrupts are off */
@@ -36505,7 +36496,7 @@ index 62b6c2c..4a11354 100644
36505 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx); 36496 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
36506 if (rc) 36497 if (rc)
36507 goto clean2; 36498 goto clean2;
36508@@ -5101,7 +5103,7 @@ reinit_after_soft_reset: 36499@@ -5102,7 +5102,7 @@ reinit_after_soft_reset:
36509 * fake ones to scoop up any residual completions. 36500 * fake ones to scoop up any residual completions.
36510 */ 36501 */
36511 spin_lock_irqsave(&h->lock, flags); 36502 spin_lock_irqsave(&h->lock, flags);
@@ -36514,7 +36505,7 @@ index 62b6c2c..4a11354 100644
36514 spin_unlock_irqrestore(&h->lock, flags); 36505 spin_unlock_irqrestore(&h->lock, flags);
36515 free_irq(h->intr[h->intr_mode], h); 36506 free_irq(h->intr[h->intr_mode], h);
36516 rc = cciss_request_irq(h, cciss_msix_discard_completions, 36507 rc = cciss_request_irq(h, cciss_msix_discard_completions,
36517@@ -5121,9 +5123,9 @@ reinit_after_soft_reset: 36508@@ -5122,9 +5122,9 @@ reinit_after_soft_reset:
36518 dev_info(&h->pdev->dev, "Board READY.\n"); 36509 dev_info(&h->pdev->dev, "Board READY.\n");
36519 dev_info(&h->pdev->dev, 36510 dev_info(&h->pdev->dev,
36520 "Waiting for stale completions to drain.\n"); 36511 "Waiting for stale completions to drain.\n");
@@ -36526,7 +36517,7 @@ index 62b6c2c..4a11354 100644
36526 36517
36527 rc = controller_reset_failed(h->cfgtable); 36518 rc = controller_reset_failed(h->cfgtable);
36528 if (rc) 36519 if (rc)
36529@@ -5146,7 +5148,7 @@ reinit_after_soft_reset: 36520@@ -5147,7 +5147,7 @@ reinit_after_soft_reset:
36530 cciss_scsi_setup(h); 36521 cciss_scsi_setup(h);
36531 36522
36532 /* Turn the interrupts on so we can service requests */ 36523 /* Turn the interrupts on so we can service requests */
@@ -36535,7 +36526,7 @@ index 62b6c2c..4a11354 100644
36535 36526
36536 /* Get the firmware version */ 36527 /* Get the firmware version */
36537 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL); 36528 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
36538@@ -5218,7 +5220,7 @@ static void cciss_shutdown(struct pci_dev *pdev) 36529@@ -5219,7 +5219,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
36539 kfree(flush_buf); 36530 kfree(flush_buf);
36540 if (return_code != IO_OK) 36531 if (return_code != IO_OK)
36541 dev_warn(&h->pdev->dev, "Error flushing cache\n"); 36532 dev_warn(&h->pdev->dev, "Error flushing cache\n");
@@ -36558,7 +36549,7 @@ index 7fda30e..eb5dfe0 100644
36558 /* queue and queue Info */ 36549 /* queue and queue Info */
36559 struct list_head reqQ; 36550 struct list_head reqQ;
36560diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c 36551diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
36561index 639d26b..fd6ad1f 100644 36552index 2b94403..fd6ad1f 100644
36562--- a/drivers/block/cpqarray.c 36553--- a/drivers/block/cpqarray.c
36563+++ b/drivers/block/cpqarray.c 36554+++ b/drivers/block/cpqarray.c
36564@@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev) 36555@@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
@@ -36633,15 +36624,7 @@ index 639d26b..fd6ad1f 100644
36633 a1 = a; a &= ~3; 36624 a1 = a; a &= ~3;
36634 if ((c = h->cmpQ) == NULL) 36625 if ((c = h->cmpQ) == NULL)
36635 { 36626 {
36636@@ -1193,6 +1193,7 @@ out_passthru: 36627@@ -1448,11 +1448,11 @@ static int sendcmd(
36637 ida_pci_info_struct pciinfo;
36638
36639 if (!arg) return -EINVAL;
36640+ memset(&pciinfo, 0, sizeof(pciinfo));
36641 pciinfo.bus = host->pci_dev->bus->number;
36642 pciinfo.dev_fn = host->pci_dev->devfn;
36643 pciinfo.board_id = host->board_id;
36644@@ -1447,11 +1448,11 @@ static int sendcmd(
36645 /* 36628 /*
36646 * Disable interrupt 36629 * Disable interrupt
36647 */ 36630 */
@@ -36655,7 +36638,7 @@ index 639d26b..fd6ad1f 100644
36655 if (temp != 0) { 36638 if (temp != 0) {
36656 break; 36639 break;
36657 } 36640 }
36658@@ -1464,7 +1465,7 @@ DBG( 36641@@ -1465,7 +1465,7 @@ DBG(
36659 /* 36642 /*
36660 * Send the cmd 36643 * Send the cmd
36661 */ 36644 */
@@ -36664,7 +36647,7 @@ index 639d26b..fd6ad1f 100644
36664 complete = pollcomplete(ctlr); 36647 complete = pollcomplete(ctlr);
36665 36648
36666 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr, 36649 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
36667@@ -1547,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host) 36650@@ -1548,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
36668 * we check the new geometry. Then turn interrupts back on when 36651 * we check the new geometry. Then turn interrupts back on when
36669 * we're done. 36652 * we're done.
36670 */ 36653 */
@@ -36676,7 +36659,7 @@ index 639d26b..fd6ad1f 100644
36676 36659
36677 for(i=0; i<NWD; i++) { 36660 for(i=0; i<NWD; i++) {
36678 struct gendisk *disk = ida_gendisk[ctlr][i]; 36661 struct gendisk *disk = ida_gendisk[ctlr][i];
36679@@ -1589,7 +1590,7 @@ static int pollcomplete(int ctlr) 36662@@ -1590,7 +1590,7 @@ static int pollcomplete(int ctlr)
36680 /* Wait (up to 2 seconds) for a command to complete */ 36663 /* Wait (up to 2 seconds) for a command to complete */
36681 36664
36682 for (i = 200000; i > 0; i--) { 36665 for (i = 200000; i > 0; i--) {
@@ -39929,10 +39912,10 @@ index 8c04943..4370ed9 100644
39929 err = drm_debugfs_create_files(dc->debugfs_files, 39912 err = drm_debugfs_create_files(dc->debugfs_files,
39930 ARRAY_SIZE(debugfs_files), 39913 ARRAY_SIZE(debugfs_files),
39931diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c 39914diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
39932index ca959cf..f6c5f7d 100644 39915index e04bf0ef..500861b 100644
39933--- a/drivers/hid/hid-core.c 39916--- a/drivers/hid/hid-core.c
39934+++ b/drivers/hid/hid-core.c 39917+++ b/drivers/hid/hid-core.c
39935@@ -2340,7 +2340,7 @@ EXPORT_SYMBOL_GPL(hid_ignore); 39918@@ -2358,7 +2358,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
39936 39919
39937 int hid_add_device(struct hid_device *hdev) 39920 int hid_add_device(struct hid_device *hdev)
39938 { 39921 {
@@ -39941,7 +39924,7 @@ index ca959cf..f6c5f7d 100644
39941 int ret; 39924 int ret;
39942 39925
39943 if (WARN_ON(hdev->status & HID_STAT_ADDED)) 39926 if (WARN_ON(hdev->status & HID_STAT_ADDED))
39944@@ -2374,7 +2374,7 @@ int hid_add_device(struct hid_device *hdev) 39927@@ -2392,7 +2392,7 @@ int hid_add_device(struct hid_device *hdev)
39945 /* XXX hack, any other cleaner solution after the driver core 39928 /* XXX hack, any other cleaner solution after the driver core
39946 * is converted to allow more than 20 bytes as the device name? */ 39929 * is converted to allow more than 20 bytes as the device name? */
39947 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus, 39930 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -40017,7 +40000,7 @@ index 90124ff..3761764 100644
40017 40000
40018 *off += size; 40001 *off += size;
40019diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c 40002diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
40020index fc307e0..2b255e8 100644 40003index 145a4cb..2353a3e 100644
40021--- a/drivers/hid/uhid.c 40004--- a/drivers/hid/uhid.c
40022+++ b/drivers/hid/uhid.c 40005+++ b/drivers/hid/uhid.c
40023@@ -47,7 +47,7 @@ struct uhid_device { 40006@@ -47,7 +47,7 @@ struct uhid_device {
@@ -43644,10 +43627,10 @@ index f9d5615..99dd95f 100644
43644 struct sm_sysfs_attribute *vendor_attribute; 43627 struct sm_sysfs_attribute *vendor_attribute;
43645 43628
43646diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c 43629diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
43647index 666cf3a..60693be 100644 43630index 8395b09..ff4d276 100644
43648--- a/drivers/net/bonding/bond_main.c 43631--- a/drivers/net/bonding/bond_main.c
43649+++ b/drivers/net/bonding/bond_main.c 43632+++ b/drivers/net/bonding/bond_main.c
43650@@ -4876,7 +4876,7 @@ static unsigned int bond_get_num_tx_queues(void) 43633@@ -4883,7 +4883,7 @@ static unsigned int bond_get_num_tx_queues(void)
43651 return tx_queues; 43634 return tx_queues;
43652 } 43635 }
43653 43636
@@ -43656,7 +43639,7 @@ index 666cf3a..60693be 100644
43656 .kind = "bond", 43639 .kind = "bond",
43657 .priv_size = sizeof(struct bonding), 43640 .priv_size = sizeof(struct bonding),
43658 .setup = bond_setup, 43641 .setup = bond_setup,
43659@@ -5001,8 +5001,8 @@ static void __exit bonding_exit(void) 43642@@ -5008,8 +5008,8 @@ static void __exit bonding_exit(void)
43660 43643
43661 bond_destroy_debugfs(); 43644 bond_destroy_debugfs();
43662 43645
@@ -43985,7 +43968,7 @@ index d3f8797..82a03d3 100644
43985 vlan_req = (struct qlcnic_vlan_req *)&req->words[1]; 43968 vlan_req = (struct qlcnic_vlan_req *)&req->words[1];
43986 vlan_req->vlan_id = cpu_to_le16(vlan_id); 43969 vlan_req->vlan_id = cpu_to_le16(vlan_id);
43987diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c 43970diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
43988index 393f961..d343034 100644 43971index 7199d2a..0cae710 100644
43989--- a/drivers/net/ethernet/realtek/r8169.c 43972--- a/drivers/net/ethernet/realtek/r8169.c
43990+++ b/drivers/net/ethernet/realtek/r8169.c 43973+++ b/drivers/net/ethernet/realtek/r8169.c
43991@@ -753,22 +753,22 @@ struct rtl8169_private { 43974@@ -753,22 +753,22 @@ struct rtl8169_private {
@@ -44201,10 +44184,10 @@ index b305105..8ead6df 100644
44201 }; 44184 };
44202 44185
44203diff --git a/drivers/net/tun.c b/drivers/net/tun.c 44186diff --git a/drivers/net/tun.c b/drivers/net/tun.c
44204index 7b54f4f..1a453eb 100644 44187index b18ead5..109dcbd 100644
44205--- a/drivers/net/tun.c 44188--- a/drivers/net/tun.c
44206+++ b/drivers/net/tun.c 44189+++ b/drivers/net/tun.c
44207@@ -1871,7 +1871,7 @@ unlock: 44190@@ -1876,7 +1876,7 @@ unlock:
44208 } 44191 }
44209 44192
44210 static long __tun_chr_ioctl(struct file *file, unsigned int cmd, 44193 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -44213,7 +44196,7 @@ index 7b54f4f..1a453eb 100644
44213 { 44196 {
44214 struct tun_file *tfile = file->private_data; 44197 struct tun_file *tfile = file->private_data;
44215 struct tun_struct *tun; 44198 struct tun_struct *tun;
44216@@ -1883,6 +1883,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, 44199@@ -1888,6 +1888,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
44217 int vnet_hdr_sz; 44200 int vnet_hdr_sz;
44218 int ret; 44201 int ret;
44219 44202
@@ -52795,7 +52778,7 @@ index bce8769..7fc7544 100644
52795 fd_offset + ex.a_text); 52778 fd_offset + ex.a_text);
52796 if (error != N_DATADDR(ex)) { 52779 if (error != N_DATADDR(ex)) {
52797diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c 52780diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
52798index f8a0b0e..6f036ed 100644 52781index 3aac8e9..1fd8b35 100644
52799--- a/fs/binfmt_elf.c 52782--- a/fs/binfmt_elf.c
52800+++ b/fs/binfmt_elf.c 52783+++ b/fs/binfmt_elf.c
52801@@ -34,6 +34,7 @@ 52784@@ -34,6 +34,7 @@
@@ -53437,12 +53420,12 @@ index f8a0b0e..6f036ed 100644
53437+ if (current->mm->pax_flags & MF_PAX_RANDMMAP) { 53420+ if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
53438+ unsigned long start, size, flags; 53421+ unsigned long start, size, flags;
53439+ vm_flags_t vm_flags; 53422+ vm_flags_t vm_flags;
53440+ 53423
53441+ start = ELF_PAGEALIGN(elf_brk); 53424+ start = ELF_PAGEALIGN(elf_brk);
53442+ size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4); 53425+ size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
53443+ flags = MAP_FIXED | MAP_PRIVATE; 53426+ flags = MAP_FIXED | MAP_PRIVATE;
53444+ vm_flags = VM_DONTEXPAND | VM_DONTDUMP; 53427+ vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
53445 53428+
53446+ down_write(&current->mm->mmap_sem); 53429+ down_write(&current->mm->mmap_sem);
53447+ start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags); 53430+ start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
53448+ retval = -ENOMEM; 53431+ retval = -ENOMEM;
@@ -53508,7 +53491,7 @@ index f8a0b0e..6f036ed 100644
53508 set_fs(old_fs); 53491 set_fs(old_fs);
53509 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata); 53492 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
53510 } 53493 }
53511@@ -2019,14 +2474,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum, 53494@@ -2025,14 +2480,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
53512 } 53495 }
53513 53496
53514 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 53497 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -53525,7 +53508,7 @@ index f8a0b0e..6f036ed 100644
53525 return size; 53508 return size;
53526 } 53509 }
53527 53510
53528@@ -2119,7 +2574,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53511@@ -2125,7 +2580,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53529 53512
53530 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 53513 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
53531 53514
@@ -53534,7 +53517,7 @@ index f8a0b0e..6f036ed 100644
53534 offset += elf_core_extra_data_size(); 53517 offset += elf_core_extra_data_size();
53535 e_shoff = offset; 53518 e_shoff = offset;
53536 53519
53537@@ -2133,10 +2588,12 @@ static int elf_core_dump(struct coredump_params *cprm) 53520@@ -2139,10 +2594,12 @@ static int elf_core_dump(struct coredump_params *cprm)
53538 offset = dataoff; 53521 offset = dataoff;
53539 53522
53540 size += sizeof(*elf); 53523 size += sizeof(*elf);
@@ -53547,7 +53530,7 @@ index f8a0b0e..6f036ed 100644
53547 if (size > cprm->limit 53530 if (size > cprm->limit
53548 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 53531 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
53549 goto end_coredump; 53532 goto end_coredump;
53550@@ -2150,7 +2607,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53533@@ -2156,7 +2613,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53551 phdr.p_offset = offset; 53534 phdr.p_offset = offset;
53552 phdr.p_vaddr = vma->vm_start; 53535 phdr.p_vaddr = vma->vm_start;
53553 phdr.p_paddr = 0; 53536 phdr.p_paddr = 0;
@@ -53556,7 +53539,7 @@ index f8a0b0e..6f036ed 100644
53556 phdr.p_memsz = vma->vm_end - vma->vm_start; 53539 phdr.p_memsz = vma->vm_end - vma->vm_start;
53557 offset += phdr.p_filesz; 53540 offset += phdr.p_filesz;
53558 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 53541 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
53559@@ -2161,6 +2618,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53542@@ -2167,6 +2624,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53560 phdr.p_align = ELF_EXEC_PAGESIZE; 53543 phdr.p_align = ELF_EXEC_PAGESIZE;
53561 53544
53562 size += sizeof(phdr); 53545 size += sizeof(phdr);
@@ -53564,7 +53547,7 @@ index f8a0b0e..6f036ed 100644
53564 if (size > cprm->limit 53547 if (size > cprm->limit
53565 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 53548 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
53566 goto end_coredump; 53549 goto end_coredump;
53567@@ -2185,7 +2643,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53550@@ -2191,7 +2649,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53568 unsigned long addr; 53551 unsigned long addr;
53569 unsigned long end; 53552 unsigned long end;
53570 53553
@@ -53573,7 +53556,7 @@ index f8a0b0e..6f036ed 100644
53573 53556
53574 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 53557 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
53575 struct page *page; 53558 struct page *page;
53576@@ -2194,6 +2652,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53559@@ -2200,6 +2658,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53577 page = get_dump_page(addr); 53560 page = get_dump_page(addr);
53578 if (page) { 53561 if (page) {
53579 void *kaddr = kmap(page); 53562 void *kaddr = kmap(page);
@@ -53581,7 +53564,7 @@ index f8a0b0e..6f036ed 100644
53581 stop = ((size += PAGE_SIZE) > cprm->limit) || 53564 stop = ((size += PAGE_SIZE) > cprm->limit) ||
53582 !dump_write(cprm->file, kaddr, 53565 !dump_write(cprm->file, kaddr,
53583 PAGE_SIZE); 53566 PAGE_SIZE);
53584@@ -2211,6 +2670,7 @@ static int elf_core_dump(struct coredump_params *cprm) 53567@@ -2217,6 +2676,7 @@ static int elf_core_dump(struct coredump_params *cprm)
53585 53568
53586 if (e_phnum == PN_XNUM) { 53569 if (e_phnum == PN_XNUM) {
53587 size += sizeof(*shdr4extnum); 53570 size += sizeof(*shdr4extnum);
@@ -53589,7 +53572,7 @@ index f8a0b0e..6f036ed 100644
53589 if (size > cprm->limit 53572 if (size > cprm->limit
53590 || !dump_write(cprm->file, shdr4extnum, 53573 || !dump_write(cprm->file, shdr4extnum,
53591 sizeof(*shdr4extnum))) 53574 sizeof(*shdr4extnum)))
53592@@ -2231,6 +2691,167 @@ out: 53575@@ -2237,6 +2697,167 @@ out:
53593 53576
53594 #endif /* CONFIG_ELF_CORE */ 53577 #endif /* CONFIG_ELF_CORE */
53595 53578
@@ -78512,7 +78495,7 @@ index 53f464d..0bd0b49 100644
78512 78495
78513 #endif /* _NET_INETPEER_H */ 78496 #endif /* _NET_INETPEER_H */
78514diff --git a/include/net/ip.h b/include/net/ip.h 78497diff --git a/include/net/ip.h b/include/net/ip.h
78515index a68f838..74518ab 100644 78498index edfa591..a643b82 100644
78516--- a/include/net/ip.h 78499--- a/include/net/ip.h
78517+++ b/include/net/ip.h 78500+++ b/include/net/ip.h
78518@@ -202,7 +202,7 @@ extern struct local_ports { 78501@@ -202,7 +202,7 @@ extern struct local_ports {
@@ -84657,7 +84640,7 @@ index 02fc5c9..e54c335 100644
84657 mutex_unlock(&smpboot_threads_lock); 84640 mutex_unlock(&smpboot_threads_lock);
84658 put_online_cpus(); 84641 put_online_cpus();
84659diff --git a/kernel/softirq.c b/kernel/softirq.c 84642diff --git a/kernel/softirq.c b/kernel/softirq.c
84660index 3d6833f..da6d93d 100644 84643index 787b3a0..07213e9 100644
84661--- a/kernel/softirq.c 84644--- a/kernel/softirq.c
84662+++ b/kernel/softirq.c 84645+++ b/kernel/softirq.c
84663@@ -53,11 +53,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned; 84646@@ -53,11 +53,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
@@ -84683,7 +84666,7 @@ index 3d6833f..da6d93d 100644
84683 trace_softirq_exit(vec_nr); 84666 trace_softirq_exit(vec_nr);
84684 if (unlikely(prev_count != preempt_count())) { 84667 if (unlikely(prev_count != preempt_count())) {
84685 printk(KERN_ERR "huh, entered softirq %u %s %p" 84668 printk(KERN_ERR "huh, entered softirq %u %s %p"
84686@@ -405,7 +405,7 @@ void __raise_softirq_irqoff(unsigned int nr) 84669@@ -414,7 +414,7 @@ void __raise_softirq_irqoff(unsigned int nr)
84687 or_softirq_pending(1UL << nr); 84670 or_softirq_pending(1UL << nr);
84688 } 84671 }
84689 84672
@@ -84692,7 +84675,7 @@ index 3d6833f..da6d93d 100644
84692 { 84675 {
84693 softirq_vec[nr].action = action; 84676 softirq_vec[nr].action = action;
84694 } 84677 }
84695@@ -461,7 +461,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t) 84678@@ -470,7 +470,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
84696 84679
84697 EXPORT_SYMBOL(__tasklet_hi_schedule_first); 84680 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
84698 84681
@@ -84701,7 +84684,7 @@ index 3d6833f..da6d93d 100644
84701 { 84684 {
84702 struct tasklet_struct *list; 84685 struct tasklet_struct *list;
84703 84686
84704@@ -496,7 +496,7 @@ static void tasklet_action(struct softirq_action *a) 84687@@ -505,7 +505,7 @@ static void tasklet_action(struct softirq_action *a)
84705 } 84688 }
84706 } 84689 }
84707 84690
@@ -84710,7 +84693,7 @@ index 3d6833f..da6d93d 100644
84710 { 84693 {
84711 struct tasklet_struct *list; 84694 struct tasklet_struct *list;
84712 84695
84713@@ -730,7 +730,7 @@ static int __cpuinit remote_softirq_cpu_notify(struct notifier_block *self, 84696@@ -739,7 +739,7 @@ static int __cpuinit remote_softirq_cpu_notify(struct notifier_block *self,
84714 return NOTIFY_OK; 84697 return NOTIFY_OK;
84715 } 84698 }
84716 84699
@@ -84719,7 +84702,7 @@ index 3d6833f..da6d93d 100644
84719 .notifier_call = remote_softirq_cpu_notify, 84702 .notifier_call = remote_softirq_cpu_notify,
84720 }; 84703 };
84721 84704
84722@@ -847,11 +847,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb, 84705@@ -856,11 +856,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
84723 return NOTIFY_OK; 84706 return NOTIFY_OK;
84724 } 84707 }
84725 84708
@@ -88013,7 +87996,7 @@ index 4baf12e..5497066 100644
88013 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE); 87996 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
88014 87997
88015diff --git a/mm/migrate.c b/mm/migrate.c 87998diff --git a/mm/migrate.c b/mm/migrate.c
88016index 6f0c244..6d1ae32 100644 87999index 25ca7ca..abe1836 100644
88017--- a/mm/migrate.c 88000--- a/mm/migrate.c
88018+++ b/mm/migrate.c 88001+++ b/mm/migrate.c
88019@@ -1399,8 +1399,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages, 88002@@ -1399,8 +1399,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
@@ -92002,10 +91985,10 @@ index 0bb3b59..0e3052e 100644
92002 91985
92003 /* inform the destination node that we are still missing a correct route 91986 /* inform the destination node that we are still missing a correct route
92004diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c 91987diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
92005index ace5e55..a65a1c0 100644 91988index 7c88f5f..b65befb 100644
92006--- a/net/bluetooth/hci_core.c 91989--- a/net/bluetooth/hci_core.c
92007+++ b/net/bluetooth/hci_core.c 91990+++ b/net/bluetooth/hci_core.c
92008@@ -2211,16 +2211,16 @@ int hci_register_dev(struct hci_dev *hdev) 91991@@ -2222,16 +2222,16 @@ int hci_register_dev(struct hci_dev *hdev)
92009 list_add(&hdev->list, &hci_dev_list); 91992 list_add(&hdev->list, &hci_dev_list);
92010 write_unlock(&hci_dev_list_lock); 91993 write_unlock(&hci_dev_list_lock);
92011 91994
@@ -92200,7 +92183,7 @@ index 3d110c4..4e1b2eb 100644
92200 break; 92183 break;
92201 } 92184 }
92202diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c 92185diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
92203index 2bd4b58..0dc30a1 100644 92186index 0f45522..dab651f 100644
92204--- a/net/caif/cfctrl.c 92187--- a/net/caif/cfctrl.c
92205+++ b/net/caif/cfctrl.c 92188+++ b/net/caif/cfctrl.c
92206@@ -10,6 +10,7 @@ 92189@@ -10,6 +10,7 @@
@@ -92744,7 +92727,7 @@ index f9765203..9feaef8 100644
92744 return error; 92727 return error;
92745 } 92728 }
92746diff --git a/net/core/netpoll.c b/net/core/netpoll.c 92729diff --git a/net/core/netpoll.c b/net/core/netpoll.c
92747index cec074b..a53a938 100644 92730index b04f738..452b054 100644
92748--- a/net/core/netpoll.c 92731--- a/net/core/netpoll.c
92749+++ b/net/core/netpoll.c 92732+++ b/net/core/netpoll.c
92750@@ -428,7 +428,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) 92733@@ -428,7 +428,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
@@ -93133,10 +93116,10 @@ index 55e1fd5..fd602b8 100644
93133 *hc06_ptr = tmp; 93116 *hc06_ptr = tmp;
93134 hc06_ptr += 4; 93117 hc06_ptr += 4;
93135diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c 93118diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
93136index d01be2a..8976537 100644 93119index c4adc31..ba1739f 100644
93137--- a/net/ipv4/af_inet.c 93120--- a/net/ipv4/af_inet.c
93138+++ b/net/ipv4/af_inet.c 93121+++ b/net/ipv4/af_inet.c
93139@@ -1703,13 +1703,9 @@ static int __init inet_init(void) 93122@@ -1701,13 +1701,9 @@ static int __init inet_init(void)
93140 93123
93141 BUILD_BUG_ON(sizeof(struct inet_skb_parm) > FIELD_SIZEOF(struct sk_buff, cb)); 93124 BUILD_BUG_ON(sizeof(struct inet_skb_parm) > FIELD_SIZEOF(struct sk_buff, cb));
93142 93125
@@ -93151,7 +93134,7 @@ index d01be2a..8976537 100644
93151 93134
93152 rc = proto_register(&udp_prot, 1); 93135 rc = proto_register(&udp_prot, 1);
93153 if (rc) 93136 if (rc)
93154@@ -1818,8 +1814,6 @@ out_unregister_udp_proto: 93137@@ -1816,8 +1812,6 @@ out_unregister_udp_proto:
93155 proto_unregister(&udp_prot); 93138 proto_unregister(&udp_prot);
93156 out_unregister_tcp_proto: 93139 out_unregister_tcp_proto:
93157 proto_unregister(&tcp_prot); 93140 proto_unregister(&tcp_prot);
@@ -93350,7 +93333,7 @@ index 6af375a..c493c74 100644
93350 inet_twsk_deschedule(tw, death_row); 93333 inet_twsk_deschedule(tw, death_row);
93351 while (twrefcnt) { 93334 while (twrefcnt) {
93352diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c 93335diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
93353index 000e3d2..5472da3 100644 93336index 33d5537..da337a4 100644
93354--- a/net/ipv4/inetpeer.c 93337--- a/net/ipv4/inetpeer.c
93355+++ b/net/ipv4/inetpeer.c 93338+++ b/net/ipv4/inetpeer.c
93356@@ -503,8 +503,8 @@ relookup: 93339@@ -503,8 +503,8 @@ relookup:
@@ -93669,7 +93652,7 @@ index 7d93d62..cbbf2a3 100644
93669 93652
93670 static int ping_seq_show(struct seq_file *seq, void *v) 93653 static int ping_seq_show(struct seq_file *seq, void *v)
93671diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c 93654diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
93672index 61e60d6..d6996cd 100644 93655index 6fb2337..9cd6b20 100644
93673--- a/net/ipv4/raw.c 93656--- a/net/ipv4/raw.c
93674+++ b/net/ipv4/raw.c 93657+++ b/net/ipv4/raw.c
93675@@ -309,7 +309,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb) 93658@@ -309,7 +309,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -94243,7 +94226,7 @@ index 9a459be..086b866 100644
94243 return -ENOMEM; 94226 return -ENOMEM;
94244 } 94227 }
94245diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c 94228diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
94246index d3057f9..80a31d8 100644 94229index b78a3ee..8f5113c 100644
94247--- a/net/ipv6/addrconf.c 94230--- a/net/ipv6/addrconf.c
94248+++ b/net/ipv6/addrconf.c 94231+++ b/net/ipv6/addrconf.c
94249@@ -621,7 +621,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb, 94232@@ -621,7 +621,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
@@ -94255,7 +94238,7 @@ index d3057f9..80a31d8 100644
94255 net->dev_base_seq; 94238 net->dev_base_seq;
94256 hlist_for_each_entry_rcu(dev, head, index_hlist) { 94239 hlist_for_each_entry_rcu(dev, head, index_hlist) {
94257 if (idx < s_idx) 94240 if (idx < s_idx)
94258@@ -2378,7 +2378,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg) 94241@@ -2405,7 +2405,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
94259 p.iph.ihl = 5; 94242 p.iph.ihl = 5;
94260 p.iph.protocol = IPPROTO_IPV6; 94243 p.iph.protocol = IPPROTO_IPV6;
94261 p.iph.ttl = 64; 94244 p.iph.ttl = 64;
@@ -94264,7 +94247,7 @@ index d3057f9..80a31d8 100644
94264 94247
94265 if (ops->ndo_do_ioctl) { 94248 if (ops->ndo_do_ioctl) {
94266 mm_segment_t oldfs = get_fs(); 94249 mm_segment_t oldfs = get_fs();
94267@@ -4000,7 +4000,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, 94250@@ -4027,7 +4027,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
94268 s_ip_idx = ip_idx = cb->args[2]; 94251 s_ip_idx = ip_idx = cb->args[2];
94269 94252
94270 rcu_read_lock(); 94253 rcu_read_lock();
@@ -94273,7 +94256,7 @@ index d3057f9..80a31d8 100644
94273 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) { 94256 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
94274 idx = 0; 94257 idx = 0;
94275 head = &net->dev_index_head[h]; 94258 head = &net->dev_index_head[h];
94276@@ -4585,7 +4585,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) 94259@@ -4612,7 +4612,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
94277 dst_free(&ifp->rt->dst); 94260 dst_free(&ifp->rt->dst);
94278 break; 94261 break;
94279 } 94262 }
@@ -94282,7 +94265,7 @@ index d3057f9..80a31d8 100644
94282 } 94265 }
94283 94266
94284 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp) 94267 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
94285@@ -4605,7 +4605,7 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write, 94268@@ -4632,7 +4632,7 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write,
94286 int *valp = ctl->data; 94269 int *valp = ctl->data;
94287 int val = *valp; 94270 int val = *valp;
94288 loff_t pos = *ppos; 94271 loff_t pos = *ppos;
@@ -94291,7 +94274,7 @@ index d3057f9..80a31d8 100644
94291 int ret; 94274 int ret;
94292 94275
94293 /* 94276 /*
94294@@ -4687,7 +4687,7 @@ int addrconf_sysctl_disable(ctl_table *ctl, int write, 94277@@ -4714,7 +4714,7 @@ int addrconf_sysctl_disable(ctl_table *ctl, int write,
94295 int *valp = ctl->data; 94278 int *valp = ctl->data;
94296 int val = *valp; 94279 int val = *valp;
94297 loff_t pos = *ppos; 94280 loff_t pos = *ppos;
@@ -94327,7 +94310,7 @@ index 70e704d..a4293c8 100644
94327 table = kmemdup(ipv6_icmp_table_template, 94310 table = kmemdup(ipv6_icmp_table_template,
94328 sizeof(ipv6_icmp_table_template), 94311 sizeof(ipv6_icmp_table_template),
94329diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c 94312diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
94330index ecd6073..58162ae 100644 94313index 1f9a1a5..413e487 100644
94331--- a/net/ipv6/ip6_gre.c 94314--- a/net/ipv6/ip6_gre.c
94332+++ b/net/ipv6/ip6_gre.c 94315+++ b/net/ipv6/ip6_gre.c
94333@@ -74,7 +74,7 @@ struct ip6gre_net { 94316@@ -74,7 +74,7 @@ struct ip6gre_net {
@@ -94367,7 +94350,7 @@ index ecd6073..58162ae 100644
94367 .maxtype = IFLA_GRE_MAX, 94350 .maxtype = IFLA_GRE_MAX,
94368 .policy = ip6gre_policy, 94351 .policy = ip6gre_policy,
94369diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c 94352diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
94370index 1e55866..b398dab 100644 94353index 0516ebb..a5f065b 100644
94371--- a/net/ipv6/ip6_tunnel.c 94354--- a/net/ipv6/ip6_tunnel.c
94372+++ b/net/ipv6/ip6_tunnel.c 94355+++ b/net/ipv6/ip6_tunnel.c
94373@@ -88,7 +88,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2) 94356@@ -88,7 +88,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
@@ -94674,7 +94657,7 @@ index bacce6c..9d1741a 100644
94674 table = kmemdup(ipv6_route_table_template, 94657 table = kmemdup(ipv6_route_table_template,
94675 sizeof(ipv6_route_table_template), 94658 sizeof(ipv6_route_table_template),
94676diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c 94659diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
94677index 60df36d..f3ab7c8 100644 94660index 0491264..c403222 100644
94678--- a/net/ipv6/sit.c 94661--- a/net/ipv6/sit.c
94679+++ b/net/ipv6/sit.c 94662+++ b/net/ipv6/sit.c
94680@@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev); 94663@@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
@@ -94686,7 +94669,7 @@ index 60df36d..f3ab7c8 100644
94686 94669
94687 static int sit_net_id __read_mostly; 94670 static int sit_net_id __read_mostly;
94688 struct sit_net { 94671 struct sit_net {
94689@@ -1453,7 +1453,7 @@ static const struct nla_policy ipip6_policy[IFLA_IPTUN_MAX + 1] = { 94672@@ -1507,7 +1507,7 @@ static const struct nla_policy ipip6_policy[IFLA_IPTUN_MAX + 1] = {
94690 #endif 94673 #endif
94691 }; 94674 };
94692 94675
@@ -95444,7 +95427,7 @@ index f6046d9..4f10cfd 100644
95444 cp->old_state = cp->state; 95427 cp->old_state = cp->state;
95445 /* 95428 /*
95446diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c 95429diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
95447index b75ff64..0c51bbe 100644 95430index c47444e..b0961c6 100644
95448--- a/net/netfilter/ipvs/ip_vs_xmit.c 95431--- a/net/netfilter/ipvs/ip_vs_xmit.c
95449+++ b/net/netfilter/ipvs/ip_vs_xmit.c 95432+++ b/net/netfilter/ipvs/ip_vs_xmit.c
95450@@ -1102,7 +1102,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, 95433@@ -1102,7 +1102,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
@@ -96606,10 +96589,10 @@ index f226709..0e735a8 100644
96606 96589
96607 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len); 96590 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
96608diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c 96591diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
96609index 391a245..296b3d7 100644 96592index 422d8bd..2a65859 100644
96610--- a/net/sctp/ipv6.c 96593--- a/net/sctp/ipv6.c
96611+++ b/net/sctp/ipv6.c 96594+++ b/net/sctp/ipv6.c
96612@@ -981,7 +981,7 @@ static const struct inet6_protocol sctpv6_protocol = { 96595@@ -965,7 +965,7 @@ static const struct inet6_protocol sctpv6_protocol = {
96613 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL, 96596 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
96614 }; 96597 };
96615 96598
@@ -96618,7 +96601,7 @@ index 391a245..296b3d7 100644
96618 .sa_family = AF_INET6, 96601 .sa_family = AF_INET6,
96619 .sctp_xmit = sctp_v6_xmit, 96602 .sctp_xmit = sctp_v6_xmit,
96620 .setsockopt = ipv6_setsockopt, 96603 .setsockopt = ipv6_setsockopt,
96621@@ -1013,7 +1013,7 @@ static struct sctp_af sctp_af_inet6 = { 96604@@ -997,7 +997,7 @@ static struct sctp_af sctp_af_inet6 = {
96622 #endif 96605 #endif
96623 }; 96606 };
96624 96607
@@ -96627,7 +96610,7 @@ index 391a245..296b3d7 100644
96627 .event_msgname = sctp_inet6_event_msgname, 96610 .event_msgname = sctp_inet6_event_msgname,
96628 .skb_msgname = sctp_inet6_skb_msgname, 96611 .skb_msgname = sctp_inet6_skb_msgname,
96629 .af_supported = sctp_inet6_af_supported, 96612 .af_supported = sctp_inet6_af_supported,
96630@@ -1038,7 +1038,7 @@ void sctp_v6_pf_init(void) 96613@@ -1022,7 +1022,7 @@ void sctp_v6_pf_init(void)
96631 96614
96632 void sctp_v6_pf_exit(void) 96615 void sctp_v6_pf_exit(void)
96633 { 96616 {
@@ -96707,10 +96690,10 @@ index 8aab894..f6b7e7d 100644
96707 sctp_generate_t1_cookie_event, 96690 sctp_generate_t1_cookie_event,
96708 sctp_generate_t1_init_event, 96691 sctp_generate_t1_init_event,
96709diff --git a/net/sctp/socket.c b/net/sctp/socket.c 96692diff --git a/net/sctp/socket.c b/net/sctp/socket.c
96710index 6abb1ca..1678f8b 100644 96693index 79bc251..4530ee0 100644
96711--- a/net/sctp/socket.c 96694--- a/net/sctp/socket.c
96712+++ b/net/sctp/socket.c 96695+++ b/net/sctp/socket.c
96713@@ -2167,11 +2167,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval, 96696@@ -2170,11 +2170,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
96714 { 96697 {
96715 struct sctp_association *asoc; 96698 struct sctp_association *asoc;
96716 struct sctp_ulpevent *event; 96699 struct sctp_ulpevent *event;
@@ -96725,7 +96708,7 @@ index 6abb1ca..1678f8b 100644
96725 96708
96726 /* 96709 /*
96727 * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT, 96710 * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
96728@@ -4222,13 +4224,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len, 96711@@ -4225,13 +4227,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
96729 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, 96712 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
96730 int __user *optlen) 96713 int __user *optlen)
96731 { 96714 {
@@ -96743,7 +96726,7 @@ index 6abb1ca..1678f8b 100644
96743 return -EFAULT; 96726 return -EFAULT;
96744 return 0; 96727 return 0;
96745 } 96728 }
96746@@ -4246,6 +4251,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, 96729@@ -4249,6 +4254,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
96747 */ 96730 */
96748 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen) 96731 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
96749 { 96732 {
@@ -96752,7 +96735,7 @@ index 6abb1ca..1678f8b 100644
96752 /* Applicable to UDP-style socket only */ 96735 /* Applicable to UDP-style socket only */
96753 if (sctp_style(sk, TCP)) 96736 if (sctp_style(sk, TCP))
96754 return -EOPNOTSUPP; 96737 return -EOPNOTSUPP;
96755@@ -4254,7 +4261,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv 96738@@ -4257,7 +4264,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
96756 len = sizeof(int); 96739 len = sizeof(int);
96757 if (put_user(len, optlen)) 96740 if (put_user(len, optlen))
96758 return -EFAULT; 96741 return -EFAULT;
@@ -96762,7 +96745,7 @@ index 6abb1ca..1678f8b 100644
96762 return -EFAULT; 96745 return -EFAULT;
96763 return 0; 96746 return 0;
96764 } 96747 }
96765@@ -4626,12 +4634,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len, 96748@@ -4629,12 +4637,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
96766 */ 96749 */
96767 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen) 96750 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
96768 { 96751 {
@@ -96779,7 +96762,7 @@ index 6abb1ca..1678f8b 100644
96779 return -EFAULT; 96762 return -EFAULT;
96780 return 0; 96763 return 0;
96781 } 96764 }
96782@@ -4672,6 +4683,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len, 96765@@ -4675,6 +4686,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
96783 addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; 96766 addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
96784 if (space_left < addrlen) 96767 if (space_left < addrlen)
96785 return -ENOMEM; 96768 return -ENOMEM;
@@ -97357,7 +97340,7 @@ index 62e4f9b..dd3f2d7 100644
97357 /* See if we can opportunistically reap SQ WR to make room */ 97340 /* See if we can opportunistically reap SQ WR to make room */
97358 sq_cq_reap(xprt); 97341 sq_cq_reap(xprt);
97359diff --git a/net/sysctl_net.c b/net/sysctl_net.c 97342diff --git a/net/sysctl_net.c b/net/sysctl_net.c
97360index 9bc6db0..47ac8c0 100644 97343index e7000be..e3b0ba7 100644
97361--- a/net/sysctl_net.c 97344--- a/net/sysctl_net.c
97362+++ b/net/sysctl_net.c 97345+++ b/net/sysctl_net.c
97363@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head, 97346@@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
@@ -97366,7 +97349,7 @@ index 9bc6db0..47ac8c0 100644
97366 /* Allow network administrator to have same access as root. */ 97349 /* Allow network administrator to have same access as root. */
97367- if (ns_capable(net->user_ns, CAP_NET_ADMIN) || 97350- if (ns_capable(net->user_ns, CAP_NET_ADMIN) ||
97368+ if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) || 97351+ if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) ||
97369 uid_eq(root_uid, current_uid())) { 97352 uid_eq(root_uid, current_euid())) {
97370 int mode = (table->mode >> 6) & 7; 97353 int mode = (table->mode >> 6) & 7;
97371 return (mode << 6) | (mode << 3) | mode; 97354 return (mode << 6) | (mode << 3) | mode;
97372diff --git a/net/tipc/link.c b/net/tipc/link.c 97355diff --git a/net/tipc/link.c b/net/tipc/link.c
diff --git a/main/linux-grsec/ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch b/main/linux-grsec/ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
deleted file mode 100644
index a98faca44e..0000000000
--- a/main/linux-grsec/ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch
+++ /dev/null
@@ -1,118 +0,0 @@
1From 2811ebac2521ceac84f2bdae402455baa6a7fb47 Mon Sep 17 00:00:00 2001
2From: Hannes Frederic Sowa <hannes@stressinduktion.org>
3Date: Sat, 21 Sep 2013 04:27:00 +0000
4Subject: ipv6: udp packets following an UFO enqueued packet need also be handled by UFO
5
6In the following scenario the socket is corked:
7If the first UDP packet is larger then the mtu we try to append it to the
8write queue via ip6_ufo_append_data. A following packet, which is smaller
9than the mtu would be appended to the already queued up gso-skb via
10plain ip6_append_data. This causes random memory corruptions.
11
12In ip6_ufo_append_data we also have to be careful to not queue up the
13same skb multiple times. So setup the gso frame only when no first skb
14is available.
15
16This also fixes a shortcoming where we add the current packet's length to
17cork->length but return early because of a packet > mtu with dontfrag set
18(instead of sutracting it again).
19
20Found with trinity.
21
22Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
23Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
24Reported-by: Dmitry Vyukov <dvyukov@google.com>
25Signed-off-by: David S. Miller <davem@davemloft.net>
26---
27diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
28index 3a692d5..a54c45c 100644
29--- a/net/ipv6/ip6_output.c
30+++ b/net/ipv6/ip6_output.c
31@@ -1015,6 +1015,8 @@ static inline int ip6_ufo_append_data(struct sock *sk,
32 * udp datagram
33 */
34 if ((skb = skb_peek_tail(&sk->sk_write_queue)) == NULL) {
35+ struct frag_hdr fhdr;
36+
37 skb = sock_alloc_send_skb(sk,
38 hh_len + fragheaderlen + transhdrlen + 20,
39 (flags & MSG_DONTWAIT), &err);
40@@ -1036,12 +1038,6 @@ static inline int ip6_ufo_append_data(struct sock *sk,
41 skb->protocol = htons(ETH_P_IPV6);
42 skb->ip_summed = CHECKSUM_PARTIAL;
43 skb->csum = 0;
44- }
45-
46- err = skb_append_datato_frags(sk,skb, getfrag, from,
47- (length - transhdrlen));
48- if (!err) {
49- struct frag_hdr fhdr;
50
51 /* Specify the length of each IPv6 datagram fragment.
52 * It has to be a multiple of 8.
53@@ -1052,15 +1048,10 @@ static inline int ip6_ufo_append_data(struct sock *sk,
54 ipv6_select_ident(&fhdr, rt);
55 skb_shinfo(skb)->ip6_frag_id = fhdr.identification;
56 __skb_queue_tail(&sk->sk_write_queue, skb);
57-
58- return 0;
59 }
60- /* There is not enough support do UPD LSO,
61- * so follow normal path
62- */
63- kfree_skb(skb);
64
65- return err;
66+ return skb_append_datato_frags(sk, skb, getfrag, from,
67+ (length - transhdrlen));
68 }
69
70 static inline struct ipv6_opt_hdr *ip6_opt_dup(struct ipv6_opt_hdr *src,
71@@ -1227,27 +1218,27 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
72 * --yoshfuji
73 */
74
75- cork->length += length;
76- if (length > mtu) {
77- int proto = sk->sk_protocol;
78- if (dontfrag && (proto == IPPROTO_UDP || proto == IPPROTO_RAW)){
79- ipv6_local_rxpmtu(sk, fl6, mtu-exthdrlen);
80- return -EMSGSIZE;
81- }
82-
83- if (proto == IPPROTO_UDP &&
84- (rt->dst.dev->features & NETIF_F_UFO)) {
85+ if ((length > mtu) && dontfrag && (sk->sk_protocol == IPPROTO_UDP ||
86+ sk->sk_protocol == IPPROTO_RAW)) {
87+ ipv6_local_rxpmtu(sk, fl6, mtu-exthdrlen);
88+ return -EMSGSIZE;
89+ }
90
91- err = ip6_ufo_append_data(sk, getfrag, from, length,
92- hh_len, fragheaderlen,
93- transhdrlen, mtu, flags, rt);
94- if (err)
95- goto error;
96- return 0;
97- }
98+ skb = skb_peek_tail(&sk->sk_write_queue);
99+ cork->length += length;
100+ if (((length > mtu) ||
101+ (skb && skb_is_gso(skb))) &&
102+ (sk->sk_protocol == IPPROTO_UDP) &&
103+ (rt->dst.dev->features & NETIF_F_UFO)) {
104+ err = ip6_ufo_append_data(sk, getfrag, from, length,
105+ hh_len, fragheaderlen,
106+ transhdrlen, mtu, flags, rt);
107+ if (err)
108+ goto error;
109+ return 0;
110 }
111
112- if ((skb = skb_peek_tail(&sk->sk_write_queue)) == NULL)
113+ if (!skb)
114 goto alloc_new_skb;
115
116 while (length > 0) {
117--
118cgit v0.9.2