diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-10-15 16:53:08 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-10-23 12:59:09 +0000 |
commit | d8ee0dcb189dc816442cce665f855cbf0d1c5821 (patch) | |
tree | 6dea815c064b2414c14a089c2770709223a99e30 | |
parent | 7766fa282ba06cf58345a603599f4860f18b3a4c (diff) | |
download | alpine_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/APKBUILD | 18 | ||||
-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.patch | 118 |
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 |
4 | pkgname=linux-${_flavor} | 4 | pkgname=linux-${_flavor} |
5 | pkgver=3.10.15 | 5 | pkgver=3.10.16 |
6 | case $pkgver in | 6 | case $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 | ||
153 | md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz | 152 | md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz |
154 | 70cc9bd12b04382c3783da96edda4562 patch-3.10.15.xz | 153 | 029a48f796bcf8c36fad09cfe689be5a patch-3.10.16.xz |
155 | 84a82b973a08abc43cbf74a8935c59ae grsecurity-2.9.1-3.10.15-unofficial.patch | 154 | b2c8994b3b2fa2a2da739f8c78d60fee grsecurity-2.9.1-3.10.16-unofficial.patch |
156 | a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch | 155 | a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch |
157 | 656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch | 156 | 656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch |
158 | aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch | 157 | aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch |
@@ -160,12 +159,11 @@ aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-p | |||
160 | 6ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch | 159 | 6ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch |
161 | 1a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch | 160 | 1a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch |
162 | c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch | 161 | c6a4ae7e8ca6159e1631545515805216 fix-memory-map-for-PIE-applications.patch |
163 | bbb9f3edd60fd5c53ac98f4eab83641c ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch | ||
164 | 866e6c4daed45d563829804f8ad50ed9 kernelconfig.x86 | 162 | 866e6c4daed45d563829804f8ad50ed9 kernelconfig.x86 |
165 | 272aaddd0a19a5052208bc25551995a3 kernelconfig.x86_64" | 163 | 272aaddd0a19a5052208bc25551995a3 kernelconfig.x86_64" |
166 | sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz | 164 | sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz |
167 | bb0108609a95ddfe5030938e45ad123445af4e29510a0b1bd8cede89de8c013b patch-3.10.15.xz | 165 | 115e02fe0a38eefdb1e4b1fa5e5878cb6b007db08e18901c2c4fb20a279790f4 patch-3.10.16.xz |
168 | 02736977e0abd475ba3c463b381186d306fd2f6c264968c47c685f0fce08c820 grsecurity-2.9.1-3.10.15-unofficial.patch | 166 | 89beaae3759cc53a3b061e48bbcdfaf53d7333959c6a22090aaf40eaf540e2e0 grsecurity-2.9.1-3.10.16-unofficial.patch |
169 | 6af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch | 167 | 6af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch |
170 | dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch | 168 | dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch |
171 | 0985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch | 169 | 0985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch |
@@ -173,12 +171,11 @@ dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush | |||
173 | ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch | 171 | ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch |
174 | fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch | 172 | fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch |
175 | 500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch | 173 | 500f3577310be52e87b9fecdc2e9c4ca43210fd97d69089f9005d484563f74c7 fix-memory-map-for-PIE-applications.patch |
176 | 4e2ac6cf0b5f6ef4c2f468aedb3f4b7a2737ef3abef4cf712492ba5daec4b30d ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch | ||
177 | 7fd28634998ef1fddafed5f2516e902924245d2464b9e86476bfaa55ccfc3bc3 kernelconfig.x86 | 174 | 7fd28634998ef1fddafed5f2516e902924245d2464b9e86476bfaa55ccfc3bc3 kernelconfig.x86 |
178 | f2843ae4f9b3e3c27f3138ce4b740c2803bdab0c7a910c662d951843803b9554 kernelconfig.x86_64" | 175 | f2843ae4f9b3e3c27f3138ce4b740c2803bdab0c7a910c662d951843803b9554 kernelconfig.x86_64" |
179 | sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz | 176 | sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz |
180 | 41f612dc912df68a69bb44343748be5c7b3c1525654890a1d896f466ef6aa22d35343f59a2c4319cde1858a6407f9366817c762670dd711d9ff2890291fa60cc patch-3.10.15.xz | 177 | 34cf05008f8992b7cd4d4f34b13a6a55df75ce53328eef10119069f5b60e89fce18d786bdf47ed60083535917e8113a4b0da66530b9b783cfef271b433c0f58b patch-3.10.16.xz |
181 | 7838f4f43c1259d587979255a403b17be26d687aac91d43084417057267fd12643e99beccfbe21f22ed3d423080d9cdd7086598c8cc7e922ddae1024ce1f8005 grsecurity-2.9.1-3.10.15-unofficial.patch | 178 | 474ea9a25e1356772b079db354108dd14755853f89003996af0482a1a21b83a6e592167a7e4e456afd33d4bddef5f2165f38c0e5b2ec5c0a2dec53a8ebd7c6e9 grsecurity-2.9.1-3.10.16-unofficial.patch |
182 | 81e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch | 179 | 81e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch |
183 | 51ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch | 180 | 51ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch |
184 | 57d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch | 181 | 57d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch |
@@ -186,6 +183,5 @@ d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d71 | |||
186 | 28a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch | 183 | 28a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch |
187 | 249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch | 184 | 249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch |
188 | 4665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch | 185 | 4665c56ae1bbac311f9205d64918e84ee8b01d47d6e2396ff6b8adfb10aada7f7254531ce62e31edbb65c2a54a830f09ad05d314dfcd75d6272f4068945ad7c7 fix-memory-map-for-PIE-applications.patch |
189 | 39fc019ac5ea5ada03c29846f22ddab0735e288bb3ad8d2109628e5d77d24bd09e6972eea6ee912768391399efe069e77c0e53b8a22329328bcc51f09f963f05 ipv6-udp-packets-following-an-UFO-enqueued-packet-needs-al.patch | ||
190 | 1721542ff111c8ec550323dae6f6174131db180668cbf14f01dc4c76ffbbb479715919a80c35d8c8ac22a6479dd3b42700be6ddc5ef2a8b6a62de811c7ae86df kernelconfig.x86 | 186 | 1721542ff111c8ec550323dae6f6174131db180668cbf14f01dc4c76ffbbb479715919a80c35d8c8ac22a6479dd3b42700be6ddc5ef2a8b6a62de811c7ae86df kernelconfig.x86 |
191 | d49bf57bd0aae17d762d87d5bf983e48219d71ca44bc0c3120db94d357192c07146a8938cef9d435218e4bb748691ec426387545837be637d47e45cdc4482d71 kernelconfig.x86_64" | 187 | d49bf57bd0aae17d762d87d5bf983e48219d71ca44bc0c3120db94d357192c07146a8938cef9d435218e4bb748691ec426387545837be637d47e45cdc4482d71 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] |
283 | diff --git a/Makefile b/Makefile | 283 | diff --git a/Makefile b/Makefile |
284 | index 9a77179..052a254 100644 | 284 | index 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]); |
8224 | diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c | 8224 | diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c |
8225 | index e68a845..8b140e6 100644 | 8225 | index 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 | ||
9606 | diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c | 9606 | diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c |
9607 | index 5ef48da..11d460f 100644 | 9607 | index 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 | } |
9986 | diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S | 9986 | diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S |
9987 | index 22a1098..6255eb9 100644 | 9987 | index 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) |
10502 | diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c | 10502 | diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c |
10503 | index 0c4e35e..745d3e4 100644 | 10503 | index 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); |
36420 | diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c | 36420 | diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c |
36421 | index 62b6c2c..4a11354 100644 | 36421 | index 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; |
36560 | diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c | 36551 | diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c |
36561 | index 639d26b..fd6ad1f 100644 | 36552 | index 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), |
39931 | diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c | 39914 | diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c |
39932 | index ca959cf..f6c5f7d 100644 | 39915 | index 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; |
40019 | diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c | 40002 | diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c |
40020 | index fc307e0..2b255e8 100644 | 40003 | index 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 | ||
43646 | diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c | 43629 | diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c |
43647 | index 666cf3a..60693be 100644 | 43630 | index 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); |
43987 | diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c | 43970 | diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c |
43988 | index 393f961..d343034 100644 | 43971 | index 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 | ||
44203 | diff --git a/drivers/net/tun.c b/drivers/net/tun.c | 44186 | diff --git a/drivers/net/tun.c b/drivers/net/tun.c |
44204 | index 7b54f4f..1a453eb 100644 | 44187 | index 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)) { |
52797 | diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c | 52780 | diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c |
52798 | index f8a0b0e..6f036ed 100644 | 52781 | index 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(¤t->mm->mmap_sem); | 53429 | + down_write(¤t->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 */ |
78514 | diff --git a/include/net/ip.h b/include/net/ip.h | 78497 | diff --git a/include/net/ip.h b/include/net/ip.h |
78515 | index a68f838..74518ab 100644 | 78498 | index 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(); |
84659 | diff --git a/kernel/softirq.c b/kernel/softirq.c | 84642 | diff --git a/kernel/softirq.c b/kernel/softirq.c |
84660 | index 3d6833f..da6d93d 100644 | 84643 | index 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 | ||
88015 | diff --git a/mm/migrate.c b/mm/migrate.c | 87998 | diff --git a/mm/migrate.c b/mm/migrate.c |
88016 | index 6f0c244..6d1ae32 100644 | 87999 | index 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 |
92004 | diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c | 91987 | diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c |
92005 | index ace5e55..a65a1c0 100644 | 91988 | index 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 | } |
92202 | diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c | 92185 | diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c |
92203 | index 2bd4b58..0dc30a1 100644 | 92186 | index 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 | } |
92746 | diff --git a/net/core/netpoll.c b/net/core/netpoll.c | 92729 | diff --git a/net/core/netpoll.c b/net/core/netpoll.c |
92747 | index cec074b..a53a938 100644 | 92730 | index 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; |
93135 | diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c | 93118 | diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c |
93136 | index d01be2a..8976537 100644 | 93119 | index 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) { |
93352 | diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c | 93335 | diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c |
93353 | index 000e3d2..5472da3 100644 | 93336 | index 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) |
93671 | diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c | 93654 | diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c |
93672 | index 61e60d6..d6996cd 100644 | 93655 | index 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 | } |
94245 | diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c | 94228 | diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c |
94246 | index d3057f9..80a31d8 100644 | 94229 | index 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), |
94329 | diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c | 94312 | diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c |
94330 | index ecd6073..58162ae 100644 | 94313 | index 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, |
94369 | diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c | 94352 | diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c |
94370 | index 1e55866..b398dab 100644 | 94353 | index 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), |
94676 | diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c | 94659 | diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c |
94677 | index 60df36d..f3ab7c8 100644 | 94660 | index 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 | /* |
95446 | diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c | 95429 | diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c |
95447 | index b75ff64..0c51bbe 100644 | 95430 | index 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); |
96608 | diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c | 96591 | diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c |
96609 | index 391a245..296b3d7 100644 | 96592 | index 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, |
96709 | diff --git a/net/sctp/socket.c b/net/sctp/socket.c | 96692 | diff --git a/net/sctp/socket.c b/net/sctp/socket.c |
96710 | index 6abb1ca..1678f8b 100644 | 96693 | index 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); |
97359 | diff --git a/net/sysctl_net.c b/net/sysctl_net.c | 97342 | diff --git a/net/sysctl_net.c b/net/sysctl_net.c |
97360 | index 9bc6db0..47ac8c0 100644 | 97343 | index 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; |
97372 | diff --git a/net/tipc/link.c b/net/tipc/link.c | 97355 | diff --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 @@ | |||
1 | From 2811ebac2521ceac84f2bdae402455baa6a7fb47 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hannes Frederic Sowa <hannes@stressinduktion.org> | ||
3 | Date: Sat, 21 Sep 2013 04:27:00 +0000 | ||
4 | Subject: ipv6: udp packets following an UFO enqueued packet need also be handled by UFO | ||
5 | |||
6 | In the following scenario the socket is corked: | ||
7 | If the first UDP packet is larger then the mtu we try to append it to the | ||
8 | write queue via ip6_ufo_append_data. A following packet, which is smaller | ||
9 | than the mtu would be appended to the already queued up gso-skb via | ||
10 | plain ip6_append_data. This causes random memory corruptions. | ||
11 | |||
12 | In ip6_ufo_append_data we also have to be careful to not queue up the | ||
13 | same skb multiple times. So setup the gso frame only when no first skb | ||
14 | is available. | ||
15 | |||
16 | This also fixes a shortcoming where we add the current packet's length to | ||
17 | cork->length but return early because of a packet > mtu with dontfrag set | ||
18 | (instead of sutracting it again). | ||
19 | |||
20 | Found with trinity. | ||
21 | |||
22 | Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | ||
23 | Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> | ||
24 | Reported-by: Dmitry Vyukov <dvyukov@google.com> | ||
25 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
26 | --- | ||
27 | diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c | ||
28 | index 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 | -- | ||
118 | cgit v0.9.2 | ||