aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-08-05 10:28:35 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2013-08-07 06:56:15 +0000
commite528c1f10f6151dec8c1d84f8bfe1f736e5426fa (patch)
treebae72bd6e3c40c25a97e7634a88d8733203610a2
parent02a182fc23f4769efbaa25d93b76d4ddc944f22b (diff)
downloadalpine_aports-e528c1f10f6151dec8c1d84f8bfe1f736e5426fa.tar.bz2
alpine_aports-e528c1f10f6151dec8c1d84f8bfe1f736e5426fa.tar.xz
alpine_aports-e528c1f10f6151dec8c1d84f8bfe1f736e5426fa.zip
main/linux-grsec: upgrade to 3.10.4
(cherry picked from commit 46a1495797a89ae9d3f767848f334ae0b2c633ce)
-rw-r--r--main/linux-grsec/APKBUILD36
-rw-r--r--main/linux-grsec/grsecurity-2.9.1-3.10.4-201308030031.patch (renamed from main/linux-grsec/grsecurity-2.9.1-3.9.11-unofficial-2.patch)13060
-rw-r--r--main/linux-grsec/kernelconfig.x86199
-rw-r--r--main/linux-grsec/kernelconfig.x86_64206
4 files changed, 6465 insertions, 7036 deletions
diff --git a/main/linux-grsec/APKBUILD b/main/linux-grsec/APKBUILD
index fd772985c0..15a08e86df 100644
--- a/main/linux-grsec/APKBUILD
+++ b/main/linux-grsec/APKBUILD
@@ -2,12 +2,12 @@
2 2
3_flavor=grsec 3_flavor=grsec
4pkgname=linux-${_flavor} 4pkgname=linux-${_flavor}
5pkgver=3.9.11 5pkgver=3.10.4
6case $pkgver in 6case $pkgver in
7*.*.*) _kernver=${pkgver%.*};; 7*.*.*) _kernver=${pkgver%.*};;
8*.*) _kernver=${pkgver};; 8*.*) _kernver=${pkgver};;
9esac 9esac
10pkgrel=2 10pkgrel=0
11pkgdesc="Linux kernel with grsecurity" 11pkgdesc="Linux kernel with grsecurity"
12url=http://grsecurity.net 12url=http://grsecurity.net
13depends="mkinitfs linux-firmware" 13depends="mkinitfs linux-firmware"
@@ -17,7 +17,7 @@ _config=${config:-kernelconfig.${CARCH}}
17install= 17install=
18source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz 18source="http://ftp.kernel.org/pub/linux/kernel/v3.x/linux-$_kernver.tar.xz
19 http://ftp.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.xz 19 http://ftp.kernel.org/pub/linux/kernel/v3.x/patch-$pkgver.xz
20 grsecurity-2.9.1-3.9.11-unofficial-2.patch 20 grsecurity-2.9.1-3.10.4-201308030031.patch
21 21
22 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 22 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
23 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 23 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
@@ -148,36 +148,36 @@ dev() {
148 "$subpkgdir"/lib/modules/${_abi_release}/build 148 "$subpkgdir"/lib/modules/${_abi_release}/build
149} 149}
150 150
151md5sums="4348c9b6b2eb3144d601e87c19d5d909 linux-3.9.tar.xz 151md5sums="4f25cd5bec5f8d5a7d935b3f2ccb8481 linux-3.10.tar.xz
152552146435b7ecc414bf8e3cd8bb6ac4a patch-3.9.11.xz 1522e46ab138670b3171b52b849568cb42f patch-3.10.4.xz
153808e4e5dd176692d62ccfbf5988a88fa grsecurity-2.9.1-3.9.11-unofficial-2.patch 15362bb9b34f874425600ada2817ddf23b6 grsecurity-2.9.1-3.10.4-201308030031.patch
154a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 154a16f11b12381efb3bec79b9bfb329836 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
155656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 155656ae7b10dd2f18dbfa1011041d08d60 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
156aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 156aa454ffb96428586447775c21449e284 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
1572a12a3717052e878c0cd42aa935bfcf4 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch 1572a12a3717052e878c0cd42aa935bfcf4 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
1586ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 1586ce5fed63aad3f1a1ff1b9ba7b741822 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
1591a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 1591a5800a2122ba0cc0d06733cb3bb8b8f 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
160d89089b3c7eb94dd9f65cf8a357fc36d kernelconfig.x86 1601a111abaeb381bf47d9e979a85fba2ee kernelconfig.x86
161eb147f09fef5996a488c247790205cd6 kernelconfig.x86_64" 1611312267644d0c729bd7c7af979b29c8d kernelconfig.x86_64"
162sha256sums="60bc3e64ee5dc778de2cd7cd7640abf518a4c9d4f31b8ed624e16fad53f54541 linux-3.9.tar.xz 162sha256sums="df27fa92d27a9c410bfe6c4a89f141638500d7eadcca5cce578954efc2ad3544 linux-3.10.tar.xz
16329be11d16ef152ae1858d567cbf45f0da0193adf364826f5e3fa8b2fcd839682 patch-3.9.11.xz 163d8ef39930663cc916e57e06b308a1654f2a03903a3c5a0d3a5503c6d58e2b2b8 patch-3.10.4.xz
164bd672d212020b5a7a00b3e0f6df39efbba6d0a1cbad88e0bf65cbaf8f8045204 grsecurity-2.9.1-3.9.11-unofficial-2.patch 1643acf56b31b85298c56cee026fd01f3b0643c44743bd61476db85f15d9209c72b grsecurity-2.9.1-3.10.4-201308030031.patch
1656af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 1656af3757ac36a6cd3cda7b0a71b08143726383b19261294a569ad7f4042c72df3 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
166dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 166dc8e82108615657f1fb9d641efd42255a5761c06edde1b00a41ae0d314d548f0 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
1670985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 1670985caa0f3ee8ed0959aeaa4214f5f8057ae8e61d50dcae39194912d31e14892 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
168260fd1807838b68305a96992bf7d3302a2a8ef3a3b08fe079ba9a07e6422f736 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch 168260fd1807838b68305a96992bf7d3302a2a8ef3a3b08fe079ba9a07e6422f736 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
169ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 169ae32bb72afa170e6c3788c564b342763aba5945afacc1e2ebfc096adf50d77a3 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
170fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 170fc613ac466610b866b721c41836fd5bfb2d4b75bceb67972dc6369d7f62ff47e 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
171de3c17420664ae4e52826c6e602aade0deeae94f72253f85b3e48771491ed5d6 kernelconfig.x86 1711ef74cf3703dd26201970a2d9f043fed7e03ad2540a20f810cec8add93f81ccd kernelconfig.x86
172e1cce320f207cc2ba72b9d154c7060c8cbed52c664319dfd21f24e8956d0bf3e kernelconfig.x86_64" 1721c4b4a74d982fdc8d3baddcdaa674ae4b4a3390daba024fca55e85604af74507 kernelconfig.x86_64"
173sha512sums="77fa521f42380409f8ab400c26f7b00e225cb075ef40834bb263325cfdcc3e65aef8511ec2fc2b50bbf4f50e226fb5ab07d7a479aaf09162adbbf318325d0790 linux-3.9.tar.xz 173sha512sums="5fb109fcbd59bf3dffc911b853894f0a84afa75151368f783a1252c5ff60c7a1504de216c0012be446df983e2dea400ad8eeed3ce04f24dc61d0ef76c174dc35 linux-3.10.tar.xz
174c3a0be102d816ae06d7dfdd2738915fc2114cb9bb488b03b34e4f52f2367dcba4d8cb8ba203687bf694c2dcad36d70bb9d3121ac739a28e2c7fb2c44f08a9c71 patch-3.9.11.xz 174382adb3faf7feda6c5dd8f401c0ad0a2dbbc62e33d5f85d4181a56567abdec3be5b5279d35829a3a9a53a54949ea10de3f31c4256eba1f132fda79197af46819 patch-3.10.4.xz
175730e24dffc70250945d873358a2fbe19f1c9249befeaba6e53ce8c1b4ebb19583d51d6a437b6d9a39b705f48001f4a645f92560ef6b4db88ee8fbf9f17bafd41 grsecurity-2.9.1-3.9.11-unofficial-2.patch 175e39d89f2c5e20e642488234a7a0967f8f46239e267eb73a1ab2375b4cf58528ebb239e4a47a102b674e0deb7b0aa713a1d037f97a47a77f87dcca8217ffe00ad grsecurity-2.9.1-3.10.4-201308030031.patch
17681e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch 17681e78593288e8b0fd2c03ea9fc1450323887707f087e911f172450a122bc9b591ee83394836789730d951aeec13d0b75a64e1c05f04364abf8f80d883ddc4a02 0001-net-inform-NETDEV_CHANGE-callbacks-which-flags-were-.patch
17751ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch 17751ecb15b669f6a82940a13a38939116e003bf5dfd24496771c8279e907b72adcc63d607f0340a2940d757e12ddadb7d45c7af78ae311d284935a6296dbcac00c 0002-arp-flush-arp-cache-on-IFF_NOARP-change.patch
17857d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch 17857d0a8bd35d19cf657ded58efe24517d2252aec6984040713ba173a34edb5887ececaa2985076bc6a149eaa57639fd98a042c1c2d226ed4ad8dd5ed0e230717e 0003-ipv4-properly-refresh-rtable-entries-on-pmtu-redirec.patch
179d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d711e3486628ed56ab996484e219d79ac4b0c0ec684ebd380aa 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch 179d2f578ad1d6e1fe52b55863e5bf338ae8201b828a498ec3e42e549c55295d3d1c6c3adfa9e226d711e3486628ed56ab996484e219d79ac4b0c0ec684ebd380aa 0004-ipv4-rate-limit-updating-of-next-hop-exceptions-with.patch
18028a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch 18028a33e644bf2faf99c8dd6dbccfe14e140dfdd8824a8fb2d58aa7deb9e572f130d92b6b35ee181084050d82166bdf2e498a451a2a538a67b7ab84204405d2d87 0005-ipv4-use-separate-genid-for-next-hop-exceptions.patch
181249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch 181249140374c19a5599876268ff5b3cda2e136681aee103b4a9fff5d7d346f8e3295a907fb43db0701b8a9fece64c299ad2abac0434259cce6631307ce84090205 0006-ipv4-use-next-hop-exceptions-also-for-input-routes.patch
182c51ac429c3e811976318a7ca2a4f7fc48bcf290e885ceeb09a1a56ee32c37b673f6e789789cf36876747bd54e4dc55d340ad888ba0eb8e7f45f60e8ef7ea67b4 kernelconfig.x86 1825d2057cb27362175d85cbe1b79586a3daaa16c1b36baa0bf433b594a85284a02460b28e90ee9dc3f5a8c973a7e8316e0be83099a40a039913e6f1c7036570196 kernelconfig.x86
183584e778f96a05388051b05eb6f1c20377bc8aad72d0cd678323af7aaaab85ecc992244fe6bf3f27ab88131903490fd8af3c3fb56062490dd90dca1ba91d4da21 kernelconfig.x86_64" 18389b5fe8a4930ef19deb00e18bb8a4ae4c87105bcf29b7e15c677f7e6a4d2618bb5c378da485aed573b5a2342e0cdff4d0ceae60f2b89cde603988de9f3c36929 kernelconfig.x86_64"
diff --git a/main/linux-grsec/grsecurity-2.9.1-3.9.11-unofficial-2.patch b/main/linux-grsec/grsecurity-2.9.1-3.10.4-201308030031.patch
index cb0d943df0..9cf4026039 100644
--- a/main/linux-grsec/grsecurity-2.9.1-3.9.11-unofficial-2.patch
+++ b/main/linux-grsec/grsecurity-2.9.1-3.10.4-201308030031.patch
@@ -229,10 +229,10 @@ index b89a739..79768fb 100644
229+zconf.lex.c 229+zconf.lex.c
230 zoffset.h 230 zoffset.h
231diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt 231diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
232index 8ccbf27..afffeb4 100644 232index 2fe6e76..df58221 100644
233--- a/Documentation/kernel-parameters.txt 233--- a/Documentation/kernel-parameters.txt
234+++ b/Documentation/kernel-parameters.txt 234+++ b/Documentation/kernel-parameters.txt
235@@ -948,6 +948,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. 235@@ -976,6 +976,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
236 Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0. 236 Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
237 Default: 1024 237 Default: 1024
238 238
@@ -243,7 +243,7 @@ index 8ccbf27..afffeb4 100644
243 hashdist= [KNL,NUMA] Large hashes allocated during boot 243 hashdist= [KNL,NUMA] Large hashes allocated during boot
244 are distributed across NUMA nodes. Defaults on 244 are distributed across NUMA nodes. Defaults on
245 for 64-bit NUMA, off otherwise. 245 for 64-bit NUMA, off otherwise.
246@@ -2147,6 +2151,18 @@ bytes respectively. Such letter suffixes can also be entirely omitted. 246@@ -2195,6 +2199,22 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
247 the specified number of seconds. This is to be used if 247 the specified number of seconds. This is to be used if
248 your oopses keep scrolling off the screen. 248 your oopses keep scrolling off the screen.
249 249
@@ -252,6 +252,10 @@ index 8ccbf27..afffeb4 100644
252+ expand down segment used by UDEREF on X86-32 or the frequent 252+ expand down segment used by UDEREF on X86-32 or the frequent
253+ page table updates on X86-64. 253+ page table updates on X86-64.
254+ 254+
255+ pax_sanitize_slab=
256+ 0/1 to disable/enable slab object sanitization (enabled by
257+ default).
258+
255+ pax_softmode= 0/1 to disable/enable PaX softmode on boot already. 259+ pax_softmode= 0/1 to disable/enable PaX softmode on boot already.
256+ 260+
257+ pax_extra_latent_entropy 261+ pax_extra_latent_entropy
@@ -263,7 +267,7 @@ index 8ccbf27..afffeb4 100644
263 267
264 pcd. [PARIDE] 268 pcd. [PARIDE]
265diff --git a/Makefile b/Makefile 269diff --git a/Makefile b/Makefile
266index ad368cd..96b21c3 100644 270index b4df9b2..256e7cc 100644
267--- a/Makefile 271--- a/Makefile
268+++ b/Makefile 272+++ b/Makefile
269@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ 273@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
@@ -364,7 +368,7 @@ index ad368cd..96b21c3 100644
364 368
365 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \ 369 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
366 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ 370 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
367@@ -780,6 +840,8 @@ endif 371@@ -782,6 +842,8 @@ endif
368 372
369 # The actual objects are generated when descending, 373 # The actual objects are generated when descending,
370 # make sure no implicit rule kicks in 374 # make sure no implicit rule kicks in
@@ -373,7 +377,7 @@ index ad368cd..96b21c3 100644
373 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; 377 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
374 378
375 # Handle descending into subdirectories listed in $(vmlinux-dirs) 379 # Handle descending into subdirectories listed in $(vmlinux-dirs)
376@@ -789,7 +851,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ; 380@@ -791,7 +853,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
377 # Error messages still appears in the original language 381 # Error messages still appears in the original language
378 382
379 PHONY += $(vmlinux-dirs) 383 PHONY += $(vmlinux-dirs)
@@ -382,7 +386,7 @@ index ad368cd..96b21c3 100644
382 $(Q)$(MAKE) $(build)=$@ 386 $(Q)$(MAKE) $(build)=$@
383 387
384 # Store (new) KERNELRELASE string in include/config/kernel.release 388 # Store (new) KERNELRELASE string in include/config/kernel.release
385@@ -833,6 +895,7 @@ prepare0: archprepare FORCE 389@@ -835,6 +897,7 @@ prepare0: archprepare FORCE
386 $(Q)$(MAKE) $(build)=. 390 $(Q)$(MAKE) $(build)=.
387 391
388 # All the preparing.. 392 # All the preparing..
@@ -390,7 +394,7 @@ index ad368cd..96b21c3 100644
390 prepare: prepare0 394 prepare: prepare0
391 395
392 # Generate some files 396 # Generate some files
393@@ -940,6 +1003,8 @@ all: modules 397@@ -942,6 +1005,8 @@ all: modules
394 # using awk while concatenating to the final file. 398 # using awk while concatenating to the final file.
395 399
396 PHONY += modules 400 PHONY += modules
@@ -399,7 +403,7 @@ index ad368cd..96b21c3 100644
399 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin 403 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
400 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order 404 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
401 @$(kecho) ' Building modules, stage 2.'; 405 @$(kecho) ' Building modules, stage 2.';
402@@ -955,7 +1020,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin) 406@@ -957,7 +1022,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
403 407
404 # Target to prepare building external modules 408 # Target to prepare building external modules
405 PHONY += modules_prepare 409 PHONY += modules_prepare
@@ -408,7 +412,7 @@ index ad368cd..96b21c3 100644
408 412
409 # Target to install modules 413 # Target to install modules
410 PHONY += modules_install 414 PHONY += modules_install
411@@ -1021,7 +1086,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \ 415@@ -1023,7 +1088,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
412 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \ 416 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
413 signing_key.priv signing_key.x509 x509.genkey \ 417 signing_key.priv signing_key.x509 x509.genkey \
414 extra_certificates signing_key.x509.keyid \ 418 extra_certificates signing_key.x509.keyid \
@@ -417,7 +421,7 @@ index ad368cd..96b21c3 100644
417 421
418 # clean - Delete most, but leave enough to build external modules 422 # clean - Delete most, but leave enough to build external modules
419 # 423 #
420@@ -1061,6 +1126,7 @@ distclean: mrproper 424@@ -1063,6 +1128,7 @@ distclean: mrproper
421 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \ 425 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
422 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ 426 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
423 -o -name '.*.rej' \ 427 -o -name '.*.rej' \
@@ -425,7 +429,7 @@ index ad368cd..96b21c3 100644
425 -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ 429 -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
426 -type f -print | xargs rm -f 430 -type f -print | xargs rm -f
427 431
428@@ -1221,6 +1287,8 @@ PHONY += $(module-dirs) modules 432@@ -1223,6 +1289,8 @@ PHONY += $(module-dirs) modules
429 $(module-dirs): crmodverdir $(objtree)/Module.symvers 433 $(module-dirs): crmodverdir $(objtree)/Module.symvers
430 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@) 434 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
431 435
@@ -434,7 +438,7 @@ index ad368cd..96b21c3 100644
434 modules: $(module-dirs) 438 modules: $(module-dirs)
435 @$(kecho) ' Building modules, stage 2.'; 439 @$(kecho) ' Building modules, stage 2.';
436 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost 440 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
437@@ -1357,17 +1425,21 @@ else 441@@ -1359,17 +1427,21 @@ else
438 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@)) 442 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
439 endif 443 endif
440 444
@@ -460,7 +464,7 @@ index ad368cd..96b21c3 100644
460 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 464 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
461 %.symtypes: %.c prepare scripts FORCE 465 %.symtypes: %.c prepare scripts FORCE
462 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@) 466 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
463@@ -1377,11 +1449,15 @@ endif 467@@ -1379,11 +1451,15 @@ endif
464 $(cmd_crmodverdir) 468 $(cmd_crmodverdir)
465 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \ 469 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
466 $(build)=$(build-dir) 470 $(build)=$(build-dir)
@@ -811,10 +815,10 @@ index 0c4132d..88f0d53 100644
811 /* Allow reads even for write-only mappings */ 815 /* Allow reads even for write-only mappings */
812 if (!(vma->vm_flags & (VM_READ | VM_WRITE))) 816 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
813diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig 817diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
814index 70cd012..71b82cd 100644 818index 136f263..f471277 100644
815--- a/arch/arm/Kconfig 819--- a/arch/arm/Kconfig
816+++ b/arch/arm/Kconfig 820+++ b/arch/arm/Kconfig
817@@ -1860,7 +1860,7 @@ config ALIGNMENT_TRAP 821@@ -1766,7 +1766,7 @@ config ALIGNMENT_TRAP
818 822
819 config UACCESS_WITH_MEMCPY 823 config UACCESS_WITH_MEMCPY
820 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()" 824 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
@@ -824,7 +828,7 @@ index 70cd012..71b82cd 100644
824 help 828 help
825 Implement faster copy_to_user and clear_user methods for CPU 829 Implement faster copy_to_user and clear_user methods for CPU
826diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h 830diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
827index c79f61f..9ac0642 100644 831index da1c77d..2ee6056 100644
828--- a/arch/arm/include/asm/atomic.h 832--- a/arch/arm/include/asm/atomic.h
829+++ b/arch/arm/include/asm/atomic.h 833+++ b/arch/arm/include/asm/atomic.h
830@@ -17,17 +17,35 @@ 834@@ -17,17 +17,35 @@
@@ -1129,8 +1133,44 @@ index c79f61f..9ac0642 100644
1129+ 1133+
1130 #define ATOMIC64_INIT(i) { (i) } 1134 #define ATOMIC64_INIT(i) { (i) }
1131 1135
1136 #ifdef CONFIG_ARM_LPAE
1137@@ -257,6 +452,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
1138 return result;
1139 }
1140
1141+static inline u64 atomic64_read_unchecked(const atomic64_unchecked_t *v)
1142+{
1143+ u64 result;
1144+
1145+ __asm__ __volatile__("@ atomic64_read_unchecked\n"
1146+" ldrd %0, %H0, [%1]"
1147+ : "=&r" (result)
1148+ : "r" (&v->counter), "Qo" (v->counter)
1149+ );
1150+
1151+ return result;
1152+}
1153+
1154 static inline void atomic64_set(atomic64_t *v, u64 i)
1155 {
1156 __asm__ __volatile__("@ atomic64_set\n"
1157@@ -265,6 +473,15 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
1158 : "r" (&v->counter), "r" (i)
1159 );
1160 }
1161+
1162+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
1163+{
1164+ __asm__ __volatile__("@ atomic64_set_unchecked\n"
1165+" strd %2, %H2, [%1]"
1166+ : "=Qo" (v->counter)
1167+ : "r" (&v->counter), "r" (i)
1168+ );
1169+}
1170 #else
1132 static inline u64 atomic64_read(const atomic64_t *v) 1171 static inline u64 atomic64_read(const atomic64_t *v)
1133@@ -256,6 +451,19 @@ static inline u64 atomic64_read(const atomic64_t *v) 1172 {
1173@@ -279,6 +496,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
1134 return result; 1174 return result;
1135 } 1175 }
1136 1176
@@ -1150,10 +1190,11 @@ index c79f61f..9ac0642 100644
1150 static inline void atomic64_set(atomic64_t *v, u64 i) 1190 static inline void atomic64_set(atomic64_t *v, u64 i)
1151 { 1191 {
1152 u64 tmp; 1192 u64 tmp;
1153@@ -270,6 +478,20 @@ static inline void atomic64_set(atomic64_t *v, u64 i) 1193@@ -292,6 +522,21 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
1194 : "r" (&v->counter), "r" (i)
1154 : "cc"); 1195 : "cc");
1155 } 1196 }
1156 1197+
1157+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i) 1198+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
1158+{ 1199+{
1159+ u64 tmp; 1200+ u64 tmp;
@@ -1168,10 +1209,10 @@ index c79f61f..9ac0642 100644
1168+ : "cc"); 1209+ : "cc");
1169+} 1210+}
1170+ 1211+
1212 #endif
1213
1171 static inline void atomic64_add(u64 i, atomic64_t *v) 1214 static inline void atomic64_add(u64 i, atomic64_t *v)
1172 { 1215@@ -302,6 +547,36 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
1173 u64 result;
1174@@ -278,6 +500,36 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
1175 __asm__ __volatile__("@ atomic64_add\n" 1216 __asm__ __volatile__("@ atomic64_add\n"
1176 "1: ldrexd %0, %H0, [%3]\n" 1217 "1: ldrexd %0, %H0, [%3]\n"
1177 " adds %0, %0, %4\n" 1218 " adds %0, %0, %4\n"
@@ -1208,15 +1249,17 @@ index c79f61f..9ac0642 100644
1208 " adc %H0, %H0, %H4\n" 1249 " adc %H0, %H0, %H4\n"
1209 " strexd %1, %0, %H0, [%3]\n" 1250 " strexd %1, %0, %H0, [%3]\n"
1210 " teq %1, #0\n" 1251 " teq %1, #0\n"
1211@@ -289,12 +541,49 @@ static inline void atomic64_add(u64 i, atomic64_t *v) 1252@@ -313,12 +588,49 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
1212 1253
1213 static inline u64 atomic64_add_return(u64 i, atomic64_t *v) 1254 static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
1214 { 1255 {
1256- u64 result;
1257- unsigned long tmp;
1215+ u64 result, tmp; 1258+ u64 result, tmp;
1216+ 1259
1217+ smp_mb(); 1260 smp_mb();
1218+ 1261
1219+ __asm__ __volatile__("@ atomic64_add_return\n" 1262 __asm__ __volatile__("@ atomic64_add_return\n"
1220+"1: ldrexd %1, %H1, [%3]\n" 1263+"1: ldrexd %1, %H1, [%3]\n"
1221+" adds %0, %1, %4\n" 1264+" adds %0, %1, %4\n"
1222+" adcs %H0, %H1, %H4\n" 1265+" adcs %H0, %H1, %H4\n"
@@ -1249,21 +1292,19 @@ index c79f61f..9ac0642 100644
1249+ 1292+
1250+static inline u64 atomic64_add_return_unchecked(u64 i, atomic64_unchecked_t *v) 1293+static inline u64 atomic64_add_return_unchecked(u64 i, atomic64_unchecked_t *v)
1251+{ 1294+{
1252 u64 result; 1295+ u64 result;
1253 unsigned long tmp; 1296+ unsigned long tmp;
1254 1297+
1255 smp_mb(); 1298+ smp_mb();
1256 1299+
1257- __asm__ __volatile__("@ atomic64_add_return\n"
1258+ __asm__ __volatile__("@ atomic64_add_return_unchecked\n" 1300+ __asm__ __volatile__("@ atomic64_add_return_unchecked\n"
1259 "1: ldrexd %0, %H0, [%3]\n" 1301 "1: ldrexd %0, %H0, [%3]\n"
1260 " adds %0, %0, %4\n" 1302 " adds %0, %0, %4\n"
1261 " adc %H0, %H0, %H4\n" 1303 " adc %H0, %H0, %H4\n"
1262@@ -318,23 +607,34 @@ static inline void atomic64_sub(u64 i, atomic64_t *v) 1304@@ -342,6 +654,36 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
1263 __asm__ __volatile__("@ atomic64_sub\n" 1305 __asm__ __volatile__("@ atomic64_sub\n"
1264 "1: ldrexd %0, %H0, [%3]\n" 1306 "1: ldrexd %0, %H0, [%3]\n"
1265 " subs %0, %0, %4\n" 1307 " subs %0, %0, %4\n"
1266-" sbc %H0, %H0, %H4\n"
1267+" sbcs %H0, %H0, %H4\n" 1308+" sbcs %H0, %H0, %H4\n"
1268+ 1309+
1269+#ifdef CONFIG_PAX_REFCOUNT 1310+#ifdef CONFIG_PAX_REFCOUNT
@@ -1272,46 +1313,45 @@ index c79f61f..9ac0642 100644
1272+"3:\n" 1313+"3:\n"
1273+#endif 1314+#endif
1274+ 1315+
1275 " strexd %1, %0, %H0, [%3]\n" 1316+" strexd %1, %0, %H0, [%3]\n"
1276 " teq %1, #0\n" 1317+" teq %1, #0\n"
1277 " bne 1b" 1318+" bne 1b"
1278+ 1319+
1279+#ifdef CONFIG_PAX_REFCOUNT 1320+#ifdef CONFIG_PAX_REFCOUNT
1280+"\n4:\n" 1321+"\n4:\n"
1281+ _ASM_EXTABLE(2b, 4b) 1322+ _ASM_EXTABLE(2b, 4b)
1282+#endif 1323+#endif
1283+ 1324+
1284 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) 1325+ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1285 : "r" (&v->counter), "r" (i) 1326+ : "r" (&v->counter), "r" (i)
1286 : "cc"); 1327+ : "cc");
1287 }
1288
1289-static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
1290+static inline void atomic64_sub_unchecked(u64 i, atomic64_unchecked_t *v)
1291 {
1292 u64 result;
1293 unsigned long tmp;
1294
1295- smp_mb();
1296-
1297- __asm__ __volatile__("@ atomic64_sub_return\n"
1298+ __asm__ __volatile__("@ atomic64_sub_unchecked\n"
1299 "1: ldrexd %0, %H0, [%3]\n"
1300 " subs %0, %0, %4\n"
1301 " sbc %H0, %H0, %H4\n"
1302@@ -344,6 +644,39 @@ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
1303 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1304 : "r" (&v->counter), "r" (i)
1305 : "cc");
1306+} 1328+}
1307+ 1329+
1308+static inline u64 atomic64_sub_return(u64 i, atomic64_t *v) 1330+static inline void atomic64_sub_unchecked(u64 i, atomic64_unchecked_t *v)
1309+{ 1331+{
1310+ u64 result, tmp; 1332+ u64 result;
1311+ 1333+ unsigned long tmp;
1312+ smp_mb();
1313+ 1334+
1314+ __asm__ __volatile__("@ atomic64_sub_return\n" 1335+ __asm__ __volatile__("@ atomic64_sub_unchecked\n"
1336+"1: ldrexd %0, %H0, [%3]\n"
1337+" subs %0, %0, %4\n"
1338 " sbc %H0, %H0, %H4\n"
1339 " strexd %1, %0, %H0, [%3]\n"
1340 " teq %1, #0\n"
1341@@ -353,18 +695,32 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
1342
1343 static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
1344 {
1345- u64 result;
1346- unsigned long tmp;
1347+ u64 result, tmp;
1348
1349 smp_mb();
1350
1351 __asm__ __volatile__("@ atomic64_sub_return\n"
1352-"1: ldrexd %0, %H0, [%3]\n"
1353-" subs %0, %0, %4\n"
1354-" sbc %H0, %H0, %H4\n"
1315+"1: ldrexd %1, %H1, [%3]\n" 1355+"1: ldrexd %1, %H1, [%3]\n"
1316+" subs %0, %1, %4\n" 1356+" subs %0, %1, %4\n"
1317+" sbcs %H0, %H1, %H4\n" 1357+" sbcs %H0, %H1, %H4\n"
@@ -1324,22 +1364,19 @@ index c79f61f..9ac0642 100644
1324+"3:\n" 1364+"3:\n"
1325+#endif 1365+#endif
1326+ 1366+
1327+" strexd %1, %0, %H0, [%3]\n" 1367 " strexd %1, %0, %H0, [%3]\n"
1328+" teq %1, #0\n" 1368 " teq %1, #0\n"
1329+" bne 1b" 1369 " bne 1b"
1330+ 1370+
1331+#ifdef CONFIG_PAX_REFCOUNT 1371+#ifdef CONFIG_PAX_REFCOUNT
1332+"\n4:\n" 1372+"\n4:\n"
1333+ _ASM_EXTABLE(2b, 4b) 1373+ _ASM_EXTABLE(2b, 4b)
1334+#endif 1374+#endif
1335+ 1375+
1336+ : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) 1376 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1337+ : "r" (&v->counter), "r" (i) 1377 : "r" (&v->counter), "r" (i)
1338+ : "cc"); 1378 : "cc");
1339 1379@@ -398,6 +754,30 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
1340 smp_mb();
1341
1342@@ -374,6 +707,30 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
1343 return oldval; 1380 return oldval;
1344 } 1381 }
1345 1382
@@ -1370,7 +1407,7 @@ index c79f61f..9ac0642 100644
1370 static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new) 1407 static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
1371 { 1408 {
1372 u64 result; 1409 u64 result;
1373@@ -397,21 +754,34 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new) 1410@@ -421,21 +801,34 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
1374 1411
1375 static inline u64 atomic64_dec_if_positive(atomic64_t *v) 1412 static inline u64 atomic64_dec_if_positive(atomic64_t *v)
1376 { 1413 {
@@ -1412,7 +1449,7 @@ index c79f61f..9ac0642 100644
1412 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) 1449 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1413 : "r" (&v->counter) 1450 : "r" (&v->counter)
1414 : "cc"); 1451 : "cc");
1415@@ -434,13 +804,25 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) 1452@@ -458,13 +851,25 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
1416 " teq %0, %5\n" 1453 " teq %0, %5\n"
1417 " teqeq %H0, %H5\n" 1454 " teqeq %H0, %H5\n"
1418 " moveq %1, #0\n" 1455 " moveq %1, #0\n"
@@ -1441,7 +1478,7 @@ index c79f61f..9ac0642 100644
1441 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter) 1478 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
1442 : "r" (&v->counter), "r" (u), "r" (a) 1479 : "r" (&v->counter), "r" (u), "r" (a)
1443 : "cc"); 1480 : "cc");
1444@@ -453,10 +835,13 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u) 1481@@ -477,10 +882,13 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
1445 1482
1446 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0) 1483 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
1447 #define atomic64_inc(v) atomic64_add(1LL, (v)) 1484 #define atomic64_inc(v) atomic64_add(1LL, (v))
@@ -1479,7 +1516,7 @@ index 75fe66b..ba3dee4 100644
1479 1516
1480 #endif 1517 #endif
1481diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h 1518diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
1482index 738fcba..7a43500 100644 1519index 17d0ae8..014e350 100644
1483--- a/arch/arm/include/asm/cacheflush.h 1520--- a/arch/arm/include/asm/cacheflush.h
1484+++ b/arch/arm/include/asm/cacheflush.h 1521+++ b/arch/arm/include/asm/cacheflush.h
1485@@ -116,7 +116,7 @@ struct cpu_cache_fns { 1522@@ -116,7 +116,7 @@ struct cpu_cache_fns {
@@ -1543,15 +1580,15 @@ index 6ddbe44..b5e38b1 100644
1543+#define DOMAIN_KERNELCLIENT 1 1580+#define DOMAIN_KERNELCLIENT 1
1544 #define DOMAIN_MANAGER 3 1581 #define DOMAIN_MANAGER 3
1545+#define DOMAIN_VECTORS DOMAIN_USER 1582+#define DOMAIN_VECTORS DOMAIN_USER
1546+#else 1583 #else
1547+ 1584+
1548+#ifdef CONFIG_PAX_KERNEXEC 1585+#ifdef CONFIG_PAX_KERNEXEC
1549+#define DOMAIN_MANAGER 1
1550+#define DOMAIN_KERNEXEC 3
1551 #else
1552 #define DOMAIN_MANAGER 1 1586 #define DOMAIN_MANAGER 1
1553 #endif 1587+#define DOMAIN_KERNEXEC 3
1554 1588+#else
1589+#define DOMAIN_MANAGER 1
1590+#endif
1591+
1555+#ifdef CONFIG_PAX_MEMORY_UDEREF 1592+#ifdef CONFIG_PAX_MEMORY_UDEREF
1556+#define DOMAIN_USERCLIENT 0 1593+#define DOMAIN_USERCLIENT 0
1557+#define DOMAIN_UDEREF 1 1594+#define DOMAIN_UDEREF 1
@@ -1562,8 +1599,8 @@ index 6ddbe44..b5e38b1 100644
1562+#endif 1599+#endif
1563+#define DOMAIN_KERNELCLIENT 1 1600+#define DOMAIN_KERNELCLIENT 1
1564+ 1601+
1565+#endif 1602 #endif
1566+ 1603
1567 #define domain_val(dom,type) ((type) << (2*(dom))) 1604 #define domain_val(dom,type) ((type) << (2*(dom)))
1568 1605
1569 #ifndef __ASSEMBLY__ 1606 #ifndef __ASSEMBLY__
@@ -2063,7 +2100,7 @@ index d3a22be..3a69ad5 100644
2063 /* 2100 /*
2064 * set platform specific SMP operations 2101 * set platform specific SMP operations
2065diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h 2102diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
2066index cddda1f..ff357f7 100644 2103index 1995d1a..76693a2 100644
2067--- a/arch/arm/include/asm/thread_info.h 2104--- a/arch/arm/include/asm/thread_info.h
2068+++ b/arch/arm/include/asm/thread_info.h 2105+++ b/arch/arm/include/asm/thread_info.h
2069@@ -77,9 +77,9 @@ struct thread_info { 2106@@ -77,9 +77,9 @@ struct thread_info {
@@ -2079,20 +2116,20 @@ index cddda1f..ff357f7 100644
2079 .restart_block = { \ 2116 .restart_block = { \
2080 .fn = do_no_restart_syscall, \ 2117 .fn = do_no_restart_syscall, \
2081 }, \ 2118 }, \
2082@@ -152,6 +152,12 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, 2119@@ -152,7 +152,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2083 #define TIF_SYSCALL_AUDIT 9 2120 #define TIF_SYSCALL_AUDIT 9
2084 #define TIF_SYSCALL_TRACEPOINT 10 2121 #define TIF_SYSCALL_TRACEPOINT 10
2085 #define TIF_SECCOMP 11 /* seccomp syscall filtering active */ 2122 #define TIF_SECCOMP 11 /* seccomp syscall filtering active */
2086+ 2123-#define TIF_NOHZ 12 /* in adaptive nohz mode */
2087+/* within 8 bits of TIF_SYSCALL_TRACE 2124+/* within 8 bits of TIF_SYSCALL_TRACE
2088+ * to meet flexible second operand requirements 2125+ * to meet flexible second operand requirements
2089+ */ 2126+ */
2090+#define TIF_GRSEC_SETXID 12 2127+#define TIF_GRSEC_SETXID 12
2091+ 2128+#define TIF_NOHZ 13 /* in adaptive nohz mode */
2092 #define TIF_USING_IWMMXT 17 2129 #define TIF_USING_IWMMXT 17
2093 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ 2130 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
2094 #define TIF_RESTORE_SIGMASK 20 2131 #define TIF_RESTORE_SIGMASK 20
2095@@ -165,10 +171,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *, 2132@@ -166,10 +170,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2096 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) 2133 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
2097 #define _TIF_SECCOMP (1 << TIF_SECCOMP) 2134 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
2098 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT) 2135 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
@@ -2106,7 +2143,7 @@ index cddda1f..ff357f7 100644
2106 /* 2143 /*
2107 * Change these and you break ASM code in entry-common.S 2144 * Change these and you break ASM code in entry-common.S
2108diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h 2145diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
2109index 7e1f760..510061e 100644 2146index 7e1f760..d42d7f8 100644
2110--- a/arch/arm/include/asm/uaccess.h 2147--- a/arch/arm/include/asm/uaccess.h
2111+++ b/arch/arm/include/asm/uaccess.h 2148+++ b/arch/arm/include/asm/uaccess.h
2112@@ -18,6 +18,7 @@ 2149@@ -18,6 +18,7 @@
@@ -2131,7 +2168,7 @@ index 7e1f760..510061e 100644
2131+{ 2168+{
2132+ 2169+
2133+#ifdef CONFIG_PAX_MEMORY_UDEREF 2170+#ifdef CONFIG_PAX_MEMORY_UDEREF
2134+ if (segment_eq(get_fs(), USER_DS) { 2171+ if (segment_eq(get_fs(), USER_DS)) {
2135+ BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF)); 2172+ BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF));
2136+ modify_domain(DOMAIN_USER, DOMAIN_UDEREF); 2173+ modify_domain(DOMAIN_USER, DOMAIN_UDEREF);
2137+ } 2174+ }
@@ -2143,7 +2180,7 @@ index 7e1f760..510061e 100644
2143+{ 2180+{
2144+ 2181+
2145+#ifdef CONFIG_PAX_MEMORY_UDEREF 2182+#ifdef CONFIG_PAX_MEMORY_UDEREF
2146+ if (segment_eq(get_fs(), USER_DS) { 2183+ if (segment_eq(get_fs(), USER_DS)) {
2147+ BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS)); 2184+ BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS));
2148+ modify_domain(DOMAIN_USER, DOMAIN_NOACCESS); 2185+ modify_domain(DOMAIN_USER, DOMAIN_NOACCESS);
2149+ } 2186+ }
@@ -2326,7 +2363,7 @@ index 60d3b73..e5a0f22 100644
2326 EXPORT_SYMBOL(__get_user_1); 2363 EXPORT_SYMBOL(__get_user_1);
2327 EXPORT_SYMBOL(__get_user_2); 2364 EXPORT_SYMBOL(__get_user_2);
2328diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S 2365diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
2329index 0f82098..fb3d3d5 100644 2366index 582b405..a78366b 100644
2330--- a/arch/arm/kernel/entry-armv.S 2367--- a/arch/arm/kernel/entry-armv.S
2331+++ b/arch/arm/kernel/entry-armv.S 2368+++ b/arch/arm/kernel/entry-armv.S
2332@@ -47,6 +47,87 @@ 2369@@ -47,6 +47,87 @@
@@ -2458,7 +2495,7 @@ index 0f82098..fb3d3d5 100644
2458 SPFIX( addeq r2, r2, #4 ) 2495 SPFIX( addeq r2, r2, #4 )
2459 str r3, [sp, #-4]! @ save the "real" r0 copied 2496 str r3, [sp, #-4]! @ save the "real" r0 copied
2460 @ from the exception stack 2497 @ from the exception stack
2461@@ -359,6 +453,9 @@ ENDPROC(__pabt_svc) 2498@@ -316,6 +410,9 @@ ENDPROC(__pabt_svc)
2462 .macro usr_entry 2499 .macro usr_entry
2463 UNWIND(.fnstart ) 2500 UNWIND(.fnstart )
2464 UNWIND(.cantunwind ) @ don't unwind the user space 2501 UNWIND(.cantunwind ) @ don't unwind the user space
@@ -2468,7 +2505,7 @@ index 0f82098..fb3d3d5 100644
2468 sub sp, sp, #S_FRAME_SIZE 2505 sub sp, sp, #S_FRAME_SIZE
2469 ARM( stmib sp, {r1 - r12} ) 2506 ARM( stmib sp, {r1 - r12} )
2470 THUMB( stmia sp, {r0 - r12} ) 2507 THUMB( stmia sp, {r0 - r12} )
2471@@ -456,7 +553,9 @@ __und_usr: 2508@@ -414,7 +511,9 @@ __und_usr:
2472 tst r3, #PSR_T_BIT @ Thumb mode? 2509 tst r3, #PSR_T_BIT @ Thumb mode?
2473 bne __und_usr_thumb 2510 bne __und_usr_thumb
2474 sub r4, r2, #4 @ ARM instr at LR - 4 2511 sub r4, r2, #4 @ ARM instr at LR - 4
@@ -2478,7 +2515,7 @@ index 0f82098..fb3d3d5 100644
2478 #ifdef CONFIG_CPU_ENDIAN_BE8 2515 #ifdef CONFIG_CPU_ENDIAN_BE8
2479 rev r0, r0 @ little endian instruction 2516 rev r0, r0 @ little endian instruction
2480 #endif 2517 #endif
2481@@ -491,10 +590,14 @@ __und_usr_thumb: 2518@@ -449,10 +548,14 @@ __und_usr_thumb:
2482 */ 2519 */
2483 .arch armv6t2 2520 .arch armv6t2
2484 #endif 2521 #endif
@@ -2493,7 +2530,17 @@ index 0f82098..fb3d3d5 100644
2493 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4 2530 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
2494 str r2, [sp, #S_PC] @ it's a 2x16bit instr, update 2531 str r2, [sp, #S_PC] @ it's a 2x16bit instr, update
2495 orr r0, r0, r5, lsl #16 2532 orr r0, r0, r5, lsl #16
2496@@ -733,7 +836,7 @@ ENTRY(__switch_to) 2533@@ -481,7 +584,8 @@ ENDPROC(__und_usr)
2534 */
2535 .pushsection .fixup, "ax"
2536 .align 2
2537-4: mov pc, r9
2538+4: pax_close_userland
2539+ mov pc, r9
2540 .popsection
2541 .pushsection __ex_table,"a"
2542 .long 1b, 4b
2543@@ -690,7 +794,7 @@ ENTRY(__switch_to)
2497 THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack 2544 THUMB( stmia ip!, {r4 - sl, fp} ) @ Store most regs on stack
2498 THUMB( str sp, [ip], #4 ) 2545 THUMB( str sp, [ip], #4 )
2499 THUMB( str lr, [ip], #4 ) 2546 THUMB( str lr, [ip], #4 )
@@ -2502,7 +2549,7 @@ index 0f82098..fb3d3d5 100644
2502 ldr r6, [r2, #TI_CPU_DOMAIN] 2549 ldr r6, [r2, #TI_CPU_DOMAIN]
2503 #endif 2550 #endif
2504 set_tls r3, r4, r5 2551 set_tls r3, r4, r5
2505@@ -742,7 +845,7 @@ ENTRY(__switch_to) 2552@@ -699,7 +803,7 @@ ENTRY(__switch_to)
2506 ldr r8, =__stack_chk_guard 2553 ldr r8, =__stack_chk_guard
2507 ldr r7, [r7, #TSK_STACK_CANARY] 2554 ldr r7, [r7, #TSK_STACK_CANARY]
2508 #endif 2555 #endif
@@ -2512,7 +2559,7 @@ index 0f82098..fb3d3d5 100644
2512 #endif 2559 #endif
2513 mov r5, r0 2560 mov r5, r0
2514diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S 2561diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
2515index fefd7f9..e6f250e 100644 2562index bc5bc0a..d0998ca 100644
2516--- a/arch/arm/kernel/entry-common.S 2563--- a/arch/arm/kernel/entry-common.S
2517+++ b/arch/arm/kernel/entry-common.S 2564+++ b/arch/arm/kernel/entry-common.S
2518@@ -10,18 +10,46 @@ 2565@@ -10,18 +10,46 @@
@@ -2565,7 +2612,7 @@ index fefd7f9..e6f250e 100644
2565 .align 5 2612 .align 5
2566 /* 2613 /*
2567 * This is the fast syscall return path. We do as little as 2614 * This is the fast syscall return path. We do as little as
2568@@ -351,6 +379,7 @@ ENDPROC(ftrace_stub) 2615@@ -350,6 +378,7 @@ ENDPROC(ftrace_stub)
2569 2616
2570 .align 5 2617 .align 5
2571 ENTRY(vector_swi) 2618 ENTRY(vector_swi)
@@ -2573,7 +2620,7 @@ index fefd7f9..e6f250e 100644
2573 sub sp, sp, #S_FRAME_SIZE 2620 sub sp, sp, #S_FRAME_SIZE
2574 stmia sp, {r0 - r12} @ Calling r0 - r12 2621 stmia sp, {r0 - r12} @ Calling r0 - r12
2575 ARM( add r8, sp, #S_PC ) 2622 ARM( add r8, sp, #S_PC )
2576@@ -400,6 +429,12 @@ ENTRY(vector_swi) 2623@@ -399,6 +428,12 @@ ENTRY(vector_swi)
2577 ldr scno, [lr, #-4] @ get SWI instruction 2624 ldr scno, [lr, #-4] @ get SWI instruction
2578 #endif 2625 #endif
2579 2626
@@ -2587,10 +2634,10 @@ index fefd7f9..e6f250e 100644
2587 ldr ip, __cr_alignment 2634 ldr ip, __cr_alignment
2588 ldr ip, [ip] 2635 ldr ip, [ip]
2589diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S 2636diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
2590index 9a8531e..812e287 100644 2637index 160f337..db67ee4 100644
2591--- a/arch/arm/kernel/entry-header.S 2638--- a/arch/arm/kernel/entry-header.S
2592+++ b/arch/arm/kernel/entry-header.S 2639+++ b/arch/arm/kernel/entry-header.S
2593@@ -73,9 +73,66 @@ 2640@@ -73,6 +73,60 @@
2594 msr cpsr_c, \rtemp @ switch back to the SVC mode 2641 msr cpsr_c, \rtemp @ switch back to the SVC mode
2595 .endm 2642 .endm
2596 2643
@@ -2649,18 +2696,22 @@ index 9a8531e..812e287 100644
2649+ .endm 2696+ .endm
2650+ 2697+
2651 #ifndef CONFIG_THUMB2_KERNEL 2698 #ifndef CONFIG_THUMB2_KERNEL
2652 .macro svc_exit, rpsr 2699 .macro svc_exit, rpsr, irq = 0
2653 msr spsr_cxsf, \rpsr 2700 .if \irq != 0
2701@@ -92,6 +146,9 @@
2702 blne trace_hardirqs_off
2703 #endif
2704 .endif
2654+ 2705+
2655+ pax_exit_kernel 2706+ pax_exit_kernel
2656+ 2707+
2708 msr spsr_cxsf, \rpsr
2657 #if defined(CONFIG_CPU_V6) 2709 #if defined(CONFIG_CPU_V6)
2658 ldr r0, [sp] 2710 ldr r0, [sp]
2659 strex r1, r2, [sp] @ clear the exclusive monitor 2711@@ -155,6 +212,9 @@
2660@@ -121,6 +178,9 @@ 2712 blne trace_hardirqs_off
2661 .endm 2713 #endif
2662 #else /* CONFIG_THUMB2_KERNEL */ 2714 .endif
2663 .macro svc_exit, rpsr
2664+ 2715+
2665+ pax_exit_kernel 2716+ pax_exit_kernel
2666+ 2717+
@@ -2796,7 +2847,7 @@ index 1f2740e..b36e225 100644
2796 }; 2847 };
2797 2848
2798diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c 2849diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2799index 047d3e4..7e96107 100644 2850index 6e8931c..82ec6a5 100644
2800--- a/arch/arm/kernel/process.c 2851--- a/arch/arm/kernel/process.c
2801+++ b/arch/arm/kernel/process.c 2852+++ b/arch/arm/kernel/process.c
2802@@ -28,7 +28,6 @@ 2853@@ -28,7 +28,6 @@
@@ -2807,22 +2858,27 @@ index 047d3e4..7e96107 100644
2807 #include <linux/hw_breakpoint.h> 2858 #include <linux/hw_breakpoint.h>
2808 #include <linux/cpuidle.h> 2859 #include <linux/cpuidle.h>
2809 #include <linux/leds.h> 2860 #include <linux/leds.h>
2810@@ -251,9 +250,10 @@ void machine_power_off(void) 2861@@ -223,6 +222,7 @@ void machine_power_off(void)
2811 machine_shutdown(); 2862
2812 if (pm_power_off) 2863 if (pm_power_off)
2813 pm_power_off(); 2864 pm_power_off();
2814+ BUG(); 2865+ BUG();
2815 } 2866 }
2816 2867
2868 /*
2869@@ -236,7 +236,7 @@ void machine_power_off(void)
2870 * executing pre-reset code, and using RAM that the primary CPU's code wishes
2871 * to use. Implementing such co-ordination would be essentially impossible.
2872 */
2817-void machine_restart(char *cmd) 2873-void machine_restart(char *cmd)
2818+__noreturn void machine_restart(char *cmd) 2874+__noreturn void machine_restart(char *cmd)
2819 { 2875 {
2820 machine_shutdown(); 2876 smp_send_stop();
2877
2878@@ -258,8 +258,8 @@ void __show_regs(struct pt_regs *regs)
2879
2880 show_regs_print_info(KERN_DEFAULT);
2821 2881
2822@@ -278,8 +278,8 @@ void __show_regs(struct pt_regs *regs)
2823 init_utsname()->release,
2824 (int)strcspn(init_utsname()->version, " "),
2825 init_utsname()->version);
2826- print_symbol("PC is at %s\n", instruction_pointer(regs)); 2882- print_symbol("PC is at %s\n", instruction_pointer(regs));
2827- print_symbol("LR is at %s\n", regs->ARM_lr); 2883- print_symbol("LR is at %s\n", regs->ARM_lr);
2828+ printk("PC is at %pA\n", instruction_pointer(regs)); 2884+ printk("PC is at %pA\n", instruction_pointer(regs));
@@ -2830,7 +2886,7 @@ index 047d3e4..7e96107 100644
2830 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n" 2886 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2831 "sp : %08lx ip : %08lx fp : %08lx\n", 2887 "sp : %08lx ip : %08lx fp : %08lx\n",
2832 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr, 2888 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2833@@ -447,12 +447,6 @@ unsigned long get_wchan(struct task_struct *p) 2889@@ -426,12 +426,6 @@ unsigned long get_wchan(struct task_struct *p)
2834 return 0; 2890 return 0;
2835 } 2891 }
2836 2892
@@ -2843,14 +2899,17 @@ index 047d3e4..7e96107 100644
2843 #ifdef CONFIG_MMU 2899 #ifdef CONFIG_MMU
2844 /* 2900 /*
2845 * The vectors page is always readable from user space for the 2901 * The vectors page is always readable from user space for the
2846@@ -465,9 +459,8 @@ static int __init gate_vma_init(void) 2902@@ -441,12 +435,12 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
2847 { 2903 static struct vm_area_struct gate_vma = {
2848 gate_vma.vm_start = 0xffff0000; 2904 .vm_start = 0xffff0000,
2849 gate_vma.vm_end = 0xffff0000 + PAGE_SIZE; 2905 .vm_end = 0xffff0000 + PAGE_SIZE,
2850- gate_vma.vm_page_prot = PAGE_READONLY_EXEC; 2906- .vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC,
2851- gate_vma.vm_flags = VM_READ | VM_EXEC | 2907+ .vm_flags = VM_NONE,
2852- VM_MAYREAD | VM_MAYEXEC; 2908 };
2853+ gate_vma.vm_flags = VM_NONE; 2909
2910 static int __init gate_vma_init(void)
2911 {
2912- gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
2854+ gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags); 2913+ gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
2855 return 0; 2914 return 0;
2856 } 2915 }
@@ -2893,10 +2952,10 @@ index 03deeff..741ce88 100644
2893 if (secure_computing(scno) == -1) 2952 if (secure_computing(scno) == -1)
2894 return -1; 2953 return -1;
2895diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c 2954diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
2896index 234e339..81264a1 100644 2955index b4b1d39..efdc9be 100644
2897--- a/arch/arm/kernel/setup.c 2956--- a/arch/arm/kernel/setup.c
2898+++ b/arch/arm/kernel/setup.c 2957+++ b/arch/arm/kernel/setup.c
2899@@ -96,21 +96,23 @@ EXPORT_SYMBOL(system_serial_high); 2958@@ -97,21 +97,23 @@ EXPORT_SYMBOL(system_serial_high);
2900 unsigned int elf_hwcap __read_mostly; 2959 unsigned int elf_hwcap __read_mostly;
2901 EXPORT_SYMBOL(elf_hwcap); 2960 EXPORT_SYMBOL(elf_hwcap);
2902 2961
@@ -2925,7 +2984,7 @@ index 234e339..81264a1 100644
2925 EXPORT_SYMBOL(outer_cache); 2984 EXPORT_SYMBOL(outer_cache);
2926 #endif 2985 #endif
2927 2986
2928@@ -235,9 +237,13 @@ static int __get_cpu_architecture(void) 2987@@ -236,9 +238,13 @@ static int __get_cpu_architecture(void)
2929 asm("mrc p15, 0, %0, c0, c1, 4" 2988 asm("mrc p15, 0, %0, c0, c1, 4"
2930 : "=r" (mmfr0)); 2989 : "=r" (mmfr0));
2931 if ((mmfr0 & 0x0000000f) >= 0x00000003 || 2990 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
@@ -2941,7 +3000,7 @@ index 234e339..81264a1 100644
2941 (mmfr0 & 0x000000f0) == 0x00000020) 3000 (mmfr0 & 0x000000f0) == 0x00000020)
2942 cpu_arch = CPU_ARCH_ARMv6; 3001 cpu_arch = CPU_ARCH_ARMv6;
2943 else 3002 else
2944@@ -478,7 +484,7 @@ static void __init setup_processor(void) 3003@@ -479,7 +485,7 @@ static void __init setup_processor(void)
2945 __cpu_architecture = __get_cpu_architecture(); 3004 __cpu_architecture = __get_cpu_architecture();
2946 3005
2947 #ifdef MULTI_CPU 3006 #ifdef MULTI_CPU
@@ -2971,22 +3030,21 @@ index 296786b..a8d4dd5 100644
2971- */ 3030- */
2972- flush_icache_range((unsigned long)rc, 3031- flush_icache_range((unsigned long)rc,
2973- (unsigned long)(rc + 2)); 3032- (unsigned long)(rc + 2));
2974-
2975- retcode = ((unsigned long)rc) + thumb;
2976- }
2977+ /* 3033+ /*
2978+ * Ensure that the instruction cache sees 3034+ * Ensure that the instruction cache sees
2979+ * the return code written onto the stack. 3035+ * the return code written onto the stack.
2980+ */ 3036+ */
2981+ flush_icache_range((unsigned long)rc, 3037+ flush_icache_range((unsigned long)rc,
2982+ (unsigned long)(rc + 2)); 3038+ (unsigned long)(rc + 2));
2983+ 3039
3040- retcode = ((unsigned long)rc) + thumb;
3041- }
2984+ retcode = ((unsigned long)rc) + thumb; 3042+ retcode = ((unsigned long)rc) + thumb;
2985 } 3043 }
2986 3044
2987 regs->ARM_r0 = map_sig(ksig->sig); 3045 regs->ARM_r0 = map_sig(ksig->sig);
2988diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c 3046diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
2989index 1f2cccc..f40c02e 100644 3047index 5919eb4..b5d6dfe 100644
2990--- a/arch/arm/kernel/smp.c 3048--- a/arch/arm/kernel/smp.c
2991+++ b/arch/arm/kernel/smp.c 3049+++ b/arch/arm/kernel/smp.c
2992@@ -70,7 +70,7 @@ enum ipi_msg_type { 3050@@ -70,7 +70,7 @@ enum ipi_msg_type {
@@ -2999,7 +3057,7 @@ index 1f2cccc..f40c02e 100644
2999 void __init smp_set_ops(struct smp_operations *ops) 3057 void __init smp_set_ops(struct smp_operations *ops)
3000 { 3058 {
3001diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c 3059diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
3002index 1c08911..264f009 100644 3060index 18b32e8..b0c8dca 100644
3003--- a/arch/arm/kernel/traps.c 3061--- a/arch/arm/kernel/traps.c
3004+++ b/arch/arm/kernel/traps.c 3062+++ b/arch/arm/kernel/traps.c
3005@@ -57,7 +57,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long); 3063@@ -57,7 +57,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
@@ -3011,7 +3069,7 @@ index 1c08911..264f009 100644
3011 #else 3069 #else
3012 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from); 3070 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
3013 #endif 3071 #endif
3014@@ -266,6 +266,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED; 3072@@ -259,6 +259,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
3015 static int die_owner = -1; 3073 static int die_owner = -1;
3016 static unsigned int die_nest_count; 3074 static unsigned int die_nest_count;
3017 3075
@@ -3020,7 +3078,7 @@ index 1c08911..264f009 100644
3020 static unsigned long oops_begin(void) 3078 static unsigned long oops_begin(void)
3021 { 3079 {
3022 int cpu; 3080 int cpu;
3023@@ -308,6 +310,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr) 3081@@ -301,6 +303,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
3024 panic("Fatal exception in interrupt"); 3082 panic("Fatal exception in interrupt");
3025 if (panic_on_oops) 3083 if (panic_on_oops)
3026 panic("Fatal exception"); 3084 panic("Fatal exception");
@@ -3030,7 +3088,7 @@ index 1c08911..264f009 100644
3030 if (signr) 3088 if (signr)
3031 do_exit(signr); 3089 do_exit(signr);
3032 } 3090 }
3033@@ -601,7 +606,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs) 3091@@ -594,7 +599,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
3034 * The user helper at 0xffff0fe0 must be used instead. 3092 * The user helper at 0xffff0fe0 must be used instead.
3035 * (see entry-armv.S for details) 3093 * (see entry-armv.S for details)
3036 */ 3094 */
@@ -3040,7 +3098,7 @@ index 1c08911..264f009 100644
3040 } 3098 }
3041 return 0; 3099 return 0;
3042 3100
3043@@ -841,13 +848,10 @@ void __init early_trap_init(void *vectors_base) 3101@@ -834,13 +841,10 @@ void __init early_trap_init(void *vectors_base)
3044 */ 3102 */
3045 kuser_get_tls_init(vectors); 3103 kuser_get_tls_init(vectors);
3046 3104
@@ -3060,7 +3118,7 @@ index 1c08911..264f009 100644
3060+ 3118+
3061 } 3119 }
3062diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S 3120diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
3063index b571484..4b2fc9b 100644 3121index a871b8e..123b00a 100644
3064--- a/arch/arm/kernel/vmlinux.lds.S 3122--- a/arch/arm/kernel/vmlinux.lds.S
3065+++ b/arch/arm/kernel/vmlinux.lds.S 3123+++ b/arch/arm/kernel/vmlinux.lds.S
3066@@ -8,7 +8,11 @@ 3124@@ -8,7 +8,11 @@
@@ -3258,10 +3316,10 @@ index 025f742..8432b08 100644
3258 /* 3316 /*
3259 * This test is stubbed out of the main function above to keep 3317 * This test is stubbed out of the main function above to keep
3260diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c 3318diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
3261index 49792a0..f192052 100644 3319index f389228..592ef66 100644
3262--- a/arch/arm/mach-kirkwood/common.c 3320--- a/arch/arm/mach-kirkwood/common.c
3263+++ b/arch/arm/mach-kirkwood/common.c 3321+++ b/arch/arm/mach-kirkwood/common.c
3264@@ -150,7 +150,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw) 3322@@ -149,7 +149,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw)
3265 clk_gate_ops.disable(hw); 3323 clk_gate_ops.disable(hw);
3266 } 3324 }
3267 3325
@@ -3279,7 +3337,7 @@ index 49792a0..f192052 100644
3279 3337
3280 static struct clk __init *clk_register_gate_fn(struct device *dev, 3338 static struct clk __init *clk_register_gate_fn(struct device *dev,
3281 const char *name, 3339 const char *name,
3282@@ -184,14 +193,6 @@ static struct clk __init *clk_register_gate_fn(struct device *dev, 3340@@ -183,14 +192,6 @@ static struct clk __init *clk_register_gate_fn(struct device *dev,
3283 gate_fn->fn_en = fn_en; 3341 gate_fn->fn_en = fn_en;
3284 gate_fn->fn_dis = fn_dis; 3342 gate_fn->fn_dis = fn_dis;
3285 3343
@@ -3308,10 +3366,10 @@ index f6eeb87..cc90868 100644
3308 }; 3366 };
3309 3367
3310diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c 3368diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
3311index 410e1ba..1d2dd59 100644 3369index 6c4da12..d9ca72d 100644
3312--- a/arch/arm/mach-omap2/gpmc.c 3370--- a/arch/arm/mach-omap2/gpmc.c
3313+++ b/arch/arm/mach-omap2/gpmc.c 3371+++ b/arch/arm/mach-omap2/gpmc.c
3314@@ -145,7 +145,6 @@ struct omap3_gpmc_regs { 3372@@ -147,7 +147,6 @@ struct omap3_gpmc_regs {
3315 }; 3373 };
3316 3374
3317 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ]; 3375 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
@@ -3319,7 +3377,7 @@ index 410e1ba..1d2dd59 100644
3319 static unsigned gpmc_irq_start; 3377 static unsigned gpmc_irq_start;
3320 3378
3321 static struct resource gpmc_mem_root; 3379 static struct resource gpmc_mem_root;
3322@@ -707,6 +706,18 @@ static void gpmc_irq_noop(struct irq_data *data) { } 3380@@ -711,6 +710,18 @@ static void gpmc_irq_noop(struct irq_data *data) { }
3323 3381
3324 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; } 3382 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
3325 3383
@@ -3338,7 +3396,7 @@ index 410e1ba..1d2dd59 100644
3338 static int gpmc_setup_irq(void) 3396 static int gpmc_setup_irq(void)
3339 { 3397 {
3340 int i; 3398 int i;
3341@@ -721,15 +732,6 @@ static int gpmc_setup_irq(void) 3399@@ -725,15 +736,6 @@ static int gpmc_setup_irq(void)
3342 return gpmc_irq_start; 3400 return gpmc_irq_start;
3343 } 3401 }
3344 3402
@@ -3368,7 +3426,7 @@ index f8bb3b9..831e7b8 100644
3368 }; 3426 };
3369 3427
3370diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c 3428diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3371index 381be7a..89b9c7e 100644 3429index e6d2307..d057195 100644
3372--- a/arch/arm/mach-omap2/omap_device.c 3430--- a/arch/arm/mach-omap2/omap_device.c
3373+++ b/arch/arm/mach-omap2/omap_device.c 3431+++ b/arch/arm/mach-omap2/omap_device.c
3374@@ -499,7 +499,7 @@ void omap_device_delete(struct omap_device *od) 3432@@ -499,7 +499,7 @@ void omap_device_delete(struct omap_device *od)
@@ -3409,10 +3467,10 @@ index 044c31d..2ee0861 100644
3409 struct omap_device *omap_device_alloc(struct platform_device *pdev, 3467 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3410 struct omap_hwmod **ohs, int oh_cnt); 3468 struct omap_hwmod **ohs, int oh_cnt);
3411diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c 3469diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3412index 3a750de..4c9b88f 100644 3470index 7341eff..fd75e34 100644
3413--- a/arch/arm/mach-omap2/omap_hwmod.c 3471--- a/arch/arm/mach-omap2/omap_hwmod.c
3414+++ b/arch/arm/mach-omap2/omap_hwmod.c 3472+++ b/arch/arm/mach-omap2/omap_hwmod.c
3415@@ -191,10 +191,10 @@ struct omap_hwmod_soc_ops { 3473@@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops {
3416 int (*init_clkdm)(struct omap_hwmod *oh); 3474 int (*init_clkdm)(struct omap_hwmod *oh);
3417 void (*update_context_lost)(struct omap_hwmod *oh); 3475 void (*update_context_lost)(struct omap_hwmod *oh);
3418 int (*get_context_lost)(struct omap_hwmod *oh); 3476 int (*get_context_lost)(struct omap_hwmod *oh);
@@ -3449,10 +3507,23 @@ index d15c7bb..b2d1f0c 100644
3449 pdev = omap_device_build(dev_name, id, oh, &pdata, 3507 pdev = omap_device_build(dev_name, id, oh, &pdata,
3450 sizeof(struct omap_wd_timer_platform_data)); 3508 sizeof(struct omap_wd_timer_platform_data));
3451 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n", 3509 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
3452diff --git a/arch/arm/mach-ux500/include/mach/setup.h b/arch/arm/mach-ux500/include/mach/setup.h 3510diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
3453index bddce2b..3eb04e2 100644 3511index 0cdba8d..297993e 100644
3454--- a/arch/arm/mach-ux500/include/mach/setup.h 3512--- a/arch/arm/mach-tegra/cpuidle-tegra20.c
3455+++ b/arch/arm/mach-ux500/include/mach/setup.h 3513+++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
3514@@ -181,7 +181,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
3515 bool entered_lp2 = false;
3516
3517 if (tegra_pending_sgi())
3518- ACCESS_ONCE(abort_flag) = true;
3519+ ACCESS_ONCE_RW(abort_flag) = true;
3520
3521 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3522
3523diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
3524index cad3ca86..1d79e0f 100644
3525--- a/arch/arm/mach-ux500/setup.h
3526+++ b/arch/arm/mach-ux500/setup.h
3456@@ -37,13 +37,6 @@ extern void ux500_timer_init(void); 3527@@ -37,13 +37,6 @@ extern void ux500_timer_init(void);
3457 .type = MT_DEVICE, \ 3528 .type = MT_DEVICE, \
3458 } 3529 }
@@ -3468,10 +3539,10 @@ index bddce2b..3eb04e2 100644
3468 extern void ux500_cpu_die(unsigned int cpu); 3539 extern void ux500_cpu_die(unsigned int cpu);
3469 3540
3470diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig 3541diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
3471index 4045c49..0263c07 100644 3542index 35955b5..b475042 100644
3472--- a/arch/arm/mm/Kconfig 3543--- a/arch/arm/mm/Kconfig
3473+++ b/arch/arm/mm/Kconfig 3544+++ b/arch/arm/mm/Kconfig
3474@@ -425,7 +425,7 @@ config CPU_32v5 3545@@ -432,7 +432,7 @@ config CPU_32v5
3475 3546
3476 config CPU_32v6 3547 config CPU_32v6
3477 bool 3548 bool
@@ -3480,7 +3551,7 @@ index 4045c49..0263c07 100644
3480 select TLS_REG_EMUL if !CPU_32v6K && !MMU 3551 select TLS_REG_EMUL if !CPU_32v6K && !MMU
3481 3552
3482 config CPU_32v6K 3553 config CPU_32v6K
3483@@ -574,6 +574,7 @@ config CPU_CP15_MPU 3554@@ -581,6 +581,7 @@ config CPU_CP15_MPU
3484 3555
3485 config CPU_USE_DOMAINS 3556 config CPU_USE_DOMAINS
3486 bool 3557 bool
@@ -3489,7 +3560,7 @@ index 4045c49..0263c07 100644
3489 This option enables or disables the use of domain switching 3560 This option enables or disables the use of domain switching
3490 via the set_fs() function. 3561 via the set_fs() function.
3491diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c 3562diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
3492index db26e2e..ee44569 100644 3563index 6f4585b..7b6f52b 100644
3493--- a/arch/arm/mm/alignment.c 3564--- a/arch/arm/mm/alignment.c
3494+++ b/arch/arm/mm/alignment.c 3565+++ b/arch/arm/mm/alignment.c
3495@@ -211,10 +211,12 @@ union offset_union { 3566@@ -211,10 +211,12 @@ union offset_union {
@@ -3738,7 +3809,7 @@ index cf08bdf..772656c 100644
3738 unsigned long search_exception_table(unsigned long addr); 3809 unsigned long search_exception_table(unsigned long addr);
3739 3810
3740diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c 3811diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
3741index ad722f1..763fdd3 100644 3812index 0ecc43f..190b956 100644
3742--- a/arch/arm/mm/init.c 3813--- a/arch/arm/mm/init.c
3743+++ b/arch/arm/mm/init.c 3814+++ b/arch/arm/mm/init.c
3744@@ -30,6 +30,8 @@ 3815@@ -30,6 +30,8 @@
@@ -3750,12 +3821,12 @@ index ad722f1..763fdd3 100644
3750 3821
3751 #include <asm/mach/arch.h> 3822 #include <asm/mach/arch.h>
3752 #include <asm/mach/map.h> 3823 #include <asm/mach/map.h>
3753@@ -736,7 +738,46 @@ void free_initmem(void) 3824@@ -726,7 +728,46 @@ void free_initmem(void)
3754 { 3825 {
3755 #ifdef CONFIG_HAVE_TCM 3826 #ifdef CONFIG_HAVE_TCM
3756 extern char __tcm_start, __tcm_end; 3827 extern char __tcm_start, __tcm_end;
3757+#endif 3828+#endif
3758+ 3829
3759+#ifdef CONFIG_PAX_KERNEXEC 3830+#ifdef CONFIG_PAX_KERNEXEC
3760+ unsigned long addr; 3831+ unsigned long addr;
3761+ pgd_t *pgd; 3832+ pgd_t *pgd;
@@ -3792,11 +3863,11 @@ index ad722f1..763fdd3 100644
3792+ } 3863+ }
3793+ } 3864+ }
3794+#endif 3865+#endif
3795 3866+
3796+#ifdef CONFIG_HAVE_TCM 3867+#ifdef CONFIG_HAVE_TCM
3797 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start); 3868 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
3798 totalram_pages += free_area(__phys_to_pfn(__pa(&__tcm_start)), 3869 free_reserved_area(&__tcm_start, &__tcm_end, 0, "TCM link");
3799 __phys_to_pfn(__pa(&__tcm_end)), 3870 #endif
3800diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c 3871diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
3801index 04d9006..c547d85 100644 3872index 04d9006..c547d85 100644
3802--- a/arch/arm/mm/ioremap.c 3873--- a/arch/arm/mm/ioremap.c
@@ -3926,7 +3997,7 @@ index 10062ce..8695745 100644
3926 mm->unmap_area = arch_unmap_area_topdown; 3997 mm->unmap_area = arch_unmap_area_topdown;
3927 } 3998 }
3928diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c 3999diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
3929index a84ff76..f221c1d 100644 4000index 4d409e6..f375351 100644
3930--- a/arch/arm/mm/mmu.c 4001--- a/arch/arm/mm/mmu.c
3931+++ b/arch/arm/mm/mmu.c 4002+++ b/arch/arm/mm/mmu.c
3932@@ -36,6 +36,22 @@ 4003@@ -36,6 +36,22 @@
@@ -3952,9 +4023,9 @@ index a84ff76..f221c1d 100644
3952 /* 4023 /*
3953 * empty_zero_page is a special page that is used for 4024 * empty_zero_page is a special page that is used for
3954 * zero-initialized data and COW. 4025 * zero-initialized data and COW.
3955@@ -211,10 +227,18 @@ void adjust_cr(unsigned long mask, unsigned long set) 4026@@ -228,10 +244,18 @@ __setup("noalign", noalign_setup);
3956 } 4027
3957 #endif 4028 #endif /* ifdef CONFIG_CPU_CP15 / else */
3958 4029
3959-#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN 4030-#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY|L_PTE_XN
3960+#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY 4031+#define PROT_PTE_DEVICE L_PTE_PRESENT|L_PTE_YOUNG|L_PTE_DIRTY
@@ -3973,7 +4044,7 @@ index a84ff76..f221c1d 100644
3973 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ 4044 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
3974 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED | 4045 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
3975 L_PTE_SHARED, 4046 L_PTE_SHARED,
3976@@ -243,16 +267,16 @@ static struct mem_type mem_types[] = { 4047@@ -260,16 +284,16 @@ static struct mem_type mem_types[] = {
3977 [MT_UNCACHED] = { 4048 [MT_UNCACHED] = {
3978 .prot_pte = PROT_PTE_DEVICE, 4049 .prot_pte = PROT_PTE_DEVICE,
3979 .prot_l1 = PMD_TYPE_TABLE, 4050 .prot_l1 = PMD_TYPE_TABLE,
@@ -3993,7 +4064,7 @@ index a84ff76..f221c1d 100644
3993 .domain = DOMAIN_KERNEL, 4064 .domain = DOMAIN_KERNEL,
3994 }, 4065 },
3995 #endif 4066 #endif
3996@@ -260,36 +284,54 @@ static struct mem_type mem_types[] = { 4067@@ -277,36 +301,65 @@ static struct mem_type mem_types[] = {
3997 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | 4068 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
3998 L_PTE_RDONLY, 4069 L_PTE_RDONLY,
3999 .prot_l1 = PMD_TYPE_TABLE, 4070 .prot_l1 = PMD_TYPE_TABLE,
@@ -4001,9 +4072,21 @@ index a84ff76..f221c1d 100644
4001+ .domain = DOMAIN_VECTORS, 4072+ .domain = DOMAIN_VECTORS,
4002 }, 4073 },
4003 [MT_HIGH_VECTORS] = { 4074 [MT_HIGH_VECTORS] = {
4004 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | 4075- .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4005- L_PTE_USER | L_PTE_RDONLY, 4076- L_PTE_USER | L_PTE_RDONLY,
4006+ L_PTE_RDONLY, 4077+ /* we always want the vector page to be noaccess for userland on archs with
4078+ XN where we can enforce some reasonable measure of security
4079+ therefore, when kernexec is disabled, instead of L_PTE_USER | L_PTE_RDONLY
4080+ which turns into supervisor rwx, userland rx, we instead omit that entirely,
4081+ leaving it as supervisor rwx only
4082+ */
4083+#ifdef CONFIG_PAX_KERNEXEC
4084+ .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_RDONLY,
4085+#elif __LINUX_ARM_ARCH__ >= 6
4086+ .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4087+#else
4088+ .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_USER | L_PTE_RDONLY,
4089+#endif
4007 .prot_l1 = PMD_TYPE_TABLE, 4090 .prot_l1 = PMD_TYPE_TABLE,
4008- .domain = DOMAIN_USER, 4091- .domain = DOMAIN_USER,
4009+ .domain = DOMAIN_VECTORS, 4092+ .domain = DOMAIN_VECTORS,
@@ -4057,7 +4140,7 @@ index a84ff76..f221c1d 100644
4057 .domain = DOMAIN_KERNEL, 4140 .domain = DOMAIN_KERNEL,
4058 }, 4141 },
4059 [MT_MEMORY_ITCM] = { 4142 [MT_MEMORY_ITCM] = {
4060@@ -299,10 +341,10 @@ static struct mem_type mem_types[] = { 4143@@ -316,10 +369,10 @@ static struct mem_type mem_types[] = {
4061 }, 4144 },
4062 [MT_MEMORY_SO] = { 4145 [MT_MEMORY_SO] = {
4063 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | 4146 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
@@ -4070,7 +4153,7 @@ index a84ff76..f221c1d 100644
4070 .domain = DOMAIN_KERNEL, 4153 .domain = DOMAIN_KERNEL,
4071 }, 4154 },
4072 [MT_MEMORY_DMA_READY] = { 4155 [MT_MEMORY_DMA_READY] = {
4073@@ -388,9 +430,35 @@ static void __init build_mem_type_table(void) 4156@@ -405,9 +458,35 @@ static void __init build_mem_type_table(void)
4074 * to prevent speculative instruction fetches. 4157 * to prevent speculative instruction fetches.
4075 */ 4158 */
4076 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN; 4159 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN;
@@ -4106,7 +4189,7 @@ index a84ff76..f221c1d 100644
4106 } 4189 }
4107 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) { 4190 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4108 /* 4191 /*
4109@@ -451,6 +519,9 @@ static void __init build_mem_type_table(void) 4192@@ -468,6 +547,9 @@ static void __init build_mem_type_table(void)
4110 * from SVC mode and no access from userspace. 4193 * from SVC mode and no access from userspace.
4111 */ 4194 */
4112 mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE; 4195 mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
@@ -4116,7 +4199,7 @@ index a84ff76..f221c1d 100644
4116 mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE; 4199 mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4117 mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE; 4200 mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4118 #endif 4201 #endif
4119@@ -468,11 +539,17 @@ static void __init build_mem_type_table(void) 4202@@ -485,11 +567,17 @@ static void __init build_mem_type_table(void)
4120 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED; 4203 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
4121 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S; 4204 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
4122 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED; 4205 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
@@ -4138,7 +4221,7 @@ index a84ff76..f221c1d 100644
4138 } 4221 }
4139 } 4222 }
4140 4223
4141@@ -483,15 +560,20 @@ static void __init build_mem_type_table(void) 4224@@ -500,15 +588,20 @@ static void __init build_mem_type_table(void)
4142 if (cpu_arch >= CPU_ARCH_ARMv6) { 4225 if (cpu_arch >= CPU_ARCH_ARMv6) {
4143 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) { 4226 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4144 /* Non-cacheable Normal is XCB = 001 */ 4227 /* Non-cacheable Normal is XCB = 001 */
@@ -4162,7 +4245,7 @@ index a84ff76..f221c1d 100644
4162 } 4245 }
4163 4246
4164 #ifdef CONFIG_ARM_LPAE 4247 #ifdef CONFIG_ARM_LPAE
4165@@ -507,6 +589,8 @@ static void __init build_mem_type_table(void) 4248@@ -524,6 +617,8 @@ static void __init build_mem_type_table(void)
4166 vecs_pgprot |= PTE_EXT_AF; 4249 vecs_pgprot |= PTE_EXT_AF;
4167 #endif 4250 #endif
4168 4251
@@ -4171,7 +4254,7 @@ index a84ff76..f221c1d 100644
4171 for (i = 0; i < 16; i++) { 4254 for (i = 0; i < 16; i++) {
4172 pteval_t v = pgprot_val(protection_map[i]); 4255 pteval_t v = pgprot_val(protection_map[i]);
4173 protection_map[i] = __pgprot(v | user_pgprot); 4256 protection_map[i] = __pgprot(v | user_pgprot);
4174@@ -524,10 +608,15 @@ static void __init build_mem_type_table(void) 4257@@ -541,10 +636,15 @@ static void __init build_mem_type_table(void)
4175 4258
4176 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask; 4259 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
4177 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask; 4260 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
@@ -4190,7 +4273,7 @@ index a84ff76..f221c1d 100644
4190 mem_types[MT_ROM].prot_sect |= cp->pmd; 4273 mem_types[MT_ROM].prot_sect |= cp->pmd;
4191 4274
4192 switch (cp->pmd) { 4275 switch (cp->pmd) {
4193@@ -1147,18 +1236,15 @@ void __init arm_mm_memblock_reserve(void) 4276@@ -1166,18 +1266,15 @@ void __init arm_mm_memblock_reserve(void)
4194 * called function. This means you can't use any function or debugging 4277 * called function. This means you can't use any function or debugging
4195 * method which may touch any device, otherwise the kernel _will_ crash. 4278 * method which may touch any device, otherwise the kernel _will_ crash.
4196 */ 4279 */
@@ -4202,18 +4285,18 @@ index a84ff76..f221c1d 100644
4202 struct map_desc map; 4285 struct map_desc map;
4203 unsigned long addr; 4286 unsigned long addr;
4204- void *vectors; 4287- void *vectors;
4205- 4288
4206- /* 4289- /*
4207- * Allocate the vector page early. 4290- * Allocate the vector page early.
4208- */ 4291- */
4209- vectors = early_alloc(PAGE_SIZE); 4292- vectors = early_alloc(PAGE_SIZE);
4210 4293-
4211- early_trap_init(vectors); 4294- early_trap_init(vectors);
4212+ early_trap_init(&vectors); 4295+ early_trap_init(&vectors);
4213 4296
4214 for (addr = VMALLOC_START; addr; addr += PMD_SIZE) 4297 for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
4215 pmd_clear(pmd_off_k(addr)); 4298 pmd_clear(pmd_off_k(addr));
4216@@ -1198,7 +1284,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc) 4299@@ -1217,7 +1314,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
4217 * location (0xffff0000). If we aren't using high-vectors, also 4300 * location (0xffff0000). If we aren't using high-vectors, also
4218 * create a mapping at the low-vectors virtual address. 4301 * create a mapping at the low-vectors virtual address.
4219 */ 4302 */
@@ -4222,7 +4305,7 @@ index a84ff76..f221c1d 100644
4222 map.virtual = 0xffff0000; 4305 map.virtual = 0xffff0000;
4223 map.length = PAGE_SIZE; 4306 map.length = PAGE_SIZE;
4224 map.type = MT_HIGH_VECTORS; 4307 map.type = MT_HIGH_VECTORS;
4225@@ -1256,8 +1342,39 @@ static void __init map_lowmem(void) 4308@@ -1275,8 +1372,39 @@ static void __init map_lowmem(void)
4226 map.pfn = __phys_to_pfn(start); 4309 map.pfn = __phys_to_pfn(start);
4227 map.virtual = __phys_to_virt(start); 4310 map.virtual = __phys_to_virt(start);
4228 map.length = end - start; 4311 map.length = end - start;
@@ -4264,7 +4347,7 @@ index a84ff76..f221c1d 100644
4264 } 4347 }
4265 } 4348 }
4266diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S 4349diff --git a/arch/arm/mm/proc-v7-2level.S b/arch/arm/mm/proc-v7-2level.S
4267index 78f520b..31f0cb6 100644 4350index 9704097..3e36dde 100644
4268--- a/arch/arm/mm/proc-v7-2level.S 4351--- a/arch/arm/mm/proc-v7-2level.S
4269+++ b/arch/arm/mm/proc-v7-2level.S 4352+++ b/arch/arm/mm/proc-v7-2level.S
4270@@ -99,6 +99,9 @@ ENTRY(cpu_v7_set_pte_ext) 4353@@ -99,6 +99,9 @@ ENTRY(cpu_v7_set_pte_ext)
@@ -4291,10 +4374,10 @@ index a5bc92d..0bb4730 100644
4291+ pax_close_kernel(); 4374+ pax_close_kernel();
4292 } 4375 }
4293diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h 4376diff --git a/arch/arm/plat-samsung/include/plat/dma-ops.h b/arch/arm/plat-samsung/include/plat/dma-ops.h
4294index 1141782..0959d64 100644 4377index ce6d763..cfea917 100644
4295--- a/arch/arm/plat-samsung/include/plat/dma-ops.h 4378--- a/arch/arm/plat-samsung/include/plat/dma-ops.h
4296+++ b/arch/arm/plat-samsung/include/plat/dma-ops.h 4379+++ b/arch/arm/plat-samsung/include/plat/dma-ops.h
4297@@ -48,7 +48,7 @@ struct samsung_dma_ops { 4380@@ -47,7 +47,7 @@ struct samsung_dma_ops {
4298 int (*started)(unsigned ch); 4381 int (*started)(unsigned ch);
4299 int (*flush)(unsigned ch); 4382 int (*flush)(unsigned ch);
4300 int (*stop)(unsigned ch); 4383 int (*stop)(unsigned ch);
@@ -4893,10 +4976,10 @@ index 24603be..948052d 100644
4893 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp); 4976 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
4894 } 4977 }
4895diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c 4978diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
4896index 79521d5..43dddff 100644 4979index 2b3c2d7..a318d84 100644
4897--- a/arch/ia64/kernel/palinfo.c 4980--- a/arch/ia64/kernel/palinfo.c
4898+++ b/arch/ia64/kernel/palinfo.c 4981+++ b/arch/ia64/kernel/palinfo.c
4899@@ -1006,7 +1006,7 @@ static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb, 4982@@ -980,7 +980,7 @@ static int __cpuinit palinfo_cpu_callback(struct notifier_block *nfb,
4900 return NOTIFY_OK; 4983 return NOTIFY_OK;
4901 } 4984 }
4902 4985
@@ -4906,10 +4989,10 @@ index 79521d5..43dddff 100644
4906 .notifier_call = palinfo_cpu_callback, 4989 .notifier_call = palinfo_cpu_callback,
4907 .priority = 0, 4990 .priority = 0,
4908diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c 4991diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
4909index aa527d7..f237752 100644 4992index 4bc580a..7767f24 100644
4910--- a/arch/ia64/kernel/salinfo.c 4993--- a/arch/ia64/kernel/salinfo.c
4911+++ b/arch/ia64/kernel/salinfo.c 4994+++ b/arch/ia64/kernel/salinfo.c
4912@@ -616,7 +616,7 @@ salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu 4995@@ -609,7 +609,7 @@ salinfo_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu
4913 return NOTIFY_OK; 4996 return NOTIFY_OK;
4914 } 4997 }
4915 4998
@@ -5050,7 +5133,7 @@ index 76069c1..c2aa816 100644
5050 } 5133 }
5051 5134
5052diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c 5135diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
5053index 20bc967..a26993e 100644 5136index d1fe4b4..2628f37 100644
5054--- a/arch/ia64/mm/init.c 5137--- a/arch/ia64/mm/init.c
5055+++ b/arch/ia64/mm/init.c 5138+++ b/arch/ia64/mm/init.c
5056@@ -120,6 +120,19 @@ ia64_init_addr_space (void) 5139@@ -120,6 +120,19 @@ ia64_init_addr_space (void)
@@ -5247,10 +5330,10 @@ index c1f6afa..38cc6e9 100644
5247 5330
5248 #endif /* _ASM_EXEC_H */ 5331 #endif /* _ASM_EXEC_H */
5249diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h 5332diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
5250index eab99e5..607c98e 100644 5333index f59552f..3abe9b9 100644
5251--- a/arch/mips/include/asm/page.h 5334--- a/arch/mips/include/asm/page.h
5252+++ b/arch/mips/include/asm/page.h 5335+++ b/arch/mips/include/asm/page.h
5253@@ -96,7 +96,7 @@ extern void copy_user_highpage(struct page *to, struct page *from, 5336@@ -95,7 +95,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
5254 #ifdef CONFIG_CPU_MIPS32 5337 #ifdef CONFIG_CPU_MIPS32
5255 typedef struct { unsigned long pte_low, pte_high; } pte_t; 5338 typedef struct { unsigned long pte_low, pte_high; } pte_t;
5256 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32)) 5339 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
@@ -5276,10 +5359,10 @@ index 881d18b..cea38bc 100644
5276 5359
5277 /* 5360 /*
5278diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h 5361diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
5279index 178f792..8ebc510 100644 5362index 895320e..bf63e10 100644
5280--- a/arch/mips/include/asm/thread_info.h 5363--- a/arch/mips/include/asm/thread_info.h
5281+++ b/arch/mips/include/asm/thread_info.h 5364+++ b/arch/mips/include/asm/thread_info.h
5282@@ -111,6 +111,8 @@ register struct thread_info *__current_thread_info __asm__("$28"); 5365@@ -115,6 +115,8 @@ static inline struct thread_info *current_thread_info(void)
5283 #define TIF_32BIT_ADDR 23 /* 32-bit address space (o32/n32) */ 5366 #define TIF_32BIT_ADDR 23 /* 32-bit address space (o32/n32) */
5284 #define TIF_FPUBOUND 24 /* thread bound to FPU-full CPU set */ 5367 #define TIF_FPUBOUND 24 /* thread bound to FPU-full CPU set */
5285 #define TIF_LOAD_WATCH 25 /* If set, load watch registers */ 5368 #define TIF_LOAD_WATCH 25 /* If set, load watch registers */
@@ -5288,7 +5371,7 @@ index 178f792..8ebc510 100644
5288 #define TIF_SYSCALL_TRACE 31 /* syscall trace active */ 5371 #define TIF_SYSCALL_TRACE 31 /* syscall trace active */
5289 5372
5290 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 5373 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
5291@@ -126,15 +128,18 @@ register struct thread_info *__current_thread_info __asm__("$28"); 5374@@ -130,15 +132,18 @@ static inline struct thread_info *current_thread_info(void)
5292 #define _TIF_32BIT_ADDR (1<<TIF_32BIT_ADDR) 5375 #define _TIF_32BIT_ADDR (1<<TIF_32BIT_ADDR)
5293 #define _TIF_FPUBOUND (1<<TIF_FPUBOUND) 5376 #define _TIF_FPUBOUND (1<<TIF_FPUBOUND)
5294 #define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH) 5377 #define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH)
@@ -5310,7 +5393,7 @@ index 178f792..8ebc510 100644
5310 #endif /* __KERNEL__ */ 5393 #endif /* __KERNEL__ */
5311 5394
5312diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c 5395diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
5313index e06f777..3244284 100644 5396index 1188e00..41cf144 100644
5314--- a/arch/mips/kernel/binfmt_elfn32.c 5397--- a/arch/mips/kernel/binfmt_elfn32.c
5315+++ b/arch/mips/kernel/binfmt_elfn32.c 5398+++ b/arch/mips/kernel/binfmt_elfn32.c
5316@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; 5399@@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
@@ -5328,10 +5411,10 @@ index e06f777..3244284 100644
5328 #include <linux/module.h> 5411 #include <linux/module.h>
5329 #include <linux/elfcore.h> 5412 #include <linux/elfcore.h>
5330diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c 5413diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c
5331index 556a435..b4fd2e3 100644 5414index 202e581..689ca79 100644
5332--- a/arch/mips/kernel/binfmt_elfo32.c 5415--- a/arch/mips/kernel/binfmt_elfo32.c
5333+++ b/arch/mips/kernel/binfmt_elfo32.c 5416+++ b/arch/mips/kernel/binfmt_elfo32.c
5334@@ -52,6 +52,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; 5417@@ -56,6 +56,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
5335 #undef ELF_ET_DYN_BASE 5418 #undef ELF_ET_DYN_BASE
5336 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2) 5419 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
5337 5420
@@ -5346,10 +5429,10 @@ index 556a435..b4fd2e3 100644
5346 5429
5347 /* 5430 /*
5348diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c 5431diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
5349index 3be4405..a799827 100644 5432index c6a041d..b3e7318 100644
5350--- a/arch/mips/kernel/process.c 5433--- a/arch/mips/kernel/process.c
5351+++ b/arch/mips/kernel/process.c 5434+++ b/arch/mips/kernel/process.c
5352@@ -461,15 +461,3 @@ unsigned long get_wchan(struct task_struct *task) 5435@@ -563,15 +563,3 @@ unsigned long get_wchan(struct task_struct *task)
5353 out: 5436 out:
5354 return pc; 5437 return pc;
5355 } 5438 }
@@ -5393,7 +5476,7 @@ index 9c6299c..2fb4c22 100644
5393 goto out; 5476 goto out;
5394 5477
5395diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S 5478diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
5396index 9ea2964..c4329c3 100644 5479index 9b36424..e7f4154 100644
5397--- a/arch/mips/kernel/scall32-o32.S 5480--- a/arch/mips/kernel/scall32-o32.S
5398+++ b/arch/mips/kernel/scall32-o32.S 5481+++ b/arch/mips/kernel/scall32-o32.S
5399@@ -52,7 +52,7 @@ NESTED(handle_sys, PT_SIZE, sp) 5482@@ -52,7 +52,7 @@ NESTED(handle_sys, PT_SIZE, sp)
@@ -5406,7 +5489,7 @@ index 9ea2964..c4329c3 100644
5406 bnez t0, syscall_trace_entry # -> yes 5489 bnez t0, syscall_trace_entry # -> yes
5407 5490
5408diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S 5491diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
5409index 36cfd40..b1436e0 100644 5492index 97a5909..59622f8 100644
5410--- a/arch/mips/kernel/scall64-64.S 5493--- a/arch/mips/kernel/scall64-64.S
5411+++ b/arch/mips/kernel/scall64-64.S 5494+++ b/arch/mips/kernel/scall64-64.S
5412@@ -54,7 +54,7 @@ NESTED(handle_sys64, PT_SIZE, sp) 5495@@ -54,7 +54,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
@@ -5419,7 +5502,7 @@ index 36cfd40..b1436e0 100644
5419 and t0, t1, t0 5502 and t0, t1, t0
5420 bnez t0, syscall_trace_entry 5503 bnez t0, syscall_trace_entry
5421diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S 5504diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
5422index 693d60b..ae0ba75 100644 5505index edcb659..fb2ab09 100644
5423--- a/arch/mips/kernel/scall64-n32.S 5506--- a/arch/mips/kernel/scall64-n32.S
5424+++ b/arch/mips/kernel/scall64-n32.S 5507+++ b/arch/mips/kernel/scall64-n32.S
5425@@ -47,7 +47,7 @@ NESTED(handle_sysn32, PT_SIZE, sp) 5508@@ -47,7 +47,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
@@ -5432,7 +5515,7 @@ index 693d60b..ae0ba75 100644
5432 and t0, t1, t0 5515 and t0, t1, t0
5433 bnez t0, n32_syscall_trace_entry 5516 bnez t0, n32_syscall_trace_entry
5434diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S 5517diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
5435index af8887f..611ccb6 100644 5518index 74f485d..47d2c38 100644
5436--- a/arch/mips/kernel/scall64-o32.S 5519--- a/arch/mips/kernel/scall64-o32.S
5437+++ b/arch/mips/kernel/scall64-o32.S 5520+++ b/arch/mips/kernel/scall64-o32.S
5438@@ -81,7 +81,7 @@ NESTED(handle_sys, PT_SIZE, sp) 5521@@ -81,7 +81,7 @@ NESTED(handle_sys, PT_SIZE, sp)
@@ -5640,12 +5723,12 @@ index 4ce7a01..449202a 100644
5640 5723
5641 #endif /* __ASM_OPENRISC_CACHE_H */ 5724 #endif /* __ASM_OPENRISC_CACHE_H */
5642diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h 5725diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
5643index f38e198..4179e38 100644 5726index 472886c..00e7df9 100644
5644--- a/arch/parisc/include/asm/atomic.h 5727--- a/arch/parisc/include/asm/atomic.h
5645+++ b/arch/parisc/include/asm/atomic.h 5728+++ b/arch/parisc/include/asm/atomic.h
5646@@ -229,6 +229,16 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u) 5729@@ -252,6 +252,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
5647 5730 return dec;
5648 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0) 5731 }
5649 5732
5650+#define atomic64_read_unchecked(v) atomic64_read(v) 5733+#define atomic64_read_unchecked(v) atomic64_read(v)
5651+#define atomic64_set_unchecked(v, i) atomic64_set((v), (i)) 5734+#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
@@ -5947,10 +6030,10 @@ index 5dfd248..64914ac 100644
5947 return addr; 6030 return addr;
5948 } 6031 }
5949diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c 6032diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
5950index c6ae9f5..e9c3cf4 100644 6033index 04e47c6..7a8faf6 100644
5951--- a/arch/parisc/kernel/traps.c 6034--- a/arch/parisc/kernel/traps.c
5952+++ b/arch/parisc/kernel/traps.c 6035+++ b/arch/parisc/kernel/traps.c
5953@@ -733,9 +733,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) 6036@@ -727,9 +727,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
5954 6037
5955 down_read(&current->mm->mmap_sem); 6038 down_read(&current->mm->mmap_sem);
5956 vma = find_vma(current->mm,regs->iaoq[0]); 6039 vma = find_vma(current->mm,regs->iaoq[0]);
@@ -6177,7 +6260,7 @@ index 9e495c9..b6878e5 100644
6177 #define SMP_CACHE_BYTES L1_CACHE_BYTES 6260 #define SMP_CACHE_BYTES L1_CACHE_BYTES
6178 6261
6179diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h 6262diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
6180index ac9790f..6d30741 100644 6263index cc0655a..13eac2e 100644
6181--- a/arch/powerpc/include/asm/elf.h 6264--- a/arch/powerpc/include/asm/elf.h
6182+++ b/arch/powerpc/include/asm/elf.h 6265+++ b/arch/powerpc/include/asm/elf.h
6183@@ -28,8 +28,19 @@ 6266@@ -28,8 +28,19 @@
@@ -6202,7 +6285,7 @@ index ac9790f..6d30741 100644
6202 6285
6203 /* 6286 /*
6204 * Our registers are always unsigned longs, whether we're a 32 bit 6287 * Our registers are always unsigned longs, whether we're a 32 bit
6205@@ -122,10 +133,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, 6288@@ -123,10 +134,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
6206 (0x7ff >> (PAGE_SHIFT - 12)) : \ 6289 (0x7ff >> (PAGE_SHIFT - 12)) : \
6207 (0x3ffff >> (PAGE_SHIFT - 12))) 6290 (0x3ffff >> (PAGE_SHIFT - 12)))
6208 6291
@@ -6252,7 +6335,7 @@ index 8565c25..2865190 100644
6252 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0); 6335 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
6253 } 6336 }
6254diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h 6337diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
6255index f072e97..b436dee 100644 6338index 988c812..63c7d70 100644
6256--- a/arch/powerpc/include/asm/page.h 6339--- a/arch/powerpc/include/asm/page.h
6257+++ b/arch/powerpc/include/asm/page.h 6340+++ b/arch/powerpc/include/asm/page.h
6258@@ -220,8 +220,9 @@ extern long long virt_phys_offset; 6341@@ -220,8 +220,9 @@ extern long long virt_phys_offset;
@@ -6274,14 +6357,14 @@ index f072e97..b436dee 100644
6274+#define ktla_ktva(addr) (addr) 6357+#define ktla_ktva(addr) (addr)
6275+#define ktva_ktla(addr) (addr) 6358+#define ktva_ktla(addr) (addr)
6276+ 6359+
6360 #ifndef CONFIG_PPC_BOOK3S_64
6277 /* 6361 /*
6278 * Use the top bit of the higher-level page table entries to indicate whether 6362 * Use the top bit of the higher-level page table entries to indicate whether
6279 * the entries we point to contain hugepages. This works because we know that
6280diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h 6363diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
6281index cd915d6..c10cee8 100644 6364index 88693ce..ac6f9ab 100644
6282--- a/arch/powerpc/include/asm/page_64.h 6365--- a/arch/powerpc/include/asm/page_64.h
6283+++ b/arch/powerpc/include/asm/page_64.h 6366+++ b/arch/powerpc/include/asm/page_64.h
6284@@ -154,15 +154,18 @@ do { \ 6367@@ -153,15 +153,18 @@ do { \
6285 * stack by default, so in the absence of a PT_GNU_STACK program header 6368 * stack by default, so in the absence of a PT_GNU_STACK program header
6286 * we turn execute permission off. 6369 * we turn execute permission off.
6287 */ 6370 */
@@ -6303,10 +6386,10 @@ index cd915d6..c10cee8 100644
6303 #include <asm-generic/getorder.h> 6386 #include <asm-generic/getorder.h>
6304 6387
6305diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h 6388diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
6306index 292725c..f87ae14 100644 6389index b66ae72..4a378cd 100644
6307--- a/arch/powerpc/include/asm/pgalloc-64.h 6390--- a/arch/powerpc/include/asm/pgalloc-64.h
6308+++ b/arch/powerpc/include/asm/pgalloc-64.h 6391+++ b/arch/powerpc/include/asm/pgalloc-64.h
6309@@ -50,6 +50,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) 6392@@ -53,6 +53,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
6310 #ifndef CONFIG_PPC_64K_PAGES 6393 #ifndef CONFIG_PPC_64K_PAGES
6311 6394
6312 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD) 6395 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
@@ -6314,7 +6397,7 @@ index 292725c..f87ae14 100644
6314 6397
6315 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr) 6398 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
6316 { 6399 {
6317@@ -67,6 +68,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) 6400@@ -70,6 +71,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6318 pud_set(pud, (unsigned long)pmd); 6401 pud_set(pud, (unsigned long)pmd);
6319 } 6402 }
6320 6403
@@ -6326,8 +6409,8 @@ index 292725c..f87ae14 100644
6326 #define pmd_populate(mm, pmd, pte_page) \ 6409 #define pmd_populate(mm, pmd, pte_page) \
6327 pmd_populate_kernel(mm, pmd, page_address(pte_page)) 6410 pmd_populate_kernel(mm, pmd, page_address(pte_page))
6328 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte)) 6411 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
6329@@ -76,6 +82,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) 6412@@ -171,6 +177,7 @@ extern void __tlb_remove_table(void *_table);
6330 #else /* CONFIG_PPC_64K_PAGES */ 6413 #endif
6331 6414
6332 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd) 6415 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
6333+#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd)) 6416+#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
@@ -6335,7 +6418,7 @@ index 292725c..f87ae14 100644
6335 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, 6418 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
6336 pte_t *pte) 6419 pte_t *pte)
6337diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h 6420diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
6338index a9cbd3b..3b67efa 100644 6421index 7aeb955..19f748e 100644
6339--- a/arch/powerpc/include/asm/pgtable.h 6422--- a/arch/powerpc/include/asm/pgtable.h
6340+++ b/arch/powerpc/include/asm/pgtable.h 6423+++ b/arch/powerpc/include/asm/pgtable.h
6341@@ -2,6 +2,7 @@ 6424@@ -2,6 +2,7 @@
@@ -6359,7 +6442,7 @@ index 4aad413..85d86bf 100644
6359 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */ 6442 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
6360 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */ 6443 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
6361diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h 6444diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
6362index 3b097a8..8f8c774 100644 6445index 362142b..8b22c1b 100644
6363--- a/arch/powerpc/include/asm/reg.h 6446--- a/arch/powerpc/include/asm/reg.h
6364+++ b/arch/powerpc/include/asm/reg.h 6447+++ b/arch/powerpc/include/asm/reg.h
6365@@ -234,6 +234,7 @@ 6448@@ -234,6 +234,7 @@
@@ -6371,7 +6454,7 @@ index 3b097a8..8f8c774 100644
6371 #define DSISR_ISSTORE 0x02000000 /* access was a store */ 6454 #define DSISR_ISSTORE 0x02000000 /* access was a store */
6372 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */ 6455 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
6373diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h 6456diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
6374index 195ce2a..ab5c614 100644 6457index ffbaabe..eabe843 100644
6375--- a/arch/powerpc/include/asm/smp.h 6458--- a/arch/powerpc/include/asm/smp.h
6376+++ b/arch/powerpc/include/asm/smp.h 6459+++ b/arch/powerpc/include/asm/smp.h
6377@@ -50,7 +50,7 @@ struct smp_ops_t { 6460@@ -50,7 +50,7 @@ struct smp_ops_t {
@@ -6384,36 +6467,36 @@ index 195ce2a..ab5c614 100644
6384 extern void smp_send_debugger_break(void); 6467 extern void smp_send_debugger_break(void);
6385 extern void start_secondary_resume(void); 6468 extern void start_secondary_resume(void);
6386diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h 6469diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
6387index 406b7b9..af63426 100644 6470index ba7b197..d292e26 100644
6388--- a/arch/powerpc/include/asm/thread_info.h 6471--- a/arch/powerpc/include/asm/thread_info.h
6389+++ b/arch/powerpc/include/asm/thread_info.h 6472+++ b/arch/powerpc/include/asm/thread_info.h
6390@@ -97,7 +97,6 @@ static inline struct thread_info *current_thread_info(void) 6473@@ -93,7 +93,6 @@ static inline struct thread_info *current_thread_info(void)
6474 #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling
6475 TIF_NEED_RESCHED */
6476 #define TIF_32BIT 4 /* 32 bit binary */
6477-#define TIF_PERFMON_WORK 5 /* work for pfm_handle_work() */
6391 #define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */ 6478 #define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */
6392 #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ 6479 #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
6393 #define TIF_SINGLESTEP 8 /* singlestepping active */ 6480 #define TIF_SINGLESTEP 8 /* singlestepping active */
6394-#define TIF_MEMDIE 9 /* is terminating due to OOM killer */ 6481@@ -107,6 +106,9 @@ static inline struct thread_info *current_thread_info(void)
6395 #define TIF_SECCOMP 10 /* secure computing */
6396 #define TIF_RESTOREALL 11 /* Restore all regs (implies NOERROR) */
6397 #define TIF_NOERROR 12 /* Force successful syscall return */
6398@@ -106,6 +105,9 @@ static inline struct thread_info *current_thread_info(void)
6399 #define TIF_SYSCALL_TRACEPOINT 15 /* syscall tracepoint instrumentation */
6400 #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation 6482 #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation
6401 for stack store? */ 6483 for stack store? */
6402+#define TIF_MEMDIE 17 /* is terminating due to OOM killer */ 6484 #define TIF_MEMDIE 17 /* is terminating due to OOM killer */
6485+#define TIF_PERFMON_WORK 18 /* work for pfm_handle_work() */
6403+/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */ 6486+/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
6404+#define TIF_GRSEC_SETXID 9 /* update credentials on syscall entry/exit */ 6487+#define TIF_GRSEC_SETXID 5 /* update credentials on syscall entry/exit */
6405 6488
6406 /* as above, but as bit values */ 6489 /* as above, but as bit values */
6407 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 6490 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
6408@@ -124,8 +126,10 @@ static inline struct thread_info *current_thread_info(void) 6491@@ -126,9 +128,10 @@ static inline struct thread_info *current_thread_info(void)
6409 #define _TIF_UPROBE (1<<TIF_UPROBE)
6410 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) 6492 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
6411 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE) 6493 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
6494 #define _TIF_NOHZ (1<<TIF_NOHZ)
6412+#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID) 6495+#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
6413 #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ 6496 #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
6414- _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT) 6497 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
6415+ _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \ 6498- _TIF_NOHZ)
6416+ _TIF_GRSEC_SETXID) 6499+ _TIF_NOHZ | _TIF_GRSEC_SETXID)
6417 6500
6418 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ 6501 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
6419 _TIF_NOTIFY_RESUME | _TIF_UPROBE) 6502 _TIF_NOTIFY_RESUME | _TIF_UPROBE)
@@ -6590,10 +6673,10 @@ index 4db4959..aba5c41 100644
6590 6673
6591 static inline unsigned long clear_user(void __user *addr, unsigned long size) 6674 static inline unsigned long clear_user(void __user *addr, unsigned long size)
6592diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S 6675diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
6593index ae54553..cf2184d 100644 6676index 645170a..6cf0271 100644
6594--- a/arch/powerpc/kernel/exceptions-64e.S 6677--- a/arch/powerpc/kernel/exceptions-64e.S
6595+++ b/arch/powerpc/kernel/exceptions-64e.S 6678+++ b/arch/powerpc/kernel/exceptions-64e.S
6596@@ -716,6 +716,7 @@ storage_fault_common: 6679@@ -757,6 +757,7 @@ storage_fault_common:
6597 std r14,_DAR(r1) 6680 std r14,_DAR(r1)
6598 std r15,_DSISR(r1) 6681 std r15,_DSISR(r1)
6599 addi r3,r1,STACK_FRAME_OVERHEAD 6682 addi r3,r1,STACK_FRAME_OVERHEAD
@@ -6601,7 +6684,7 @@ index ae54553..cf2184d 100644
6601 mr r4,r14 6684 mr r4,r14
6602 mr r5,r15 6685 mr r5,r15
6603 ld r14,PACA_EXGEN+EX_R14(r13) 6686 ld r14,PACA_EXGEN+EX_R14(r13)
6604@@ -724,8 +725,7 @@ storage_fault_common: 6687@@ -765,8 +766,7 @@ storage_fault_common:
6605 cmpdi r3,0 6688 cmpdi r3,0
6606 bne- 1f 6689 bne- 1f
6607 b .ret_from_except_lite 6690 b .ret_from_except_lite
@@ -6612,10 +6695,10 @@ index ae54553..cf2184d 100644
6612 ld r4,_DAR(r1) 6695 ld r4,_DAR(r1)
6613 bl .bad_page_fault 6696 bl .bad_page_fault
6614diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S 6697diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
6615index 644378e..b6f2c26 100644 6698index 4e00d22..b26abcc 100644
6616--- a/arch/powerpc/kernel/exceptions-64s.S 6699--- a/arch/powerpc/kernel/exceptions-64s.S
6617+++ b/arch/powerpc/kernel/exceptions-64s.S 6700+++ b/arch/powerpc/kernel/exceptions-64s.S
6618@@ -1390,10 +1390,10 @@ handle_page_fault: 6701@@ -1356,10 +1356,10 @@ handle_page_fault:
6619 11: ld r4,_DAR(r1) 6702 11: ld r4,_DAR(r1)
6620 ld r5,_DSISR(r1) 6703 ld r5,_DSISR(r1)
6621 addi r3,r1,STACK_FRAME_OVERHEAD 6704 addi r3,r1,STACK_FRAME_OVERHEAD
@@ -6661,10 +6744,10 @@ index 2e3200c..72095ce 100644
6661 /* Find this entry, or if that fails, the next avail. entry */ 6744 /* Find this entry, or if that fails, the next avail. entry */
6662 while (entry->jump[0]) { 6745 while (entry->jump[0]) {
6663diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c 6746diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
6664index 0d86c8a..df4c5f2 100644 6747index 076d124..6cb2cbf 100644
6665--- a/arch/powerpc/kernel/process.c 6748--- a/arch/powerpc/kernel/process.c
6666+++ b/arch/powerpc/kernel/process.c 6749+++ b/arch/powerpc/kernel/process.c
6667@@ -871,8 +871,8 @@ void show_regs(struct pt_regs * regs) 6750@@ -874,8 +874,8 @@ void show_regs(struct pt_regs * regs)
6668 * Lookup NIP late so we have the best change of getting the 6751 * Lookup NIP late so we have the best change of getting the
6669 * above info out without failing 6752 * above info out without failing
6670 */ 6753 */
@@ -6675,7 +6758,7 @@ index 0d86c8a..df4c5f2 100644
6675 #endif 6758 #endif
6676 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM 6759 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
6677 printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch); 6760 printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch);
6678@@ -1331,10 +1331,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack) 6761@@ -1335,10 +1335,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
6679 newsp = stack[0]; 6762 newsp = stack[0];
6680 ip = stack[STACK_FRAME_LR_SAVE]; 6763 ip = stack[STACK_FRAME_LR_SAVE];
6681 if (!firstframe || ip != lr) { 6764 if (!firstframe || ip != lr) {
@@ -6688,7 +6771,7 @@ index 0d86c8a..df4c5f2 100644
6688 (void *)current->ret_stack[curr_frame].ret); 6771 (void *)current->ret_stack[curr_frame].ret);
6689 curr_frame--; 6772 curr_frame--;
6690 } 6773 }
6691@@ -1354,7 +1354,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack) 6774@@ -1358,7 +1358,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
6692 struct pt_regs *regs = (struct pt_regs *) 6775 struct pt_regs *regs = (struct pt_regs *)
6693 (sp + STACK_FRAME_OVERHEAD); 6776 (sp + STACK_FRAME_OVERHEAD);
6694 lr = regs->link; 6777 lr = regs->link;
@@ -6697,7 +6780,7 @@ index 0d86c8a..df4c5f2 100644
6697 regs->trap, (void *)regs->nip, (void *)lr); 6780 regs->trap, (void *)regs->nip, (void *)lr);
6698 firstframe = 1; 6781 firstframe = 1;
6699 } 6782 }
6700@@ -1396,58 +1396,3 @@ void notrace __ppc64_runlatch_off(void) 6783@@ -1394,58 +1394,3 @@ void notrace __ppc64_runlatch_off(void)
6701 mtspr(SPRN_CTRLT, ctrl); 6784 mtspr(SPRN_CTRLT, ctrl);
6702 } 6785 }
6703 #endif /* CONFIG_PPC64 */ 6786 #endif /* CONFIG_PPC64 */
@@ -6757,10 +6840,10 @@ index 0d86c8a..df4c5f2 100644
6757- return ret; 6840- return ret;
6758-} 6841-}
6759diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c 6842diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
6760index f9b30c6..d72e7a3 100644 6843index 64f7bd5..8dd550f 100644
6761--- a/arch/powerpc/kernel/ptrace.c 6844--- a/arch/powerpc/kernel/ptrace.c
6762+++ b/arch/powerpc/kernel/ptrace.c 6845+++ b/arch/powerpc/kernel/ptrace.c
6763@@ -1771,6 +1771,10 @@ long arch_ptrace(struct task_struct *child, long request, 6846@@ -1783,6 +1783,10 @@ long arch_ptrace(struct task_struct *child, long request,
6764 return ret; 6847 return ret;
6765 } 6848 }
6766 6849
@@ -6771,7 +6854,7 @@ index f9b30c6..d72e7a3 100644
6771 /* 6854 /*
6772 * We must return the syscall number to actually look up in the table. 6855 * We must return the syscall number to actually look up in the table.
6773 * This can be -1L to skip running any syscall at all. 6856 * This can be -1L to skip running any syscall at all.
6774@@ -1781,6 +1785,11 @@ long do_syscall_trace_enter(struct pt_regs *regs) 6857@@ -1795,6 +1799,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
6775 6858
6776 secure_computing_strict(regs->gpr[0]); 6859 secure_computing_strict(regs->gpr[0]);
6777 6860
@@ -6783,7 +6866,7 @@ index f9b30c6..d72e7a3 100644
6783 if (test_thread_flag(TIF_SYSCALL_TRACE) && 6866 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
6784 tracehook_report_syscall_entry(regs)) 6867 tracehook_report_syscall_entry(regs))
6785 /* 6868 /*
6786@@ -1815,6 +1824,11 @@ void do_syscall_trace_leave(struct pt_regs *regs) 6869@@ -1829,6 +1838,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
6787 { 6870 {
6788 int step; 6871 int step;
6789 6872
@@ -6796,10 +6879,10 @@ index f9b30c6..d72e7a3 100644
6796 6879
6797 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) 6880 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
6798diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c 6881diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
6799index 201385c..0f01828 100644 6882index 0f83122..c0aca6a 100644
6800--- a/arch/powerpc/kernel/signal_32.c 6883--- a/arch/powerpc/kernel/signal_32.c
6801+++ b/arch/powerpc/kernel/signal_32.c 6884+++ b/arch/powerpc/kernel/signal_32.c
6802@@ -976,7 +976,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka, 6885@@ -987,7 +987,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
6803 /* Save user registers on the stack */ 6886 /* Save user registers on the stack */
6804 frame = &rt_sf->uc.uc_mcontext; 6887 frame = &rt_sf->uc.uc_mcontext;
6805 addr = frame; 6888 addr = frame;
@@ -6809,10 +6892,10 @@ index 201385c..0f01828 100644
6809 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp; 6892 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
6810 } else { 6893 } else {
6811diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c 6894diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
6812index 3459473..2d40783 100644 6895index 887e99d..310bc11 100644
6813--- a/arch/powerpc/kernel/signal_64.c 6896--- a/arch/powerpc/kernel/signal_64.c
6814+++ b/arch/powerpc/kernel/signal_64.c 6897+++ b/arch/powerpc/kernel/signal_64.c
6815@@ -749,7 +749,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info, 6898@@ -751,7 +751,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
6816 #endif 6899 #endif
6817 6900
6818 /* Set up to return from userspace. */ 6901 /* Set up to return from userspace. */
@@ -6822,7 +6905,7 @@ index 3459473..2d40783 100644
6822 } else { 6905 } else {
6823 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]); 6906 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
6824diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c 6907diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
6825index 3ce1f86..c30e629 100644 6908index e68a845..8b140e6 100644
6826--- a/arch/powerpc/kernel/sysfs.c 6909--- a/arch/powerpc/kernel/sysfs.c
6827+++ b/arch/powerpc/kernel/sysfs.c 6910+++ b/arch/powerpc/kernel/sysfs.c
6828@@ -522,7 +522,7 @@ static int __cpuinit sysfs_cpu_notify(struct notifier_block *self, 6911@@ -522,7 +522,7 @@ static int __cpuinit sysfs_cpu_notify(struct notifier_block *self,
@@ -6835,10 +6918,10 @@ index 3ce1f86..c30e629 100644
6835 }; 6918 };
6836 6919
6837diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c 6920diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
6838index bf33ace..e836d8b 100644 6921index e4f205a..8bfffb8 100644
6839--- a/arch/powerpc/kernel/traps.c 6922--- a/arch/powerpc/kernel/traps.c
6840+++ b/arch/powerpc/kernel/traps.c 6923+++ b/arch/powerpc/kernel/traps.c
6841@@ -142,6 +142,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs) 6924@@ -143,6 +143,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
6842 return flags; 6925 return flags;
6843 } 6926 }
6844 6927
@@ -6847,7 +6930,7 @@ index bf33ace..e836d8b 100644
6847 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, 6930 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
6848 int signr) 6931 int signr)
6849 { 6932 {
6850@@ -191,6 +193,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, 6933@@ -192,6 +194,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
6851 panic("Fatal exception in interrupt"); 6934 panic("Fatal exception in interrupt");
6852 if (panic_on_oops) 6935 if (panic_on_oops)
6853 panic("Fatal exception"); 6936 panic("Fatal exception");
@@ -6858,7 +6941,7 @@ index bf33ace..e836d8b 100644
6858 } 6941 }
6859 6942
6860diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c 6943diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
6861index 1b2076f..835e4be 100644 6944index d4f463a..8fb7431 100644
6862--- a/arch/powerpc/kernel/vdso.c 6945--- a/arch/powerpc/kernel/vdso.c
6863+++ b/arch/powerpc/kernel/vdso.c 6946+++ b/arch/powerpc/kernel/vdso.c
6864@@ -34,6 +34,7 @@ 6947@@ -34,6 +34,7 @@
@@ -6869,7 +6952,7 @@ index 1b2076f..835e4be 100644
6869 6952
6870 #include "setup.h" 6953 #include "setup.h"
6871 6954
6872@@ -218,7 +219,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) 6955@@ -222,7 +223,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
6873 vdso_base = VDSO32_MBASE; 6956 vdso_base = VDSO32_MBASE;
6874 #endif 6957 #endif
6875 6958
@@ -6878,7 +6961,7 @@ index 1b2076f..835e4be 100644
6878 6961
6879 /* vDSO has a problem and was disabled, just don't "enable" it for the 6962 /* vDSO has a problem and was disabled, just don't "enable" it for the
6880 * process 6963 * process
6881@@ -238,7 +239,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) 6964@@ -242,7 +243,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
6882 vdso_base = get_unmapped_area(NULL, vdso_base, 6965 vdso_base = get_unmapped_area(NULL, vdso_base,
6883 (vdso_pages << PAGE_SHIFT) + 6966 (vdso_pages << PAGE_SHIFT) +
6884 ((VDSO_ALIGNMENT - 1) & PAGE_MASK), 6967 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
@@ -6923,13 +7006,13 @@ index 5eea6f3..5d10396 100644
6923 EXPORT_SYMBOL(copy_in_user); 7006 EXPORT_SYMBOL(copy_in_user);
6924 7007
6925diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c 7008diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
6926index 229951f..cdeca42 100644 7009index 8726779..a33c512 100644
6927--- a/arch/powerpc/mm/fault.c 7010--- a/arch/powerpc/mm/fault.c
6928+++ b/arch/powerpc/mm/fault.c 7011+++ b/arch/powerpc/mm/fault.c
6929@@ -32,6 +32,10 @@ 7012@@ -33,6 +33,10 @@
6930 #include <linux/perf_event.h>
6931 #include <linux/magic.h> 7013 #include <linux/magic.h>
6932 #include <linux/ratelimit.h> 7014 #include <linux/ratelimit.h>
7015 #include <linux/context_tracking.h>
6933+#include <linux/slab.h> 7016+#include <linux/slab.h>
6934+#include <linux/pagemap.h> 7017+#include <linux/pagemap.h>
6935+#include <linux/compiler.h> 7018+#include <linux/compiler.h>
@@ -6937,7 +7020,7 @@ index 229951f..cdeca42 100644
6937 7020
6938 #include <asm/firmware.h> 7021 #include <asm/firmware.h>
6939 #include <asm/page.h> 7022 #include <asm/page.h>
6940@@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs) 7023@@ -69,6 +73,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
6941 } 7024 }
6942 #endif 7025 #endif
6943 7026
@@ -6971,7 +7054,7 @@ index 229951f..cdeca42 100644
6971 /* 7054 /*
6972 * Check whether the instruction at regs->nip is a store using 7055 * Check whether the instruction at regs->nip is a store using
6973 * an update addressing form which will update r1. 7056 * an update addressing form which will update r1.
6974@@ -213,7 +244,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address, 7057@@ -216,7 +247,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
6975 * indicate errors in DSISR but can validly be set in SRR1. 7058 * indicate errors in DSISR but can validly be set in SRR1.
6976 */ 7059 */
6977 if (trap == 0x400) 7060 if (trap == 0x400)
@@ -6980,7 +7063,7 @@ index 229951f..cdeca42 100644
6980 else 7063 else
6981 is_write = error_code & DSISR_ISSTORE; 7064 is_write = error_code & DSISR_ISSTORE;
6982 #else 7065 #else
6983@@ -364,7 +395,7 @@ good_area: 7066@@ -371,7 +402,7 @@ good_area:
6984 * "undefined". Of those that can be set, this is the only 7067 * "undefined". Of those that can be set, this is the only
6985 * one which seems bad. 7068 * one which seems bad.
6986 */ 7069 */
@@ -6989,7 +7072,7 @@ index 229951f..cdeca42 100644
6989 /* Guarded storage error. */ 7072 /* Guarded storage error. */
6990 goto bad_area; 7073 goto bad_area;
6991 #endif /* CONFIG_8xx */ 7074 #endif /* CONFIG_8xx */
6992@@ -379,7 +410,7 @@ good_area: 7075@@ -386,7 +417,7 @@ good_area:
6993 * processors use the same I/D cache coherency mechanism 7076 * processors use the same I/D cache coherency mechanism
6994 * as embedded. 7077 * as embedded.
6995 */ 7078 */
@@ -6998,7 +7081,7 @@ index 229951f..cdeca42 100644
6998 goto bad_area; 7081 goto bad_area;
6999 #endif /* CONFIG_PPC_STD_MMU */ 7082 #endif /* CONFIG_PPC_STD_MMU */
7000 7083
7001@@ -462,6 +493,23 @@ bad_area: 7084@@ -471,6 +502,23 @@ bad_area:
7002 bad_area_nosemaphore: 7085 bad_area_nosemaphore:
7003 /* User mode accesses cause a SIGSEGV */ 7086 /* User mode accesses cause a SIGSEGV */
7004 if (user_mode(regs)) { 7087 if (user_mode(regs)) {
@@ -7020,7 +7103,7 @@ index 229951f..cdeca42 100644
7020+#endif 7103+#endif
7021+ 7104+
7022 _exception(SIGSEGV, regs, code, address); 7105 _exception(SIGSEGV, regs, code, address);
7023 return 0; 7106 goto bail;
7024 } 7107 }
7025diff --git a/arch/powerpc/mm/mmap_64.c b/arch/powerpc/mm/mmap_64.c 7108diff --git a/arch/powerpc/mm/mmap_64.c b/arch/powerpc/mm/mmap_64.c
7026index 67a42ed..cd463e0 100644 7109index 67a42ed..cd463e0 100644
@@ -7074,10 +7157,10 @@ index e779642..e5bb889 100644
7074 }; 7157 };
7075 7158
7076diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c 7159diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
7077index 6a252c4..3024d81 100644 7160index 2859a1f..74f9a6e 100644
7078--- a/arch/powerpc/mm/numa.c 7161--- a/arch/powerpc/mm/numa.c
7079+++ b/arch/powerpc/mm/numa.c 7162+++ b/arch/powerpc/mm/numa.c
7080@@ -932,7 +932,7 @@ static void __init *careful_zallocation(int nid, unsigned long size, 7163@@ -919,7 +919,7 @@ static void __init *careful_zallocation(int nid, unsigned long size,
7081 return ret; 7164 return ret;
7082 } 7165 }
7083 7166
@@ -7087,7 +7170,7 @@ index 6a252c4..3024d81 100644
7087 .priority = 1 /* Must run before sched domains notifier. */ 7170 .priority = 1 /* Must run before sched domains notifier. */
7088 }; 7171 };
7089diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c 7172diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
7090index cf9dada..241529f 100644 7173index 3e99c14..f00953c 100644
7091--- a/arch/powerpc/mm/slice.c 7174--- a/arch/powerpc/mm/slice.c
7092+++ b/arch/powerpc/mm/slice.c 7175+++ b/arch/powerpc/mm/slice.c
7093@@ -103,7 +103,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, 7176@@ -103,7 +103,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
@@ -7099,52 +7182,20 @@ index cf9dada..241529f 100644
7099 } 7182 }
7100 7183
7101 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice) 7184 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
7102@@ -272,7 +272,7 @@ full_search: 7185@@ -277,6 +277,12 @@ static unsigned long slice_find_area_bottomup(struct mm_struct *mm,
7103 addr = _ALIGN_UP(addr + 1, 1ul << SLICE_HIGH_SHIFT); 7186 info.align_offset = 0;
7104 continue;
7105 }
7106- if (!vma || addr + len <= vma->vm_start) {
7107+ if (check_heap_stack_gap(vma, addr, len, 0)) {
7108 /*
7109 * Remember the place where we stopped the search:
7110 */
7111@@ -329,10 +329,14 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
7112 }
7113 }
7114 7187
7115- addr = mm->mmap_base; 7188 addr = TASK_UNMAPPED_BASE;
7116- while (addr > len) {
7117+ if (mm->mmap_base < len)
7118+ addr = -ENOMEM;
7119+ else
7120+ addr = mm->mmap_base - len;
7121+ 7189+
7122+ while (!IS_ERR_VALUE(addr)) { 7190+#ifdef CONFIG_PAX_RANDMMAP
7123 /* Go down by chunk size */ 7191+ if (mm->pax_flags & MF_PAX_RANDMMAP)
7124- addr = _ALIGN_DOWN(addr - len, 1ul << pshift); 7192+ addr += mm->delta_mmap;
7125+ addr = _ALIGN_DOWN(addr, 1ul << pshift); 7193+#endif
7126 7194+
7127 /* Check for hit with different page size */ 7195 while (addr < TASK_SIZE) {
7128 mask = slice_range_to_mask(addr, len); 7196 info.low_limit = addr;
7129@@ -352,7 +356,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm, 7197 if (!slice_scan_available(addr, available, 1, &addr))
7130 * return with success: 7198@@ -410,6 +416,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
7131 */
7132 vma = find_vma(mm, addr);
7133- if (!vma || (addr + len) <= vma->vm_start) {
7134+ if (check_heap_stack_gap(vma, addr, len, 0)) {
7135 /* remember the address as a hint for next time */
7136 if (use_cache)
7137 mm->free_area_cache = addr;
7138@@ -364,7 +368,7 @@ static unsigned long slice_find_area_topdown(struct mm_struct *mm,
7139 mm->cached_hole_size = vma->vm_start - addr;
7140
7141 /* try just below the current vma->vm_start */
7142- addr = vma->vm_start;
7143+ addr = skip_heap_stack_gap(vma, len, 0);
7144 }
7145
7146 /*
7147@@ -442,6 +446,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
7148 if (fixed && addr > (mm->task_size - len)) 7199 if (fixed && addr > (mm->task_size - len))
7149 return -EINVAL; 7200 return -EINVAL;
7150 7201
@@ -7157,10 +7208,10 @@ index cf9dada..241529f 100644
7157 if (!fixed && addr) { 7208 if (!fixed && addr) {
7158 addr = _ALIGN_UP(addr, 1ul << pshift); 7209 addr = _ALIGN_UP(addr, 1ul << pshift);
7159diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c 7210diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
7160index 68c57d3..1fdcfb2 100644 7211index 9098692..3d54cd1 100644
7161--- a/arch/powerpc/platforms/cell/spufs/file.c 7212--- a/arch/powerpc/platforms/cell/spufs/file.c
7162+++ b/arch/powerpc/platforms/cell/spufs/file.c 7213+++ b/arch/powerpc/platforms/cell/spufs/file.c
7163@@ -281,9 +281,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 7214@@ -280,9 +280,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
7164 return VM_FAULT_NOPAGE; 7215 return VM_FAULT_NOPAGE;
7165 } 7216 }
7166 7217
@@ -7223,10 +7274,10 @@ index 4d7ccac..d03d0ad 100644
7223 7274
7224 #define __read_mostly __attribute__((__section__(".data..read_mostly"))) 7275 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
7225diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h 7276diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
7226index 1bfdf24..9c9ab2e 100644 7277index 78f4f87..598ce39 100644
7227--- a/arch/s390/include/asm/elf.h 7278--- a/arch/s390/include/asm/elf.h
7228+++ b/arch/s390/include/asm/elf.h 7279+++ b/arch/s390/include/asm/elf.h
7229@@ -160,8 +160,14 @@ extern unsigned int vdso_enabled; 7280@@ -162,8 +162,14 @@ extern unsigned int vdso_enabled;
7230 the loader. We need to make sure that it is out of the way of the program 7281 the loader. We need to make sure that it is out of the way of the program
7231 that it will "exec", and that there is sufficient room for the brk. */ 7282 that it will "exec", and that there is sufficient room for the brk. */
7232 7283
@@ -7243,7 +7294,7 @@ index 1bfdf24..9c9ab2e 100644
7243 7294
7244 /* This yields a mask that user programs can use to figure out what 7295 /* This yields a mask that user programs can use to figure out what
7245 instruction set this CPU supports. */ 7296 instruction set this CPU supports. */
7246@@ -207,9 +213,6 @@ struct linux_binprm; 7297@@ -222,9 +228,6 @@ struct linux_binprm;
7247 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1 7298 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
7248 int arch_setup_additional_pages(struct linux_binprm *, int); 7299 int arch_setup_additional_pages(struct linux_binprm *, int);
7249 7300
@@ -7383,10 +7434,10 @@ index 7845e15..59c4353 100644
7383 if (r_type == R_390_GOTPC) 7434 if (r_type == R_390_GOTPC)
7384 rc = apply_rela_bits(loc, val, 1, 32, 0); 7435 rc = apply_rela_bits(loc, val, 1, 32, 0);
7385diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c 7436diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
7386index 536d645..4a5bd9e 100644 7437index 2bc3edd..ab9d598 100644
7387--- a/arch/s390/kernel/process.c 7438--- a/arch/s390/kernel/process.c
7388+++ b/arch/s390/kernel/process.c 7439+++ b/arch/s390/kernel/process.c
7389@@ -250,39 +250,3 @@ unsigned long get_wchan(struct task_struct *p) 7440@@ -236,39 +236,3 @@ unsigned long get_wchan(struct task_struct *p)
7390 } 7441 }
7391 return 0; 7442 return 0;
7392 } 7443 }
@@ -7504,10 +7555,10 @@ index f9f3cd5..58ff438 100644
7504 7555
7505 #endif /* _ASM_SCORE_EXEC_H */ 7556 #endif /* _ASM_SCORE_EXEC_H */
7506diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c 7557diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
7507index 7956846..5f37677 100644 7558index f4c6d02..e9355c3 100644
7508--- a/arch/score/kernel/process.c 7559--- a/arch/score/kernel/process.c
7509+++ b/arch/score/kernel/process.c 7560+++ b/arch/score/kernel/process.c
7510@@ -134,8 +134,3 @@ unsigned long get_wchan(struct task_struct *task) 7561@@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
7511 7562
7512 return task_pt_regs(task)->cp0_epc; 7563 return task_pt_regs(task)->cp0_epc;
7513 } 7564 }
@@ -8053,7 +8104,7 @@ index 9689176..63c18ea 100644
8053 unsigned long mask, tmp1, tmp2, result; 8104 unsigned long mask, tmp1, tmp2, result;
8054 8105
8055diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h 8106diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
8056index 25849ae..924c54b 100644 8107index dd38075..e7cac83 100644
8057--- a/arch/sparc/include/asm/thread_info_32.h 8108--- a/arch/sparc/include/asm/thread_info_32.h
8058+++ b/arch/sparc/include/asm/thread_info_32.h 8109+++ b/arch/sparc/include/asm/thread_info_32.h
8059@@ -49,6 +49,8 @@ struct thread_info { 8110@@ -49,6 +49,8 @@ struct thread_info {
@@ -8066,7 +8117,7 @@ index 25849ae..924c54b 100644
8066 8117
8067 /* 8118 /*
8068diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h 8119diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
8069index 269bd92..e46a9b8 100644 8120index d5e5042..9bfee76 100644
8070--- a/arch/sparc/include/asm/thread_info_64.h 8121--- a/arch/sparc/include/asm/thread_info_64.h
8071+++ b/arch/sparc/include/asm/thread_info_64.h 8122+++ b/arch/sparc/include/asm/thread_info_64.h
8072@@ -63,6 +63,8 @@ struct thread_info { 8123@@ -63,6 +63,8 @@ struct thread_info {
@@ -8211,19 +8262,19 @@ index e562d3c..191f176 100644
8211 { 8262 {
8212- unsigned long ret = ___copy_to_user(to, from, size); 8263- unsigned long ret = ___copy_to_user(to, from, size);
8213+ unsigned long ret; 8264+ unsigned long ret;
8214+ 8265
8215+ if ((long)size < 0 || size > INT_MAX) 8266+ if ((long)size < 0 || size > INT_MAX)
8216+ return size; 8267+ return size;
8217+ 8268+
8218+ if (!__builtin_constant_p(size)) 8269+ if (!__builtin_constant_p(size))
8219+ check_object_size(from, size, true); 8270+ check_object_size(from, size, true);
8220 8271+
8221+ ret = ___copy_to_user(to, from, size); 8272+ ret = ___copy_to_user(to, from, size);
8222 if (unlikely(ret)) 8273 if (unlikely(ret))
8223 ret = copy_to_user_fixup(to, from, size); 8274 ret = copy_to_user_fixup(to, from, size);
8224 return ret; 8275 return ret;
8225diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile 8276diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
8226index 6cf591b..b49e65a 100644 8277index d432fb2..6056af1 100644
8227--- a/arch/sparc/kernel/Makefile 8278--- a/arch/sparc/kernel/Makefile
8228+++ b/arch/sparc/kernel/Makefile 8279+++ b/arch/sparc/kernel/Makefile
8229@@ -3,7 +3,7 @@ 8280@@ -3,7 +3,7 @@
@@ -8235,11 +8286,32 @@ index 6cf591b..b49e65a 100644
8235 8286
8236 extra-y := head_$(BITS).o 8287 extra-y := head_$(BITS).o
8237 8288
8289diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c
8290index 5ef48da..11d460f 100644
8291--- a/arch/sparc/kernel/ds.c
8292+++ b/arch/sparc/kernel/ds.c
8293@@ -783,6 +783,16 @@ void ldom_set_var(const char *var, const char *value)
8294 char *base, *p;
8295 int msg_len, loops;
8296
8297+ if (strlen(var) + strlen(value) + 2 >
8298+ sizeof(pkt) - sizeof(pkt.header)) {
8299+ printk(KERN_ERR PFX
8300+ "contents length: %zu, which more than max: %lu,"
8301+ "so could not set (%s) variable to (%s).\n",
8302+ strlen(var) + strlen(value) + 2,
8303+ sizeof(pkt) - sizeof(pkt.header), var, value);
8304+ return;
8305+ }
8306+
8307 memset(&pkt, 0, sizeof(pkt));
8308 pkt.header.data.tag.type = DS_DATA;
8309 pkt.header.data.handle = cp->handle;
8238diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c 8310diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
8239index 62eede1..9c5b904 100644 8311index fdd819d..5af08c8 100644
8240--- a/arch/sparc/kernel/process_32.c 8312--- a/arch/sparc/kernel/process_32.c
8241+++ b/arch/sparc/kernel/process_32.c 8313+++ b/arch/sparc/kernel/process_32.c
8242@@ -125,14 +125,14 @@ void show_regs(struct pt_regs *r) 8314@@ -116,14 +116,14 @@ void show_regs(struct pt_regs *r)
8243 8315
8244 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n", 8316 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
8245 r->psr, r->pc, r->npc, r->y, print_tainted()); 8317 r->psr, r->pc, r->npc, r->y, print_tainted());
@@ -8256,7 +8328,7 @@ index 62eede1..9c5b904 100644
8256 8328
8257 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n", 8329 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
8258 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3], 8330 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
8259@@ -167,7 +167,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp) 8331@@ -160,7 +160,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
8260 rw = (struct reg_window32 *) fp; 8332 rw = (struct reg_window32 *) fp;
8261 pc = rw->ins[7]; 8333 pc = rw->ins[7];
8262 printk("[%08lx : ", pc); 8334 printk("[%08lx : ", pc);
@@ -8266,10 +8338,10 @@ index 62eede1..9c5b904 100644
8266 } while (++count < 16); 8338 } while (++count < 16);
8267 printk("\n"); 8339 printk("\n");
8268diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c 8340diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
8269index cdb80b2..5ca141d 100644 8341index baebab2..9cd13b1 100644
8270--- a/arch/sparc/kernel/process_64.c 8342--- a/arch/sparc/kernel/process_64.c
8271+++ b/arch/sparc/kernel/process_64.c 8343+++ b/arch/sparc/kernel/process_64.c
8272@@ -181,14 +181,14 @@ static void show_regwindow(struct pt_regs *regs) 8344@@ -158,7 +158,7 @@ static void show_regwindow(struct pt_regs *regs)
8273 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n", 8345 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
8274 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]); 8346 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
8275 if (regs->tstate & TSTATE_PRIV) 8347 if (regs->tstate & TSTATE_PRIV)
@@ -8278,7 +8350,8 @@ index cdb80b2..5ca141d 100644
8278 } 8350 }
8279 8351
8280 void show_regs(struct pt_regs *regs) 8352 void show_regs(struct pt_regs *regs)
8281 { 8353@@ -167,7 +167,7 @@ void show_regs(struct pt_regs *regs)
8354
8282 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate, 8355 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
8283 regs->tpc, regs->tnpc, regs->y, print_tainted()); 8356 regs->tpc, regs->tnpc, regs->y, print_tainted());
8284- printk("TPC: <%pS>\n", (void *) regs->tpc); 8357- printk("TPC: <%pS>\n", (void *) regs->tpc);
@@ -8286,7 +8359,7 @@ index cdb80b2..5ca141d 100644
8286 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n", 8359 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
8287 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2], 8360 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
8288 regs->u_regs[3]); 8361 regs->u_regs[3]);
8289@@ -201,7 +201,7 @@ void show_regs(struct pt_regs *regs) 8362@@ -180,7 +180,7 @@ void show_regs(struct pt_regs *regs)
8290 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n", 8363 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
8291 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14], 8364 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
8292 regs->u_regs[15]); 8365 regs->u_regs[15]);
@@ -8295,7 +8368,7 @@ index cdb80b2..5ca141d 100644
8295 show_regwindow(regs); 8368 show_regwindow(regs);
8296 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]); 8369 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
8297 } 8370 }
8298@@ -290,7 +290,7 @@ void arch_trigger_all_cpu_backtrace(void) 8371@@ -269,7 +269,7 @@ void arch_trigger_all_cpu_backtrace(void)
8299 ((tp && tp->task) ? tp->task->pid : -1)); 8372 ((tp && tp->task) ? tp->task->pid : -1));
8300 8373
8301 if (gp->tstate & TSTATE_PRIV) { 8374 if (gp->tstate & TSTATE_PRIV) {
@@ -8305,10 +8378,10 @@ index cdb80b2..5ca141d 100644
8305 (void *) gp->o7, 8378 (void *) gp->o7,
8306 (void *) gp->i7, 8379 (void *) gp->i7,
8307diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c 8380diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c
8308index 9f20566..67eb41b 100644 8381index 79cc0d1..ec62734 100644
8309--- a/arch/sparc/kernel/prom_common.c 8382--- a/arch/sparc/kernel/prom_common.c
8310+++ b/arch/sparc/kernel/prom_common.c 8383+++ b/arch/sparc/kernel/prom_common.c
8311@@ -143,7 +143,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf) 8384@@ -144,7 +144,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf)
8312 8385
8313 unsigned int prom_early_allocated __initdata; 8386 unsigned int prom_early_allocated __initdata;
8314 8387
@@ -8370,7 +8443,7 @@ index 3a8d184..49498a8 100644
8370 info.flags = 0; 8443 info.flags = 0;
8371 info.length = len; 8444 info.length = len;
8372diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c 8445diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
8373index 708bc29..6bfdfad 100644 8446index 2daaaa6..4fb84dc 100644
8374--- a/arch/sparc/kernel/sys_sparc_64.c 8447--- a/arch/sparc/kernel/sys_sparc_64.c
8375+++ b/arch/sparc/kernel/sys_sparc_64.c 8448+++ b/arch/sparc/kernel/sys_sparc_64.c
8376@@ -90,13 +90,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi 8449@@ -90,13 +90,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
@@ -8491,7 +8564,12 @@ index 708bc29..6bfdfad 100644
8491 info.high_limit = STACK_TOP32; 8564 info.high_limit = STACK_TOP32;
8492 addr = vm_unmapped_area(&info); 8565 addr = vm_unmapped_area(&info);
8493 } 8566 }
8494@@ -264,6 +286,10 @@ static unsigned long mmap_rnd(void) 8567@@ -260,10 +282,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
8568 EXPORT_SYMBOL(get_fb_unmapped_area);
8569
8570 /* Essentially the same as PowerPC. */
8571-static unsigned long mmap_rnd(void)
8572+static unsigned long mmap_rnd(struct mm_struct *mm)
8495 { 8573 {
8496 unsigned long rnd = 0UL; 8574 unsigned long rnd = 0UL;
8497 8575
@@ -8502,6 +8580,15 @@ index 708bc29..6bfdfad 100644
8502 if (current->flags & PF_RANDOMIZE) { 8580 if (current->flags & PF_RANDOMIZE) {
8503 unsigned long val = get_random_int(); 8581 unsigned long val = get_random_int();
8504 if (test_thread_flag(TIF_32BIT)) 8582 if (test_thread_flag(TIF_32BIT))
8583@@ -276,7 +302,7 @@ static unsigned long mmap_rnd(void)
8584
8585 void arch_pick_mmap_layout(struct mm_struct *mm)
8586 {
8587- unsigned long random_factor = mmap_rnd();
8588+ unsigned long random_factor = mmap_rnd(mm);
8589 unsigned long gap;
8590
8591 /*
8505@@ -289,6 +315,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm) 8592@@ -289,6 +315,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
8506 gap == RLIM_INFINITY || 8593 gap == RLIM_INFINITY ||
8507 sysctl_legacy_va_layout) { 8594 sysctl_legacy_va_layout) {
@@ -8615,7 +8702,7 @@ index 6629829..036032d 100644
8615 } 8702 }
8616 8703
8617diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c 8704diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
8618index 8d38ca9..845b1d6 100644 8705index b3f833a..ac74b2d 100644
8619--- a/arch/sparc/kernel/traps_64.c 8706--- a/arch/sparc/kernel/traps_64.c
8620+++ b/arch/sparc/kernel/traps_64.c 8707+++ b/arch/sparc/kernel/traps_64.c
8621@@ -76,7 +76,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p) 8708@@ -76,7 +76,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
@@ -8725,7 +8812,7 @@ index 8d38ca9..845b1d6 100644
8725 graph++; 8812 graph++;
8726 } 8813 }
8727 } 8814 }
8728@@ -2367,6 +2378,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw) 8815@@ -2360,6 +2371,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
8729 return (struct reg_window *) (fp + STACK_BIAS); 8816 return (struct reg_window *) (fp + STACK_BIAS);
8730 } 8817 }
8731 8818
@@ -8734,7 +8821,7 @@ index 8d38ca9..845b1d6 100644
8734 void die_if_kernel(char *str, struct pt_regs *regs) 8821 void die_if_kernel(char *str, struct pt_regs *regs)
8735 { 8822 {
8736 static int die_counter; 8823 static int die_counter;
8737@@ -2395,7 +2408,7 @@ void die_if_kernel(char *str, struct pt_regs *regs) 8824@@ -2388,7 +2401,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
8738 while (rw && 8825 while (rw &&
8739 count++ < 30 && 8826 count++ < 30 &&
8740 kstack_valid(tp, (unsigned long) rw)) { 8827 kstack_valid(tp, (unsigned long) rw)) {
@@ -8743,7 +8830,7 @@ index 8d38ca9..845b1d6 100644
8743 (void *) rw->ins[7]); 8830 (void *) rw->ins[7]);
8744 8831
8745 rw = kernel_stack_up(rw); 8832 rw = kernel_stack_up(rw);
8746@@ -2408,8 +2421,10 @@ void die_if_kernel(char *str, struct pt_regs *regs) 8833@@ -2401,8 +2414,10 @@ void die_if_kernel(char *str, struct pt_regs *regs)
8747 } 8834 }
8748 user_instruction_dump ((unsigned int __user *) regs->tpc); 8835 user_instruction_dump ((unsigned int __user *) regs->tpc);
8749 } 8836 }
@@ -8768,117 +8855,8 @@ index 8201c25e..072a2a7 100644
8768 regs->tpc, (void *) regs->tpc); 8855 regs->tpc, (void *) regs->tpc);
8769 } 8856 }
8770 } 8857 }
8771diff --git a/arch/sparc/kernel/us3_cpufreq.c b/arch/sparc/kernel/us3_cpufreq.c
8772index eb1624b..55100de 100644
8773--- a/arch/sparc/kernel/us3_cpufreq.c
8774+++ b/arch/sparc/kernel/us3_cpufreq.c
8775@@ -18,14 +18,12 @@
8776 #include <asm/head.h>
8777 #include <asm/timer.h>
8778
8779-static struct cpufreq_driver *cpufreq_us3_driver;
8780-
8781 struct us3_freq_percpu_info {
8782 struct cpufreq_frequency_table table[4];
8783 };
8784
8785 /* Indexed by cpu number. */
8786-static struct us3_freq_percpu_info *us3_freq_table;
8787+static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
8788
8789 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
8790 * in the Safari config register.
8791@@ -191,12 +189,25 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
8792
8793 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
8794 {
8795- if (cpufreq_us3_driver)
8796- us3_set_cpu_divider_index(policy->cpu, 0);
8797+ us3_set_cpu_divider_index(policy->cpu, 0);
8798
8799 return 0;
8800 }
8801
8802+static int __init us3_freq_init(void);
8803+static void __exit us3_freq_exit(void);
8804+
8805+static struct cpufreq_driver cpufreq_us3_driver = {
8806+ .init = us3_freq_cpu_init,
8807+ .verify = us3_freq_verify,
8808+ .target = us3_freq_target,
8809+ .get = us3_freq_get,
8810+ .exit = us3_freq_cpu_exit,
8811+ .owner = THIS_MODULE,
8812+ .name = "UltraSPARC-III",
8813+
8814+};
8815+
8816 static int __init us3_freq_init(void)
8817 {
8818 unsigned long manuf, impl, ver;
8819@@ -213,57 +224,15 @@ static int __init us3_freq_init(void)
8820 (impl == CHEETAH_IMPL ||
8821 impl == CHEETAH_PLUS_IMPL ||
8822 impl == JAGUAR_IMPL ||
8823- impl == PANTHER_IMPL)) {
8824- struct cpufreq_driver *driver;
8825-
8826- ret = -ENOMEM;
8827- driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
8828- if (!driver)
8829- goto err_out;
8830-
8831- us3_freq_table = kzalloc(
8832- (NR_CPUS * sizeof(struct us3_freq_percpu_info)),
8833- GFP_KERNEL);
8834- if (!us3_freq_table)
8835- goto err_out;
8836-
8837- driver->init = us3_freq_cpu_init;
8838- driver->verify = us3_freq_verify;
8839- driver->target = us3_freq_target;
8840- driver->get = us3_freq_get;
8841- driver->exit = us3_freq_cpu_exit;
8842- driver->owner = THIS_MODULE,
8843- strcpy(driver->name, "UltraSPARC-III");
8844-
8845- cpufreq_us3_driver = driver;
8846- ret = cpufreq_register_driver(driver);
8847- if (ret)
8848- goto err_out;
8849-
8850- return 0;
8851-
8852-err_out:
8853- if (driver) {
8854- kfree(driver);
8855- cpufreq_us3_driver = NULL;
8856- }
8857- kfree(us3_freq_table);
8858- us3_freq_table = NULL;
8859- return ret;
8860- }
8861+ impl == PANTHER_IMPL))
8862+ return cpufreq_register_driver(&cpufreq_us3_driver);
8863
8864 return -ENODEV;
8865 }
8866
8867 static void __exit us3_freq_exit(void)
8868 {
8869- if (cpufreq_us3_driver) {
8870- cpufreq_unregister_driver(cpufreq_us3_driver);
8871- kfree(cpufreq_us3_driver);
8872- cpufreq_us3_driver = NULL;
8873- kfree(us3_freq_table);
8874- us3_freq_table = NULL;
8875- }
8876+ cpufreq_unregister_driver(&cpufreq_us3_driver);
8877 }
8878
8879 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
8880diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile 8858diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
8881index 8410065f2..4fd4ca22 100644 8859index dbe119b..089c7c1 100644
8882--- a/arch/sparc/lib/Makefile 8860--- a/arch/sparc/lib/Makefile
8883+++ b/arch/sparc/lib/Makefile 8861+++ b/arch/sparc/lib/Makefile
8884@@ -2,7 +2,7 @@ 8862@@ -2,7 +2,7 @@
@@ -10041,20 +10019,6 @@ index d2b5944..bd813f2 100644
10041 return addr; 10019 return addr;
10042 } 10020 }
10043 if (mm->get_unmapped_area == arch_get_unmapped_area) 10021 if (mm->get_unmapped_area == arch_get_unmapped_area)
10044diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
10045index 83d89bc..37e7bc4 100644
10046--- a/arch/sparc/mm/tlb.c
10047+++ b/arch/sparc/mm/tlb.c
10048@@ -85,8 +85,8 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
10049 }
10050
10051 if (!tb->active) {
10052- global_flush_tlb_page(mm, vaddr);
10053 flush_tsb_user_page(mm, vaddr);
10054+ global_flush_tlb_page(mm, vaddr);
10055 goto out;
10056 }
10057
10058diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h 10022diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
10059index f4500c6..889656c 100644 10023index f4500c6..889656c 100644
10060--- a/arch/tile/include/asm/atomic_64.h 10024--- a/arch/tile/include/asm/atomic_64.h
@@ -10095,10 +10059,10 @@ index a9a5299..0fce79e 100644
10095 /* bytes per L2 cache line */ 10059 /* bytes per L2 cache line */
10096 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE() 10060 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
10097diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h 10061diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
10098index 9ab078a..d6635c2 100644 10062index 8a082bc..7a6bf87 100644
10099--- a/arch/tile/include/asm/uaccess.h 10063--- a/arch/tile/include/asm/uaccess.h
10100+++ b/arch/tile/include/asm/uaccess.h 10064+++ b/arch/tile/include/asm/uaccess.h
10101@@ -403,9 +403,9 @@ static inline unsigned long __must_check copy_from_user(void *to, 10065@@ -408,9 +408,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
10102 const void __user *from, 10066 const void __user *from,
10103 unsigned long n) 10067 unsigned long n)
10104 { 10068 {
@@ -10216,10 +10180,10 @@ index 0032f92..cd151e0 100644
10216 #ifdef CONFIG_64BIT 10180 #ifdef CONFIG_64BIT
10217 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval)) 10181 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
10218diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c 10182diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
10219index b462b13..e7a19aa 100644 10183index bbcef52..6a2a483 100644
10220--- a/arch/um/kernel/process.c 10184--- a/arch/um/kernel/process.c
10221+++ b/arch/um/kernel/process.c 10185+++ b/arch/um/kernel/process.c
10222@@ -386,22 +386,6 @@ int singlestepping(void * t) 10186@@ -367,22 +367,6 @@ int singlestepping(void * t)
10223 return 2; 10187 return 2;
10224 } 10188 }
10225 10189
@@ -10260,10 +10224,10 @@ index ad8f795..2c7eec6 100644
10260 /* 10224 /*
10261 * Memory returned by kmalloc() may be used for DMA, so we must make 10225 * Memory returned by kmalloc() may be used for DMA, so we must make
10262diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig 10226diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
10263index de80b33..c0f0899 100644 10227index fe120da..24177f7 100644
10264--- a/arch/x86/Kconfig 10228--- a/arch/x86/Kconfig
10265+++ b/arch/x86/Kconfig 10229+++ b/arch/x86/Kconfig
10266@@ -243,7 +243,7 @@ config X86_HT 10230@@ -239,7 +239,7 @@ config X86_HT
10267 10231
10268 config X86_32_LAZY_GS 10232 config X86_32_LAZY_GS
10269 def_bool y 10233 def_bool y
@@ -10272,7 +10236,7 @@ index de80b33..c0f0899 100644
10272 10236
10273 config ARCH_HWEIGHT_CFLAGS 10237 config ARCH_HWEIGHT_CFLAGS
10274 string 10238 string
10275@@ -1076,6 +1076,7 @@ config MICROCODE_EARLY 10239@@ -1073,6 +1073,7 @@ config MICROCODE_EARLY
10276 10240
10277 config X86_MSR 10241 config X86_MSR
10278 tristate "/dev/cpu/*/msr - Model-specific register support" 10242 tristate "/dev/cpu/*/msr - Model-specific register support"
@@ -10280,7 +10244,7 @@ index de80b33..c0f0899 100644
10280 ---help--- 10244 ---help---
10281 This device gives privileged processes access to the x86 10245 This device gives privileged processes access to the x86
10282 Model-Specific Registers (MSRs). It is a character device with 10246 Model-Specific Registers (MSRs). It is a character device with
10283@@ -1099,7 +1100,7 @@ choice 10247@@ -1096,7 +1097,7 @@ choice
10284 10248
10285 config NOHIGHMEM 10249 config NOHIGHMEM
10286 bool "off" 10250 bool "off"
@@ -10289,7 +10253,7 @@ index de80b33..c0f0899 100644
10289 ---help--- 10253 ---help---
10290 Linux can use up to 64 Gigabytes of physical memory on x86 systems. 10254 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
10291 However, the address space of 32-bit x86 processors is only 4 10255 However, the address space of 32-bit x86 processors is only 4
10292@@ -1136,7 +1137,7 @@ config NOHIGHMEM 10256@@ -1133,7 +1134,7 @@ config NOHIGHMEM
10293 10257
10294 config HIGHMEM4G 10258 config HIGHMEM4G
10295 bool "4GB" 10259 bool "4GB"
@@ -10298,7 +10262,7 @@ index de80b33..c0f0899 100644
10298 ---help--- 10262 ---help---
10299 Select this if you have a 32-bit processor and between 1 and 4 10263 Select this if you have a 32-bit processor and between 1 and 4
10300 gigabytes of physical RAM. 10264 gigabytes of physical RAM.
10301@@ -1189,7 +1190,7 @@ config PAGE_OFFSET 10265@@ -1186,7 +1187,7 @@ config PAGE_OFFSET
10302 hex 10266 hex
10303 default 0xB0000000 if VMSPLIT_3G_OPT 10267 default 0xB0000000 if VMSPLIT_3G_OPT
10304 default 0x80000000 if VMSPLIT_2G 10268 default 0x80000000 if VMSPLIT_2G
@@ -10307,7 +10271,7 @@ index de80b33..c0f0899 100644
10307 default 0x40000000 if VMSPLIT_1G 10271 default 0x40000000 if VMSPLIT_1G
10308 default 0xC0000000 10272 default 0xC0000000
10309 depends on X86_32 10273 depends on X86_32
10310@@ -1587,6 +1588,7 @@ config SECCOMP 10274@@ -1584,6 +1585,7 @@ config SECCOMP
10311 10275
10312 config CC_STACKPROTECTOR 10276 config CC_STACKPROTECTOR
10313 bool "Enable -fstack-protector buffer overflow detection" 10277 bool "Enable -fstack-protector buffer overflow detection"
@@ -10315,7 +10279,7 @@ index de80b33..c0f0899 100644
10315 ---help--- 10279 ---help---
10316 This option turns on the -fstack-protector GCC feature. This 10280 This option turns on the -fstack-protector GCC feature. This
10317 feature puts, at the beginning of functions, a canary value on 10281 feature puts, at the beginning of functions, a canary value on
10318@@ -1706,6 +1708,8 @@ config X86_NEED_RELOCS 10282@@ -1703,6 +1705,8 @@ config X86_NEED_RELOCS
10319 config PHYSICAL_ALIGN 10283 config PHYSICAL_ALIGN
10320 hex "Alignment value to which kernel should be aligned" if X86_32 10284 hex "Alignment value to which kernel should be aligned" if X86_32
10321 default "0x1000000" 10285 default "0x1000000"
@@ -10324,7 +10288,7 @@ index de80b33..c0f0899 100644
10324 range 0x2000 0x1000000 10288 range 0x2000 0x1000000
10325 ---help--- 10289 ---help---
10326 This value puts the alignment restrictions on physical address 10290 This value puts the alignment restrictions on physical address
10327@@ -1781,9 +1785,10 @@ config DEBUG_HOTPLUG_CPU0 10291@@ -1778,9 +1782,10 @@ config DEBUG_HOTPLUG_CPU0
10328 If unsure, say N. 10292 If unsure, say N.
10329 10293
10330 config COMPAT_VDSO 10294 config COMPAT_VDSO
@@ -10368,7 +10332,7 @@ index c026cca..14657ae 100644
10368 config X86_MINIMUM_CPU_FAMILY 10332 config X86_MINIMUM_CPU_FAMILY
10369 int 10333 int
10370diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug 10334diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
10371index b322f12..652d0d9 100644 10335index c198b7e..63eea60 100644
10372--- a/arch/x86/Kconfig.debug 10336--- a/arch/x86/Kconfig.debug
10373+++ b/arch/x86/Kconfig.debug 10337+++ b/arch/x86/Kconfig.debug
10374@@ -84,7 +84,7 @@ config X86_PTDUMP 10338@@ -84,7 +84,7 @@ config X86_PTDUMP
@@ -10389,15 +10353,6 @@ index b322f12..652d0d9 100644
10389 ---help--- 10353 ---help---
10390 This option helps catch unintended modifications to loadable 10354 This option helps catch unintended modifications to loadable
10391 kernel module's text and read-only data. It also prevents execution 10355 kernel module's text and read-only data. It also prevents execution
10392@@ -294,7 +294,7 @@ config OPTIMIZE_INLINING
10393
10394 config DEBUG_STRICT_USER_COPY_CHECKS
10395 bool "Strict copy size checks"
10396- depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
10397+ depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
10398 ---help---
10399 Enabling this option turns a certain set of sanity checks for user
10400 copy operations into compile time failures.
10401diff --git a/arch/x86/Makefile b/arch/x86/Makefile 10356diff --git a/arch/x86/Makefile b/arch/x86/Makefile
10402index 5c47726..8c4fa67 100644 10357index 5c47726..8c4fa67 100644
10403--- a/arch/x86/Makefile 10358--- a/arch/x86/Makefile
@@ -10496,7 +10451,7 @@ index 5ef205c..342191d 100644
10496 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ 10451 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
10497 GCOV_PROFILE := n 10452 GCOV_PROFILE := n
10498diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c 10453diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
10499index c205035..5853587 100644 10454index d606463..b887794 100644
10500--- a/arch/x86/boot/compressed/eboot.c 10455--- a/arch/x86/boot/compressed/eboot.c
10501+++ b/arch/x86/boot/compressed/eboot.c 10456+++ b/arch/x86/boot/compressed/eboot.c
10502@@ -150,7 +150,6 @@ again: 10457@@ -150,7 +150,6 @@ again:
@@ -10590,7 +10545,7 @@ index 1e3184f..0d11e2e 100644
10590 jmp 1b 10545 jmp 1b
10591 2: 10546 2:
10592diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S 10547diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
10593index c1d383d..57ab51c 100644 10548index 16f24e6..47491a3 100644
10594--- a/arch/x86/boot/compressed/head_64.S 10549--- a/arch/x86/boot/compressed/head_64.S
10595+++ b/arch/x86/boot/compressed/head_64.S 10550+++ b/arch/x86/boot/compressed/head_64.S
10596@@ -97,7 +97,7 @@ ENTRY(startup_32) 10551@@ -97,7 +97,7 @@ ENTRY(startup_32)
@@ -10824,7 +10779,7 @@ index 9105655..5e37f27 100644
10824 movq r1,r2; \ 10779 movq r1,r2; \
10825 movq r3,r4; \ 10780 movq r3,r4; \
10826diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S 10781diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
10827index 04b7977..402f223 100644 10782index 477e9d7..3ab339f 100644
10828--- a/arch/x86/crypto/aesni-intel_asm.S 10783--- a/arch/x86/crypto/aesni-intel_asm.S
10829+++ b/arch/x86/crypto/aesni-intel_asm.S 10784+++ b/arch/x86/crypto/aesni-intel_asm.S
10830@@ -31,6 +31,7 @@ 10785@@ -31,6 +31,7 @@
@@ -10835,7 +10790,7 @@ index 04b7977..402f223 100644
10835 10790
10836 #ifdef __x86_64__ 10791 #ifdef __x86_64__
10837 .data 10792 .data
10838@@ -1435,6 +1436,7 @@ _return_T_done_decrypt: 10793@@ -1441,6 +1442,7 @@ _return_T_done_decrypt:
10839 pop %r14 10794 pop %r14
10840 pop %r13 10795 pop %r13
10841 pop %r12 10796 pop %r12
@@ -10843,7 +10798,7 @@ index 04b7977..402f223 100644
10843 ret 10798 ret
10844 ENDPROC(aesni_gcm_dec) 10799 ENDPROC(aesni_gcm_dec)
10845 10800
10846@@ -1699,6 +1701,7 @@ _return_T_done_encrypt: 10801@@ -1705,6 +1707,7 @@ _return_T_done_encrypt:
10847 pop %r14 10802 pop %r14
10848 pop %r13 10803 pop %r13
10849 pop %r12 10804 pop %r12
@@ -10851,7 +10806,7 @@ index 04b7977..402f223 100644
10851 ret 10806 ret
10852 ENDPROC(aesni_gcm_enc) 10807 ENDPROC(aesni_gcm_enc)
10853 10808
10854@@ -1716,6 +1719,7 @@ _key_expansion_256a: 10809@@ -1722,6 +1725,7 @@ _key_expansion_256a:
10855 pxor %xmm1, %xmm0 10810 pxor %xmm1, %xmm0
10856 movaps %xmm0, (TKEYP) 10811 movaps %xmm0, (TKEYP)
10857 add $0x10, TKEYP 10812 add $0x10, TKEYP
@@ -10859,7 +10814,7 @@ index 04b7977..402f223 100644
10859 ret 10814 ret
10860 ENDPROC(_key_expansion_128) 10815 ENDPROC(_key_expansion_128)
10861 ENDPROC(_key_expansion_256a) 10816 ENDPROC(_key_expansion_256a)
10862@@ -1742,6 +1746,7 @@ _key_expansion_192a: 10817@@ -1748,6 +1752,7 @@ _key_expansion_192a:
10863 shufps $0b01001110, %xmm2, %xmm1 10818 shufps $0b01001110, %xmm2, %xmm1
10864 movaps %xmm1, 0x10(TKEYP) 10819 movaps %xmm1, 0x10(TKEYP)
10865 add $0x20, TKEYP 10820 add $0x20, TKEYP
@@ -10867,7 +10822,7 @@ index 04b7977..402f223 100644
10867 ret 10822 ret
10868 ENDPROC(_key_expansion_192a) 10823 ENDPROC(_key_expansion_192a)
10869 10824
10870@@ -1762,6 +1767,7 @@ _key_expansion_192b: 10825@@ -1768,6 +1773,7 @@ _key_expansion_192b:
10871 10826
10872 movaps %xmm0, (TKEYP) 10827 movaps %xmm0, (TKEYP)
10873 add $0x10, TKEYP 10828 add $0x10, TKEYP
@@ -10875,7 +10830,7 @@ index 04b7977..402f223 100644
10875 ret 10830 ret
10876 ENDPROC(_key_expansion_192b) 10831 ENDPROC(_key_expansion_192b)
10877 10832
10878@@ -1775,6 +1781,7 @@ _key_expansion_256b: 10833@@ -1781,6 +1787,7 @@ _key_expansion_256b:
10879 pxor %xmm1, %xmm2 10834 pxor %xmm1, %xmm2
10880 movaps %xmm2, (TKEYP) 10835 movaps %xmm2, (TKEYP)
10881 add $0x10, TKEYP 10836 add $0x10, TKEYP
@@ -10883,7 +10838,7 @@ index 04b7977..402f223 100644
10883 ret 10838 ret
10884 ENDPROC(_key_expansion_256b) 10839 ENDPROC(_key_expansion_256b)
10885 10840
10886@@ -1888,6 +1895,7 @@ ENTRY(aesni_set_key) 10841@@ -1894,6 +1901,7 @@ ENTRY(aesni_set_key)
10887 #ifndef __x86_64__ 10842 #ifndef __x86_64__
10888 popl KEYP 10843 popl KEYP
10889 #endif 10844 #endif
@@ -10891,7 +10846,7 @@ index 04b7977..402f223 100644
10891 ret 10846 ret
10892 ENDPROC(aesni_set_key) 10847 ENDPROC(aesni_set_key)
10893 10848
10894@@ -1910,6 +1918,7 @@ ENTRY(aesni_enc) 10849@@ -1916,6 +1924,7 @@ ENTRY(aesni_enc)
10895 popl KLEN 10850 popl KLEN
10896 popl KEYP 10851 popl KEYP
10897 #endif 10852 #endif
@@ -10899,7 +10854,7 @@ index 04b7977..402f223 100644
10899 ret 10854 ret
10900 ENDPROC(aesni_enc) 10855 ENDPROC(aesni_enc)
10901 10856
10902@@ -1968,6 +1977,7 @@ _aesni_enc1: 10857@@ -1974,6 +1983,7 @@ _aesni_enc1:
10903 AESENC KEY STATE 10858 AESENC KEY STATE
10904 movaps 0x70(TKEYP), KEY 10859 movaps 0x70(TKEYP), KEY
10905 AESENCLAST KEY STATE 10860 AESENCLAST KEY STATE
@@ -10907,7 +10862,7 @@ index 04b7977..402f223 100644
10907 ret 10862 ret
10908 ENDPROC(_aesni_enc1) 10863 ENDPROC(_aesni_enc1)
10909 10864
10910@@ -2077,6 +2087,7 @@ _aesni_enc4: 10865@@ -2083,6 +2093,7 @@ _aesni_enc4:
10911 AESENCLAST KEY STATE2 10866 AESENCLAST KEY STATE2
10912 AESENCLAST KEY STATE3 10867 AESENCLAST KEY STATE3
10913 AESENCLAST KEY STATE4 10868 AESENCLAST KEY STATE4
@@ -10915,7 +10870,7 @@ index 04b7977..402f223 100644
10915 ret 10870 ret
10916 ENDPROC(_aesni_enc4) 10871 ENDPROC(_aesni_enc4)
10917 10872
10918@@ -2100,6 +2111,7 @@ ENTRY(aesni_dec) 10873@@ -2106,6 +2117,7 @@ ENTRY(aesni_dec)
10919 popl KLEN 10874 popl KLEN
10920 popl KEYP 10875 popl KEYP
10921 #endif 10876 #endif
@@ -10923,7 +10878,7 @@ index 04b7977..402f223 100644
10923 ret 10878 ret
10924 ENDPROC(aesni_dec) 10879 ENDPROC(aesni_dec)
10925 10880
10926@@ -2158,6 +2170,7 @@ _aesni_dec1: 10881@@ -2164,6 +2176,7 @@ _aesni_dec1:
10927 AESDEC KEY STATE 10882 AESDEC KEY STATE
10928 movaps 0x70(TKEYP), KEY 10883 movaps 0x70(TKEYP), KEY
10929 AESDECLAST KEY STATE 10884 AESDECLAST KEY STATE
@@ -10931,7 +10886,7 @@ index 04b7977..402f223 100644
10931 ret 10886 ret
10932 ENDPROC(_aesni_dec1) 10887 ENDPROC(_aesni_dec1)
10933 10888
10934@@ -2267,6 +2280,7 @@ _aesni_dec4: 10889@@ -2273,6 +2286,7 @@ _aesni_dec4:
10935 AESDECLAST KEY STATE2 10890 AESDECLAST KEY STATE2
10936 AESDECLAST KEY STATE3 10891 AESDECLAST KEY STATE3
10937 AESDECLAST KEY STATE4 10892 AESDECLAST KEY STATE4
@@ -10939,7 +10894,7 @@ index 04b7977..402f223 100644
10939 ret 10894 ret
10940 ENDPROC(_aesni_dec4) 10895 ENDPROC(_aesni_dec4)
10941 10896
10942@@ -2325,6 +2339,7 @@ ENTRY(aesni_ecb_enc) 10897@@ -2331,6 +2345,7 @@ ENTRY(aesni_ecb_enc)
10943 popl KEYP 10898 popl KEYP
10944 popl LEN 10899 popl LEN
10945 #endif 10900 #endif
@@ -10947,7 +10902,7 @@ index 04b7977..402f223 100644
10947 ret 10902 ret
10948 ENDPROC(aesni_ecb_enc) 10903 ENDPROC(aesni_ecb_enc)
10949 10904
10950@@ -2384,6 +2399,7 @@ ENTRY(aesni_ecb_dec) 10905@@ -2390,6 +2405,7 @@ ENTRY(aesni_ecb_dec)
10951 popl KEYP 10906 popl KEYP
10952 popl LEN 10907 popl LEN
10953 #endif 10908 #endif
@@ -10955,7 +10910,7 @@ index 04b7977..402f223 100644
10955 ret 10910 ret
10956 ENDPROC(aesni_ecb_dec) 10911 ENDPROC(aesni_ecb_dec)
10957 10912
10958@@ -2426,6 +2442,7 @@ ENTRY(aesni_cbc_enc) 10913@@ -2432,6 +2448,7 @@ ENTRY(aesni_cbc_enc)
10959 popl LEN 10914 popl LEN
10960 popl IVP 10915 popl IVP
10961 #endif 10916 #endif
@@ -10963,7 +10918,7 @@ index 04b7977..402f223 100644
10963 ret 10918 ret
10964 ENDPROC(aesni_cbc_enc) 10919 ENDPROC(aesni_cbc_enc)
10965 10920
10966@@ -2517,6 +2534,7 @@ ENTRY(aesni_cbc_dec) 10921@@ -2523,6 +2540,7 @@ ENTRY(aesni_cbc_dec)
10967 popl LEN 10922 popl LEN
10968 popl IVP 10923 popl IVP
10969 #endif 10924 #endif
@@ -10971,7 +10926,7 @@ index 04b7977..402f223 100644
10971 ret 10926 ret
10972 ENDPROC(aesni_cbc_dec) 10927 ENDPROC(aesni_cbc_dec)
10973 10928
10974@@ -2544,6 +2562,7 @@ _aesni_inc_init: 10929@@ -2550,6 +2568,7 @@ _aesni_inc_init:
10975 mov $1, TCTR_LOW 10930 mov $1, TCTR_LOW
10976 MOVQ_R64_XMM TCTR_LOW INC 10931 MOVQ_R64_XMM TCTR_LOW INC
10977 MOVQ_R64_XMM CTR TCTR_LOW 10932 MOVQ_R64_XMM CTR TCTR_LOW
@@ -10979,7 +10934,7 @@ index 04b7977..402f223 100644
10979 ret 10934 ret
10980 ENDPROC(_aesni_inc_init) 10935 ENDPROC(_aesni_inc_init)
10981 10936
10982@@ -2573,6 +2592,7 @@ _aesni_inc: 10937@@ -2579,6 +2598,7 @@ _aesni_inc:
10983 .Linc_low: 10938 .Linc_low:
10984 movaps CTR, IV 10939 movaps CTR, IV
10985 PSHUFB_XMM BSWAP_MASK IV 10940 PSHUFB_XMM BSWAP_MASK IV
@@ -10987,14 +10942,22 @@ index 04b7977..402f223 100644
10987 ret 10942 ret
10988 ENDPROC(_aesni_inc) 10943 ENDPROC(_aesni_inc)
10989 10944
10990@@ -2634,6 +2654,7 @@ ENTRY(aesni_ctr_enc) 10945@@ -2640,6 +2660,7 @@ ENTRY(aesni_ctr_enc)
10991 .Lctr_enc_ret: 10946 .Lctr_enc_ret:
10992 movups IV, (IVP) 10947 movups IV, (IVP)
10993 .Lctr_enc_just_ret: 10948 .Lctr_enc_just_ret:
10994+ pax_force_retaddr 0, 1 10949+ pax_force_retaddr 0, 1
10995 ret 10950 ret
10996 ENDPROC(aesni_ctr_enc) 10951 ENDPROC(aesni_ctr_enc)
10997 #endif 10952
10953@@ -2766,6 +2787,7 @@ ENTRY(aesni_xts_crypt8)
10954 pxor INC, STATE4
10955 movdqu STATE4, 0x70(OUTP)
10956
10957+ pax_force_retaddr 0, 1
10958 ret
10959 ENDPROC(aesni_xts_crypt8)
10960
10998diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S 10961diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
10999index 246c670..4d1ed00 100644 10962index 246c670..4d1ed00 100644
11000--- a/arch/x86/crypto/blowfish-x86_64-asm_64.S 10963--- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
@@ -11168,7 +11131,7 @@ index c35fd5d..c1ee236 100644
11168 ret; 11131 ret;
11169 ENDPROC(cast5_ctr_16way) 11132 ENDPROC(cast5_ctr_16way)
11170diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S 11133diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
11171index f93b610..c09bf40 100644 11134index e3531f8..18ded3a 100644
11172--- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S 11135--- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
11173+++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S 11136+++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
11174@@ -24,6 +24,7 @@ 11137@@ -24,6 +24,7 @@
@@ -11179,7 +11142,7 @@ index f93b610..c09bf40 100644
11179 #include "glue_helper-asm-avx.S" 11142 #include "glue_helper-asm-avx.S"
11180 11143
11181 .file "cast6-avx-x86_64-asm_64.S" 11144 .file "cast6-avx-x86_64-asm_64.S"
11182@@ -293,6 +294,7 @@ __cast6_enc_blk8: 11145@@ -295,6 +296,7 @@ __cast6_enc_blk8:
11183 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); 11146 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
11184 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); 11147 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
11185 11148
@@ -11187,7 +11150,7 @@ index f93b610..c09bf40 100644
11187 ret; 11150 ret;
11188 ENDPROC(__cast6_enc_blk8) 11151 ENDPROC(__cast6_enc_blk8)
11189 11152
11190@@ -338,6 +340,7 @@ __cast6_dec_blk8: 11153@@ -340,6 +342,7 @@ __cast6_dec_blk8:
11191 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM); 11154 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
11192 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM); 11155 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
11193 11156
@@ -11195,7 +11158,7 @@ index f93b610..c09bf40 100644
11195 ret; 11158 ret;
11196 ENDPROC(__cast6_dec_blk8) 11159 ENDPROC(__cast6_dec_blk8)
11197 11160
11198@@ -356,6 +359,7 @@ ENTRY(cast6_ecb_enc_8way) 11161@@ -358,6 +361,7 @@ ENTRY(cast6_ecb_enc_8way)
11199 11162
11200 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); 11163 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11201 11164
@@ -11203,7 +11166,7 @@ index f93b610..c09bf40 100644
11203 ret; 11166 ret;
11204 ENDPROC(cast6_ecb_enc_8way) 11167 ENDPROC(cast6_ecb_enc_8way)
11205 11168
11206@@ -374,6 +378,7 @@ ENTRY(cast6_ecb_dec_8way) 11169@@ -376,6 +380,7 @@ ENTRY(cast6_ecb_dec_8way)
11207 11170
11208 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); 11171 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11209 11172
@@ -11211,7 +11174,7 @@ index f93b610..c09bf40 100644
11211 ret; 11174 ret;
11212 ENDPROC(cast6_ecb_dec_8way) 11175 ENDPROC(cast6_ecb_dec_8way)
11213 11176
11214@@ -397,6 +402,7 @@ ENTRY(cast6_cbc_dec_8way) 11177@@ -399,6 +404,7 @@ ENTRY(cast6_cbc_dec_8way)
11215 11178
11216 popq %r12; 11179 popq %r12;
11217 11180
@@ -11219,13 +11182,29 @@ index f93b610..c09bf40 100644
11219 ret; 11182 ret;
11220 ENDPROC(cast6_cbc_dec_8way) 11183 ENDPROC(cast6_cbc_dec_8way)
11221 11184
11222@@ -422,5 +428,6 @@ ENTRY(cast6_ctr_8way) 11185@@ -424,6 +430,7 @@ ENTRY(cast6_ctr_8way)
11223 11186
11224 popq %r12; 11187 popq %r12;
11225 11188
11226+ pax_force_retaddr 11189+ pax_force_retaddr
11227 ret; 11190 ret;
11228 ENDPROC(cast6_ctr_8way) 11191 ENDPROC(cast6_ctr_8way)
11192
11193@@ -446,6 +453,7 @@ ENTRY(cast6_xts_enc_8way)
11194 /* dst <= regs xor IVs(in dst) */
11195 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11196
11197+ pax_force_retaddr
11198 ret;
11199 ENDPROC(cast6_xts_enc_8way)
11200
11201@@ -468,5 +476,6 @@ ENTRY(cast6_xts_dec_8way)
11202 /* dst <= regs xor IVs(in dst) */
11203 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11204
11205+ pax_force_retaddr
11206 ret;
11207 ENDPROC(cast6_xts_dec_8way)
11229diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S 11208diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
11230index 9279e0b..9270820 100644 11209index 9279e0b..9270820 100644
11231--- a/arch/x86/crypto/salsa20-x86_64-asm_64.S 11210--- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
@@ -11260,10 +11239,10 @@ index 9279e0b..9270820 100644
11260 ret 11239 ret
11261 ENDPROC(salsa20_ivsetup) 11240 ENDPROC(salsa20_ivsetup)
11262diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S 11241diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
11263index 43c9386..a0e2d60 100644 11242index 2f202f4..d9164d6 100644
11264--- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S 11243--- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
11265+++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S 11244+++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
11266@@ -25,6 +25,7 @@ 11245@@ -24,6 +24,7 @@
11267 */ 11246 */
11268 11247
11269 #include <linux/linkage.h> 11248 #include <linux/linkage.h>
@@ -11271,7 +11250,7 @@ index 43c9386..a0e2d60 100644
11271 #include "glue_helper-asm-avx.S" 11250 #include "glue_helper-asm-avx.S"
11272 11251
11273 .file "serpent-avx-x86_64-asm_64.S" 11252 .file "serpent-avx-x86_64-asm_64.S"
11274@@ -617,6 +618,7 @@ __serpent_enc_blk8_avx: 11253@@ -618,6 +619,7 @@ __serpent_enc_blk8_avx:
11275 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2); 11254 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
11276 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2); 11255 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
11277 11256
@@ -11279,7 +11258,7 @@ index 43c9386..a0e2d60 100644
11279 ret; 11258 ret;
11280 ENDPROC(__serpent_enc_blk8_avx) 11259 ENDPROC(__serpent_enc_blk8_avx)
11281 11260
11282@@ -671,6 +673,7 @@ __serpent_dec_blk8_avx: 11261@@ -672,6 +674,7 @@ __serpent_dec_blk8_avx:
11283 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2); 11262 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
11284 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2); 11263 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
11285 11264
@@ -11287,7 +11266,7 @@ index 43c9386..a0e2d60 100644
11287 ret; 11266 ret;
11288 ENDPROC(__serpent_dec_blk8_avx) 11267 ENDPROC(__serpent_dec_blk8_avx)
11289 11268
11290@@ -687,6 +690,7 @@ ENTRY(serpent_ecb_enc_8way_avx) 11269@@ -688,6 +691,7 @@ ENTRY(serpent_ecb_enc_8way_avx)
11291 11270
11292 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); 11271 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11293 11272
@@ -11295,7 +11274,7 @@ index 43c9386..a0e2d60 100644
11295 ret; 11274 ret;
11296 ENDPROC(serpent_ecb_enc_8way_avx) 11275 ENDPROC(serpent_ecb_enc_8way_avx)
11297 11276
11298@@ -703,6 +707,7 @@ ENTRY(serpent_ecb_dec_8way_avx) 11277@@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_8way_avx)
11299 11278
11300 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2); 11279 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
11301 11280
@@ -11303,7 +11282,7 @@ index 43c9386..a0e2d60 100644
11303 ret; 11282 ret;
11304 ENDPROC(serpent_ecb_dec_8way_avx) 11283 ENDPROC(serpent_ecb_dec_8way_avx)
11305 11284
11306@@ -719,6 +724,7 @@ ENTRY(serpent_cbc_dec_8way_avx) 11285@@ -720,6 +725,7 @@ ENTRY(serpent_cbc_dec_8way_avx)
11307 11286
11308 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2); 11287 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
11309 11288
@@ -11311,13 +11290,29 @@ index 43c9386..a0e2d60 100644
11311 ret; 11290 ret;
11312 ENDPROC(serpent_cbc_dec_8way_avx) 11291 ENDPROC(serpent_cbc_dec_8way_avx)
11313 11292
11314@@ -737,5 +743,6 @@ ENTRY(serpent_ctr_8way_avx) 11293@@ -738,6 +744,7 @@ ENTRY(serpent_ctr_8way_avx)
11315 11294
11316 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); 11295 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11317 11296
11318+ pax_force_retaddr 11297+ pax_force_retaddr
11319 ret; 11298 ret;
11320 ENDPROC(serpent_ctr_8way_avx) 11299 ENDPROC(serpent_ctr_8way_avx)
11300
11301@@ -758,6 +765,7 @@ ENTRY(serpent_xts_enc_8way_avx)
11302 /* dst <= regs xor IVs(in dst) */
11303 store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11304
11305+ pax_force_retaddr
11306 ret;
11307 ENDPROC(serpent_xts_enc_8way_avx)
11308
11309@@ -778,5 +786,6 @@ ENTRY(serpent_xts_dec_8way_avx)
11310 /* dst <= regs xor IVs(in dst) */
11311 store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
11312
11313+ pax_force_retaddr
11314 ret;
11315 ENDPROC(serpent_xts_dec_8way_avx)
11321diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S 11316diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
11322index acc066c..1559cc4 100644 11317index acc066c..1559cc4 100644
11323--- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S 11318--- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
@@ -11373,7 +11368,7 @@ index a410950..3356d42 100644
11373 11368
11374 ENDPROC(\name) 11369 ENDPROC(\name)
11375diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S 11370diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
11376index 8d3e113..898b161 100644 11371index 0505813..63b1d00 100644
11377--- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S 11372--- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
11378+++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S 11373+++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
11379@@ -24,6 +24,7 @@ 11374@@ -24,6 +24,7 @@
@@ -11384,7 +11379,7 @@ index 8d3e113..898b161 100644
11384 #include "glue_helper-asm-avx.S" 11379 #include "glue_helper-asm-avx.S"
11385 11380
11386 .file "twofish-avx-x86_64-asm_64.S" 11381 .file "twofish-avx-x86_64-asm_64.S"
11387@@ -282,6 +283,7 @@ __twofish_enc_blk8: 11382@@ -284,6 +285,7 @@ __twofish_enc_blk8:
11388 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2); 11383 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
11389 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2); 11384 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
11390 11385
@@ -11392,7 +11387,7 @@ index 8d3e113..898b161 100644
11392 ret; 11387 ret;
11393 ENDPROC(__twofish_enc_blk8) 11388 ENDPROC(__twofish_enc_blk8)
11394 11389
11395@@ -322,6 +324,7 @@ __twofish_dec_blk8: 11390@@ -324,6 +326,7 @@ __twofish_dec_blk8:
11396 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2); 11391 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
11397 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2); 11392 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
11398 11393
@@ -11400,7 +11395,7 @@ index 8d3e113..898b161 100644
11400 ret; 11395 ret;
11401 ENDPROC(__twofish_dec_blk8) 11396 ENDPROC(__twofish_dec_blk8)
11402 11397
11403@@ -340,6 +343,7 @@ ENTRY(twofish_ecb_enc_8way) 11398@@ -342,6 +345,7 @@ ENTRY(twofish_ecb_enc_8way)
11404 11399
11405 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2); 11400 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
11406 11401
@@ -11408,7 +11403,7 @@ index 8d3e113..898b161 100644
11408 ret; 11403 ret;
11409 ENDPROC(twofish_ecb_enc_8way) 11404 ENDPROC(twofish_ecb_enc_8way)
11410 11405
11411@@ -358,6 +362,7 @@ ENTRY(twofish_ecb_dec_8way) 11406@@ -360,6 +364,7 @@ ENTRY(twofish_ecb_dec_8way)
11412 11407
11413 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2); 11408 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11414 11409
@@ -11416,7 +11411,7 @@ index 8d3e113..898b161 100644
11416 ret; 11411 ret;
11417 ENDPROC(twofish_ecb_dec_8way) 11412 ENDPROC(twofish_ecb_dec_8way)
11418 11413
11419@@ -381,6 +386,7 @@ ENTRY(twofish_cbc_dec_8way) 11414@@ -383,6 +388,7 @@ ENTRY(twofish_cbc_dec_8way)
11420 11415
11421 popq %r12; 11416 popq %r12;
11422 11417
@@ -11424,13 +11419,29 @@ index 8d3e113..898b161 100644
11424 ret; 11419 ret;
11425 ENDPROC(twofish_cbc_dec_8way) 11420 ENDPROC(twofish_cbc_dec_8way)
11426 11421
11427@@ -406,5 +412,6 @@ ENTRY(twofish_ctr_8way) 11422@@ -408,6 +414,7 @@ ENTRY(twofish_ctr_8way)
11428 11423
11429 popq %r12; 11424 popq %r12;
11430 11425
11431+ pax_force_retaddr 0, 1 11426+ pax_force_retaddr 0, 1
11432 ret; 11427 ret;
11433 ENDPROC(twofish_ctr_8way) 11428 ENDPROC(twofish_ctr_8way)
11429
11430@@ -430,6 +437,7 @@ ENTRY(twofish_xts_enc_8way)
11431 /* dst <= regs xor IVs(in dst) */
11432 store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
11433
11434+ pax_force_retaddr 0, 1
11435 ret;
11436 ENDPROC(twofish_xts_enc_8way)
11437
11438@@ -452,5 +460,6 @@ ENTRY(twofish_xts_dec_8way)
11439 /* dst <= regs xor IVs(in dst) */
11440 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
11441
11442+ pax_force_retaddr 0, 1
11443 ret;
11444 ENDPROC(twofish_xts_dec_8way)
11434diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S 11445diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
11435index 1c3b7ce..b365c5e 100644 11446index 1c3b7ce..b365c5e 100644
11436--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S 11447--- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
@@ -11494,7 +11505,7 @@ index a039d21..29e7615 100644
11494 ret 11505 ret
11495 ENDPROC(twofish_dec_blk) 11506 ENDPROC(twofish_dec_blk)
11496diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c 11507diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
11497index 03abf9b..a42ba29 100644 11508index 52ff81c..98af645 100644
11498--- a/arch/x86/ia32/ia32_aout.c 11509--- a/arch/x86/ia32/ia32_aout.c
11499+++ b/arch/x86/ia32/ia32_aout.c 11510+++ b/arch/x86/ia32/ia32_aout.c
11500@@ -159,6 +159,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file, 11511@@ -159,6 +159,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
@@ -11872,7 +11883,7 @@ index 474dc1b..24aaa3e 100644
11872 END(ia32_syscall) 11883 END(ia32_syscall)
11873 11884
11874diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c 11885diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
11875index ad7a20c..1ffa3c1 100644 11886index 8e0ceec..af13504 100644
11876--- a/arch/x86/ia32/sys_ia32.c 11887--- a/arch/x86/ia32/sys_ia32.c
11877+++ b/arch/x86/ia32/sys_ia32.c 11888+++ b/arch/x86/ia32/sys_ia32.c
11878@@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low, 11889@@ -69,8 +69,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
@@ -11886,15 +11897,6 @@ index ad7a20c..1ffa3c1 100644
11886 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid)); 11897 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid));
11887 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid)); 11898 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
11888 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) || 11899 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
11889@@ -205,7 +205,7 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd,
11890 return -EFAULT;
11891
11892 set_fs(KERNEL_DS);
11893- ret = sys_sendfile(out_fd, in_fd, offset ? (off_t __user *)&of : NULL,
11894+ ret = sys_sendfile(out_fd, in_fd, offset ? (off_t __force_user *)&of : NULL,
11895 count);
11896 set_fs(old_fs);
11897
11898diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h 11900diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
11899index 372231c..a5aa1a1 100644 11901index 372231c..a5aa1a1 100644
11900--- a/arch/x86/include/asm/alternative-asm.h 11902--- a/arch/x86/include/asm/alternative-asm.h
@@ -12394,11 +12396,6 @@ index 722aa3b..3a0bb27 100644
12394-#define atomic_clear_mask(mask, addr) \ 12396-#define atomic_clear_mask(mask, addr) \
12395- asm volatile(LOCK_PREFIX "andl %0,%1" \ 12397- asm volatile(LOCK_PREFIX "andl %0,%1" \
12396- : : "r" (~(mask)), "m" (*(addr)) : "memory") 12398- : : "r" (~(mask)), "m" (*(addr)) : "memory")
12397-
12398-#define atomic_set_mask(mask, addr) \
12399- asm volatile(LOCK_PREFIX "orl %0,%1" \
12400- : : "r" ((unsigned)(mask)), "m" (*(addr)) \
12401- : "memory")
12402+static inline void atomic_clear_mask(unsigned int mask, atomic_t *v) 12399+static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
12403+{ 12400+{
12404+ asm volatile(LOCK_PREFIX "andl %1,%0" 12401+ asm volatile(LOCK_PREFIX "andl %1,%0"
@@ -12406,7 +12403,11 @@ index 722aa3b..3a0bb27 100644
12406+ : "r" (~(mask)) 12403+ : "r" (~(mask))
12407+ : "memory"); 12404+ : "memory");
12408+} 12405+}
12409+ 12406
12407-#define atomic_set_mask(mask, addr) \
12408- asm volatile(LOCK_PREFIX "orl %0,%1" \
12409- : : "r" ((unsigned)(mask)), "m" (*(addr)) \
12410- : "memory")
12410+static inline void atomic_clear_mask_unchecked(unsigned int mask, atomic_unchecked_t *v) 12411+static inline void atomic_clear_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
12411+{ 12412+{
12412+ asm volatile(LOCK_PREFIX "andl %1,%0" 12413+ asm volatile(LOCK_PREFIX "andl %1,%0"
@@ -13033,7 +13034,7 @@ index 46fc474..b02b0f9 100644
13033 13034
13034 if (len) 13035 if (len)
13035diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h 13036diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
13036index 8d871ea..c1a0dc9 100644 13037index d47786a..ce1b05d 100644
13037--- a/arch/x86/include/asm/cmpxchg.h 13038--- a/arch/x86/include/asm/cmpxchg.h
13038+++ b/arch/x86/include/asm/cmpxchg.h 13039+++ b/arch/x86/include/asm/cmpxchg.h
13039@@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void) 13040@@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
@@ -13108,10 +13109,10 @@ index 59c6c40..5e0b22c 100644
13108 struct compat_timespec { 13109 struct compat_timespec {
13109 compat_time_t tv_sec; 13110 compat_time_t tv_sec;
13110diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h 13111diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
13111index 93fe929..90858b7 100644 13112index e99ac27..e89e28c 100644
13112--- a/arch/x86/include/asm/cpufeature.h 13113--- a/arch/x86/include/asm/cpufeature.h
13113+++ b/arch/x86/include/asm/cpufeature.h 13114+++ b/arch/x86/include/asm/cpufeature.h
13114@@ -207,7 +207,7 @@ 13115@@ -211,7 +211,7 @@
13115 #define X86_FEATURE_BMI1 (9*32+ 3) /* 1st group bit manipulation extensions */ 13116 #define X86_FEATURE_BMI1 (9*32+ 3) /* 1st group bit manipulation extensions */
13116 #define X86_FEATURE_HLE (9*32+ 4) /* Hardware Lock Elision */ 13117 #define X86_FEATURE_HLE (9*32+ 4) /* Hardware Lock Elision */
13117 #define X86_FEATURE_AVX2 (9*32+ 5) /* AVX2 instructions */ 13118 #define X86_FEATURE_AVX2 (9*32+ 5) /* AVX2 instructions */
@@ -13120,7 +13121,7 @@ index 93fe929..90858b7 100644
13120 #define X86_FEATURE_BMI2 (9*32+ 8) /* 2nd group bit manipulation extensions */ 13121 #define X86_FEATURE_BMI2 (9*32+ 8) /* 2nd group bit manipulation extensions */
13121 #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */ 13122 #define X86_FEATURE_ERMS (9*32+ 9) /* Enhanced REP MOVSB/STOSB */
13122 #define X86_FEATURE_INVPCID (9*32+10) /* Invalidate Processor Context ID */ 13123 #define X86_FEATURE_INVPCID (9*32+10) /* Invalidate Processor Context ID */
13123@@ -377,7 +377,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit) 13124@@ -394,7 +394,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
13124 ".section .discard,\"aw\",@progbits\n" 13125 ".section .discard,\"aw\",@progbits\n"
13125 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */ 13126 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
13126 ".previous\n" 13127 ".previous\n"
@@ -13537,10 +13538,10 @@ index be27ba1..8f13ff9 100644
13537 : "memory" 13538 : "memory"
13538 ); 13539 );
13539diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h 13540diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
13540index 10a78c3..cc77143 100644 13541index 1da97ef..9c2ebff 100644
13541--- a/arch/x86/include/asm/hw_irq.h 13542--- a/arch/x86/include/asm/hw_irq.h
13542+++ b/arch/x86/include/asm/hw_irq.h 13543+++ b/arch/x86/include/asm/hw_irq.h
13543@@ -147,8 +147,8 @@ extern void setup_ioapic_dest(void); 13544@@ -148,8 +148,8 @@ extern void setup_ioapic_dest(void);
13544 extern void enable_IO_APIC(void); 13545 extern void enable_IO_APIC(void);
13545 13546
13546 /* Statistics */ 13547 /* Statistics */
@@ -14039,9 +14040,9 @@ index cdbf367..adb37ac 100644
14039+#endif 14040+#endif
14040+ 14041+
14041 } 14042 }
14042- } 14043+#endif
14043 #endif 14044 }
14044+ } 14045-#endif
14045 } 14046 }
14046 14047
14047 #define activate_mm(prev, next) \ 14048 #define activate_mm(prev, next) \
@@ -14081,10 +14082,10 @@ index e3b7819..b257c64 100644
14081+ 14082+
14082 #endif /* _ASM_X86_MODULE_H */ 14083 #endif /* _ASM_X86_MODULE_H */
14083diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h 14084diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
14084index c0fa356..07a498a 100644 14085index 86f9301..b365cda 100644
14085--- a/arch/x86/include/asm/nmi.h 14086--- a/arch/x86/include/asm/nmi.h
14086+++ b/arch/x86/include/asm/nmi.h 14087+++ b/arch/x86/include/asm/nmi.h
14087@@ -42,11 +42,11 @@ struct nmiaction { 14088@@ -40,11 +40,11 @@ struct nmiaction {
14088 nmi_handler_t handler; 14089 nmi_handler_t handler;
14089 unsigned long flags; 14090 unsigned long flags;
14090 const char *name; 14091 const char *name;
@@ -14098,7 +14099,7 @@ index c0fa356..07a498a 100644
14098 .handler = (fn), \ 14099 .handler = (fn), \
14099 .name = (n), \ 14100 .name = (n), \
14100 .flags = (fg), \ 14101 .flags = (fg), \
14101@@ -54,7 +54,7 @@ struct nmiaction { 14102@@ -52,7 +52,7 @@ struct nmiaction {
14102 __register_nmi_handler((t), &fn##_na); \ 14103 __register_nmi_handler((t), &fn##_na); \
14103 }) 14104 })
14104 14105
@@ -14136,10 +14137,10 @@ index 0f1ddee..e2fc3d1 100644
14136 unsigned long y = x - __START_KERNEL_map; 14137 unsigned long y = x - __START_KERNEL_map;
14137 14138
14138diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h 14139diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
14139index 7361e47..16dc226 100644 14140index cfdc9ee..3f7b5d6 100644
14140--- a/arch/x86/include/asm/paravirt.h 14141--- a/arch/x86/include/asm/paravirt.h
14141+++ b/arch/x86/include/asm/paravirt.h 14142+++ b/arch/x86/include/asm/paravirt.h
14142@@ -564,7 +564,7 @@ static inline pmd_t __pmd(pmdval_t val) 14143@@ -560,7 +560,7 @@ static inline pmd_t __pmd(pmdval_t val)
14143 return (pmd_t) { ret }; 14144 return (pmd_t) { ret };
14144 } 14145 }
14145 14146
@@ -14148,7 +14149,7 @@ index 7361e47..16dc226 100644
14148 { 14149 {
14149 pmdval_t ret; 14150 pmdval_t ret;
14150 14151
14151@@ -630,6 +630,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd) 14152@@ -626,6 +626,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
14152 val); 14153 val);
14153 } 14154 }
14154 14155
@@ -14167,7 +14168,7 @@ index 7361e47..16dc226 100644
14167 static inline void pgd_clear(pgd_t *pgdp) 14168 static inline void pgd_clear(pgd_t *pgdp)
14168 { 14169 {
14169 set_pgd(pgdp, __pgd(0)); 14170 set_pgd(pgdp, __pgd(0));
14170@@ -714,6 +726,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx, 14171@@ -710,6 +722,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
14171 pv_mmu_ops.set_fixmap(idx, phys, flags); 14172 pv_mmu_ops.set_fixmap(idx, phys, flags);
14172 } 14173 }
14173 14174
@@ -14189,7 +14190,7 @@ index 7361e47..16dc226 100644
14189 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS) 14190 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
14190 14191
14191 static inline int arch_spin_is_locked(struct arch_spinlock *lock) 14192 static inline int arch_spin_is_locked(struct arch_spinlock *lock)
14192@@ -930,7 +957,7 @@ extern void default_banner(void); 14193@@ -926,7 +953,7 @@ extern void default_banner(void);
14193 14194
14194 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4) 14195 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
14195 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4) 14196 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
@@ -14198,7 +14199,7 @@ index 7361e47..16dc226 100644
14198 #endif 14199 #endif
14199 14200
14200 #define INTERRUPT_RETURN \ 14201 #define INTERRUPT_RETURN \
14201@@ -1005,6 +1032,21 @@ extern void default_banner(void); 14202@@ -1001,6 +1028,21 @@ extern void default_banner(void);
14202 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit), \ 14203 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_irq_enable_sysexit), \
14203 CLBR_NONE, \ 14204 CLBR_NONE, \
14204 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit)) 14205 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_irq_enable_sysexit))
@@ -14221,7 +14222,7 @@ index 7361e47..16dc226 100644
14221 14222
14222 #endif /* __ASSEMBLY__ */ 14223 #endif /* __ASSEMBLY__ */
14223diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h 14224diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
14224index b3b0ec1..b1cd3eb 100644 14225index 0db1fca..52310cc 100644
14225--- a/arch/x86/include/asm/paravirt_types.h 14226--- a/arch/x86/include/asm/paravirt_types.h
14226+++ b/arch/x86/include/asm/paravirt_types.h 14227+++ b/arch/x86/include/asm/paravirt_types.h
14227@@ -84,7 +84,7 @@ struct pv_init_ops { 14228@@ -84,7 +84,7 @@ struct pv_init_ops {
@@ -14743,7 +14744,7 @@ index 2d88344..4679fc3 100644
14743 #define EARLY_DYNAMIC_PAGE_TABLES 64 14744 #define EARLY_DYNAMIC_PAGE_TABLES 64
14744 14745
14745diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h 14746diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
14746index 567b5d0..bd91d64 100644 14747index e642300..0ef8f31 100644
14747--- a/arch/x86/include/asm/pgtable_types.h 14748--- a/arch/x86/include/asm/pgtable_types.h
14748+++ b/arch/x86/include/asm/pgtable_types.h 14749+++ b/arch/x86/include/asm/pgtable_types.h
14749@@ -16,13 +16,12 @@ 14750@@ -16,13 +16,12 @@
@@ -14858,10 +14859,10 @@ index 567b5d0..bd91d64 100644
14858 #define pgprot_writecombine pgprot_writecombine 14859 #define pgprot_writecombine pgprot_writecombine
14859 extern pgprot_t pgprot_writecombine(pgprot_t prot); 14860 extern pgprot_t pgprot_writecombine(pgprot_t prot);
14860diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h 14861diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
14861index 3270116..8d99d82 100644 14862index 22224b3..4080dab 100644
14862--- a/arch/x86/include/asm/processor.h 14863--- a/arch/x86/include/asm/processor.h
14863+++ b/arch/x86/include/asm/processor.h 14864+++ b/arch/x86/include/asm/processor.h
14864@@ -285,7 +285,7 @@ struct tss_struct { 14865@@ -282,7 +282,7 @@ struct tss_struct {
14865 14866
14866 } ____cacheline_aligned; 14867 } ____cacheline_aligned;
14867 14868
@@ -14870,7 +14871,7 @@ index 3270116..8d99d82 100644
14870 14871
14871 /* 14872 /*
14872 * Save the original ist values for checking stack pointers during debugging 14873 * Save the original ist values for checking stack pointers during debugging
14873@@ -826,11 +826,18 @@ static inline void spin_lock_prefetch(const void *x) 14874@@ -823,11 +823,18 @@ static inline void spin_lock_prefetch(const void *x)
14874 */ 14875 */
14875 #define TASK_SIZE PAGE_OFFSET 14876 #define TASK_SIZE PAGE_OFFSET
14876 #define TASK_SIZE_MAX TASK_SIZE 14877 #define TASK_SIZE_MAX TASK_SIZE
@@ -14891,7 +14892,7 @@ index 3270116..8d99d82 100644
14891 .vm86_info = NULL, \ 14892 .vm86_info = NULL, \
14892 .sysenter_cs = __KERNEL_CS, \ 14893 .sysenter_cs = __KERNEL_CS, \
14893 .io_bitmap_ptr = NULL, \ 14894 .io_bitmap_ptr = NULL, \
14894@@ -844,7 +851,7 @@ static inline void spin_lock_prefetch(const void *x) 14895@@ -841,7 +848,7 @@ static inline void spin_lock_prefetch(const void *x)
14895 */ 14896 */
14896 #define INIT_TSS { \ 14897 #define INIT_TSS { \
14897 .x86_tss = { \ 14898 .x86_tss = { \
@@ -14900,7 +14901,7 @@ index 3270116..8d99d82 100644
14900 .ss0 = __KERNEL_DS, \ 14901 .ss0 = __KERNEL_DS, \
14901 .ss1 = __KERNEL_CS, \ 14902 .ss1 = __KERNEL_CS, \
14902 .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \ 14903 .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \
14903@@ -855,11 +862,7 @@ static inline void spin_lock_prefetch(const void *x) 14904@@ -852,11 +859,7 @@ static inline void spin_lock_prefetch(const void *x)
14904 extern unsigned long thread_saved_pc(struct task_struct *tsk); 14905 extern unsigned long thread_saved_pc(struct task_struct *tsk);
14905 14906
14906 #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long)) 14907 #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
@@ -14913,7 +14914,7 @@ index 3270116..8d99d82 100644
14913 14914
14914 /* 14915 /*
14915 * The below -8 is to reserve 8 bytes on top of the ring0 stack. 14916 * The below -8 is to reserve 8 bytes on top of the ring0 stack.
14916@@ -874,7 +877,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); 14917@@ -871,7 +874,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
14917 #define task_pt_regs(task) \ 14918 #define task_pt_regs(task) \
14918 ({ \ 14919 ({ \
14919 struct pt_regs *__regs__; \ 14920 struct pt_regs *__regs__; \
@@ -14922,7 +14923,7 @@ index 3270116..8d99d82 100644
14922 __regs__ - 1; \ 14923 __regs__ - 1; \
14923 }) 14924 })
14924 14925
14925@@ -884,13 +887,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); 14926@@ -881,13 +884,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
14926 /* 14927 /*
14927 * User space process size. 47bits minus one guard page. 14928 * User space process size. 47bits minus one guard page.
14928 */ 14929 */
@@ -14938,7 +14939,7 @@ index 3270116..8d99d82 100644
14938 14939
14939 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \ 14940 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
14940 IA32_PAGE_OFFSET : TASK_SIZE_MAX) 14941 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
14941@@ -901,11 +904,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk); 14942@@ -898,11 +901,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
14942 #define STACK_TOP_MAX TASK_SIZE_MAX 14943 #define STACK_TOP_MAX TASK_SIZE_MAX
14943 14944
14944 #define INIT_THREAD { \ 14945 #define INIT_THREAD { \
@@ -14952,7 +14953,7 @@ index 3270116..8d99d82 100644
14952 } 14953 }
14953 14954
14954 /* 14955 /*
14955@@ -933,6 +936,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip, 14956@@ -930,6 +933,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
14956 */ 14957 */
14957 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3)) 14958 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
14958 14959
@@ -14963,16 +14964,16 @@ index 3270116..8d99d82 100644
14963 #define KSTK_EIP(task) (task_pt_regs(task)->ip) 14964 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
14964 14965
14965 /* Get/set a process' ability to use the timestamp counter instruction */ 14966 /* Get/set a process' ability to use the timestamp counter instruction */
14966@@ -993,7 +1000,7 @@ extern bool cpu_has_amd_erratum(const int *); 14967@@ -970,7 +977,7 @@ unsigned long calc_aperfmperf_ratio(struct aperfmperf *old,
14967 #define cpu_has_amd_erratum(x) (false) 14968 return ratio;
14968 #endif /* CONFIG_CPU_SUP_AMD */ 14969 }
14969 14970
14970-extern unsigned long arch_align_stack(unsigned long sp); 14971-extern unsigned long arch_align_stack(unsigned long sp);
14971+#define arch_align_stack(x) ((x) & ~0xfUL) 14972+#define arch_align_stack(x) ((x) & ~0xfUL)
14972 extern void free_init_pages(char *what, unsigned long begin, unsigned long end); 14973 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
14973 14974
14974 void default_idle(void); 14975 void default_idle(void);
14975@@ -1003,6 +1010,6 @@ bool xen_set_default_idle(void); 14976@@ -980,6 +987,6 @@ bool xen_set_default_idle(void);
14976 #define xen_set_default_idle 0 14977 #define xen_set_default_idle 0
14977 #endif 14978 #endif
14978 14979
@@ -15100,7 +15101,7 @@ index a82c4f1..ac45053 100644
15100 extern struct machine_ops machine_ops; 15101 extern struct machine_ops machine_ops;
15101 15102
15102diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h 15103diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
15103index 2dbe4a7..ce1db00 100644 15104index cad82c9..2e5c5c1 100644
15104--- a/arch/x86/include/asm/rwsem.h 15105--- a/arch/x86/include/asm/rwsem.h
15105+++ b/arch/x86/include/asm/rwsem.h 15106+++ b/arch/x86/include/asm/rwsem.h
15106@@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem) 15107@@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
@@ -15146,9 +15147,9 @@ index 2dbe4a7..ce1db00 100644
15146+#endif 15147+#endif
15147+ 15148+
15148 /* adds 0xffff0001, returns the old value */ 15149 /* adds 0xffff0001, returns the old value */
15149 " test %1,%1\n\t" 15150 " test " __ASM_SEL(%w1,%k1) "," __ASM_SEL(%w1,%k1) "\n\t"
15150 /* was the count 0 before? */ 15151 /* was the active mask 0 before? */
15151@@ -141,6 +165,14 @@ static inline void __up_read(struct rw_semaphore *sem) 15152@@ -155,6 +179,14 @@ static inline void __up_read(struct rw_semaphore *sem)
15152 long tmp; 15153 long tmp;
15153 asm volatile("# beginning __up_read\n\t" 15154 asm volatile("# beginning __up_read\n\t"
15154 LOCK_PREFIX " xadd %1,(%2)\n\t" 15155 LOCK_PREFIX " xadd %1,(%2)\n\t"
@@ -15163,7 +15164,7 @@ index 2dbe4a7..ce1db00 100644
15163 /* subtracts 1, returns the old value */ 15164 /* subtracts 1, returns the old value */
15164 " jns 1f\n\t" 15165 " jns 1f\n\t"
15165 " call call_rwsem_wake\n" /* expects old value in %edx */ 15166 " call call_rwsem_wake\n" /* expects old value in %edx */
15166@@ -159,6 +191,14 @@ static inline void __up_write(struct rw_semaphore *sem) 15167@@ -173,6 +205,14 @@ static inline void __up_write(struct rw_semaphore *sem)
15167 long tmp; 15168 long tmp;
15168 asm volatile("# beginning __up_write\n\t" 15169 asm volatile("# beginning __up_write\n\t"
15169 LOCK_PREFIX " xadd %1,(%2)\n\t" 15170 LOCK_PREFIX " xadd %1,(%2)\n\t"
@@ -15178,7 +15179,7 @@ index 2dbe4a7..ce1db00 100644
15178 /* subtracts 0xffff0001, returns the old value */ 15179 /* subtracts 0xffff0001, returns the old value */
15179 " jns 1f\n\t" 15180 " jns 1f\n\t"
15180 " call call_rwsem_wake\n" /* expects old value in %edx */ 15181 " call call_rwsem_wake\n" /* expects old value in %edx */
15181@@ -176,6 +216,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem) 15182@@ -190,6 +230,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
15182 { 15183 {
15183 asm volatile("# beginning __downgrade_write\n\t" 15184 asm volatile("# beginning __downgrade_write\n\t"
15184 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t" 15185 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t"
@@ -15193,7 +15194,7 @@ index 2dbe4a7..ce1db00 100644
15193 /* 15194 /*
15194 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386) 15195 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386)
15195 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64) 15196 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64)
15196@@ -194,7 +242,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem) 15197@@ -208,7 +256,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
15197 */ 15198 */
15198 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem) 15199 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
15199 { 15200 {
@@ -15210,7 +15211,7 @@ index 2dbe4a7..ce1db00 100644
15210 : "+m" (sem->count) 15211 : "+m" (sem->count)
15211 : "er" (delta)); 15212 : "er" (delta));
15212 } 15213 }
15213@@ -204,7 +260,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem) 15214@@ -218,7 +274,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
15214 */ 15215 */
15215 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem) 15216 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
15216 { 15217 {
@@ -15444,7 +15445,15 @@ index 70bbe39..4ae2bd4 100644
15444- void *data, 15445- void *data,
15445- unsigned long *end, 15446- unsigned long *end,
15446- int *graph); 15447- int *graph);
15447- 15448+typedef unsigned long walk_stack_t(struct task_struct *task,
15449+ void *stack_start,
15450+ unsigned long *stack,
15451+ unsigned long bp,
15452+ const struct stacktrace_ops *ops,
15453+ void *data,
15454+ unsigned long *end,
15455+ int *graph);
15456
15448-extern unsigned long 15457-extern unsigned long
15449-print_context_stack(struct thread_info *tinfo, 15458-print_context_stack(struct thread_info *tinfo,
15450- unsigned long *stack, unsigned long bp, 15459- unsigned long *stack, unsigned long bp,
@@ -15456,15 +15465,6 @@ index 70bbe39..4ae2bd4 100644
15456- unsigned long *stack, unsigned long bp, 15465- unsigned long *stack, unsigned long bp,
15457- const struct stacktrace_ops *ops, void *data, 15466- const struct stacktrace_ops *ops, void *data,
15458- unsigned long *end, int *graph); 15467- unsigned long *end, int *graph);
15459+typedef unsigned long walk_stack_t(struct task_struct *task,
15460+ void *stack_start,
15461+ unsigned long *stack,
15462+ unsigned long bp,
15463+ const struct stacktrace_ops *ops,
15464+ void *data,
15465+ unsigned long *end,
15466+ int *graph);
15467+
15468+extern walk_stack_t print_context_stack; 15468+extern walk_stack_t print_context_stack;
15469+extern walk_stack_t print_context_stack_bp; 15469+extern walk_stack_t print_context_stack_bp;
15470 15470
@@ -15502,7 +15502,7 @@ index 4ec45b3..a4f0a8a 100644
15502 __switch_canary_iparam \ 15502 __switch_canary_iparam \
15503 : "memory", "cc" __EXTRA_CLOBBER) 15503 : "memory", "cc" __EXTRA_CLOBBER)
15504diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h 15504diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
15505index 2cd056e..0224df8 100644 15505index a1df6e8..e002940 100644
15506--- a/arch/x86/include/asm/thread_info.h 15506--- a/arch/x86/include/asm/thread_info.h
15507+++ b/arch/x86/include/asm/thread_info.h 15507+++ b/arch/x86/include/asm/thread_info.h
15508@@ -10,6 +10,7 @@ 15508@@ -10,6 +10,7 @@
@@ -15590,38 +15590,24 @@ index 2cd056e..0224df8 100644
15590 15590
15591 /* Only used for 64 bit */ 15591 /* Only used for 64 bit */
15592 #define _TIF_DO_NOTIFY_MASK \ 15592 #define _TIF_DO_NOTIFY_MASK \
15593@@ -158,6 +154,23 @@ struct thread_info { 15593@@ -158,45 +154,40 @@ struct thread_info {
15594 15594
15595 #define PREEMPT_ACTIVE 0x10000000 15595 #define PREEMPT_ACTIVE 0x10000000
15596 15596
15597+#ifdef __ASSEMBLY__ 15597-#ifdef CONFIG_X86_32
15598+/* how to get the thread information struct from ASM */ 15598-
15599+#define GET_THREAD_INFO(reg) \ 15599-#define STACK_WARN (THREAD_SIZE/8)
15600+ mov PER_CPU_VAR(current_tinfo), reg 15600-/*
15601+ 15601- * macros/functions for gaining access to the thread information structure
15602+/* use this one if reg already contains %esp */ 15602- *
15603+#define GET_THREAD_INFO_WITH_ESP(reg) GET_THREAD_INFO(reg) 15603- * preempt_count needs to be 1 initially, until the scheduler is functional.
15604+#else 15604- */
15605+/* how to get the thread information struct from C */ 15605-#ifndef __ASSEMBLY__
15606+DECLARE_PER_CPU(struct thread_info *, current_tinfo); 15606-
15607+ 15607-
15608+static __always_inline struct thread_info *current_thread_info(void) 15608-/* how to get the current stack pointer from C */
15609+{ 15609-register unsigned long current_stack_pointer asm("esp") __used;
15610+ return this_cpu_read_stable(current_tinfo);
15611+}
15612+#endif
15613+
15614 #ifdef CONFIG_X86_32
15615
15616 #define STACK_WARN (THREAD_SIZE/8)
15617@@ -168,35 +181,13 @@ struct thread_info {
15618 */
15619 #ifndef __ASSEMBLY__
15620
15621- 15610-
15622 /* how to get the current stack pointer from C */
15623 register unsigned long current_stack_pointer asm("esp") __used;
15624
15625-/* how to get the thread information struct from C */ 15611-/* how to get the thread information struct from C */
15626-static inline struct thread_info *current_thread_info(void) 15612-static inline struct thread_info *current_thread_info(void)
15627-{ 15613-{
@@ -15631,15 +15617,40 @@ index 2cd056e..0224df8 100644
15631- 15617-
15632-#else /* !__ASSEMBLY__ */ 15618-#else /* !__ASSEMBLY__ */
15633- 15619-
15634-/* how to get the thread information struct from ASM */ 15620+#ifdef __ASSEMBLY__
15635-#define GET_THREAD_INFO(reg) \ 15621 /* how to get the thread information struct from ASM */
15622 #define GET_THREAD_INFO(reg) \
15636- movl $-THREAD_SIZE, reg; \ 15623- movl $-THREAD_SIZE, reg; \
15637- andl %esp, reg 15624- andl %esp, reg
15638- 15625+ mov PER_CPU_VAR(current_tinfo), reg
15639-/* use this one if reg already contains %esp */ 15626
15627 /* use this one if reg already contains %esp */
15640-#define GET_THREAD_INFO_WITH_ESP(reg) \ 15628-#define GET_THREAD_INFO_WITH_ESP(reg) \
15641- andl $-THREAD_SIZE, reg 15629- andl $-THREAD_SIZE, reg
15642- 15630+#define GET_THREAD_INFO_WITH_ESP(reg) GET_THREAD_INFO(reg)
15631+#else
15632+/* how to get the thread information struct from C */
15633+DECLARE_PER_CPU(struct thread_info *, current_tinfo);
15634+
15635+static __always_inline struct thread_info *current_thread_info(void)
15636+{
15637+ return this_cpu_read_stable(current_tinfo);
15638+}
15639+#endif
15640+
15641+#ifdef CONFIG_X86_32
15642+
15643+#define STACK_WARN (THREAD_SIZE/8)
15644+/*
15645+ * macros/functions for gaining access to the thread information structure
15646+ *
15647+ * preempt_count needs to be 1 initially, until the scheduler is functional.
15648+ */
15649+#ifndef __ASSEMBLY__
15650+
15651+/* how to get the current stack pointer from C */
15652+register unsigned long current_stack_pointer asm("esp") __used;
15653
15643 #endif 15654 #endif
15644 15655
15645 #else /* X86_32 */ 15656 #else /* X86_32 */
@@ -15680,7 +15691,7 @@ index 2cd056e..0224df8 100644
15680 #endif 15691 #endif
15681 15692
15682 #endif /* !X86_32 */ 15693 #endif /* !X86_32 */
15683@@ -285,5 +257,12 @@ static inline bool is_ia32_task(void) 15694@@ -283,5 +255,12 @@ static inline bool is_ia32_task(void)
15684 extern void arch_task_cache_init(void); 15695 extern void arch_task_cache_init(void);
15685 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); 15696 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
15686 extern void arch_release_task_struct(struct task_struct *tsk); 15697 extern void arch_release_task_struct(struct task_struct *tsk);
@@ -16004,18 +16015,18 @@ index 7f760a9..04b1c65 100644
16004 unsigned long n) 16015 unsigned long n)
16005 { 16016 {
16006- return __copy_from_user_ll_nocache_nozero(to, from, n); 16017- return __copy_from_user_ll_nocache_nozero(to, from, n);
16007-}
16008+ if ((long)n < 0) 16018+ if ((long)n < 0)
16009+ return n; 16019+ return n;
16020+
16021+ return __copy_from_user_ll_nocache_nozero(to, from, n);
16022 }
16010 16023
16011-unsigned long __must_check copy_to_user(void __user *to, 16024-unsigned long __must_check copy_to_user(void __user *to,
16012- const void *from, unsigned long n); 16025- const void *from, unsigned long n);
16013-unsigned long __must_check _copy_from_user(void *to, 16026-unsigned long __must_check _copy_from_user(void *to,
16014- const void __user *from, 16027- const void __user *from,
16015- unsigned long n); 16028- unsigned long n);
16016+ return __copy_from_user_ll_nocache_nozero(to, from, n); 16029-
16017+}
16018
16019+extern void copy_to_user_overflow(void) 16030+extern void copy_to_user_overflow(void)
16020+#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 16031+#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
16021+ __compiletime_error("copy_to_user() buffer size is not provably correct") 16032+ __compiletime_error("copy_to_user() buffer size is not provably correct")
@@ -16055,14 +16066,13 @@ index 7f760a9..04b1c65 100644
16055- if (likely(sz == -1 || sz >= n)) 16066- if (likely(sz == -1 || sz >= n))
16056- n = _copy_from_user(to, from, n); 16067- n = _copy_from_user(to, from, n);
16057- else 16068- else
16058- copy_from_user_overflow();
16059+ if (unlikely(sz != (size_t)-1 && sz < n)) 16069+ if (unlikely(sz != (size_t)-1 && sz < n))
16060+ copy_to_user_overflow(); 16070+ copy_to_user_overflow();
16061+ else if (access_ok(VERIFY_WRITE, to, n)) 16071+ else if (access_ok(VERIFY_WRITE, to, n))
16062+ n = __copy_to_user(to, from, n); 16072+ n = __copy_to_user(to, from, n);
16063+ return n; 16073+ return n;
16064+} 16074+}
16065 16075+
16066+/** 16076+/**
16067+ * copy_from_user: - Copy a block of data from user space. 16077+ * copy_from_user: - Copy a block of data from user space.
16068+ * @to: Destination address, in kernel space. 16078+ * @to: Destination address, in kernel space.
@@ -16087,7 +16097,8 @@ index 7f760a9..04b1c65 100644
16087+ check_object_size(to, n, false); 16097+ check_object_size(to, n, false);
16088+ 16098+
16089+ if (unlikely(sz != (size_t)-1 && sz < n)) 16099+ if (unlikely(sz != (size_t)-1 && sz < n))
16090+ copy_from_user_overflow(); 16100 copy_from_user_overflow();
16101-
16091+ else if (access_ok(VERIFY_READ, from, n)) 16102+ else if (access_ok(VERIFY_READ, from, n))
16092+ n = __copy_from_user(to, from, n); 16103+ n = __copy_from_user(to, from, n);
16093+ else if ((long)n > 0) 16104+ else if ((long)n > 0)
@@ -16636,7 +16647,7 @@ index 230c8ea..f915130 100644
16636 * HP laptops which use a DSDT reporting as HP/SB400/10000, 16647 * HP laptops which use a DSDT reporting as HP/SB400/10000,
16637 * which includes some code which overrides all temperature 16648 * which includes some code which overrides all temperature
16638diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c 16649diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
16639index 0532f5d..36afc0a 100644 16650index b44577b..27d8443 100644
16640--- a/arch/x86/kernel/acpi/sleep.c 16651--- a/arch/x86/kernel/acpi/sleep.c
16641+++ b/arch/x86/kernel/acpi/sleep.c 16652+++ b/arch/x86/kernel/acpi/sleep.c
16642@@ -74,8 +74,12 @@ int acpi_suspend_lowlevel(void) 16653@@ -74,8 +74,12 @@ int acpi_suspend_lowlevel(void)
@@ -16653,10 +16664,10 @@ index 0532f5d..36afc0a 100644
16653 #endif 16664 #endif
16654 initial_code = (unsigned long)wakeup_long64; 16665 initial_code = (unsigned long)wakeup_long64;
16655diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S 16666diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
16656index 13ab720..95d5442 100644 16667index d1daa66..59fecba 100644
16657--- a/arch/x86/kernel/acpi/wakeup_32.S 16668--- a/arch/x86/kernel/acpi/wakeup_32.S
16658+++ b/arch/x86/kernel/acpi/wakeup_32.S 16669+++ b/arch/x86/kernel/acpi/wakeup_32.S
16659@@ -30,13 +30,11 @@ wakeup_pmode_return: 16670@@ -29,13 +29,11 @@ wakeup_pmode_return:
16660 # and restore the stack ... but you need gdt for this to work 16671 # and restore the stack ... but you need gdt for this to work
16661 movl saved_context_esp, %esp 16672 movl saved_context_esp, %esp
16662 16673
@@ -16673,7 +16684,7 @@ index 13ab720..95d5442 100644
16673 bogus_magic: 16684 bogus_magic:
16674 jmp bogus_magic 16685 jmp bogus_magic
16675diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c 16686diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
16676index ef5ccca..bd83949 100644 16687index c15cf9a..0e63558 100644
16677--- a/arch/x86/kernel/alternative.c 16688--- a/arch/x86/kernel/alternative.c
16678+++ b/arch/x86/kernel/alternative.c 16689+++ b/arch/x86/kernel/alternative.c
16679@@ -268,6 +268,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start, 16690@@ -268,6 +268,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
@@ -17031,10 +17042,10 @@ index 794f6eb..67e1db2 100644
17031 .name = "UV large system", 17042 .name = "UV large system",
17032 .probe = uv_probe, 17043 .probe = uv_probe,
17033diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c 17044diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
17034index 66b5faf..3442423 100644 17045index 53a4e27..038760a 100644
17035--- a/arch/x86/kernel/apm_32.c 17046--- a/arch/x86/kernel/apm_32.c
17036+++ b/arch/x86/kernel/apm_32.c 17047+++ b/arch/x86/kernel/apm_32.c
17037@@ -434,7 +434,7 @@ static DEFINE_MUTEX(apm_mutex); 17048@@ -433,7 +433,7 @@ static DEFINE_MUTEX(apm_mutex);
17038 * This is for buggy BIOS's that refer to (real mode) segment 0x40 17049 * This is for buggy BIOS's that refer to (real mode) segment 0x40
17039 * even though they are called in protected mode. 17050 * even though they are called in protected mode.
17040 */ 17051 */
@@ -17043,7 +17054,7 @@ index 66b5faf..3442423 100644
17043 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1); 17054 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
17044 17055
17045 static const char driver_version[] = "1.16ac"; /* no spaces */ 17056 static const char driver_version[] = "1.16ac"; /* no spaces */
17046@@ -612,7 +612,10 @@ static long __apm_bios_call(void *_call) 17057@@ -611,7 +611,10 @@ static long __apm_bios_call(void *_call)
17047 BUG_ON(cpu != 0); 17058 BUG_ON(cpu != 0);
17048 gdt = get_cpu_gdt_table(cpu); 17059 gdt = get_cpu_gdt_table(cpu);
17049 save_desc_40 = gdt[0x40 / 8]; 17060 save_desc_40 = gdt[0x40 / 8];
@@ -17054,7 +17065,7 @@ index 66b5faf..3442423 100644
17054 17065
17055 apm_irq_save(flags); 17066 apm_irq_save(flags);
17056 APM_DO_SAVE_SEGS; 17067 APM_DO_SAVE_SEGS;
17057@@ -621,7 +624,11 @@ static long __apm_bios_call(void *_call) 17068@@ -620,7 +623,11 @@ static long __apm_bios_call(void *_call)
17058 &call->esi); 17069 &call->esi);
17059 APM_DO_RESTORE_SEGS; 17070 APM_DO_RESTORE_SEGS;
17060 apm_irq_restore(flags); 17071 apm_irq_restore(flags);
@@ -17066,7 +17077,7 @@ index 66b5faf..3442423 100644
17066 put_cpu(); 17077 put_cpu();
17067 17078
17068 return call->eax & 0xff; 17079 return call->eax & 0xff;
17069@@ -688,7 +695,10 @@ static long __apm_bios_call_simple(void *_call) 17080@@ -687,7 +694,10 @@ static long __apm_bios_call_simple(void *_call)
17070 BUG_ON(cpu != 0); 17081 BUG_ON(cpu != 0);
17071 gdt = get_cpu_gdt_table(cpu); 17082 gdt = get_cpu_gdt_table(cpu);
17072 save_desc_40 = gdt[0x40 / 8]; 17083 save_desc_40 = gdt[0x40 / 8];
@@ -17077,7 +17088,7 @@ index 66b5faf..3442423 100644
17077 17088
17078 apm_irq_save(flags); 17089 apm_irq_save(flags);
17079 APM_DO_SAVE_SEGS; 17090 APM_DO_SAVE_SEGS;
17080@@ -696,7 +706,11 @@ static long __apm_bios_call_simple(void *_call) 17091@@ -695,7 +705,11 @@ static long __apm_bios_call_simple(void *_call)
17081 &call->eax); 17092 &call->eax);
17082 APM_DO_RESTORE_SEGS; 17093 APM_DO_RESTORE_SEGS;
17083 apm_irq_restore(flags); 17094 apm_irq_restore(flags);
@@ -17089,7 +17100,7 @@ index 66b5faf..3442423 100644
17089 put_cpu(); 17100 put_cpu();
17090 return error; 17101 return error;
17091 } 17102 }
17092@@ -2363,12 +2377,15 @@ static int __init apm_init(void) 17103@@ -2362,12 +2376,15 @@ static int __init apm_init(void)
17093 * code to that CPU. 17104 * code to that CPU.
17094 */ 17105 */
17095 gdt = get_cpu_gdt_table(0); 17106 gdt = get_cpu_gdt_table(0);
@@ -17125,16 +17136,16 @@ index 2861082..6d4718e 100644
17125+ 17136+
17126+#ifdef CONFIG_PAX_KERNEXEC 17137+#ifdef CONFIG_PAX_KERNEXEC
17127+ OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0); 17138+ OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0);
17128+#endif 17139 #endif
17129+ 17140
17130+#ifdef CONFIG_PAX_MEMORY_UDEREF 17141+#ifdef CONFIG_PAX_MEMORY_UDEREF
17131+ OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3); 17142+ OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3);
17132+ OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3); 17143+ OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3);
17133+#ifdef CONFIG_X86_64 17144+#ifdef CONFIG_X86_64
17134+ OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched); 17145+ OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched);
17135+#endif 17146+#endif
17136 #endif 17147+#endif
17137 17148+
17138+#endif 17149+#endif
17139+ 17150+
17140+ BLANK(); 17151+ BLANK();
@@ -17146,10 +17157,10 @@ index 2861082..6d4718e 100644
17146 BLANK(); 17157 BLANK();
17147 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask); 17158 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
17148diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c 17159diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
17149index 1b4754f..fbb4227 100644 17160index e7c798b..2b2019b 100644
17150--- a/arch/x86/kernel/asm-offsets_64.c 17161--- a/arch/x86/kernel/asm-offsets_64.c
17151+++ b/arch/x86/kernel/asm-offsets_64.c 17162+++ b/arch/x86/kernel/asm-offsets_64.c
17152@@ -76,6 +76,7 @@ int main(void) 17163@@ -77,6 +77,7 @@ int main(void)
17153 BLANK(); 17164 BLANK();
17154 #undef ENTRY 17165 #undef ENTRY
17155 17166
@@ -17158,7 +17169,7 @@ index 1b4754f..fbb4227 100644
17158 BLANK(); 17169 BLANK();
17159 17170
17160diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile 17171diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
17161index a0e067d..9c7db16 100644 17172index b0684e4..22ccfd7 100644
17162--- a/arch/x86/kernel/cpu/Makefile 17173--- a/arch/x86/kernel/cpu/Makefile
17163+++ b/arch/x86/kernel/cpu/Makefile 17174+++ b/arch/x86/kernel/cpu/Makefile
17164@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg 17175@@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
@@ -17171,12 +17182,12 @@ index a0e067d..9c7db16 100644
17171- 17182-
17172 obj-y := intel_cacheinfo.o scattered.o topology.o 17183 obj-y := intel_cacheinfo.o scattered.o topology.o
17173 obj-y += proc.o capflags.o powerflags.o common.o 17184 obj-y += proc.o capflags.o powerflags.o common.o
17174 obj-y += vmware.o hypervisor.o mshyperv.o 17185 obj-y += rdrand.o
17175diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c 17186diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
17176index fa96eb0..03efe73 100644 17187index 5013a48..0782c53 100644
17177--- a/arch/x86/kernel/cpu/amd.c 17188--- a/arch/x86/kernel/cpu/amd.c
17178+++ b/arch/x86/kernel/cpu/amd.c 17189+++ b/arch/x86/kernel/cpu/amd.c
17179@@ -737,7 +737,7 @@ static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 *c, 17190@@ -744,7 +744,7 @@ static unsigned int __cpuinit amd_size_cache(struct cpuinfo_x86 *c,
17180 unsigned int size) 17191 unsigned int size)
17181 { 17192 {
17182 /* AMD errata T13 (order #21922) */ 17193 /* AMD errata T13 (order #21922) */
@@ -17186,7 +17197,7 @@ index fa96eb0..03efe73 100644
17186 if (c->x86_model == 3 && c->x86_mask == 0) 17197 if (c->x86_model == 3 && c->x86_mask == 0)
17187 size = 64; 17198 size = 64;
17188diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c 17199diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
17189index d814772..c615653 100644 17200index 22018f7..bc6f5e3 100644
17190--- a/arch/x86/kernel/cpu/common.c 17201--- a/arch/x86/kernel/cpu/common.c
17191+++ b/arch/x86/kernel/cpu/common.c 17202+++ b/arch/x86/kernel/cpu/common.c
17192@@ -88,60 +88,6 @@ static const struct cpu_dev __cpuinitconst default_cpu = { 17203@@ -88,60 +88,6 @@ static const struct cpu_dev __cpuinitconst default_cpu = {
@@ -17270,7 +17281,7 @@ index d814772..c615653 100644
17270 /* If the model name is still unset, do table lookup. */ 17281 /* If the model name is still unset, do table lookup. */
17271 if (!c->x86_model_id[0]) { 17282 if (!c->x86_model_id[0]) {
17272 const char *p; 17283 const char *p;
17273@@ -1065,10 +1015,12 @@ static __init int setup_disablecpuid(char *arg) 17284@@ -1069,10 +1019,12 @@ static __init int setup_disablecpuid(char *arg)
17274 } 17285 }
17275 __setup("clearcpuid=", setup_disablecpuid); 17286 __setup("clearcpuid=", setup_disablecpuid);
17276 17287
@@ -17285,7 +17296,7 @@ index d814772..c615653 100644
17285 17296
17286 DEFINE_PER_CPU_FIRST(union irq_stack_union, 17297 DEFINE_PER_CPU_FIRST(union irq_stack_union,
17287 irq_stack_union) __aligned(PAGE_SIZE); 17298 irq_stack_union) __aligned(PAGE_SIZE);
17288@@ -1082,7 +1034,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned = 17299@@ -1086,7 +1038,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
17289 EXPORT_PER_CPU_SYMBOL(current_task); 17300 EXPORT_PER_CPU_SYMBOL(current_task);
17290 17301
17291 DEFINE_PER_CPU(unsigned long, kernel_stack) = 17302 DEFINE_PER_CPU(unsigned long, kernel_stack) =
@@ -17294,7 +17305,7 @@ index d814772..c615653 100644
17294 EXPORT_PER_CPU_SYMBOL(kernel_stack); 17305 EXPORT_PER_CPU_SYMBOL(kernel_stack);
17295 17306
17296 DEFINE_PER_CPU(char *, irq_stack_ptr) = 17307 DEFINE_PER_CPU(char *, irq_stack_ptr) =
17297@@ -1227,7 +1179,7 @@ void __cpuinit cpu_init(void) 17308@@ -1231,7 +1183,7 @@ void __cpuinit cpu_init(void)
17298 load_ucode_ap(); 17309 load_ucode_ap();
17299 17310
17300 cpu = stack_smp_processor_id(); 17311 cpu = stack_smp_processor_id();
@@ -17303,7 +17314,7 @@ index d814772..c615653 100644
17303 oist = &per_cpu(orig_ist, cpu); 17314 oist = &per_cpu(orig_ist, cpu);
17304 17315
17305 #ifdef CONFIG_NUMA 17316 #ifdef CONFIG_NUMA
17306@@ -1253,7 +1205,7 @@ void __cpuinit cpu_init(void) 17317@@ -1257,7 +1209,7 @@ void __cpuinit cpu_init(void)
17307 switch_to_new_gdt(cpu); 17318 switch_to_new_gdt(cpu);
17308 loadsegment(fs, 0); 17319 loadsegment(fs, 0);
17309 17320
@@ -17312,7 +17323,7 @@ index d814772..c615653 100644
17312 17323
17313 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8); 17324 memset(me->thread.tls_array, 0, GDT_ENTRY_TLS_ENTRIES * 8);
17314 syscall_init(); 17325 syscall_init();
17315@@ -1262,7 +1214,6 @@ void __cpuinit cpu_init(void) 17326@@ -1266,7 +1218,6 @@ void __cpuinit cpu_init(void)
17316 wrmsrl(MSR_KERNEL_GS_BASE, 0); 17327 wrmsrl(MSR_KERNEL_GS_BASE, 0);
17317 barrier(); 17328 barrier();
17318 17329
@@ -17320,7 +17331,7 @@ index d814772..c615653 100644
17320 enable_x2apic(); 17331 enable_x2apic();
17321 17332
17322 /* 17333 /*
17323@@ -1314,7 +1265,7 @@ void __cpuinit cpu_init(void) 17334@@ -1318,7 +1269,7 @@ void __cpuinit cpu_init(void)
17324 { 17335 {
17325 int cpu = smp_processor_id(); 17336 int cpu = smp_processor_id();
17326 struct task_struct *curr = current; 17337 struct task_struct *curr = current;
@@ -17329,19 +17340,6 @@ index d814772..c615653 100644
17329 struct thread_struct *thread = &curr->thread; 17340 struct thread_struct *thread = &curr->thread;
17330 17341
17331 show_ucode_info_early(); 17342 show_ucode_info_early();
17332diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
17333index 1905ce9..a7ac587 100644
17334--- a/arch/x86/kernel/cpu/intel.c
17335+++ b/arch/x86/kernel/cpu/intel.c
17336@@ -173,7 +173,7 @@ static void __cpuinit trap_init_f00f_bug(void)
17337 * Update the IDT descriptor and reload the IDT so that
17338 * it uses the read-only mapped virtual address.
17339 */
17340- idt_descr.address = fix_to_virt(FIX_F00F_IDT);
17341+ idt_descr.address = (struct desc_struct *)fix_to_virt(FIX_F00F_IDT);
17342 load_idt(&idt_descr);
17343 }
17344 #endif
17345diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c 17343diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
17346index 7c6f7d5..8cac382 100644 17344index 7c6f7d5..8cac382 100644
17347--- a/arch/x86/kernel/cpu/intel_cacheinfo.c 17345--- a/arch/x86/kernel/cpu/intel_cacheinfo.c
@@ -17443,7 +17441,7 @@ index 7c6f7d5..8cac382 100644
17443 }; 17441 };
17444 17442
17445diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c 17443diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
17446index 7bc1263..bff5686 100644 17444index 9239504..b2471ce 100644
17447--- a/arch/x86/kernel/cpu/mcheck/mce.c 17445--- a/arch/x86/kernel/cpu/mcheck/mce.c
17448+++ b/arch/x86/kernel/cpu/mcheck/mce.c 17446+++ b/arch/x86/kernel/cpu/mcheck/mce.c
17449@@ -45,6 +45,7 @@ 17447@@ -45,6 +45,7 @@
@@ -17678,10 +17676,10 @@ index df5e41f..816c719 100644
17678 extern int generic_get_free_region(unsigned long base, unsigned long size, 17676 extern int generic_get_free_region(unsigned long base, unsigned long size,
17679 int replace_reg); 17677 int replace_reg);
17680diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c 17678diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
17681index bf0f01a..9adfee1 100644 17679index 1025f3c..824f677 100644
17682--- a/arch/x86/kernel/cpu/perf_event.c 17680--- a/arch/x86/kernel/cpu/perf_event.c
17683+++ b/arch/x86/kernel/cpu/perf_event.c 17681+++ b/arch/x86/kernel/cpu/perf_event.c
17684@@ -1305,7 +1305,7 @@ static void __init pmu_check_apic(void) 17682@@ -1311,7 +1311,7 @@ static void __init pmu_check_apic(void)
17685 pr_info("no hardware sampling interrupt available.\n"); 17683 pr_info("no hardware sampling interrupt available.\n");
17686 } 17684 }
17687 17685
@@ -17690,7 +17688,7 @@ index bf0f01a..9adfee1 100644
17690 .name = "format", 17688 .name = "format",
17691 .attrs = NULL, 17689 .attrs = NULL,
17692 }; 17690 };
17693@@ -1374,7 +1374,7 @@ static struct attribute *events_attr[] = { 17691@@ -1410,7 +1410,7 @@ static struct attribute *events_attr[] = {
17694 NULL, 17692 NULL,
17695 }; 17693 };
17696 17694
@@ -17699,7 +17697,7 @@ index bf0f01a..9adfee1 100644
17699 .name = "events", 17697 .name = "events",
17700 .attrs = events_attr, 17698 .attrs = events_attr,
17701 }; 17699 };
17702@@ -1873,7 +1873,7 @@ static unsigned long get_segment_base(unsigned int segment) 17700@@ -1920,7 +1920,7 @@ static unsigned long get_segment_base(unsigned int segment)
17703 if (idx > GDT_ENTRIES) 17701 if (idx > GDT_ENTRIES)
17704 return 0; 17702 return 0;
17705 17703
@@ -17708,7 +17706,7 @@ index bf0f01a..9adfee1 100644
17708 } 17706 }
17709 17707
17710 return get_desc_base(desc + idx); 17708 return get_desc_base(desc + idx);
17711@@ -1963,7 +1963,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs) 17709@@ -2010,7 +2010,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
17712 break; 17710 break;
17713 17711
17714 perf_callchain_store(entry, frame.return_address); 17712 perf_callchain_store(entry, frame.return_address);
@@ -17718,10 +17716,10 @@ index bf0f01a..9adfee1 100644
17718 } 17716 }
17719 17717
17720diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c 17718diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
17721index 4a0a462..be3b204 100644 17719index a9e2207..d70c83a 100644
17722--- a/arch/x86/kernel/cpu/perf_event_intel.c 17720--- a/arch/x86/kernel/cpu/perf_event_intel.c
17723+++ b/arch/x86/kernel/cpu/perf_event_intel.c 17721+++ b/arch/x86/kernel/cpu/perf_event_intel.c
17724@@ -1994,10 +1994,10 @@ __init int intel_pmu_init(void) 17722@@ -2022,10 +2022,10 @@ __init int intel_pmu_init(void)
17725 * v2 and above have a perf capabilities MSR 17723 * v2 and above have a perf capabilities MSR
17726 */ 17724 */
17727 if (version > 1) { 17725 if (version > 1) {
@@ -17736,10 +17734,10 @@ index 4a0a462..be3b204 100644
17736 17734
17737 intel_ds_init(); 17735 intel_ds_init();
17738diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c 17736diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
17739index 3e091f0..d2dc8d6 100644 17737index 52441a2..f94fae8 100644
17740--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c 17738--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
17741+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c 17739+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
17742@@ -2428,7 +2428,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types) 17740@@ -3093,7 +3093,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
17743 static int __init uncore_type_init(struct intel_uncore_type *type) 17741 static int __init uncore_type_init(struct intel_uncore_type *type)
17744 { 17742 {
17745 struct intel_uncore_pmu *pmus; 17743 struct intel_uncore_pmu *pmus;
@@ -17748,7 +17746,7 @@ index 3e091f0..d2dc8d6 100644
17748 struct attribute **attrs; 17746 struct attribute **attrs;
17749 int i, j; 17747 int i, j;
17750 17748
17751@@ -2826,7 +2826,7 @@ static int 17749@@ -3518,7 +3518,7 @@ static int
17752 return NOTIFY_OK; 17750 return NOTIFY_OK;
17753 } 17751 }
17754 17752
@@ -17758,10 +17756,10 @@ index 3e091f0..d2dc8d6 100644
17758 /* 17756 /*
17759 * to migrate uncore events, our notifier should be executed 17757 * to migrate uncore events, our notifier should be executed
17760diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h 17758diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
17761index e68a455..975a932 100644 17759index f952891..4722ad4 100644
17762--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h 17760--- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
17763+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h 17761+++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
17764@@ -428,7 +428,7 @@ struct intel_uncore_box { 17762@@ -488,7 +488,7 @@ struct intel_uncore_box {
17765 struct uncore_event_desc { 17763 struct uncore_event_desc {
17766 struct kobj_attribute attr; 17764 struct kobj_attribute attr;
17767 const char *config; 17765 const char *config;
@@ -17813,7 +17811,7 @@ index afa64ad..dce67dd 100644
17813 return -EFAULT; 17811 return -EFAULT;
17814 } 17812 }
17815diff --git a/arch/x86/kernel/doublefault_32.c b/arch/x86/kernel/doublefault_32.c 17813diff --git a/arch/x86/kernel/doublefault_32.c b/arch/x86/kernel/doublefault_32.c
17816index 37250fe..bf2ec74 100644 17814index 155a13f..1672b9b 100644
17817--- a/arch/x86/kernel/doublefault_32.c 17815--- a/arch/x86/kernel/doublefault_32.c
17818+++ b/arch/x86/kernel/doublefault_32.c 17816+++ b/arch/x86/kernel/doublefault_32.c
17819@@ -11,7 +11,7 @@ 17817@@ -11,7 +11,7 @@
@@ -17828,7 +17826,7 @@ index 37250fe..bf2ec74 100644
17828@@ -21,7 +21,7 @@ static void doublefault_fn(void) 17826@@ -21,7 +21,7 @@ static void doublefault_fn(void)
17829 unsigned long gdt, tss; 17827 unsigned long gdt, tss;
17830 17828
17831 store_gdt(&gdt_desc); 17829 native_store_gdt(&gdt_desc);
17832- gdt = gdt_desc.address; 17830- gdt = gdt_desc.address;
17833+ gdt = (unsigned long)gdt_desc.address; 17831+ gdt = (unsigned long)gdt_desc.address;
17834 17832
@@ -17848,7 +17846,7 @@ index 37250fe..bf2ec74 100644
17848 17846
17849 .__cr3 = __pa_nodebug(swapper_pg_dir), 17847 .__cr3 = __pa_nodebug(swapper_pg_dir),
17850diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c 17848diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
17851index c8797d5..c605e53 100644 17849index deb6421..76bbc12 100644
17852--- a/arch/x86/kernel/dumpstack.c 17850--- a/arch/x86/kernel/dumpstack.c
17853+++ b/arch/x86/kernel/dumpstack.c 17851+++ b/arch/x86/kernel/dumpstack.c
17854@@ -2,6 +2,9 @@ 17852@@ -2,6 +2,9 @@
@@ -17953,16 +17951,16 @@ index c8797d5..c605e53 100644
17953 } 17951 }
17954 17952
17955 return (unsigned long)frame; 17953 return (unsigned long)frame;
17956@@ -189,7 +188,7 @@ void dump_stack(void) 17954@@ -150,7 +149,7 @@ static int print_trace_stack(void *data, char *name)
17955 static void print_trace_address(void *data, unsigned long addr, int reliable)
17956 {
17957 touch_nmi_watchdog();
17958- printk(data);
17959+ printk("%s", (char *)data);
17960 printk_address(addr, reliable);
17961 }
17957 17962
17958 bp = stack_frame(current, NULL); 17963@@ -219,6 +218,8 @@ unsigned __kprobes long oops_begin(void)
17959 printk("Pid: %d, comm: %.20s %s %s %.*s\n",
17960- current->pid, current->comm, print_tainted(),
17961+ task_pid_nr(current), current->comm, print_tainted(),
17962 init_utsname()->release,
17963 (int)strcspn(init_utsname()->version, " "),
17964 init_utsname()->version);
17965@@ -225,6 +224,8 @@ unsigned __kprobes long oops_begin(void)
17966 } 17964 }
17967 EXPORT_SYMBOL_GPL(oops_begin); 17965 EXPORT_SYMBOL_GPL(oops_begin);
17968 17966
@@ -17971,7 +17969,7 @@ index c8797d5..c605e53 100644
17971 void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr) 17969 void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
17972 { 17970 {
17973 if (regs && kexec_should_crash(current)) 17971 if (regs && kexec_should_crash(current))
17974@@ -246,7 +247,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr) 17972@@ -240,7 +241,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
17975 panic("Fatal exception in interrupt"); 17973 panic("Fatal exception in interrupt");
17976 if (panic_on_oops) 17974 if (panic_on_oops)
17977 panic("Fatal exception"); 17975 panic("Fatal exception");
@@ -17983,7 +17981,7 @@ index c8797d5..c605e53 100644
17983 } 17981 }
17984 17982
17985 int __kprobes __die(const char *str, struct pt_regs *regs, long err) 17983 int __kprobes __die(const char *str, struct pt_regs *regs, long err)
17986@@ -274,7 +278,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err) 17984@@ -268,7 +272,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
17987 print_modules(); 17985 print_modules();
17988 show_regs(regs); 17986 show_regs(regs);
17989 #ifdef CONFIG_X86_32 17987 #ifdef CONFIG_X86_32
@@ -17992,7 +17990,7 @@ index c8797d5..c605e53 100644
17992 sp = regs->sp; 17990 sp = regs->sp;
17993 ss = regs->ss & 0xffff; 17991 ss = regs->ss & 0xffff;
17994 } else { 17992 } else {
17995@@ -302,7 +306,7 @@ void die(const char *str, struct pt_regs *regs, long err) 17993@@ -296,7 +300,7 @@ void die(const char *str, struct pt_regs *regs, long err)
17996 unsigned long flags = oops_begin(); 17994 unsigned long flags = oops_begin();
17997 int sig = SIGSEGV; 17995 int sig = SIGSEGV;
17998 17996
@@ -18002,7 +18000,7 @@ index c8797d5..c605e53 100644
18002 18000
18003 if (__die(str, regs, err)) 18001 if (__die(str, regs, err))
18004diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c 18002diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
18005index 1038a41..db2c12b 100644 18003index f2a1770..540657f 100644
18006--- a/arch/x86/kernel/dumpstack_32.c 18004--- a/arch/x86/kernel/dumpstack_32.c
18007+++ b/arch/x86/kernel/dumpstack_32.c 18005+++ b/arch/x86/kernel/dumpstack_32.c
18008@@ -38,15 +38,13 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, 18006@@ -38,15 +38,13 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -18025,16 +18023,14 @@ index 1038a41..db2c12b 100644
18025 if (ops->stack(data, "IRQ") < 0) 18023 if (ops->stack(data, "IRQ") < 0)
18026 break; 18024 break;
18027 touch_nmi_watchdog(); 18025 touch_nmi_watchdog();
18028@@ -86,7 +84,7 @@ void show_regs(struct pt_regs *regs) 18026@@ -87,27 +85,28 @@ void show_regs(struct pt_regs *regs)
18029 {
18030 int i; 18027 int i;
18031 18028
18029 show_regs_print_info(KERN_EMERG);
18032- __show_regs(regs, !user_mode_vm(regs)); 18030- __show_regs(regs, !user_mode_vm(regs));
18033+ __show_regs(regs, !user_mode(regs)); 18031+ __show_regs(regs, !user_mode(regs));
18034 18032
18035 pr_emerg("Process %.*s (pid: %d, ti=%p task=%p task.ti=%p)\n", 18033 /*
18036 TASK_COMM_LEN, current->comm, task_pid_nr(current),
18037@@ -95,21 +93,22 @@ void show_regs(struct pt_regs *regs)
18038 * When in-kernel, we also print out the stack and code at the 18034 * When in-kernel, we also print out the stack and code at the
18039 * time of the fault.. 18035 * time of the fault..
18040 */ 18036 */
@@ -18060,7 +18056,7 @@ index 1038a41..db2c12b 100644
18060 code_len = code_len - code_prologue + 1; 18056 code_len = code_len - code_prologue + 1;
18061 } 18057 }
18062 for (i = 0; i < code_len; i++, ip++) { 18058 for (i = 0; i < code_len; i++, ip++) {
18063@@ -118,7 +117,7 @@ void show_regs(struct pt_regs *regs) 18059@@ -116,7 +115,7 @@ void show_regs(struct pt_regs *regs)
18064 pr_cont(" Bad EIP value."); 18060 pr_cont(" Bad EIP value.");
18065 break; 18061 break;
18066 } 18062 }
@@ -18069,7 +18065,7 @@ index 1038a41..db2c12b 100644
18069 pr_cont(" <%02x>", c); 18065 pr_cont(" <%02x>", c);
18070 else 18066 else
18071 pr_cont(" %02x", c); 18067 pr_cont(" %02x", c);
18072@@ -131,6 +130,7 @@ int is_valid_bugaddr(unsigned long ip) 18068@@ -129,6 +128,7 @@ int is_valid_bugaddr(unsigned long ip)
18073 { 18069 {
18074 unsigned short ud2; 18070 unsigned short ud2;
18075 18071
@@ -18077,7 +18073,7 @@ index 1038a41..db2c12b 100644
18077 if (ip < PAGE_OFFSET) 18073 if (ip < PAGE_OFFSET)
18078 return 0; 18074 return 0;
18079 if (probe_kernel_address((unsigned short *)ip, ud2)) 18075 if (probe_kernel_address((unsigned short *)ip, ud2))
18080@@ -138,3 +138,15 @@ int is_valid_bugaddr(unsigned long ip) 18076@@ -136,3 +136,15 @@ int is_valid_bugaddr(unsigned long ip)
18081 18077
18082 return ud2 == 0x0b0f; 18078 return ud2 == 0x0b0f;
18083 } 18079 }
@@ -18094,7 +18090,7 @@ index 1038a41..db2c12b 100644
18094+EXPORT_SYMBOL(pax_check_alloca); 18090+EXPORT_SYMBOL(pax_check_alloca);
18095+#endif 18091+#endif
18096diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c 18092diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
18097index b653675..51cc8c0 100644 18093index addb207..99635fa 100644
18098--- a/arch/x86/kernel/dumpstack_64.c 18094--- a/arch/x86/kernel/dumpstack_64.c
18099+++ b/arch/x86/kernel/dumpstack_64.c 18095+++ b/arch/x86/kernel/dumpstack_64.c
18100@@ -119,9 +119,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs, 18096@@ -119,9 +119,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
@@ -18158,16 +18154,7 @@ index b653675..51cc8c0 100644
18158 put_cpu(); 18154 put_cpu();
18159 } 18155 }
18160 EXPORT_SYMBOL(dump_trace); 18156 EXPORT_SYMBOL(dump_trace);
18161@@ -249,7 +253,7 @@ void show_regs(struct pt_regs *regs) 18157@@ -300,3 +304,50 @@ int is_valid_bugaddr(unsigned long ip)
18162 {
18163 int i;
18164 unsigned long sp;
18165- const int cpu = smp_processor_id();
18166+ const int cpu = raw_smp_processor_id();
18167 struct task_struct *cur = current;
18168
18169 sp = regs->sp;
18170@@ -304,3 +308,50 @@ int is_valid_bugaddr(unsigned long ip)
18171 18158
18172 return ud2 == 0x0b0f; 18159 return ud2 == 0x0b0f;
18173 } 18160 }
@@ -18234,7 +18221,7 @@ index d32abea..74daf4f 100644
18234 18221
18235 static int userdef __initdata; 18222 static int userdef __initdata;
18236diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c 18223diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
18237index 9b9f18b..9fcaa04 100644 18224index d15f575..d692043 100644
18238--- a/arch/x86/kernel/early_printk.c 18225--- a/arch/x86/kernel/early_printk.c
18239+++ b/arch/x86/kernel/early_printk.c 18226+++ b/arch/x86/kernel/early_printk.c
18240@@ -7,6 +7,7 @@ 18227@@ -7,6 +7,7 @@
@@ -19006,7 +18993,7 @@ index 8f3e2de..caecc4e 100644
19006 18993
19007 /* 18994 /*
19008diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S 18995diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
19009index c1d01e6..a88cf02 100644 18996index 7272089..6204f9c5 100644
19010--- a/arch/x86/kernel/entry_64.S 18997--- a/arch/x86/kernel/entry_64.S
19011+++ b/arch/x86/kernel/entry_64.S 18998+++ b/arch/x86/kernel/entry_64.S
19012@@ -59,6 +59,8 @@ 18999@@ -59,6 +59,8 @@
@@ -19742,7 +19729,7 @@ index c1d01e6..a88cf02 100644
19742 .endm 19729 .endm
19743 19730
19744 #ifdef CONFIG_SMP 19731 #ifdef CONFIG_SMP
19745@@ -1203,12 +1554,22 @@ ENTRY(\sym) 19732@@ -1208,12 +1559,22 @@ ENTRY(\sym)
19746 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 19733 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
19747 call error_entry 19734 call error_entry
19748 DEFAULT_FRAME 0 19735 DEFAULT_FRAME 0
@@ -19766,7 +19753,7 @@ index c1d01e6..a88cf02 100644
19766 .endm 19753 .endm
19767 19754
19768 .macro paranoidzeroentry sym do_sym 19755 .macro paranoidzeroentry sym do_sym
19769@@ -1221,15 +1582,25 @@ ENTRY(\sym) 19756@@ -1226,15 +1587,25 @@ ENTRY(\sym)
19770 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 19757 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
19771 call save_paranoid 19758 call save_paranoid
19772 TRACE_IRQS_OFF 19759 TRACE_IRQS_OFF
@@ -19794,7 +19781,7 @@ index c1d01e6..a88cf02 100644
19794 .macro paranoidzeroentry_ist sym do_sym ist 19781 .macro paranoidzeroentry_ist sym do_sym ist
19795 ENTRY(\sym) 19782 ENTRY(\sym)
19796 INTR_FRAME 19783 INTR_FRAME
19797@@ -1240,14 +1611,30 @@ ENTRY(\sym) 19784@@ -1245,14 +1616,30 @@ ENTRY(\sym)
19798 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 19785 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
19799 call save_paranoid 19786 call save_paranoid
19800 TRACE_IRQS_OFF_DEBUG 19787 TRACE_IRQS_OFF_DEBUG
@@ -19826,7 +19813,7 @@ index c1d01e6..a88cf02 100644
19826 .endm 19813 .endm
19827 19814
19828 .macro errorentry sym do_sym 19815 .macro errorentry sym do_sym
19829@@ -1259,13 +1646,23 @@ ENTRY(\sym) 19816@@ -1264,13 +1651,23 @@ ENTRY(\sym)
19830 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15 19817 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
19831 call error_entry 19818 call error_entry
19832 DEFAULT_FRAME 0 19819 DEFAULT_FRAME 0
@@ -19851,7 +19838,7 @@ index c1d01e6..a88cf02 100644
19851 .endm 19838 .endm
19852 19839
19853 /* error code is on the stack already */ 19840 /* error code is on the stack already */
19854@@ -1279,13 +1676,23 @@ ENTRY(\sym) 19841@@ -1284,13 +1681,23 @@ ENTRY(\sym)
19855 call save_paranoid 19842 call save_paranoid
19856 DEFAULT_FRAME 0 19843 DEFAULT_FRAME 0
19857 TRACE_IRQS_OFF 19844 TRACE_IRQS_OFF
@@ -19876,7 +19863,7 @@ index c1d01e6..a88cf02 100644
19876 .endm 19863 .endm
19877 19864
19878 zeroentry divide_error do_divide_error 19865 zeroentry divide_error do_divide_error
19879@@ -1315,9 +1722,10 @@ gs_change: 19866@@ -1320,9 +1727,10 @@ gs_change:
19880 2: mfence /* workaround */ 19867 2: mfence /* workaround */
19881 SWAPGS 19868 SWAPGS
19882 popfq_cfi 19869 popfq_cfi
@@ -19888,7 +19875,7 @@ index c1d01e6..a88cf02 100644
19888 19875
19889 _ASM_EXTABLE(gs_change,bad_gs) 19876 _ASM_EXTABLE(gs_change,bad_gs)
19890 .section .fixup,"ax" 19877 .section .fixup,"ax"
19891@@ -1345,9 +1753,10 @@ ENTRY(call_softirq) 19878@@ -1350,9 +1758,10 @@ ENTRY(call_softirq)
19892 CFI_DEF_CFA_REGISTER rsp 19879 CFI_DEF_CFA_REGISTER rsp
19893 CFI_ADJUST_CFA_OFFSET -8 19880 CFI_ADJUST_CFA_OFFSET -8
19894 decl PER_CPU_VAR(irq_count) 19881 decl PER_CPU_VAR(irq_count)
@@ -19900,7 +19887,7 @@ index c1d01e6..a88cf02 100644
19900 19887
19901 #ifdef CONFIG_XEN 19888 #ifdef CONFIG_XEN
19902 zeroentry xen_hypervisor_callback xen_do_hypervisor_callback 19889 zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
19903@@ -1385,7 +1794,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs) 19890@@ -1390,7 +1799,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
19904 decl PER_CPU_VAR(irq_count) 19891 decl PER_CPU_VAR(irq_count)
19905 jmp error_exit 19892 jmp error_exit
19906 CFI_ENDPROC 19893 CFI_ENDPROC
@@ -19909,7 +19896,7 @@ index c1d01e6..a88cf02 100644
19909 19896
19910 /* 19897 /*
19911 * Hypervisor uses this for application faults while it executes. 19898 * Hypervisor uses this for application faults while it executes.
19912@@ -1444,7 +1853,7 @@ ENTRY(xen_failsafe_callback) 19899@@ -1449,7 +1858,7 @@ ENTRY(xen_failsafe_callback)
19913 SAVE_ALL 19900 SAVE_ALL
19914 jmp error_exit 19901 jmp error_exit
19915 CFI_ENDPROC 19902 CFI_ENDPROC
@@ -19918,7 +19905,7 @@ index c1d01e6..a88cf02 100644
19918 19905
19919 apicinterrupt HYPERVISOR_CALLBACK_VECTOR \ 19906 apicinterrupt HYPERVISOR_CALLBACK_VECTOR \
19920 xen_hvm_callback_vector xen_evtchn_do_upcall 19907 xen_hvm_callback_vector xen_evtchn_do_upcall
19921@@ -1496,18 +1905,33 @@ ENTRY(paranoid_exit) 19908@@ -1501,18 +1910,33 @@ ENTRY(paranoid_exit)
19922 DEFAULT_FRAME 19909 DEFAULT_FRAME
19923 DISABLE_INTERRUPTS(CLBR_NONE) 19910 DISABLE_INTERRUPTS(CLBR_NONE)
19924 TRACE_IRQS_OFF_DEBUG 19911 TRACE_IRQS_OFF_DEBUG
@@ -19954,7 +19941,7 @@ index c1d01e6..a88cf02 100644
19954 jmp irq_return 19941 jmp irq_return
19955 paranoid_userspace: 19942 paranoid_userspace:
19956 GET_THREAD_INFO(%rcx) 19943 GET_THREAD_INFO(%rcx)
19957@@ -1536,7 +1960,7 @@ paranoid_schedule: 19944@@ -1541,7 +1965,7 @@ paranoid_schedule:
19958 TRACE_IRQS_OFF 19945 TRACE_IRQS_OFF
19959 jmp paranoid_userspace 19946 jmp paranoid_userspace
19960 CFI_ENDPROC 19947 CFI_ENDPROC
@@ -19963,7 +19950,7 @@ index c1d01e6..a88cf02 100644
19963 19950
19964 /* 19951 /*
19965 * Exception entry point. This expects an error code/orig_rax on the stack. 19952 * Exception entry point. This expects an error code/orig_rax on the stack.
19966@@ -1563,12 +1987,13 @@ ENTRY(error_entry) 19953@@ -1568,12 +1992,13 @@ ENTRY(error_entry)
19967 movq_cfi r14, R14+8 19954 movq_cfi r14, R14+8
19968 movq_cfi r15, R15+8 19955 movq_cfi r15, R15+8
19969 xorl %ebx,%ebx 19956 xorl %ebx,%ebx
@@ -19978,7 +19965,7 @@ index c1d01e6..a88cf02 100644
19978 ret 19965 ret
19979 19966
19980 /* 19967 /*
19981@@ -1595,7 +2020,7 @@ bstep_iret: 19968@@ -1600,7 +2025,7 @@ bstep_iret:
19982 movq %rcx,RIP+8(%rsp) 19969 movq %rcx,RIP+8(%rsp)
19983 jmp error_swapgs 19970 jmp error_swapgs
19984 CFI_ENDPROC 19971 CFI_ENDPROC
@@ -19987,7 +19974,7 @@ index c1d01e6..a88cf02 100644
19987 19974
19988 19975
19989 /* ebx: no swapgs flag (1: don't need swapgs, 0: need it) */ 19976 /* ebx: no swapgs flag (1: don't need swapgs, 0: need it) */
19990@@ -1606,7 +2031,7 @@ ENTRY(error_exit) 19977@@ -1611,7 +2036,7 @@ ENTRY(error_exit)
19991 DISABLE_INTERRUPTS(CLBR_NONE) 19978 DISABLE_INTERRUPTS(CLBR_NONE)
19992 TRACE_IRQS_OFF 19979 TRACE_IRQS_OFF
19993 GET_THREAD_INFO(%rcx) 19980 GET_THREAD_INFO(%rcx)
@@ -19996,7 +19983,7 @@ index c1d01e6..a88cf02 100644
19996 jne retint_kernel 19983 jne retint_kernel
19997 LOCKDEP_SYS_EXIT_IRQ 19984 LOCKDEP_SYS_EXIT_IRQ
19998 movl TI_flags(%rcx),%edx 19985 movl TI_flags(%rcx),%edx
19999@@ -1615,7 +2040,7 @@ ENTRY(error_exit) 19986@@ -1620,7 +2045,7 @@ ENTRY(error_exit)
20000 jnz retint_careful 19987 jnz retint_careful
20001 jmp retint_swapgs 19988 jmp retint_swapgs
20002 CFI_ENDPROC 19989 CFI_ENDPROC
@@ -20005,7 +19992,7 @@ index c1d01e6..a88cf02 100644
20005 19992
20006 /* 19993 /*
20007 * Test if a given stack is an NMI stack or not. 19994 * Test if a given stack is an NMI stack or not.
20008@@ -1673,9 +2098,11 @@ ENTRY(nmi) 19995@@ -1678,9 +2103,11 @@ ENTRY(nmi)
20009 * If %cs was not the kernel segment, then the NMI triggered in user 19996 * If %cs was not the kernel segment, then the NMI triggered in user
20010 * space, which means it is definitely not nested. 19997 * space, which means it is definitely not nested.
20011 */ 19998 */
@@ -20018,7 +20005,7 @@ index c1d01e6..a88cf02 100644
20018 /* 20005 /*
20019 * Check the special variable on the stack to see if NMIs are 20006 * Check the special variable on the stack to see if NMIs are
20020 * executing. 20007 * executing.
20021@@ -1709,8 +2136,7 @@ nested_nmi: 20008@@ -1714,8 +2141,7 @@ nested_nmi:
20022 20009
20023 1: 20010 1:
20024 /* Set up the interrupted NMIs stack to jump to repeat_nmi */ 20011 /* Set up the interrupted NMIs stack to jump to repeat_nmi */
@@ -20028,7 +20015,7 @@ index c1d01e6..a88cf02 100644
20028 CFI_ADJUST_CFA_OFFSET 1*8 20015 CFI_ADJUST_CFA_OFFSET 1*8
20029 leaq -10*8(%rsp), %rdx 20016 leaq -10*8(%rsp), %rdx
20030 pushq_cfi $__KERNEL_DS 20017 pushq_cfi $__KERNEL_DS
20031@@ -1728,6 +2154,7 @@ nested_nmi_out: 20018@@ -1733,6 +2159,7 @@ nested_nmi_out:
20032 CFI_RESTORE rdx 20019 CFI_RESTORE rdx
20033 20020
20034 /* No need to check faults here */ 20021 /* No need to check faults here */
@@ -20036,7 +20023,7 @@ index c1d01e6..a88cf02 100644
20036 INTERRUPT_RETURN 20023 INTERRUPT_RETURN
20037 20024
20038 CFI_RESTORE_STATE 20025 CFI_RESTORE_STATE
20039@@ -1844,6 +2271,8 @@ end_repeat_nmi: 20026@@ -1849,6 +2276,8 @@ end_repeat_nmi:
20040 */ 20027 */
20041 movq %cr2, %r12 20028 movq %cr2, %r12
20042 20029
@@ -20045,7 +20032,7 @@ index c1d01e6..a88cf02 100644
20045 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */ 20032 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
20046 movq %rsp,%rdi 20033 movq %rsp,%rdi
20047 movq $-1,%rsi 20034 movq $-1,%rsi
20048@@ -1856,26 +2285,31 @@ end_repeat_nmi: 20035@@ -1861,26 +2290,31 @@ end_repeat_nmi:
20049 movq %r12, %cr2 20036 movq %r12, %cr2
20050 1: 20037 1:
20051 20038
@@ -20148,7 +20135,7 @@ index 42a392a..fbbd930 100644
20148 return -EFAULT; 20135 return -EFAULT;
20149 20136
20150diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c 20137diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
20151index 8f3201d..6898c0c 100644 20138index 55b6761..a6456fc 100644
20152--- a/arch/x86/kernel/head64.c 20139--- a/arch/x86/kernel/head64.c
20153+++ b/arch/x86/kernel/head64.c 20140+++ b/arch/x86/kernel/head64.c
20154@@ -67,12 +67,12 @@ again: 20141@@ -67,12 +67,12 @@ again:
@@ -20633,7 +20620,7 @@ index 73afd11..d1670f5 100644
20633+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0 20620+ .fill PAGE_SIZE_asm - GDT_SIZE,1,0
20634+ .endr 20621+ .endr
20635diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S 20622diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
20636index 321d65e..ad8817d 100644 20623index 321d65e..863089b 100644
20637--- a/arch/x86/kernel/head_64.S 20624--- a/arch/x86/kernel/head_64.S
20638+++ b/arch/x86/kernel/head_64.S 20625+++ b/arch/x86/kernel/head_64.S
20639@@ -20,6 +20,8 @@ 20626@@ -20,6 +20,8 @@
@@ -20674,10 +20661,10 @@ index 321d65e..ad8817d 100644
20674+#ifndef CONFIG_XEN 20661+#ifndef CONFIG_XEN
20675+ addq %rbp, level3_ident_pgt + (1*8)(%rip) 20662+ addq %rbp, level3_ident_pgt + (1*8)(%rip)
20676+#endif 20663+#endif
20677+
20678+ addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
20679 20664
20680- addq %rbp, level2_fixmap_pgt + (506*8)(%rip) 20665- addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
20666+ addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
20667+
20681+ addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip) 20668+ addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
20682+ addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip) 20669+ addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
20683+ 20670+
@@ -20749,10 +20736,10 @@ index 321d65e..ad8817d 100644
20749+ .section .rodata,"a",@progbits 20736+ .section .rodata,"a",@progbits
20750 20737
20751-#ifndef CONFIG_XEN 20738-#ifndef CONFIG_XEN
20752-NEXT_PAGE(init_level4_pgt) 20739 NEXT_PAGE(init_level4_pgt)
20753- .fill 512,8,0 20740- .fill 512,8,0
20754-#else 20741-#else
20755 NEXT_PAGE(init_level4_pgt) 20742-NEXT_PAGE(init_level4_pgt)
20756- .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE 20743- .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
20757 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0 20744 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
20758 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE 20745 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
@@ -20875,21 +20862,26 @@ index 321d65e..ad8817d 100644
20875 #include "../../x86/xen/xen-head.S" 20862 #include "../../x86/xen/xen-head.S"
20876- 20863-
20877- .section .bss, "aw", @nobits 20864- .section .bss, "aw", @nobits
20878+ 20865- .align L1_CACHE_BYTES
20879+ .section .rodata,"a",@progbits 20866-ENTRY(idt_table)
20880 .align L1_CACHE_BYTES
20881 ENTRY(idt_table)
20882- .skip IDT_ENTRIES * 16 20867- .skip IDT_ENTRIES * 16
20883+ .fill 512,8,0
20884 20868
20885 .align L1_CACHE_BYTES 20869- .align L1_CACHE_BYTES
20886 ENTRY(nmi_idt_table) 20870-ENTRY(nmi_idt_table)
20887- .skip IDT_ENTRIES * 16 20871- .skip IDT_ENTRIES * 16
20888+ .fill 512,8,0 20872-
20889
20890- __PAGE_ALIGNED_BSS 20873- __PAGE_ALIGNED_BSS
20874+ .section .rodata,"a",@progbits
20891 NEXT_PAGE(empty_zero_page) 20875 NEXT_PAGE(empty_zero_page)
20892 .skip PAGE_SIZE 20876 .skip PAGE_SIZE
20877+
20878+ .align L1_CACHE_BYTES
20879+ENTRY(idt_table)
20880+ .fill 512,8,0
20881+
20882+ .align L1_CACHE_BYTES
20883+ENTRY(nmi_idt_table)
20884+ .fill 512,8,0
20893diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c 20885diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
20894index 0fa6912..37fce70 100644 20886index 0fa6912..37fce70 100644
20895--- a/arch/x86/kernel/i386_ksyms_32.c 20887--- a/arch/x86/kernel/i386_ksyms_32.c
@@ -21030,7 +21022,7 @@ index 4ddaf66..6292f4e 100644
21030 return -EPERM; 21022 return -EPERM;
21031 } 21023 }
21032diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c 21024diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
21033index 84b7789..e65e8be 100644 21025index ac0631d..ff7cb62 100644
21034--- a/arch/x86/kernel/irq.c 21026--- a/arch/x86/kernel/irq.c
21035+++ b/arch/x86/kernel/irq.c 21027+++ b/arch/x86/kernel/irq.c
21036@@ -18,7 +18,7 @@ 21028@@ -18,7 +18,7 @@
@@ -21333,7 +21325,7 @@ index 836f832..a8bda67 100644
21333 } 21325 }
21334 21326
21335diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c 21327diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
21336index 7bfe318..383d238 100644 21328index 211bce4..6e2580a 100644
21337--- a/arch/x86/kernel/kprobes/core.c 21329--- a/arch/x86/kernel/kprobes/core.c
21338+++ b/arch/x86/kernel/kprobes/core.c 21330+++ b/arch/x86/kernel/kprobes/core.c
21339@@ -119,9 +119,12 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op) 21331@@ -119,9 +119,12 @@ static void __kprobes __synthesize_relative_insn(void *from, void *to, u8 op)
@@ -21381,9 +21373,9 @@ index 7bfe318..383d238 100644
21381 21373
21382 #ifdef CONFIG_X86_64 21374 #ifdef CONFIG_X86_64
21383 if (insn_rip_relative(&insn)) { 21375 if (insn_rip_relative(&insn)) {
21384@@ -355,7 +360,9 @@ int __kprobes __copy_instruction(u8 *dest, u8 *src) 21376@@ -359,7 +364,9 @@ int __kprobes __copy_instruction(u8 *dest, u8 *src)
21385 newdisp = (u8 *) src + (s64) insn.displacement.value - (u8 *) dest; 21377 return 0;
21386 BUG_ON((s64) (s32) newdisp != newdisp); /* Sanity check. */ 21378 }
21387 disp = (u8 *) dest + insn_offset_displacement(&insn); 21379 disp = (u8 *) dest + insn_offset_displacement(&insn);
21388+ pax_open_kernel(); 21380+ pax_open_kernel();
21389 *(s32 *) disp = (s32) newdisp; 21381 *(s32 *) disp = (s32) newdisp;
@@ -21391,7 +21383,7 @@ index 7bfe318..383d238 100644
21391 } 21383 }
21392 #endif 21384 #endif
21393 return insn.length; 21385 return insn.length;
21394@@ -488,7 +495,7 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k 21386@@ -498,7 +505,7 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k
21395 * nor set current_kprobe, because it doesn't use single 21387 * nor set current_kprobe, because it doesn't use single
21396 * stepping. 21388 * stepping.
21397 */ 21389 */
@@ -21400,7 +21392,7 @@ index 7bfe318..383d238 100644
21400 preempt_enable_no_resched(); 21392 preempt_enable_no_resched();
21401 return; 21393 return;
21402 } 21394 }
21403@@ -505,9 +512,9 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k 21395@@ -515,9 +522,9 @@ setup_singlestep(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *k
21404 regs->flags &= ~X86_EFLAGS_IF; 21396 regs->flags &= ~X86_EFLAGS_IF;
21405 /* single step inline if the instruction is an int3 */ 21397 /* single step inline if the instruction is an int3 */
21406 if (p->opcode == BREAKPOINT_INSTRUCTION) 21398 if (p->opcode == BREAKPOINT_INSTRUCTION)
@@ -21412,7 +21404,7 @@ index 7bfe318..383d238 100644
21412 } 21404 }
21413 21405
21414 /* 21406 /*
21415@@ -586,7 +593,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) 21407@@ -596,7 +603,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
21416 setup_singlestep(p, regs, kcb, 0); 21408 setup_singlestep(p, regs, kcb, 0);
21417 return 1; 21409 return 1;
21418 } 21410 }
@@ -21421,7 +21413,7 @@ index 7bfe318..383d238 100644
21421 /* 21413 /*
21422 * The breakpoint instruction was removed right 21414 * The breakpoint instruction was removed right
21423 * after we hit it. Another cpu has removed 21415 * after we hit it. Another cpu has removed
21424@@ -632,6 +639,9 @@ static void __used __kprobes kretprobe_trampoline_holder(void) 21416@@ -642,6 +649,9 @@ static void __used __kprobes kretprobe_trampoline_holder(void)
21425 " movq %rax, 152(%rsp)\n" 21417 " movq %rax, 152(%rsp)\n"
21426 RESTORE_REGS_STRING 21418 RESTORE_REGS_STRING
21427 " popfq\n" 21419 " popfq\n"
@@ -21431,7 +21423,7 @@ index 7bfe318..383d238 100644
21431 #else 21423 #else
21432 " pushf\n" 21424 " pushf\n"
21433 SAVE_REGS_STRING 21425 SAVE_REGS_STRING
21434@@ -769,7 +779,7 @@ static void __kprobes 21426@@ -779,7 +789,7 @@ static void __kprobes
21435 resume_execution(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb) 21427 resume_execution(struct kprobe *p, struct pt_regs *regs, struct kprobe_ctlblk *kcb)
21436 { 21428 {
21437 unsigned long *tos = stack_addr(regs); 21429 unsigned long *tos = stack_addr(regs);
@@ -21440,7 +21432,7 @@ index 7bfe318..383d238 100644
21440 unsigned long orig_ip = (unsigned long)p->addr; 21432 unsigned long orig_ip = (unsigned long)p->addr;
21441 kprobe_opcode_t *insn = p->ainsn.insn; 21433 kprobe_opcode_t *insn = p->ainsn.insn;
21442 21434
21443@@ -951,7 +961,7 @@ kprobe_exceptions_notify(struct notifier_block *self, unsigned long val, void *d 21435@@ -961,7 +971,7 @@ kprobe_exceptions_notify(struct notifier_block *self, unsigned long val, void *d
21444 struct die_args *args = data; 21436 struct die_args *args = data;
21445 int ret = NOTIFY_DONE; 21437 int ret = NOTIFY_DONE;
21446 21438
@@ -21519,10 +21511,10 @@ index 76dc6f0..66bdfc3 100644
21519 reset_current_kprobe(); 21511 reset_current_kprobe();
21520 preempt_enable_no_resched(); 21512 preempt_enable_no_resched();
21521diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c 21513diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
21522index b686a90..60d36fb 100644 21514index cd6d9a5..16245a4 100644
21523--- a/arch/x86/kernel/kvm.c 21515--- a/arch/x86/kernel/kvm.c
21524+++ b/arch/x86/kernel/kvm.c 21516+++ b/arch/x86/kernel/kvm.c
21525@@ -453,7 +453,7 @@ static int __cpuinit kvm_cpu_notify(struct notifier_block *self, 21517@@ -455,7 +455,7 @@ static int __cpuinit kvm_cpu_notify(struct notifier_block *self,
21526 return NOTIFY_OK; 21518 return NOTIFY_OK;
21527 } 21519 }
21528 21520
@@ -21901,7 +21893,7 @@ index 676b8c7..870ba04 100644
21901 .spin_is_locked = __ticket_spin_is_locked, 21893 .spin_is_locked = __ticket_spin_is_locked,
21902 .spin_is_contended = __ticket_spin_is_contended, 21894 .spin_is_contended = __ticket_spin_is_contended,
21903diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c 21895diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
21904index 8bfb335..c1463c6 100644 21896index cd6de64..27c6af0 100644
21905--- a/arch/x86/kernel/paravirt.c 21897--- a/arch/x86/kernel/paravirt.c
21906+++ b/arch/x86/kernel/paravirt.c 21898+++ b/arch/x86/kernel/paravirt.c
21907@@ -55,6 +55,9 @@ u64 _paravirt_ident_64(u64 x) 21899@@ -55,6 +55,9 @@ u64 _paravirt_ident_64(u64 x)
@@ -21929,10 +21921,10 @@ index 8bfb335..c1463c6 100644
21929 ret = paravirt_patch_ident_32(insnbuf, len); 21921 ret = paravirt_patch_ident_32(insnbuf, len);
21930- else if (opfunc == _paravirt_ident_64) 21922- else if (opfunc == _paravirt_ident_64)
21931+ else if (opfunc == (void *)_paravirt_ident_64) 21923+ else if (opfunc == (void *)_paravirt_ident_64)
21932+ ret = paravirt_patch_ident_64(insnbuf, len); 21924 ret = paravirt_patch_ident_64(insnbuf, len);
21933+#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE) 21925+#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
21934+ else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64) 21926+ else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64)
21935 ret = paravirt_patch_ident_64(insnbuf, len); 21927+ ret = paravirt_patch_ident_64(insnbuf, len);
21936+#endif 21928+#endif
21937 21929
21938 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) || 21930 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
@@ -21984,7 +21976,7 @@ index 8bfb335..c1463c6 100644
21984 .cpuid = native_cpuid, 21976 .cpuid = native_cpuid,
21985 .get_debugreg = native_get_debugreg, 21977 .get_debugreg = native_get_debugreg,
21986 .set_debugreg = native_set_debugreg, 21978 .set_debugreg = native_set_debugreg,
21987@@ -395,21 +402,26 @@ struct pv_cpu_ops pv_cpu_ops = { 21979@@ -394,21 +401,26 @@ struct pv_cpu_ops pv_cpu_ops = {
21988 .end_context_switch = paravirt_nop, 21980 .end_context_switch = paravirt_nop,
21989 }; 21981 };
21990 21982
@@ -22014,7 +22006,7 @@ index 8bfb335..c1463c6 100644
22014 22006
22015 .read_cr2 = native_read_cr2, 22007 .read_cr2 = native_read_cr2,
22016 .write_cr2 = native_write_cr2, 22008 .write_cr2 = native_write_cr2,
22017@@ -459,6 +471,7 @@ struct pv_mmu_ops pv_mmu_ops = { 22009@@ -458,6 +470,7 @@ struct pv_mmu_ops pv_mmu_ops = {
22018 .make_pud = PTE_IDENT, 22010 .make_pud = PTE_IDENT,
22019 22011
22020 .set_pgd = native_set_pgd, 22012 .set_pgd = native_set_pgd,
@@ -22022,7 +22014,7 @@ index 8bfb335..c1463c6 100644
22022 #endif 22014 #endif
22023 #endif /* PAGETABLE_LEVELS >= 3 */ 22015 #endif /* PAGETABLE_LEVELS >= 3 */
22024 22016
22025@@ -479,6 +492,12 @@ struct pv_mmu_ops pv_mmu_ops = { 22017@@ -478,6 +491,12 @@ struct pv_mmu_ops pv_mmu_ops = {
22026 }, 22018 },
22027 22019
22028 .set_fixmap = native_set_fixmap, 22020 .set_fixmap = native_set_fixmap,
@@ -22075,7 +22067,7 @@ index 6c483ba..d10ce2f 100644
22075 22067
22076 static struct dma_map_ops swiotlb_dma_ops = { 22068 static struct dma_map_ops swiotlb_dma_ops = {
22077diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c 22069diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
22078index 14ae100..752a4f6 100644 22070index 81a5f5e..20f8b58 100644
22079--- a/arch/x86/kernel/process.c 22071--- a/arch/x86/kernel/process.c
22080+++ b/arch/x86/kernel/process.c 22072+++ b/arch/x86/kernel/process.c
22081@@ -36,7 +36,8 @@ 22073@@ -36,7 +36,8 @@
@@ -22106,16 +22098,7 @@ index 14ae100..752a4f6 100644
22106 22098
22107 t->io_bitmap_ptr = NULL; 22099 t->io_bitmap_ptr = NULL;
22108 clear_thread_flag(TIF_IO_BITMAP); 22100 clear_thread_flag(TIF_IO_BITMAP);
22109@@ -136,7 +137,7 @@ void show_regs_common(void) 22101@@ -125,6 +126,9 @@ void flush_thread(void)
22110 board = dmi_get_system_info(DMI_BOARD_NAME);
22111
22112 printk(KERN_DEFAULT "Pid: %d, comm: %.20s %s %s %.*s %s %s%s%s\n",
22113- current->pid, current->comm, print_tainted(),
22114+ task_pid_nr(current), current->comm, print_tainted(),
22115 init_utsname()->release,
22116 (int)strcspn(init_utsname()->version, " "),
22117 init_utsname()->version,
22118@@ -149,6 +150,9 @@ void flush_thread(void)
22119 { 22102 {
22120 struct task_struct *tsk = current; 22103 struct task_struct *tsk = current;
22121 22104
@@ -22125,7 +22108,7 @@ index 14ae100..752a4f6 100644
22125 flush_ptrace_hw_breakpoint(tsk); 22108 flush_ptrace_hw_breakpoint(tsk);
22126 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); 22109 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
22127 drop_init_fpu(tsk); 22110 drop_init_fpu(tsk);
22128@@ -295,7 +299,7 @@ static void __exit_idle(void) 22111@@ -271,7 +275,7 @@ static void __exit_idle(void)
22129 void exit_idle(void) 22112 void exit_idle(void)
22130 { 22113 {
22131 /* idle loop has pid 0 */ 22114 /* idle loop has pid 0 */
@@ -22134,7 +22117,7 @@ index 14ae100..752a4f6 100644
22134 return; 22117 return;
22135 __exit_idle(); 22118 __exit_idle();
22136 } 22119 }
22137@@ -398,7 +402,7 @@ bool xen_set_default_idle(void) 22120@@ -327,7 +331,7 @@ bool xen_set_default_idle(void)
22138 return ret; 22121 return ret;
22139 } 22122 }
22140 #endif 22123 #endif
@@ -22143,7 +22126,7 @@ index 14ae100..752a4f6 100644
22143 { 22126 {
22144 local_irq_disable(); 22127 local_irq_disable();
22145 /* 22128 /*
22146@@ -544,16 +548,37 @@ static int __init idle_setup(char *str) 22129@@ -456,16 +460,37 @@ static int __init idle_setup(char *str)
22147 } 22130 }
22148 early_param("idle", idle_setup); 22131 early_param("idle", idle_setup);
22149 22132
@@ -22192,7 +22175,7 @@ index 14ae100..752a4f6 100644
22192+} 22175+}
22193+#endif 22176+#endif
22194diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c 22177diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
22195index b5a8905..d9cacac 100644 22178index 7305f7d..22f73d6 100644
22196--- a/arch/x86/kernel/process_32.c 22179--- a/arch/x86/kernel/process_32.c
22197+++ b/arch/x86/kernel/process_32.c 22180+++ b/arch/x86/kernel/process_32.c
22198@@ -65,6 +65,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread"); 22181@@ -65,6 +65,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
@@ -22203,7 +22186,7 @@ index b5a8905..d9cacac 100644
22203 } 22186 }
22204 22187
22205 void __show_regs(struct pt_regs *regs, int all) 22188 void __show_regs(struct pt_regs *regs, int all)
22206@@ -74,21 +75,20 @@ void __show_regs(struct pt_regs *regs, int all) 22189@@ -74,19 +75,18 @@ void __show_regs(struct pt_regs *regs, int all)
22207 unsigned long sp; 22190 unsigned long sp;
22208 unsigned short ss, gs; 22191 unsigned short ss, gs;
22209 22192
@@ -22219,8 +22202,6 @@ index b5a8905..d9cacac 100644
22219 } 22202 }
22220+ gs = get_user_gs(regs); 22203+ gs = get_user_gs(regs);
22221 22204
22222 show_regs_common();
22223
22224 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n", 22205 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
22225 (u16)regs->cs, regs->ip, regs->flags, 22206 (u16)regs->cs, regs->ip, regs->flags,
22226- smp_processor_id()); 22207- smp_processor_id());
@@ -22228,7 +22209,7 @@ index b5a8905..d9cacac 100644
22228 print_symbol("EIP is at %s\n", regs->ip); 22209 print_symbol("EIP is at %s\n", regs->ip);
22229 22210
22230 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n", 22211 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
22231@@ -130,20 +130,21 @@ void release_thread(struct task_struct *dead_task) 22212@@ -128,20 +128,21 @@ void release_thread(struct task_struct *dead_task)
22232 int copy_thread(unsigned long clone_flags, unsigned long sp, 22213 int copy_thread(unsigned long clone_flags, unsigned long sp,
22233 unsigned long arg, struct task_struct *p) 22214 unsigned long arg, struct task_struct *p)
22234 { 22215 {
@@ -22254,7 +22235,7 @@ index b5a8905..d9cacac 100644
22254 childregs->fs = __KERNEL_PERCPU; 22235 childregs->fs = __KERNEL_PERCPU;
22255 childregs->bx = sp; /* function */ 22236 childregs->bx = sp; /* function */
22256 childregs->bp = arg; 22237 childregs->bp = arg;
22257@@ -250,7 +251,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22238@@ -248,7 +249,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22258 struct thread_struct *prev = &prev_p->thread, 22239 struct thread_struct *prev = &prev_p->thread,
22259 *next = &next_p->thread; 22240 *next = &next_p->thread;
22260 int cpu = smp_processor_id(); 22241 int cpu = smp_processor_id();
@@ -22263,7 +22244,7 @@ index b5a8905..d9cacac 100644
22263 fpu_switch_t fpu; 22244 fpu_switch_t fpu;
22264 22245
22265 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */ 22246 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
22266@@ -274,6 +275,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22247@@ -272,6 +273,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22267 */ 22248 */
22268 lazy_save_gs(prev->gs); 22249 lazy_save_gs(prev->gs);
22269 22250
@@ -22274,7 +22255,7 @@ index b5a8905..d9cacac 100644
22274 /* 22255 /*
22275 * Load the per-thread Thread-Local Storage descriptor. 22256 * Load the per-thread Thread-Local Storage descriptor.
22276 */ 22257 */
22277@@ -304,6 +309,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22258@@ -302,6 +307,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22278 */ 22259 */
22279 arch_end_context_switch(next_p); 22260 arch_end_context_switch(next_p);
22280 22261
@@ -22284,7 +22265,7 @@ index b5a8905..d9cacac 100644
22284 /* 22265 /*
22285 * Restore %gs if needed (which is common) 22266 * Restore %gs if needed (which is common)
22286 */ 22267 */
22287@@ -312,8 +320,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22268@@ -310,8 +318,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22288 22269
22289 switch_fpu_finish(next_p, fpu); 22270 switch_fpu_finish(next_p, fpu);
22290 22271
@@ -22293,16 +22274,16 @@ index b5a8905..d9cacac 100644
22293 return prev_p; 22274 return prev_p;
22294 } 22275 }
22295 22276
22296@@ -343,4 +349,3 @@ unsigned long get_wchan(struct task_struct *p) 22277@@ -341,4 +347,3 @@ unsigned long get_wchan(struct task_struct *p)
22297 } while (count++ < 16); 22278 } while (count++ < 16);
22298 return 0; 22279 return 0;
22299 } 22280 }
22300- 22281-
22301diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c 22282diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
22302index 0f49677..fcbf88c 100644 22283index 355ae06..4530766 100644
22303--- a/arch/x86/kernel/process_64.c 22284--- a/arch/x86/kernel/process_64.c
22304+++ b/arch/x86/kernel/process_64.c 22285+++ b/arch/x86/kernel/process_64.c
22305@@ -152,10 +152,11 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, 22286@@ -151,10 +151,11 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
22306 struct pt_regs *childregs; 22287 struct pt_regs *childregs;
22307 struct task_struct *me = current; 22288 struct task_struct *me = current;
22308 22289
@@ -22315,7 +22296,7 @@ index 0f49677..fcbf88c 100644
22315 set_tsk_thread_flag(p, TIF_FORK); 22296 set_tsk_thread_flag(p, TIF_FORK);
22316 p->fpu_counter = 0; 22297 p->fpu_counter = 0;
22317 p->thread.io_bitmap_ptr = NULL; 22298 p->thread.io_bitmap_ptr = NULL;
22318@@ -274,7 +275,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22299@@ -273,7 +274,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22319 struct thread_struct *prev = &prev_p->thread; 22300 struct thread_struct *prev = &prev_p->thread;
22320 struct thread_struct *next = &next_p->thread; 22301 struct thread_struct *next = &next_p->thread;
22321 int cpu = smp_processor_id(); 22302 int cpu = smp_processor_id();
@@ -22324,7 +22305,7 @@ index 0f49677..fcbf88c 100644
22324 unsigned fsindex, gsindex; 22305 unsigned fsindex, gsindex;
22325 fpu_switch_t fpu; 22306 fpu_switch_t fpu;
22326 22307
22327@@ -356,10 +357,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p) 22308@@ -355,10 +356,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
22328 prev->usersp = this_cpu_read(old_rsp); 22309 prev->usersp = this_cpu_read(old_rsp);
22329 this_cpu_write(old_rsp, next->usersp); 22310 this_cpu_write(old_rsp, next->usersp);
22330 this_cpu_write(current_task, next_p); 22311 this_cpu_write(current_task, next_p);
@@ -22337,7 +22318,7 @@ index 0f49677..fcbf88c 100644
22337 22318
22338 /* 22319 /*
22339 * Now maybe reload the debug registers and handle I/O bitmaps 22320 * Now maybe reload the debug registers and handle I/O bitmaps
22340@@ -428,12 +428,11 @@ unsigned long get_wchan(struct task_struct *p) 22321@@ -427,12 +427,11 @@ unsigned long get_wchan(struct task_struct *p)
22341 if (!p || p == current || p->state == TASK_RUNNING) 22322 if (!p || p == current || p->state == TASK_RUNNING)
22342 return 0; 22323 return 0;
22343 stack = (unsigned long)task_stack_page(p); 22324 stack = (unsigned long)task_stack_page(p);
@@ -22624,6 +22605,19 @@ index 76fa1e9..abf09ea 100644
22624 .power_off = native_machine_power_off, 22605 .power_off = native_machine_power_off,
22625 .shutdown = native_machine_shutdown, 22606 .shutdown = native_machine_shutdown,
22626 .emergency_restart = native_machine_emergency_restart, 22607 .emergency_restart = native_machine_emergency_restart,
22608diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
22609index c8e41e9..64049ef 100644
22610--- a/arch/x86/kernel/reboot_fixups_32.c
22611+++ b/arch/x86/kernel/reboot_fixups_32.c
22612@@ -57,7 +57,7 @@ struct device_fixup {
22613 unsigned int vendor;
22614 unsigned int device;
22615 void (*reboot_fixup)(struct pci_dev *);
22616-};
22617+} __do_const;
22618
22619 /*
22620 * PCI ids solely used for fixups_table go here
22627diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S 22621diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
22628index f2bb9c9..bed145d7 100644 22622index f2bb9c9..bed145d7 100644
22629--- a/arch/x86/kernel/relocate_kernel_64.S 22623--- a/arch/x86/kernel/relocate_kernel_64.S
@@ -22645,10 +22639,10 @@ index f2bb9c9..bed145d7 100644
22645 22639
22646 1: 22640 1:
22647diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c 22641diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
22648index fae9134..8fcd87c 100644 22642index 56f7fcf..fa229f4 100644
22649--- a/arch/x86/kernel/setup.c 22643--- a/arch/x86/kernel/setup.c
22650+++ b/arch/x86/kernel/setup.c 22644+++ b/arch/x86/kernel/setup.c
22651@@ -111,6 +111,7 @@ 22645@@ -110,6 +110,7 @@
22652 #include <asm/mce.h> 22646 #include <asm/mce.h>
22653 #include <asm/alternative.h> 22647 #include <asm/alternative.h>
22654 #include <asm/prom.h> 22648 #include <asm/prom.h>
@@ -22656,7 +22650,7 @@ index fae9134..8fcd87c 100644
22656 22650
22657 /* 22651 /*
22658 * max_low_pfn_mapped: highest direct mapped pfn under 4GB 22652 * max_low_pfn_mapped: highest direct mapped pfn under 4GB
22659@@ -447,7 +448,7 @@ static void __init parse_setup_data(void) 22653@@ -444,7 +445,7 @@ static void __init parse_setup_data(void)
22660 22654
22661 switch (data->type) { 22655 switch (data->type) {
22662 case SETUP_E820_EXT: 22656 case SETUP_E820_EXT:
@@ -22665,7 +22659,7 @@ index fae9134..8fcd87c 100644
22665 break; 22659 break;
22666 case SETUP_DTB: 22660 case SETUP_DTB:
22667 add_dtb(pa_data); 22661 add_dtb(pa_data);
22668@@ -774,7 +775,7 @@ static void __init trim_bios_range(void) 22662@@ -771,7 +772,7 @@ static void __init trim_bios_range(void)
22669 * area (640->1Mb) as ram even though it is not. 22663 * area (640->1Mb) as ram even though it is not.
22670 * take them out. 22664 * take them out.
22671 */ 22665 */
@@ -22674,7 +22668,7 @@ index fae9134..8fcd87c 100644
22674 22668
22675 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); 22669 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
22676 } 22670 }
22677@@ -782,7 +783,7 @@ static void __init trim_bios_range(void) 22671@@ -779,7 +780,7 @@ static void __init trim_bios_range(void)
22678 /* called before trim_bios_range() to spare extra sanitize */ 22672 /* called before trim_bios_range() to spare extra sanitize */
22679 static void __init e820_add_kernel_range(void) 22673 static void __init e820_add_kernel_range(void)
22680 { 22674 {
@@ -22683,7 +22677,7 @@ index fae9134..8fcd87c 100644
22683 u64 size = __pa_symbol(_end) - start; 22677 u64 size = __pa_symbol(_end) - start;
22684 22678
22685 /* 22679 /*
22686@@ -844,8 +845,12 @@ static void __init trim_low_memory_range(void) 22680@@ -841,8 +842,12 @@ static void __init trim_low_memory_range(void)
22687 22681
22688 void __init setup_arch(char **cmdline_p) 22682 void __init setup_arch(char **cmdline_p)
22689 { 22683 {
@@ -22696,7 +22690,7 @@ index fae9134..8fcd87c 100644
22696 22690
22697 early_reserve_initrd(); 22691 early_reserve_initrd();
22698 22692
22699@@ -937,14 +942,14 @@ void __init setup_arch(char **cmdline_p) 22693@@ -934,14 +939,14 @@ void __init setup_arch(char **cmdline_p)
22700 22694
22701 if (!boot_params.hdr.root_flags) 22695 if (!boot_params.hdr.root_flags)
22702 root_mountflags &= ~MS_RDONLY; 22696 root_mountflags &= ~MS_RDONLY;
@@ -22884,7 +22878,7 @@ index 48d2b7d..90d328a 100644
22884 .smp_prepare_cpus = native_smp_prepare_cpus, 22878 .smp_prepare_cpus = native_smp_prepare_cpus,
22885 .smp_cpus_done = native_smp_cpus_done, 22879 .smp_cpus_done = native_smp_cpus_done,
22886diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c 22880diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
22887index 9f190a2..90a0688 100644 22881index bfd348e..4816ad8 100644
22888--- a/arch/x86/kernel/smpboot.c 22882--- a/arch/x86/kernel/smpboot.c
22889+++ b/arch/x86/kernel/smpboot.c 22883+++ b/arch/x86/kernel/smpboot.c
22890@@ -748,6 +748,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu, struct task_struct *idle) 22884@@ -748,6 +748,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
@@ -23349,7 +23343,7 @@ index 24d3c91..d06b473 100644
23349 return pc; 23343 return pc;
23350 } 23344 }
23351diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c 23345diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
23352index 9d9d2f9..cad418a 100644 23346index f7fec09..9991981 100644
23353--- a/arch/x86/kernel/tls.c 23347--- a/arch/x86/kernel/tls.c
23354+++ b/arch/x86/kernel/tls.c 23348+++ b/arch/x86/kernel/tls.c
23355@@ -84,6 +84,11 @@ int do_set_thread_area(struct task_struct *p, int idx, 23349@@ -84,6 +84,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
@@ -23364,7 +23358,7 @@ index 9d9d2f9..cad418a 100644
23364 set_tls_desc(p, idx, &info, 1); 23358 set_tls_desc(p, idx, &info, 1);
23365 23359
23366 return 0; 23360 return 0;
23367@@ -204,7 +209,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset, 23361@@ -200,7 +205,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
23368 23362
23369 if (kbuf) 23363 if (kbuf)
23370 info = kbuf; 23364 info = kbuf;
@@ -23374,7 +23368,7 @@ index 9d9d2f9..cad418a 100644
23374 else 23368 else
23375 info = infobuf; 23369 info = infobuf;
23376diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c 23370diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
23377index 68bda7a..3ec7bb7 100644 23371index 772e2a8..bad5bf6 100644
23378--- a/arch/x86/kernel/traps.c 23372--- a/arch/x86/kernel/traps.c
23379+++ b/arch/x86/kernel/traps.c 23373+++ b/arch/x86/kernel/traps.c
23380@@ -68,12 +68,6 @@ 23374@@ -68,12 +68,6 @@
@@ -23448,7 +23442,7 @@ index 68bda7a..3ec7bb7 100644
23448 regs->ip, regs->sp, error_code); 23442 regs->ip, regs->sp, error_code);
23449 print_vma_addr(" in ", regs->ip); 23443 print_vma_addr(" in ", regs->ip);
23450 pr_cont("\n"); 23444 pr_cont("\n");
23451@@ -266,7 +272,7 @@ do_general_protection(struct pt_regs *regs, long error_code) 23445@@ -273,7 +279,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
23452 conditional_sti(regs); 23446 conditional_sti(regs);
23453 23447
23454 #ifdef CONFIG_X86_32 23448 #ifdef CONFIG_X86_32
@@ -23457,7 +23451,7 @@ index 68bda7a..3ec7bb7 100644
23457 local_irq_enable(); 23451 local_irq_enable();
23458 handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code); 23452 handle_vm86_fault((struct kernel_vm86_regs *) regs, error_code);
23459 goto exit; 23453 goto exit;
23460@@ -274,18 +280,42 @@ do_general_protection(struct pt_regs *regs, long error_code) 23454@@ -281,18 +287,42 @@ do_general_protection(struct pt_regs *regs, long error_code)
23461 #endif 23455 #endif
23462 23456
23463 tsk = current; 23457 tsk = current;
@@ -23502,7 +23496,7 @@ index 68bda7a..3ec7bb7 100644
23502 tsk->thread.error_code = error_code; 23496 tsk->thread.error_code = error_code;
23503 tsk->thread.trap_nr = X86_TRAP_GP; 23497 tsk->thread.trap_nr = X86_TRAP_GP;
23504 23498
23505@@ -440,7 +470,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code) 23499@@ -450,7 +480,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
23506 /* It's safe to allow irq's after DR6 has been saved */ 23500 /* It's safe to allow irq's after DR6 has been saved */
23507 preempt_conditional_sti(regs); 23501 preempt_conditional_sti(regs);
23508 23502
@@ -23511,7 +23505,7 @@ index 68bda7a..3ec7bb7 100644
23511 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code, 23505 handle_vm86_trap((struct kernel_vm86_regs *) regs, error_code,
23512 X86_TRAP_DB); 23506 X86_TRAP_DB);
23513 preempt_conditional_cli(regs); 23507 preempt_conditional_cli(regs);
23514@@ -455,7 +485,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code) 23508@@ -465,7 +495,7 @@ dotraplinkage void __kprobes do_debug(struct pt_regs *regs, long error_code)
23515 * We already checked v86 mode above, so we can check for kernel mode 23509 * We already checked v86 mode above, so we can check for kernel mode
23516 * by just checking the CPL of CS. 23510 * by just checking the CPL of CS.
23517 */ 23511 */
@@ -23520,7 +23514,7 @@ index 68bda7a..3ec7bb7 100644
23520 tsk->thread.debugreg6 &= ~DR_STEP; 23514 tsk->thread.debugreg6 &= ~DR_STEP;
23521 set_tsk_thread_flag(tsk, TIF_SINGLESTEP); 23515 set_tsk_thread_flag(tsk, TIF_SINGLESTEP);
23522 regs->flags &= ~X86_EFLAGS_TF; 23516 regs->flags &= ~X86_EFLAGS_TF;
23523@@ -487,7 +517,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr) 23517@@ -497,7 +527,7 @@ void math_error(struct pt_regs *regs, int error_code, int trapnr)
23524 return; 23518 return;
23525 conditional_sti(regs); 23519 conditional_sti(regs);
23526 23520
@@ -23530,7 +23524,7 @@ index 68bda7a..3ec7bb7 100644
23530 if (!fixup_exception(regs)) { 23524 if (!fixup_exception(regs)) {
23531 task->thread.error_code = error_code; 23525 task->thread.error_code = error_code;
23532diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c 23526diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
23533index 0ba4cfb..4596bec 100644 23527index 2ed8459..7cf329f 100644
23534--- a/arch/x86/kernel/uprobes.c 23528--- a/arch/x86/kernel/uprobes.c
23535+++ b/arch/x86/kernel/uprobes.c 23529+++ b/arch/x86/kernel/uprobes.c
23536@@ -629,7 +629,7 @@ int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, 23530@@ -629,7 +629,7 @@ int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val,
@@ -23542,6 +23536,15 @@ index 0ba4cfb..4596bec 100644
23542 return NOTIFY_DONE; 23536 return NOTIFY_DONE;
23543 23537
23544 switch (val) { 23538 switch (val) {
23539@@ -719,7 +719,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
23540
23541 if (ncopied != rasize) {
23542 pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, "
23543- "%%ip=%#lx\n", current->pid, regs->sp, regs->ip);
23544+ "%%ip=%#lx\n", task_pid_nr(current), regs->sp, regs->ip);
23545
23546 force_sig_info(SIGSEGV, SEND_SIG_FORCED, current);
23547 }
23545diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S 23548diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
23546index b9242ba..50c5edd 100644 23549index b9242ba..50c5edd 100644
23547--- a/arch/x86/kernel/verify_cpu.S 23550--- a/arch/x86/kernel/verify_cpu.S
@@ -23555,7 +23558,7 @@ index b9242ba..50c5edd 100644
23555 * verify_cpu, returns the status of longmode and SSE in register %eax. 23558 * verify_cpu, returns the status of longmode and SSE in register %eax.
23556 * 0: Success 1: Failure 23559 * 0: Success 1: Failure
23557diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c 23560diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
23558index 3dbdd9c..888b14e 100644 23561index e8edcf5..27f9344 100644
23559--- a/arch/x86/kernel/vm86_32.c 23562--- a/arch/x86/kernel/vm86_32.c
23560+++ b/arch/x86/kernel/vm86_32.c 23563+++ b/arch/x86/kernel/vm86_32.c
23561@@ -44,6 +44,7 @@ 23564@@ -44,6 +44,7 @@
@@ -23578,34 +23581,33 @@ index 3dbdd9c..888b14e 100644
23578@@ -214,6 +215,14 @@ SYSCALL_DEFINE1(vm86old, struct vm86_struct __user *, v86) 23581@@ -214,6 +215,14 @@ SYSCALL_DEFINE1(vm86old, struct vm86_struct __user *, v86)
23579 23582
23580 if (tsk->thread.saved_sp0) 23583 if (tsk->thread.saved_sp0)
23581 goto out; 23584 return -EPERM;
23582+ 23585+
23583+#ifdef CONFIG_GRKERNSEC_VM86 23586+#ifdef CONFIG_GRKERNSEC_VM86
23584+ if (!capable(CAP_SYS_RAWIO)) { 23587+ if (!capable(CAP_SYS_RAWIO)) {
23585+ gr_handle_vm86(); 23588+ gr_handle_vm86();
23586+ goto out; 23589+ return -EPERM;
23587+ } 23590+ }
23588+#endif 23591+#endif
23589+ 23592+
23590 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs, 23593 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs,
23591 offsetof(struct kernel_vm86_struct, vm86plus) - 23594 offsetof(struct kernel_vm86_struct, vm86plus) -
23592 sizeof(info.regs)); 23595 sizeof(info.regs));
23593@@ -242,6 +251,14 @@ SYSCALL_DEFINE2(vm86, unsigned long, cmd, unsigned long, arg) 23596@@ -238,6 +247,13 @@ SYSCALL_DEFINE2(vm86, unsigned long, cmd, unsigned long, arg)
23594 int tmp, ret; 23597 int tmp;
23595 struct vm86plus_struct __user *v86; 23598 struct vm86plus_struct __user *v86;
23596 23599
23597+#ifdef CONFIG_GRKERNSEC_VM86 23600+#ifdef CONFIG_GRKERNSEC_VM86
23598+ if (!capable(CAP_SYS_RAWIO)) { 23601+ if (!capable(CAP_SYS_RAWIO)) {
23599+ gr_handle_vm86(); 23602+ gr_handle_vm86();
23600+ ret = -EPERM; 23603+ return -EPERM;
23601+ goto out;
23602+ } 23604+ }
23603+#endif 23605+#endif
23604+ 23606+
23605 tsk = current; 23607 tsk = current;
23606 switch (cmd) { 23608 switch (cmd) {
23607 case VM86_REQUEST_IRQ: 23609 case VM86_REQUEST_IRQ:
23608@@ -329,7 +346,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk 23610@@ -318,7 +334,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
23609 tsk->thread.saved_fs = info->regs32->fs; 23611 tsk->thread.saved_fs = info->regs32->fs;
23610 tsk->thread.saved_gs = get_user_gs(info->regs32); 23612 tsk->thread.saved_gs = get_user_gs(info->regs32);
23611 23613
@@ -23614,7 +23616,7 @@ index 3dbdd9c..888b14e 100644
23614 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0; 23616 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
23615 if (cpu_has_sep) 23617 if (cpu_has_sep)
23616 tsk->thread.sysenter_cs = 0; 23618 tsk->thread.sysenter_cs = 0;
23617@@ -536,7 +553,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i, 23619@@ -525,7 +541,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
23618 goto cannot_handle; 23620 goto cannot_handle;
23619 if (i == 0x21 && is_revectored(AH(regs), &KVM86->int21_revectored)) 23621 if (i == 0x21 && is_revectored(AH(regs), &KVM86->int21_revectored))
23620 goto cannot_handle; 23622 goto cannot_handle;
@@ -23624,7 +23626,7 @@ index 3dbdd9c..888b14e 100644
23624 goto cannot_handle; 23626 goto cannot_handle;
23625 if ((segoffs >> 16) == BIOSSEG) 23627 if ((segoffs >> 16) == BIOSSEG)
23626diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S 23628diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
23627index 22a1530..5efafbf 100644 23629index 10c4f30..57377c2 100644
23628--- a/arch/x86/kernel/vmlinux.lds.S 23630--- a/arch/x86/kernel/vmlinux.lds.S
23629+++ b/arch/x86/kernel/vmlinux.lds.S 23631+++ b/arch/x86/kernel/vmlinux.lds.S
23630@@ -26,6 +26,13 @@ 23632@@ -26,6 +26,13 @@
@@ -23691,9 +23693,9 @@ index 22a1530..5efafbf 100644
23691+ __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET; 23693+ __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
23692+ _text = .; 23694+ _text = .;
23693 HEAD_TEXT 23695 HEAD_TEXT
23694 #ifdef CONFIG_X86_32 23696 . = ALIGN(8);
23695 . = ALIGN(PAGE_SIZE); 23697 _stext = .;
23696@@ -108,13 +128,48 @@ SECTIONS 23698@@ -104,13 +124,48 @@ SECTIONS
23697 IRQENTRY_TEXT 23699 IRQENTRY_TEXT
23698 *(.fixup) 23700 *(.fixup)
23699 *(.gnu.warning) 23701 *(.gnu.warning)
@@ -23746,7 +23748,7 @@ index 22a1530..5efafbf 100644
23746 23748
23747 #if defined(CONFIG_DEBUG_RODATA) 23749 #if defined(CONFIG_DEBUG_RODATA)
23748 /* .text should occupy whole number of pages */ 23750 /* .text should occupy whole number of pages */
23749@@ -126,16 +181,20 @@ SECTIONS 23751@@ -122,16 +177,20 @@ SECTIONS
23750 23752
23751 /* Data */ 23753 /* Data */
23752 .data : AT(ADDR(.data) - LOAD_OFFSET) { 23754 .data : AT(ADDR(.data) - LOAD_OFFSET) {
@@ -23770,7 +23772,7 @@ index 22a1530..5efafbf 100644
23770 23772
23771 PAGE_ALIGNED_DATA(PAGE_SIZE) 23773 PAGE_ALIGNED_DATA(PAGE_SIZE)
23772 23774
23773@@ -176,12 +235,19 @@ SECTIONS 23775@@ -172,12 +231,19 @@ SECTIONS
23774 #endif /* CONFIG_X86_64 */ 23776 #endif /* CONFIG_X86_64 */
23775 23777
23776 /* Init code and data - will be freed after init */ 23778 /* Init code and data - will be freed after init */
@@ -23793,7 +23795,7 @@ index 22a1530..5efafbf 100644
23793 /* 23795 /*
23794 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the 23796 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
23795 * output PHDR, so the next output section - .init.text - should 23797 * output PHDR, so the next output section - .init.text - should
23796@@ -190,12 +256,27 @@ SECTIONS 23798@@ -186,12 +252,27 @@ SECTIONS
23797 PERCPU_VADDR(INTERNODE_CACHE_BYTES, 0, :percpu) 23799 PERCPU_VADDR(INTERNODE_CACHE_BYTES, 0, :percpu)
23798 #endif 23800 #endif
23799 23801
@@ -23826,7 +23828,7 @@ index 22a1530..5efafbf 100644
23826 23828
23827 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { 23829 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
23828 __x86_cpu_dev_start = .; 23830 __x86_cpu_dev_start = .;
23829@@ -257,19 +338,12 @@ SECTIONS 23831@@ -253,19 +334,12 @@ SECTIONS
23830 } 23832 }
23831 23833
23832 . = ALIGN(8); 23834 . = ALIGN(8);
@@ -23847,7 +23849,7 @@ index 22a1530..5efafbf 100644
23847 PERCPU_SECTION(INTERNODE_CACHE_BYTES) 23849 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
23848 #endif 23850 #endif
23849 23851
23850@@ -288,16 +362,10 @@ SECTIONS 23852@@ -284,16 +358,10 @@ SECTIONS
23851 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 23853 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
23852 __smp_locks = .; 23854 __smp_locks = .;
23853 *(.smp_locks) 23855 *(.smp_locks)
@@ -23865,7 +23867,7 @@ index 22a1530..5efafbf 100644
23865 /* BSS */ 23867 /* BSS */
23866 . = ALIGN(PAGE_SIZE); 23868 . = ALIGN(PAGE_SIZE);
23867 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { 23869 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
23868@@ -313,6 +381,7 @@ SECTIONS 23870@@ -309,6 +377,7 @@ SECTIONS
23869 __brk_base = .; 23871 __brk_base = .;
23870 . += 64 * 1024; /* 64k alignment slop space */ 23872 . += 64 * 1024; /* 64k alignment slop space */
23871 *(.brk_reservation) /* areas brk users have reserved */ 23873 *(.brk_reservation) /* areas brk users have reserved */
@@ -23873,7 +23875,7 @@ index 22a1530..5efafbf 100644
23873 __brk_limit = .; 23875 __brk_limit = .;
23874 } 23876 }
23875 23877
23876@@ -339,13 +408,12 @@ SECTIONS 23878@@ -335,13 +404,12 @@ SECTIONS
23877 * for the boot processor. 23879 * for the boot processor.
23878 */ 23880 */
23879 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load 23881 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
@@ -24056,10 +24058,10 @@ index a20ecb5..d0e2194 100644
24056 24058
24057 out: 24059 out:
24058diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c 24060diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
24059index 698eece..776b682 100644 24061index 5953dce..f11a7d2 100644
24060--- a/arch/x86/kvm/emulate.c 24062--- a/arch/x86/kvm/emulate.c
24061+++ b/arch/x86/kvm/emulate.c 24063+++ b/arch/x86/kvm/emulate.c
24062@@ -328,6 +328,7 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt) 24064@@ -329,6 +329,7 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt)
24063 24065
24064 #define ____emulate_2op(ctxt, _op, _x, _y, _suffix, _dsttype) \ 24066 #define ____emulate_2op(ctxt, _op, _x, _y, _suffix, _dsttype) \
24065 do { \ 24067 do { \
@@ -24067,7 +24069,7 @@ index 698eece..776b682 100644
24067 __asm__ __volatile__ ( \ 24069 __asm__ __volatile__ ( \
24068 _PRE_EFLAGS("0", "4", "2") \ 24070 _PRE_EFLAGS("0", "4", "2") \
24069 _op _suffix " %"_x"3,%1; " \ 24071 _op _suffix " %"_x"3,%1; " \
24070@@ -342,8 +343,6 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt) 24072@@ -343,8 +344,6 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt)
24071 /* Raw emulation: instruction has two explicit operands. */ 24073 /* Raw emulation: instruction has two explicit operands. */
24072 #define __emulate_2op_nobyte(ctxt,_op,_wx,_wy,_lx,_ly,_qx,_qy) \ 24074 #define __emulate_2op_nobyte(ctxt,_op,_wx,_wy,_lx,_ly,_qx,_qy) \
24073 do { \ 24075 do { \
@@ -24076,7 +24078,7 @@ index 698eece..776b682 100644
24076 switch ((ctxt)->dst.bytes) { \ 24078 switch ((ctxt)->dst.bytes) { \
24077 case 2: \ 24079 case 2: \
24078 ____emulate_2op(ctxt,_op,_wx,_wy,"w",u16); \ 24080 ____emulate_2op(ctxt,_op,_wx,_wy,"w",u16); \
24079@@ -359,7 +358,6 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt) 24081@@ -360,7 +359,6 @@ static void invalidate_registers(struct x86_emulate_ctxt *ctxt)
24080 24082
24081 #define __emulate_2op(ctxt,_op,_bx,_by,_wx,_wy,_lx,_ly,_qx,_qy) \ 24083 #define __emulate_2op(ctxt,_op,_bx,_by,_wx,_wy,_lx,_ly,_qx,_qy) \
24082 do { \ 24084 do { \
@@ -24085,7 +24087,7 @@ index 698eece..776b682 100644
24085 case 1: \ 24087 case 1: \
24086 ____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \ 24088 ____emulate_2op(ctxt,_op,_bx,_by,"b",u8); \
24087diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c 24089diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
24088index f77df1c..6f20690 100644 24090index 0eee2c8..94a32c3 100644
24089--- a/arch/x86/kvm/lapic.c 24091--- a/arch/x86/kvm/lapic.c
24090+++ b/arch/x86/kvm/lapic.c 24092+++ b/arch/x86/kvm/lapic.c
24091@@ -55,7 +55,7 @@ 24093@@ -55,7 +55,7 @@
@@ -24098,7 +24100,7 @@ index f77df1c..6f20690 100644
24098 #define APIC_LVT_NUM 6 24100 #define APIC_LVT_NUM 6
24099 /* 14 is the version for Xeon and Pentium 8.4.8*/ 24101 /* 14 is the version for Xeon and Pentium 8.4.8*/
24100diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h 24102diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
24101index 105dd5b..1b0ccc2 100644 24103index da20860..d19fdf5 100644
24102--- a/arch/x86/kvm/paging_tmpl.h 24104--- a/arch/x86/kvm/paging_tmpl.h
24103+++ b/arch/x86/kvm/paging_tmpl.h 24105+++ b/arch/x86/kvm/paging_tmpl.h
24104@@ -208,7 +208,7 @@ retry_walk: 24106@@ -208,7 +208,7 @@ retry_walk:
@@ -24111,10 +24113,10 @@ index 105dd5b..1b0ccc2 100644
24111 goto error; 24113 goto error;
24112 walker->ptep_user[walker->level - 1] = ptep_user; 24114 walker->ptep_user[walker->level - 1] = ptep_user;
24113diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c 24115diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
24114index e1b1ce2..f7b4b43 100644 24116index a14a6ea..dc86cf0 100644
24115--- a/arch/x86/kvm/svm.c 24117--- a/arch/x86/kvm/svm.c
24116+++ b/arch/x86/kvm/svm.c 24118+++ b/arch/x86/kvm/svm.c
24117@@ -3507,7 +3507,11 @@ static void reload_tss(struct kvm_vcpu *vcpu) 24119@@ -3493,7 +3493,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
24118 int cpu = raw_smp_processor_id(); 24120 int cpu = raw_smp_processor_id();
24119 24121
24120 struct svm_cpu_data *sd = per_cpu(svm_data, cpu); 24122 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
@@ -24126,7 +24128,7 @@ index e1b1ce2..f7b4b43 100644
24126 load_TR_desc(); 24128 load_TR_desc();
24127 } 24129 }
24128 24130
24129@@ -3901,6 +3905,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu) 24131@@ -3894,6 +3898,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
24130 #endif 24132 #endif
24131 #endif 24133 #endif
24132 24134
@@ -24138,10 +24140,10 @@ index e1b1ce2..f7b4b43 100644
24138 24140
24139 local_irq_disable(); 24141 local_irq_disable();
24140diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c 24142diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
24141index 0e2f2a4..4331db2 100644 24143index 5402c94..c3bdeee 100644
24142--- a/arch/x86/kvm/vmx.c 24144--- a/arch/x86/kvm/vmx.c
24143+++ b/arch/x86/kvm/vmx.c 24145+++ b/arch/x86/kvm/vmx.c
24144@@ -1184,12 +1184,12 @@ static void vmcs_write64(unsigned long field, u64 value) 24146@@ -1311,12 +1311,12 @@ static void vmcs_write64(unsigned long field, u64 value)
24145 #endif 24147 #endif
24146 } 24148 }
24147 24149
@@ -24156,7 +24158,7 @@ index 0e2f2a4..4331db2 100644
24156 { 24158 {
24157 vmcs_writel(field, vmcs_readl(field) | mask); 24159 vmcs_writel(field, vmcs_readl(field) | mask);
24158 } 24160 }
24159@@ -1390,7 +1390,11 @@ static void reload_tss(void) 24161@@ -1517,7 +1517,11 @@ static void reload_tss(void)
24160 struct desc_struct *descs; 24162 struct desc_struct *descs;
24161 24163
24162 descs = (void *)gdt->address; 24164 descs = (void *)gdt->address;
@@ -24168,7 +24170,7 @@ index 0e2f2a4..4331db2 100644
24168 load_TR_desc(); 24170 load_TR_desc();
24169 } 24171 }
24170 24172
24171@@ -1614,6 +1618,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu) 24173@@ -1741,6 +1745,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
24172 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */ 24174 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
24173 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */ 24175 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
24174 24176
@@ -24179,7 +24181,7 @@ index 0e2f2a4..4331db2 100644
24179 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp); 24181 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
24180 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */ 24182 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
24181 vmx->loaded_vmcs->cpu = cpu; 24183 vmx->loaded_vmcs->cpu = cpu;
24182@@ -2779,8 +2787,11 @@ static __init int hardware_setup(void) 24184@@ -2935,8 +2943,11 @@ static __init int hardware_setup(void)
24183 if (!cpu_has_vmx_flexpriority()) 24185 if (!cpu_has_vmx_flexpriority())
24184 flexpriority_enabled = 0; 24186 flexpriority_enabled = 0;
24185 24187
@@ -24193,22 +24195,27 @@ index 0e2f2a4..4331db2 100644
24193 24195
24194 if (enable_ept && !cpu_has_vmx_ept_2m_page()) 24196 if (enable_ept && !cpu_has_vmx_ept_2m_page())
24195 kvm_disable_largepages(); 24197 kvm_disable_largepages();
24196@@ -2792,10 +2803,12 @@ static __init int hardware_setup(void) 24198@@ -2947,13 +2958,15 @@ static __init int hardware_setup(void)
24197 !cpu_has_vmx_virtual_intr_delivery()) 24199 if (!cpu_has_vmx_apicv())
24198 enable_apicv_reg_vid = 0; 24200 enable_apicv = 0;
24199 24201
24200+ pax_open_kernel(); 24202+ pax_open_kernel();
24201 if (enable_apicv_reg_vid) 24203 if (enable_apicv)
24202- kvm_x86_ops->update_cr8_intercept = NULL; 24204- kvm_x86_ops->update_cr8_intercept = NULL;
24203+ *(void **)&kvm_x86_ops->update_cr8_intercept = NULL; 24205+ *(void **)&kvm_x86_ops->update_cr8_intercept = NULL;
24204 else 24206 else {
24205- kvm_x86_ops->hwapic_irr_update = NULL; 24207- kvm_x86_ops->hwapic_irr_update = NULL;
24208- kvm_x86_ops->deliver_posted_interrupt = NULL;
24209- kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
24206+ *(void **)&kvm_x86_ops->hwapic_irr_update = NULL; 24210+ *(void **)&kvm_x86_ops->hwapic_irr_update = NULL;
24211+ *(void **)&kvm_x86_ops->deliver_posted_interrupt = NULL;
24212+ *(void **)&kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
24213 }
24207+ pax_close_kernel(); 24214+ pax_close_kernel();
24208 24215
24209 if (nested) 24216 if (nested)
24210 nested_vmx_setup_ctls_msrs(); 24217 nested_vmx_setup_ctls_msrs();
24211@@ -3890,7 +3903,10 @@ static void vmx_set_constant_host_state(void) 24218@@ -4076,7 +4089,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
24212 24219
24213 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */ 24220 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
24214 vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */ 24221 vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */
@@ -24219,16 +24226,16 @@ index 0e2f2a4..4331db2 100644
24219 24226
24220 vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */ 24227 vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */
24221 #ifdef CONFIG_X86_64 24228 #ifdef CONFIG_X86_64
24222@@ -3911,7 +3927,7 @@ static void vmx_set_constant_host_state(void) 24229@@ -4098,7 +4114,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
24223 native_store_idt(&dt);
24224 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */ 24230 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
24231 vmx->host_idt_base = dt.address;
24225 24232
24226- vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */ 24233- vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */
24227+ vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */ 24234+ vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */
24228 24235
24229 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32); 24236 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
24230 vmcs_write32(HOST_IA32_SYSENTER_CS, low32); 24237 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
24231@@ -6587,6 +6603,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) 24238@@ -7030,6 +7046,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
24232 "jmp 2f \n\t" 24239 "jmp 2f \n\t"
24233 "1: " __ex(ASM_VMX_VMRESUME) "\n\t" 24240 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
24234 "2: " 24241 "2: "
@@ -24241,7 +24248,7 @@ index 0e2f2a4..4331db2 100644
24241 /* Save guest registers, load host registers, keep flags */ 24248 /* Save guest registers, load host registers, keep flags */
24242 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t" 24249 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
24243 "pop %0 \n\t" 24250 "pop %0 \n\t"
24244@@ -6639,6 +6661,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) 24251@@ -7082,6 +7104,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
24245 #endif 24252 #endif
24246 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)), 24253 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
24247 [wordsize]"i"(sizeof(ulong)) 24254 [wordsize]"i"(sizeof(ulong))
@@ -24253,7 +24260,7 @@ index 0e2f2a4..4331db2 100644
24253 : "cc", "memory" 24260 : "cc", "memory"
24254 #ifdef CONFIG_X86_64 24261 #ifdef CONFIG_X86_64
24255 , "rax", "rbx", "rdi", "rsi" 24262 , "rax", "rbx", "rdi", "rsi"
24256@@ -6652,7 +6679,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) 24263@@ -7095,7 +7122,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
24257 if (debugctlmsr) 24264 if (debugctlmsr)
24258 update_debugctlmsr(debugctlmsr); 24265 update_debugctlmsr(debugctlmsr);
24259 24266
@@ -24262,7 +24269,7 @@ index 0e2f2a4..4331db2 100644
24262 /* 24269 /*
24263 * The sysexit path does not restore ds/es, so we must set them to 24270 * The sysexit path does not restore ds/es, so we must set them to
24264 * a reasonable value ourselves. 24271 * a reasonable value ourselves.
24265@@ -6661,8 +6688,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu) 24272@@ -7104,8 +7131,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
24266 * may be executed in interrupt context, which saves and restore segments 24273 * may be executed in interrupt context, which saves and restore segments
24267 * around it, nullifying its effect. 24274 * around it, nullifying its effect.
24268 */ 24275 */
@@ -24284,10 +24291,10 @@ index 0e2f2a4..4331db2 100644
24284 24291
24285 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP) 24292 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
24286diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c 24293diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
24287index 8563b45..272f1fe 100644 24294index e8ba99c..ee9d7d9 100644
24288--- a/arch/x86/kvm/x86.c 24295--- a/arch/x86/kvm/x86.c
24289+++ b/arch/x86/kvm/x86.c 24296+++ b/arch/x86/kvm/x86.c
24290@@ -1685,8 +1685,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data) 24297@@ -1725,8 +1725,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
24291 { 24298 {
24292 struct kvm *kvm = vcpu->kvm; 24299 struct kvm *kvm = vcpu->kvm;
24293 int lm = is_long_mode(vcpu); 24300 int lm = is_long_mode(vcpu);
@@ -24298,7 +24305,7 @@ index 8563b45..272f1fe 100644
24298 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64 24305 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
24299 : kvm->arch.xen_hvm_config.blob_size_32; 24306 : kvm->arch.xen_hvm_config.blob_size_32;
24300 u32 page_num = data & ~PAGE_MASK; 24307 u32 page_num = data & ~PAGE_MASK;
24301@@ -2566,6 +2566,8 @@ long kvm_arch_dev_ioctl(struct file *filp, 24308@@ -2609,6 +2609,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
24302 if (n < msr_list.nmsrs) 24309 if (n < msr_list.nmsrs)
24303 goto out; 24310 goto out;
24304 r = -EFAULT; 24311 r = -EFAULT;
@@ -24307,16 +24314,7 @@ index 8563b45..272f1fe 100644
24307 if (copy_to_user(user_msr_list->indices, &msrs_to_save, 24314 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
24308 num_msrs_to_save * sizeof(u32))) 24315 num_msrs_to_save * sizeof(u32)))
24309 goto out; 24316 goto out;
24310@@ -2695,7 +2697,7 @@ static int kvm_vcpu_ioctl_set_lapic(struct kvm_vcpu *vcpu, 24317@@ -5297,7 +5299,7 @@ static struct notifier_block pvclock_gtod_notifier = {
24311 static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu,
24312 struct kvm_interrupt *irq)
24313 {
24314- if (irq->irq < 0 || irq->irq >= KVM_NR_INTERRUPTS)
24315+ if (irq->irq >= KVM_NR_INTERRUPTS)
24316 return -EINVAL;
24317 if (irqchip_in_kernel(vcpu->kvm))
24318 return -ENXIO;
24319@@ -5246,7 +5248,7 @@ static struct notifier_block pvclock_gtod_notifier = {
24320 }; 24318 };
24321 #endif 24319 #endif
24322 24320
@@ -24826,7 +24824,7 @@ index f5cc9eb..51fa319 100644
24826 CFI_ENDPROC 24824 CFI_ENDPROC
24827 ENDPROC(atomic64_inc_not_zero_cx8) 24825 ENDPROC(atomic64_inc_not_zero_cx8)
24828diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S 24826diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
24829index 2af5df3..62b1a5a 100644 24827index e78b8ee..7e173a8 100644
24830--- a/arch/x86/lib/checksum_32.S 24828--- a/arch/x86/lib/checksum_32.S
24831+++ b/arch/x86/lib/checksum_32.S 24829+++ b/arch/x86/lib/checksum_32.S
24832@@ -29,7 +29,8 @@ 24830@@ -29,7 +29,8 @@
@@ -25447,7 +25445,7 @@ index 25b7ae8..169fafc 100644
25447 } 25445 }
25448 EXPORT_SYMBOL(csum_partial_copy_to_user); 25446 EXPORT_SYMBOL(csum_partial_copy_to_user);
25449diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S 25447diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
25450index a451235..79fb5cf 100644 25448index a451235..1daa956 100644
25451--- a/arch/x86/lib/getuser.S 25449--- a/arch/x86/lib/getuser.S
25452+++ b/arch/x86/lib/getuser.S 25450+++ b/arch/x86/lib/getuser.S
25453@@ -33,17 +33,40 @@ 25451@@ -33,17 +33,40 @@
@@ -25573,8 +25571,14 @@ index a451235..79fb5cf 100644
25573 ret 25571 ret
25574 #else 25572 #else
25575 add $7,%_ASM_AX 25573 add $7,%_ASM_AX
25576@@ -102,6 +163,7 @@ ENTRY(__get_user_8) 25574@@ -98,10 +159,11 @@ ENTRY(__get_user_8)
25577 5: movl -3(%_ASM_AX),%ecx 25575 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
25576 jae bad_get_user_8
25577 ASM_STAC
25578-4: movl -7(%_ASM_AX),%edx
25579-5: movl -3(%_ASM_AX),%ecx
25580+4: __copyuser_seg movl -7(%_ASM_AX),%edx
25581+5: __copyuser_seg movl -3(%_ASM_AX),%ecx
25578 xor %eax,%eax 25582 xor %eax,%eax
25579 ASM_CLAC 25583 ASM_CLAC
25580+ pax_force_retaddr 25584+ pax_force_retaddr
@@ -25644,7 +25648,7 @@ index 05a95e7..326f2fa 100644
25644 CFI_ENDPROC 25648 CFI_ENDPROC
25645 ENDPROC(__iowrite32_copy) 25649 ENDPROC(__iowrite32_copy)
25646diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S 25650diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
25647index 1c273be..da9cc0e 100644 25651index 56313a3..aa84a79 100644
25648--- a/arch/x86/lib/memcpy_64.S 25652--- a/arch/x86/lib/memcpy_64.S
25649+++ b/arch/x86/lib/memcpy_64.S 25653+++ b/arch/x86/lib/memcpy_64.S
25650@@ -33,6 +33,7 @@ 25654@@ -33,6 +33,7 @@
@@ -25735,7 +25739,7 @@ index 1c273be..da9cc0e 100644
25735 CFI_ENDPROC 25739 CFI_ENDPROC
25736 ENDPROC(memcpy) 25740 ENDPROC(memcpy)
25737diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S 25741diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
25738index ee16461..c39c199 100644 25742index 65268a6..c9518d1 100644
25739--- a/arch/x86/lib/memmove_64.S 25743--- a/arch/x86/lib/memmove_64.S
25740+++ b/arch/x86/lib/memmove_64.S 25744+++ b/arch/x86/lib/memmove_64.S
25741@@ -61,13 +61,13 @@ ENTRY(memmove) 25745@@ -61,13 +61,13 @@ ENTRY(memmove)
@@ -26552,7 +26556,7 @@ index a63efd6..ccecad8 100644
26552 ret 26556 ret
26553 CFI_ENDPROC 26557 CFI_ENDPROC
26554diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c 26558diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
26555index f0312d7..9c39d63 100644 26559index 3eb18ac..6890bc3 100644
26556--- a/arch/x86/lib/usercopy_32.c 26560--- a/arch/x86/lib/usercopy_32.c
26557+++ b/arch/x86/lib/usercopy_32.c 26561+++ b/arch/x86/lib/usercopy_32.c
26558@@ -42,11 +42,13 @@ do { \ 26562@@ -42,11 +42,13 @@ do { \
@@ -27070,7 +27074,7 @@ index f0312d7..9c39d63 100644
27070 clac(); 27074 clac();
27071 return n; 27075 return n;
27072 } 27076 }
27073@@ -632,66 +743,51 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr 27077@@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
27074 if (n > 64 && cpu_has_xmm2) 27078 if (n > 64 && cpu_has_xmm2)
27075 n = __copy_user_intel_nocache(to, from, n); 27079 n = __copy_user_intel_nocache(to, from, n);
27076 else 27080 else
@@ -27100,15 +27104,28 @@ index f0312d7..9c39d63 100644
27100- */ 27104- */
27101-unsigned long 27105-unsigned long
27102-copy_to_user(void __user *to, const void *from, unsigned long n) 27106-copy_to_user(void __user *to, const void *from, unsigned long n)
27103+void copy_from_user_overflow(void) 27107+#ifdef CONFIG_PAX_MEMORY_UDEREF
27108+void __set_fs(mm_segment_t x)
27104 { 27109 {
27105- if (access_ok(VERIFY_WRITE, to, n)) 27110- if (access_ok(VERIFY_WRITE, to, n))
27106- n = __copy_to_user(to, from, n); 27111- n = __copy_to_user(to, from, n);
27107- return n; 27112- return n;
27108+ WARN(1, "Buffer overflow detected!\n"); 27113+ switch (x.seg) {
27114+ case 0:
27115+ loadsegment(gs, 0);
27116+ break;
27117+ case TASK_SIZE_MAX:
27118+ loadsegment(gs, __USER_DS);
27119+ break;
27120+ case -1UL:
27121+ loadsegment(gs, __KERNEL_DS);
27122+ break;
27123+ default:
27124+ BUG();
27125+ }
27109 } 27126 }
27110-EXPORT_SYMBOL(copy_to_user); 27127-EXPORT_SYMBOL(copy_to_user);
27111+EXPORT_SYMBOL(copy_from_user_overflow); 27128+EXPORT_SYMBOL(__set_fs);
27112 27129
27113-/** 27130-/**
27114- * copy_from_user: - Copy a block of data from user space. 27131- * copy_from_user: - Copy a block of data from user space.
@@ -27128,50 +27145,21 @@ index f0312d7..9c39d63 100644
27128- */ 27145- */
27129-unsigned long 27146-unsigned long
27130-_copy_from_user(void *to, const void __user *from, unsigned long n) 27147-_copy_from_user(void *to, const void __user *from, unsigned long n)
27131+void copy_to_user_overflow(void) 27148+void set_fs(mm_segment_t x)
27132 { 27149 {
27133- if (access_ok(VERIFY_READ, from, n)) 27150- if (access_ok(VERIFY_READ, from, n))
27134- n = __copy_from_user(to, from, n); 27151- n = __copy_from_user(to, from, n);
27135- else 27152- else
27136- memset(to, 0, n); 27153- memset(to, 0, n);
27137- return n; 27154- return n;
27138+ WARN(1, "Buffer overflow detected!\n");
27139 }
27140-EXPORT_SYMBOL(_copy_from_user);
27141+EXPORT_SYMBOL(copy_to_user_overflow);
27142
27143-void copy_from_user_overflow(void)
27144+#ifdef CONFIG_PAX_MEMORY_UDEREF
27145+void __set_fs(mm_segment_t x)
27146 {
27147- WARN(1, "Buffer overflow detected!\n");
27148+ switch (x.seg) {
27149+ case 0:
27150+ loadsegment(gs, 0);
27151+ break;
27152+ case TASK_SIZE_MAX:
27153+ loadsegment(gs, __USER_DS);
27154+ break;
27155+ case -1UL:
27156+ loadsegment(gs, __KERNEL_DS);
27157+ break;
27158+ default:
27159+ BUG();
27160+ }
27161+ return;
27162 }
27163-EXPORT_SYMBOL(copy_from_user_overflow);
27164+EXPORT_SYMBOL(__set_fs);
27165+
27166+void set_fs(mm_segment_t x)
27167+{
27168+ current_thread_info()->addr_limit = x; 27155+ current_thread_info()->addr_limit = x;
27169+ __set_fs(x); 27156+ __set_fs(x);
27170+} 27157 }
27158-EXPORT_SYMBOL(_copy_from_user);
27171+EXPORT_SYMBOL(set_fs); 27159+EXPORT_SYMBOL(set_fs);
27172+#endif 27160+#endif
27173diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c 27161diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
27174index 906fea3..ee8a097 100644 27162index 906fea3..5646695 100644
27175--- a/arch/x86/lib/usercopy_64.c 27163--- a/arch/x86/lib/usercopy_64.c
27176+++ b/arch/x86/lib/usercopy_64.c 27164+++ b/arch/x86/lib/usercopy_64.c
27177@@ -39,7 +39,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size) 27165@@ -39,7 +39,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
@@ -27209,22 +27197,6 @@ index 906fea3..ee8a097 100644
27209 { 27197 {
27210 char c; 27198 char c;
27211 unsigned zero_len; 27199 unsigned zero_len;
27212@@ -87,3 +86,15 @@ copy_user_handle_tail(char *to, char *from, unsigned len, unsigned zerorest)
27213 clac();
27214 return len;
27215 }
27216+
27217+void copy_from_user_overflow(void)
27218+{
27219+ WARN(1, "Buffer overflow detected!\n");
27220+}
27221+EXPORT_SYMBOL(copy_from_user_overflow);
27222+
27223+void copy_to_user_overflow(void)
27224+{
27225+ WARN(1, "Buffer overflow detected!\n");
27226+}
27227+EXPORT_SYMBOL(copy_to_user_overflow);
27228diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c 27200diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
27229index 903ec1e..c4166b2 100644 27201index 903ec1e..c4166b2 100644
27230--- a/arch/x86/mm/extable.c 27202--- a/arch/x86/mm/extable.c
@@ -27280,13 +27252,13 @@ index 903ec1e..c4166b2 100644
27280 } 27252 }
27281 27253
27282diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c 27254diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
27283index 0e88336..2bb9777 100644 27255index 654be4a..d36985f 100644
27284--- a/arch/x86/mm/fault.c 27256--- a/arch/x86/mm/fault.c
27285+++ b/arch/x86/mm/fault.c 27257+++ b/arch/x86/mm/fault.c
27286@@ -13,12 +13,19 @@ 27258@@ -14,11 +14,18 @@
27287 #include <linux/perf_event.h> /* perf_sw_event */
27288 #include <linux/hugetlb.h> /* hstate_index_to_shift */ 27259 #include <linux/hugetlb.h> /* hstate_index_to_shift */
27289 #include <linux/prefetch.h> /* prefetchw */ 27260 #include <linux/prefetch.h> /* prefetchw */
27261 #include <linux/context_tracking.h> /* exception_enter(), ... */
27290+#include <linux/unistd.h> 27262+#include <linux/unistd.h>
27291+#include <linux/compiler.h> 27263+#include <linux/compiler.h>
27292 27264
@@ -27294,7 +27266,6 @@ index 0e88336..2bb9777 100644
27294 #include <asm/pgalloc.h> /* pgd_*(), ... */ 27266 #include <asm/pgalloc.h> /* pgd_*(), ... */
27295 #include <asm/kmemcheck.h> /* kmemcheck_*(), ... */ 27267 #include <asm/kmemcheck.h> /* kmemcheck_*(), ... */
27296 #include <asm/fixmap.h> /* VSYSCALL_START */ 27268 #include <asm/fixmap.h> /* VSYSCALL_START */
27297 #include <asm/context_tracking.h> /* exception_enter(), ... */
27298+#include <asm/tlbflush.h> 27269+#include <asm/tlbflush.h>
27299+ 27270+
27300+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF) 27271+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
@@ -27636,7 +27607,7 @@ index 0e88336..2bb9777 100644
27636 return false; 27607 return false;
27637 27608
27638 return true; 27609 return true;
27639@@ -1008,19 +1203,34 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) 27610@@ -1008,18 +1203,33 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
27640 { 27611 {
27641 struct vm_area_struct *vma; 27612 struct vm_area_struct *vma;
27642 struct task_struct *tsk; 27613 struct task_struct *tsk;
@@ -27647,7 +27618,11 @@ index 0e88336..2bb9777 100644
27647 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE | 27618 unsigned int flags = FAULT_FLAG_ALLOW_RETRY | FAULT_FLAG_KILLABLE |
27648 (write ? FAULT_FLAG_WRITE : 0); 27619 (write ? FAULT_FLAG_WRITE : 0);
27649 27620
27650+ /* Get the faulting address: */ 27621- tsk = current;
27622- mm = tsk->mm;
27623-
27624 /* Get the faulting address: */
27625- address = read_cr2();
27651+ unsigned long address = read_cr2(); 27626+ unsigned long address = read_cr2();
27652+ 27627+
27653+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF) 27628+#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
@@ -27666,15 +27641,11 @@ index 0e88336..2bb9777 100644
27666+ } 27641+ }
27667+#endif 27642+#endif
27668+ 27643+
27669 tsk = current; 27644+ tsk = current;
27670 mm = tsk->mm; 27645+ mm = tsk->mm;
27671 27646
27672- /* Get the faulting address: */
27673- address = read_cr2();
27674-
27675 /* 27647 /*
27676 * Detect and handle instructions that would cause a page fault for 27648 * Detect and handle instructions that would cause a page fault for
27677 * both a tracked kernel page and a userspace page.
27678@@ -1080,7 +1290,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code) 27649@@ -1080,7 +1290,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
27679 * User-mode registers count as a user access even for any 27650 * User-mode registers count as a user access even for any
27680 * potential system fault or CPU buglet: 27651 * potential system fault or CPU buglet:
@@ -27732,9 +27703,9 @@ index 0e88336..2bb9777 100644
27732 if (unlikely(expand_stack(vma, address))) { 27703 if (unlikely(expand_stack(vma, address))) {
27733 bad_area(regs, error_code, address); 27704 bad_area(regs, error_code, address);
27734 return; 27705 return;
27735@@ -1228,3 +1449,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code) 27706@@ -1230,3 +1451,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
27736 __do_page_fault(regs, error_code); 27707 __do_page_fault(regs, error_code);
27737 exception_exit(regs); 27708 exception_exit(prev_state);
27738 } 27709 }
27739+ 27710+
27740+#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) 27711+#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
@@ -28039,7 +28010,7 @@ index dd74e46..7d26398 100644
28039 return 0; 28010 return 0;
28040 28011
28041diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c 28012diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
28042index 6f31ee5..8ee4164 100644 28013index 252b8f5..4dcfdc1 100644
28043--- a/arch/x86/mm/highmem_32.c 28014--- a/arch/x86/mm/highmem_32.c
28044+++ b/arch/x86/mm/highmem_32.c 28015+++ b/arch/x86/mm/highmem_32.c
28045@@ -44,7 +44,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot) 28016@@ -44,7 +44,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
@@ -28163,7 +28134,7 @@ index ae1aa71..d9bea75 100644
28163 28134
28164 #endif /*HAVE_ARCH_HUGETLB_UNMAPPED_AREA*/ 28135 #endif /*HAVE_ARCH_HUGETLB_UNMAPPED_AREA*/
28165diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c 28136diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
28166index 0c13708..ca05f23 100644 28137index 1f34e92..d252637 100644
28167--- a/arch/x86/mm/init.c 28138--- a/arch/x86/mm/init.c
28168+++ b/arch/x86/mm/init.c 28139+++ b/arch/x86/mm/init.c
28169@@ -4,6 +4,7 @@ 28140@@ -4,6 +4,7 @@
@@ -28183,7 +28154,7 @@ index 0c13708..ca05f23 100644
28183 28154
28184 #include "mm_internal.h" 28155 #include "mm_internal.h"
28185 28156
28186@@ -448,7 +451,15 @@ void __init init_mem_mapping(void) 28157@@ -465,7 +468,15 @@ void __init init_mem_mapping(void)
28187 early_ioremap_page_table_range_init(); 28158 early_ioremap_page_table_range_init();
28188 #endif 28159 #endif
28189 28160
@@ -28199,7 +28170,7 @@ index 0c13708..ca05f23 100644
28199 __flush_tlb_all(); 28170 __flush_tlb_all();
28200 28171
28201 early_memtest(0, max_pfn_mapped << PAGE_SHIFT); 28172 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
28202@@ -464,10 +475,40 @@ void __init init_mem_mapping(void) 28173@@ -481,10 +492,40 @@ void __init init_mem_mapping(void)
28203 * Access has to be given to non-kernel-ram areas as well, these contain the PCI 28174 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
28204 * mmio resources as well as potential bios/acpi data regions. 28175 * mmio resources as well as potential bios/acpi data regions.
28205 */ 28176 */
@@ -28215,10 +28186,10 @@ index 0c13708..ca05f23 100644
28215+#ifdef CONFIG_GRKERNSEC_KMEM 28186+#ifdef CONFIG_GRKERNSEC_KMEM
28216+ /* allow BDA */ 28187+ /* allow BDA */
28217+ if (!pagenr) 28188+ if (!pagenr)
28218+ return 1; 28189 return 1;
28219+ /* allow EBDA */ 28190+ /* allow EBDA */
28220+ if (pagenr >= ebda_start && pagenr < ebda_end) 28191+ if (pagenr >= ebda_start && pagenr < ebda_end)
28221 return 1; 28192+ return 1;
28222+ /* if tboot is in use, allow access to its hardcoded serial log range */ 28193+ /* if tboot is in use, allow access to its hardcoded serial log range */
28223+ if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT))) 28194+ if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT)))
28224+ return 1; 28195+ return 1;
@@ -28241,7 +28212,7 @@ index 0c13708..ca05f23 100644
28241 if (iomem_is_exclusive(pagenr << PAGE_SHIFT)) 28212 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
28242 return 0; 28213 return 0;
28243 if (!page_is_ram(pagenr)) 28214 if (!page_is_ram(pagenr))
28244@@ -524,8 +565,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end) 28215@@ -538,8 +579,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
28245 #endif 28216 #endif
28246 } 28217 }
28247 28218
@@ -28360,7 +28331,7 @@ index 0c13708..ca05f23 100644
28360 (unsigned long)(&__init_begin), 28331 (unsigned long)(&__init_begin),
28361 (unsigned long)(&__init_end)); 28332 (unsigned long)(&__init_end));
28362diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c 28333diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
28363index 2d19001..e549d98 100644 28334index 3ac7e31..89611b7 100644
28364--- a/arch/x86/mm/init_32.c 28335--- a/arch/x86/mm/init_32.c
28365+++ b/arch/x86/mm/init_32.c 28336+++ b/arch/x86/mm/init_32.c
28366@@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void); 28337@@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void);
@@ -28550,7 +28521,7 @@ index 2d19001..e549d98 100644
28550 prot = PAGE_KERNEL_EXEC; 28521 prot = PAGE_KERNEL_EXEC;
28551 28522
28552 pages_4k++; 28523 pages_4k++;
28553@@ -482,7 +486,7 @@ void __init native_pagetable_init(void) 28524@@ -474,7 +478,7 @@ void __init native_pagetable_init(void)
28554 28525
28555 pud = pud_offset(pgd, va); 28526 pud = pud_offset(pgd, va);
28556 pmd = pmd_offset(pud, va); 28527 pmd = pmd_offset(pud, va);
@@ -28559,7 +28530,7 @@ index 2d19001..e549d98 100644
28559 break; 28530 break;
28560 28531
28561 /* should not be large page here */ 28532 /* should not be large page here */
28562@@ -540,12 +544,10 @@ void __init early_ioremap_page_table_range_init(void) 28533@@ -532,12 +536,10 @@ void __init early_ioremap_page_table_range_init(void)
28563 28534
28564 static void __init pagetable_init(void) 28535 static void __init pagetable_init(void)
28565 { 28536 {
@@ -28574,7 +28545,7 @@ index 2d19001..e549d98 100644
28574 EXPORT_SYMBOL_GPL(__supported_pte_mask); 28545 EXPORT_SYMBOL_GPL(__supported_pte_mask);
28575 28546
28576 /* user-defined highmem size */ 28547 /* user-defined highmem size */
28577@@ -780,7 +782,7 @@ void __init mem_init(void) 28548@@ -772,7 +774,7 @@ void __init mem_init(void)
28578 after_bootmem = 1; 28549 after_bootmem = 1;
28579 28550
28580 codesize = (unsigned long) &_etext - (unsigned long) &_text; 28551 codesize = (unsigned long) &_etext - (unsigned long) &_text;
@@ -28583,7 +28554,7 @@ index 2d19001..e549d98 100644
28583 initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; 28554 initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin;
28584 28555
28585 printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, " 28556 printk(KERN_INFO "Memory: %luk/%luk available (%dk kernel code, "
28586@@ -821,10 +823,10 @@ void __init mem_init(void) 28557@@ -813,10 +815,10 @@ void __init mem_init(void)
28587 ((unsigned long)&__init_end - 28558 ((unsigned long)&__init_end -
28588 (unsigned long)&__init_begin) >> 10, 28559 (unsigned long)&__init_begin) >> 10,
28589 28560
@@ -28597,7 +28568,7 @@ index 2d19001..e549d98 100644
28597 ((unsigned long)&_etext - (unsigned long)&_text) >> 10); 28568 ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
28598 28569
28599 /* 28570 /*
28600@@ -914,6 +916,7 @@ void set_kernel_text_rw(void) 28571@@ -906,6 +908,7 @@ void set_kernel_text_rw(void)
28601 if (!kernel_set_to_readonly) 28572 if (!kernel_set_to_readonly)
28602 return; 28573 return;
28603 28574
@@ -28605,7 +28576,7 @@ index 2d19001..e549d98 100644
28605 pr_debug("Set kernel text: %lx - %lx for read write\n", 28576 pr_debug("Set kernel text: %lx - %lx for read write\n",
28606 start, start+size); 28577 start, start+size);
28607 28578
28608@@ -928,6 +931,7 @@ void set_kernel_text_ro(void) 28579@@ -920,6 +923,7 @@ void set_kernel_text_ro(void)
28609 if (!kernel_set_to_readonly) 28580 if (!kernel_set_to_readonly)
28610 return; 28581 return;
28611 28582
@@ -28613,7 +28584,7 @@ index 2d19001..e549d98 100644
28613 pr_debug("Set kernel text: %lx - %lx for read only\n", 28584 pr_debug("Set kernel text: %lx - %lx for read only\n",
28614 start, start+size); 28585 start, start+size);
28615 28586
28616@@ -956,6 +960,7 @@ void mark_rodata_ro(void) 28587@@ -948,6 +952,7 @@ void mark_rodata_ro(void)
28617 unsigned long start = PFN_ALIGN(_text); 28588 unsigned long start = PFN_ALIGN(_text);
28618 unsigned long size = PFN_ALIGN(_etext) - start; 28589 unsigned long size = PFN_ALIGN(_etext) - start;
28619 28590
@@ -28622,10 +28593,10 @@ index 2d19001..e549d98 100644
28622 printk(KERN_INFO "Write protecting the kernel text: %luk\n", 28593 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
28623 size >> 10); 28594 size >> 10);
28624diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c 28595diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
28625index 474e28f..f016b6e 100644 28596index bb00c46..f31d2f0 100644
28626--- a/arch/x86/mm/init_64.c 28597--- a/arch/x86/mm/init_64.c
28627+++ b/arch/x86/mm/init_64.c 28598+++ b/arch/x86/mm/init_64.c
28628@@ -150,7 +150,7 @@ early_param("gbpages", parse_direct_gbpages_on); 28599@@ -151,7 +151,7 @@ early_param("gbpages", parse_direct_gbpages_on);
28629 * around without checking the pgd every time. 28600 * around without checking the pgd every time.
28630 */ 28601 */
28631 28602
@@ -28634,7 +28605,7 @@ index 474e28f..f016b6e 100644
28634 EXPORT_SYMBOL_GPL(__supported_pte_mask); 28605 EXPORT_SYMBOL_GPL(__supported_pte_mask);
28635 28606
28636 int force_personality32; 28607 int force_personality32;
28637@@ -183,12 +183,22 @@ void sync_global_pgds(unsigned long start, unsigned long end) 28608@@ -184,12 +184,22 @@ void sync_global_pgds(unsigned long start, unsigned long end)
28638 28609
28639 for (address = start; address <= end; address += PGDIR_SIZE) { 28610 for (address = start; address <= end; address += PGDIR_SIZE) {
28640 const pgd_t *pgd_ref = pgd_offset_k(address); 28611 const pgd_t *pgd_ref = pgd_offset_k(address);
@@ -28657,7 +28628,7 @@ index 474e28f..f016b6e 100644
28657 list_for_each_entry(page, &pgd_list, lru) { 28628 list_for_each_entry(page, &pgd_list, lru) {
28658 pgd_t *pgd; 28629 pgd_t *pgd;
28659 spinlock_t *pgt_lock; 28630 spinlock_t *pgt_lock;
28660@@ -197,6 +207,7 @@ void sync_global_pgds(unsigned long start, unsigned long end) 28631@@ -198,6 +208,7 @@ void sync_global_pgds(unsigned long start, unsigned long end)
28661 /* the pgt_lock only for Xen */ 28632 /* the pgt_lock only for Xen */
28662 pgt_lock = &pgd_page_get_mm(page)->page_table_lock; 28633 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
28663 spin_lock(pgt_lock); 28634 spin_lock(pgt_lock);
@@ -28665,7 +28636,7 @@ index 474e28f..f016b6e 100644
28665 28636
28666 if (pgd_none(*pgd)) 28637 if (pgd_none(*pgd))
28667 set_pgd(pgd, *pgd_ref); 28638 set_pgd(pgd, *pgd_ref);
28668@@ -204,7 +215,10 @@ void sync_global_pgds(unsigned long start, unsigned long end) 28639@@ -205,7 +216,10 @@ void sync_global_pgds(unsigned long start, unsigned long end)
28669 BUG_ON(pgd_page_vaddr(*pgd) 28640 BUG_ON(pgd_page_vaddr(*pgd)
28670 != pgd_page_vaddr(*pgd_ref)); 28641 != pgd_page_vaddr(*pgd_ref));
28671 28642
@@ -28676,7 +28647,7 @@ index 474e28f..f016b6e 100644
28676 } 28647 }
28677 spin_unlock(&pgd_lock); 28648 spin_unlock(&pgd_lock);
28678 } 28649 }
28679@@ -237,7 +251,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr) 28650@@ -238,7 +252,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
28680 { 28651 {
28681 if (pgd_none(*pgd)) { 28652 if (pgd_none(*pgd)) {
28682 pud_t *pud = (pud_t *)spp_getpage(); 28653 pud_t *pud = (pud_t *)spp_getpage();
@@ -28685,7 +28656,7 @@ index 474e28f..f016b6e 100644
28685 if (pud != pud_offset(pgd, 0)) 28656 if (pud != pud_offset(pgd, 0))
28686 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n", 28657 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
28687 pud, pud_offset(pgd, 0)); 28658 pud, pud_offset(pgd, 0));
28688@@ -249,7 +263,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr) 28659@@ -250,7 +264,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
28689 { 28660 {
28690 if (pud_none(*pud)) { 28661 if (pud_none(*pud)) {
28691 pmd_t *pmd = (pmd_t *) spp_getpage(); 28662 pmd_t *pmd = (pmd_t *) spp_getpage();
@@ -28694,7 +28665,7 @@ index 474e28f..f016b6e 100644
28694 if (pmd != pmd_offset(pud, 0)) 28665 if (pmd != pmd_offset(pud, 0))
28695 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n", 28666 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
28696 pmd, pmd_offset(pud, 0)); 28667 pmd, pmd_offset(pud, 0));
28697@@ -278,7 +292,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte) 28668@@ -279,7 +293,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
28698 pmd = fill_pmd(pud, vaddr); 28669 pmd = fill_pmd(pud, vaddr);
28699 pte = fill_pte(pmd, vaddr); 28670 pte = fill_pte(pmd, vaddr);
28700 28671
@@ -28704,7 +28675,7 @@ index 474e28f..f016b6e 100644
28704 28675
28705 /* 28676 /*
28706 * It's enough to flush this one mapping. 28677 * It's enough to flush this one mapping.
28707@@ -337,14 +353,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size, 28678@@ -338,14 +354,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
28708 pgd = pgd_offset_k((unsigned long)__va(phys)); 28679 pgd = pgd_offset_k((unsigned long)__va(phys));
28709 if (pgd_none(*pgd)) { 28680 if (pgd_none(*pgd)) {
28710 pud = (pud_t *) spp_getpage(); 28681 pud = (pud_t *) spp_getpage();
@@ -28721,7 +28692,7 @@ index 474e28f..f016b6e 100644
28721 } 28692 }
28722 pmd = pmd_offset(pud, phys); 28693 pmd = pmd_offset(pud, phys);
28723 BUG_ON(!pmd_none(*pmd)); 28694 BUG_ON(!pmd_none(*pmd));
28724@@ -585,7 +599,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end, 28695@@ -586,7 +600,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
28725 prot); 28696 prot);
28726 28697
28727 spin_lock(&init_mm.page_table_lock); 28698 spin_lock(&init_mm.page_table_lock);
@@ -28730,7 +28701,7 @@ index 474e28f..f016b6e 100644
28730 spin_unlock(&init_mm.page_table_lock); 28701 spin_unlock(&init_mm.page_table_lock);
28731 } 28702 }
28732 __flush_tlb_all(); 28703 __flush_tlb_all();
28733@@ -626,7 +640,7 @@ kernel_physical_mapping_init(unsigned long start, 28704@@ -627,7 +641,7 @@ kernel_physical_mapping_init(unsigned long start,
28734 page_size_mask); 28705 page_size_mask);
28735 28706
28736 spin_lock(&init_mm.page_table_lock); 28707 spin_lock(&init_mm.page_table_lock);
@@ -28739,7 +28710,7 @@ index 474e28f..f016b6e 100644
28739 spin_unlock(&init_mm.page_table_lock); 28710 spin_unlock(&init_mm.page_table_lock);
28740 pgd_changed = true; 28711 pgd_changed = true;
28741 } 28712 }
28742@@ -1224,8 +1238,8 @@ int kern_addr_valid(unsigned long addr) 28713@@ -1221,8 +1235,8 @@ int kern_addr_valid(unsigned long addr)
28743 static struct vm_area_struct gate_vma = { 28714 static struct vm_area_struct gate_vma = {
28744 .vm_start = VSYSCALL_START, 28715 .vm_start = VSYSCALL_START,
28745 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE), 28716 .vm_end = VSYSCALL_START + (VSYSCALL_MAPPED_PAGES * PAGE_SIZE),
@@ -28750,7 +28721,7 @@ index 474e28f..f016b6e 100644
28750 }; 28721 };
28751 28722
28752 struct vm_area_struct *get_gate_vma(struct mm_struct *mm) 28723 struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
28753@@ -1259,7 +1273,7 @@ int in_gate_area_no_mm(unsigned long addr) 28724@@ -1256,7 +1270,7 @@ int in_gate_area_no_mm(unsigned long addr)
28754 28725
28755 const char *arch_vma_name(struct vm_area_struct *vma) 28726 const char *arch_vma_name(struct vm_area_struct *vma)
28756 { 28727 {
@@ -28760,7 +28731,7 @@ index 474e28f..f016b6e 100644
28760 if (vma == &gate_vma) 28731 if (vma == &gate_vma)
28761 return "[vsyscall]"; 28732 return "[vsyscall]";
28762diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c 28733diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
28763index 7b179b4..6bd1777 100644 28734index 7b179b4..6bd17777 100644
28764--- a/arch/x86/mm/iomap_32.c 28735--- a/arch/x86/mm/iomap_32.c
28765+++ b/arch/x86/mm/iomap_32.c 28736+++ b/arch/x86/mm/iomap_32.c
28766@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot) 28737@@ -64,7 +64,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
@@ -28776,7 +28747,7 @@ index 7b179b4..6bd1777 100644
28776 28747
28777 return (void *)vaddr; 28748 return (void *)vaddr;
28778diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c 28749diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
28779index 78fe3f1..73b95e2 100644 28750index 9a1e658..da003f3 100644
28780--- a/arch/x86/mm/ioremap.c 28751--- a/arch/x86/mm/ioremap.c
28781+++ b/arch/x86/mm/ioremap.c 28752+++ b/arch/x86/mm/ioremap.c
28782@@ -97,7 +97,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr, 28753@@ -97,7 +97,7 @@ static void __iomem *__ioremap_caller(resource_size_t phys_addr,
@@ -28797,7 +28768,7 @@ index 78fe3f1..73b95e2 100644
28797 { 28768 {
28798 struct vm_struct *p, *o; 28769 struct vm_struct *p, *o;
28799 28770
28800@@ -315,6 +315,9 @@ void *xlate_dev_mem_ptr(unsigned long phys) 28771@@ -310,6 +310,9 @@ void *xlate_dev_mem_ptr(unsigned long phys)
28801 28772
28802 /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */ 28773 /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
28803 if (page_is_ram(start >> PAGE_SHIFT)) 28774 if (page_is_ram(start >> PAGE_SHIFT))
@@ -28807,7 +28778,7 @@ index 78fe3f1..73b95e2 100644
28807 return __va(phys); 28778 return __va(phys);
28808 28779
28809 addr = (void __force *)ioremap_cache(start, PAGE_SIZE); 28780 addr = (void __force *)ioremap_cache(start, PAGE_SIZE);
28810@@ -327,6 +330,9 @@ void *xlate_dev_mem_ptr(unsigned long phys) 28781@@ -322,6 +325,9 @@ void *xlate_dev_mem_ptr(unsigned long phys)
28811 void unxlate_dev_mem_ptr(unsigned long phys, void *addr) 28782 void unxlate_dev_mem_ptr(unsigned long phys, void *addr)
28812 { 28783 {
28813 if (page_is_ram(phys >> PAGE_SHIFT)) 28784 if (page_is_ram(phys >> PAGE_SHIFT))
@@ -28817,7 +28788,7 @@ index 78fe3f1..73b95e2 100644
28817 return; 28788 return;
28818 28789
28819 iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK)); 28790 iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
28820@@ -344,7 +350,7 @@ static int __init early_ioremap_debug_setup(char *str) 28791@@ -339,7 +345,7 @@ static int __init early_ioremap_debug_setup(char *str)
28821 early_param("early_ioremap_debug", early_ioremap_debug_setup); 28792 early_param("early_ioremap_debug", early_ioremap_debug_setup);
28822 28793
28823 static __initdata int after_paging_init; 28794 static __initdata int after_paging_init;
@@ -28826,7 +28797,7 @@ index 78fe3f1..73b95e2 100644
28826 28797
28827 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr) 28798 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
28828 { 28799 {
28829@@ -381,8 +387,7 @@ void __init early_ioremap_init(void) 28800@@ -376,8 +382,7 @@ void __init early_ioremap_init(void)
28830 slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i); 28801 slot_virt[i] = __fix_to_virt(FIX_BTMAP_BEGIN - NR_FIX_BTMAPS*i);
28831 28802
28832 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN)); 28803 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
@@ -28987,10 +28958,10 @@ index dc0b727..f612039 100644
28987 might_sleep(); 28958 might_sleep();
28988 if (is_enabled()) /* recheck and proper locking in *_core() */ 28959 if (is_enabled()) /* recheck and proper locking in *_core() */
28989diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c 28960diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
28990index 72fe01e..f1a8daa 100644 28961index a71c4e2..301ae44 100644
28991--- a/arch/x86/mm/numa.c 28962--- a/arch/x86/mm/numa.c
28992+++ b/arch/x86/mm/numa.c 28963+++ b/arch/x86/mm/numa.c
28993@@ -477,7 +477,7 @@ static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi) 28964@@ -474,7 +474,7 @@ static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi)
28994 return true; 28965 return true;
28995 } 28966 }
28996 28967
@@ -29000,7 +28971,7 @@ index 72fe01e..f1a8daa 100644
29000 unsigned long uninitialized_var(pfn_align); 28971 unsigned long uninitialized_var(pfn_align);
29001 int i, nid; 28972 int i, nid;
29002diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c 28973diff --git a/arch/x86/mm/pageattr-test.c b/arch/x86/mm/pageattr-test.c
29003index 0e38951..4ca8458 100644 28974index d0b1773..4c3327c 100644
29004--- a/arch/x86/mm/pageattr-test.c 28975--- a/arch/x86/mm/pageattr-test.c
29005+++ b/arch/x86/mm/pageattr-test.c 28976+++ b/arch/x86/mm/pageattr-test.c
29006@@ -36,7 +36,7 @@ enum { 28977@@ -36,7 +36,7 @@ enum {
@@ -29013,7 +28984,7 @@ index 0e38951..4ca8458 100644
29013 28984
29014 struct split_state { 28985 struct split_state {
29015diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c 28986diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
29016index fb4e73e..43f7238 100644 28987index bb32480..aef8278 100644
29017--- a/arch/x86/mm/pageattr.c 28988--- a/arch/x86/mm/pageattr.c
29018+++ b/arch/x86/mm/pageattr.c 28989+++ b/arch/x86/mm/pageattr.c
29019@@ -261,7 +261,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address, 28990@@ -261,7 +261,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
@@ -29151,6 +29122,19 @@ index 6574388..87e9bef 100644
29151 cattr_name(want_flags), 29122 cattr_name(want_flags),
29152 (unsigned long long)paddr, 29123 (unsigned long long)paddr,
29153 (unsigned long long)(paddr + size - 1), 29124 (unsigned long long)(paddr + size - 1),
29125diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
29126index 415f6c4..d319983 100644
29127--- a/arch/x86/mm/pat_rbtree.c
29128+++ b/arch/x86/mm/pat_rbtree.c
29129@@ -160,7 +160,7 @@ success:
29130
29131 failure:
29132 printk(KERN_INFO "%s:%d conflicting memory types "
29133- "%Lx-%Lx %s<->%s\n", current->comm, current->pid, start,
29134+ "%Lx-%Lx %s<->%s\n", current->comm, task_pid_nr(current), start,
29135 end, cattr_name(found_type), cattr_name(match->type));
29136 return -EBUSY;
29137 }
29154diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c 29138diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c
29155index 9f0614d..92ae64a 100644 29139index 9f0614d..92ae64a 100644
29156--- a/arch/x86/mm/pf_in.c 29140--- a/arch/x86/mm/pf_in.c
@@ -29216,7 +29200,7 @@ index 17fda6a..489c74a 100644
29216+void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) 29200+void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
29217+{ 29201+{
29218+ unsigned int count = USER_PGD_PTRS; 29202+ unsigned int count = USER_PGD_PTRS;
29219+ 29203
29220+ while (count--) 29204+ while (count--)
29221+ *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER); 29205+ *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
29222+} 29206+}
@@ -29229,7 +29213,7 @@ index 17fda6a..489c74a 100644
29229+ 29213+
29230+ while (count--) { 29214+ while (count--) {
29231+ pgd_t pgd; 29215+ pgd_t pgd;
29232 29216+
29233+#ifdef CONFIG_X86_64 29217+#ifdef CONFIG_X86_64
29234+ pgd = __pgd(pgd_val(*src++) | _PAGE_USER); 29218+ pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
29235+#else 29219+#else
@@ -29664,7 +29648,7 @@ index 877b9a1..a8ecf42 100644
29664+ pax_force_retaddr 29648+ pax_force_retaddr
29665 ret 29649 ret
29666diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c 29650diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
29667index 3cbe4538..003d011 100644 29651index f66b540..3e88dfb 100644
29668--- a/arch/x86/net/bpf_jit_comp.c 29652--- a/arch/x86/net/bpf_jit_comp.c
29669+++ b/arch/x86/net/bpf_jit_comp.c 29653+++ b/arch/x86/net/bpf_jit_comp.c
29670@@ -12,6 +12,7 @@ 29654@@ -12,6 +12,7 @@
@@ -29936,9 +29920,9 @@ index 3cbe4538..003d011 100644
29936 } 29920 }
29937 oldproglen = proglen; 29921 oldproglen = proglen;
29938 } 29922 }
29939@@ -737,7 +856,10 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i]; 29923@@ -732,7 +851,10 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
29924 if (image) {
29940 bpf_flush_icache(image, image + proglen); 29925 bpf_flush_icache(image, image + proglen);
29941
29942 fp->bpf_func = (void *)image; 29926 fp->bpf_func = (void *)image;
29943- } 29927- }
29944+ } else 29928+ } else
@@ -29948,7 +29932,7 @@ index 3cbe4538..003d011 100644
29948 out: 29932 out:
29949 kfree(addrs); 29933 kfree(addrs);
29950 return; 29934 return;
29951@@ -745,18 +867,20 @@ out: 29935@@ -740,18 +862,20 @@ out:
29952 29936
29953 static void jit_free_defer(struct work_struct *arg) 29937 static void jit_free_defer(struct work_struct *arg)
29954 { 29938 {
@@ -30514,10 +30498,10 @@ index 40e4469..0592924 100644
30514 30498
30515 local_irq_restore(efi_rt_eflags); 30499 local_irq_restore(efi_rt_eflags);
30516diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c 30500diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
30517index 2b20038..eaf558f 100644 30501index 39a0e7f1..ecc2f1e 100644
30518--- a/arch/x86/platform/efi/efi_64.c 30502--- a/arch/x86/platform/efi/efi_64.c
30519+++ b/arch/x86/platform/efi/efi_64.c 30503+++ b/arch/x86/platform/efi/efi_64.c
30520@@ -75,6 +75,11 @@ void __init efi_call_phys_prelog(void) 30504@@ -76,6 +76,11 @@ void __init efi_call_phys_prelog(void)
30521 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE); 30505 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
30522 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress)); 30506 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
30523 } 30507 }
@@ -30529,7 +30513,7 @@ index 2b20038..eaf558f 100644
30529 __flush_tlb_all(); 30513 __flush_tlb_all();
30530 } 30514 }
30531 30515
30532@@ -88,6 +93,11 @@ void __init efi_call_phys_epilog(void) 30516@@ -89,6 +94,11 @@ void __init efi_call_phys_epilog(void)
30533 for (pgd = 0; pgd < n_pgds; pgd++) 30517 for (pgd = 0; pgd < n_pgds; pgd++)
30534 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]); 30518 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), save_pgd[pgd]);
30535 kfree(save_pgd); 30519 kfree(save_pgd);
@@ -30738,7 +30722,7 @@ index 4c07cca..2c8427d 100644
30738 ret 30722 ret
30739 ENDPROC(efi_call6) 30723 ENDPROC(efi_call6)
30740diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c 30724diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
30741index e31bcd8..f12dc46 100644 30725index a0a0a43..a48e233 100644
30742--- a/arch/x86/platform/mrst/mrst.c 30726--- a/arch/x86/platform/mrst/mrst.c
30743+++ b/arch/x86/platform/mrst/mrst.c 30727+++ b/arch/x86/platform/mrst/mrst.c
30744@@ -78,13 +78,15 @@ struct sfi_rtc_table_entry sfi_mrtc_array[SFI_MRTC_MAX]; 30728@@ -78,13 +78,15 @@ struct sfi_rtc_table_entry sfi_mrtc_array[SFI_MRTC_MAX];
@@ -30773,23 +30757,30 @@ index d6ee929..3637cb5 100644
30773 .getproplen = olpc_dt_getproplen, 30757 .getproplen = olpc_dt_getproplen,
30774 .getproperty = olpc_dt_getproperty, 30758 .getproperty = olpc_dt_getproperty,
30775diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c 30759diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
30776index 3c68768..07e82b8 100644 30760index 1cf5b30..fd45732 100644
30777--- a/arch/x86/power/cpu.c 30761--- a/arch/x86/power/cpu.c
30778+++ b/arch/x86/power/cpu.c 30762+++ b/arch/x86/power/cpu.c
30779@@ -134,7 +134,7 @@ static void do_fpu_end(void) 30763@@ -137,11 +137,8 @@ static void do_fpu_end(void)
30780 static void fix_processor_context(void) 30764 static void fix_processor_context(void)
30781 { 30765 {
30782 int cpu = smp_processor_id(); 30766 int cpu = smp_processor_id();
30783- struct tss_struct *t = &per_cpu(init_tss, cpu); 30767- struct tss_struct *t = &per_cpu(init_tss, cpu);
30768-#ifdef CONFIG_X86_64
30769- struct desc_struct *desc = get_cpu_gdt_table(cpu);
30770- tss_desc tss;
30771-#endif
30784+ struct tss_struct *t = init_tss + cpu; 30772+ struct tss_struct *t = init_tss + cpu;
30785 30773+
30786 set_tss_desc(cpu, t); /* 30774 set_tss_desc(cpu, t); /*
30787 * This just modifies memory; should not be 30775 * This just modifies memory; should not be
30788@@ -144,8 +144,6 @@ static void fix_processor_context(void) 30776 * necessary. But... This is necessary, because
30777@@ -150,10 +147,6 @@ static void fix_processor_context(void)
30789 */ 30778 */
30790 30779
30791 #ifdef CONFIG_X86_64 30780 #ifdef CONFIG_X86_64
30792- get_cpu_gdt_table(cpu)[GDT_ENTRY_TSS].type = 9; 30781- memcpy(&tss, &desc[GDT_ENTRY_TSS], sizeof(tss_desc));
30782- tss.type = 0x9; /* The available 64-bit TSS (see AMD vol 2, pg 91 */
30783- write_gdt_entry(desc, GDT_ENTRY_TSS, &tss, DESC_TSS);
30793- 30784-
30794 syscall_init(); /* This sets MSR_*STAR and related */ 30785 syscall_init(); /* This sets MSR_*STAR and related */
30795 #endif 30786 #endif
@@ -30907,25 +30898,40 @@ index bb360dc..3e5945f 100644
30907 movl %eax, %cr0 30898 movl %eax, %cr0
30908 30899
30909 /* 30900 /*
30901diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
30902index e812034..c747134 100644
30903--- a/arch/x86/tools/Makefile
30904+++ b/arch/x86/tools/Makefile
30905@@ -37,7 +37,7 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in
30906
30907 $(obj)/insn_sanity.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
30908
30909-HOST_EXTRACFLAGS += -I$(srctree)/tools/include
30910+HOST_EXTRACFLAGS += -I$(srctree)/tools/include -ggdb
30911 hostprogs-y += relocs
30912 relocs-objs := relocs_32.o relocs_64.o relocs_common.o
30913 relocs: $(obj)/relocs
30910diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c 30914diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
30911index 79d67bd..c7e1b90 100644 30915index f7bab68..b6d9886 100644
30912--- a/arch/x86/tools/relocs.c 30916--- a/arch/x86/tools/relocs.c
30913+++ b/arch/x86/tools/relocs.c 30917+++ b/arch/x86/tools/relocs.c
30914@@ -12,10 +12,13 @@ 30918@@ -1,5 +1,7 @@
30915 #include <regex.h> 30919 /* This is included from relocs_32/64.c */
30916 #include <tools/le_byteshift.h>
30917 30920
30918+#include "../../../include/generated/autoconf.h" 30921+#include "../../../include/generated/autoconf.h"
30919+ 30922+
30920 static void die(char *fmt, ...); 30923 #define ElfW(type) _ElfW(ELF_BITS, type)
30924 #define _ElfW(bits, type) __ElfW(bits, type)
30925 #define __ElfW(bits, type) Elf##bits##_##type
30926@@ -11,6 +13,7 @@
30927 #define Elf_Sym ElfW(Sym)
30928
30929 static Elf_Ehdr ehdr;
30930+static Elf_Phdr *phdr;
30921 30931
30922 #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) 30932 struct relocs {
30923 static Elf32_Ehdr ehdr; 30933 uint32_t *offset;
30924+static Elf32_Phdr *phdr; 30934@@ -383,9 +386,39 @@ static void read_ehdr(FILE *fp)
30925 static unsigned long reloc_count, reloc_idx;
30926 static unsigned long *relocs;
30927 static unsigned long reloc16_count, reloc16_idx;
30928@@ -330,9 +333,39 @@ static void read_ehdr(FILE *fp)
30929 } 30935 }
30930 } 30936 }
30931 30937
@@ -30933,7 +30939,7 @@ index 79d67bd..c7e1b90 100644
30933+{ 30939+{
30934+ unsigned int i; 30940+ unsigned int i;
30935+ 30941+
30936+ phdr = calloc(ehdr.e_phnum, sizeof(Elf32_Phdr)); 30942+ phdr = calloc(ehdr.e_phnum, sizeof(Elf_Phdr));
30937+ if (!phdr) { 30943+ if (!phdr) {
30938+ die("Unable to allocate %d program headers\n", 30944+ die("Unable to allocate %d program headers\n",
30939+ ehdr.e_phnum); 30945+ ehdr.e_phnum);
@@ -30947,14 +30953,14 @@ index 79d67bd..c7e1b90 100644
30947+ strerror(errno)); 30953+ strerror(errno));
30948+ } 30954+ }
30949+ for(i = 0; i < ehdr.e_phnum; i++) { 30955+ for(i = 0; i < ehdr.e_phnum; i++) {
30950+ phdr[i].p_type = elf32_to_cpu(phdr[i].p_type); 30956+ phdr[i].p_type = elf_word_to_cpu(phdr[i].p_type);
30951+ phdr[i].p_offset = elf32_to_cpu(phdr[i].p_offset); 30957+ phdr[i].p_offset = elf_off_to_cpu(phdr[i].p_offset);
30952+ phdr[i].p_vaddr = elf32_to_cpu(phdr[i].p_vaddr); 30958+ phdr[i].p_vaddr = elf_addr_to_cpu(phdr[i].p_vaddr);
30953+ phdr[i].p_paddr = elf32_to_cpu(phdr[i].p_paddr); 30959+ phdr[i].p_paddr = elf_addr_to_cpu(phdr[i].p_paddr);
30954+ phdr[i].p_filesz = elf32_to_cpu(phdr[i].p_filesz); 30960+ phdr[i].p_filesz = elf_word_to_cpu(phdr[i].p_filesz);
30955+ phdr[i].p_memsz = elf32_to_cpu(phdr[i].p_memsz); 30961+ phdr[i].p_memsz = elf_word_to_cpu(phdr[i].p_memsz);
30956+ phdr[i].p_flags = elf32_to_cpu(phdr[i].p_flags); 30962+ phdr[i].p_flags = elf_word_to_cpu(phdr[i].p_flags);
30957+ phdr[i].p_align = elf32_to_cpu(phdr[i].p_align); 30963+ phdr[i].p_align = elf_word_to_cpu(phdr[i].p_align);
30958+ } 30964+ }
30959+ 30965+
30960+} 30966+}
@@ -30963,10 +30969,10 @@ index 79d67bd..c7e1b90 100644
30963 { 30969 {
30964- int i; 30970- int i;
30965+ unsigned int i; 30971+ unsigned int i;
30966 Elf32_Shdr shdr; 30972 Elf_Shdr shdr;
30967 30973
30968 secs = calloc(ehdr.e_shnum, sizeof(struct section)); 30974 secs = calloc(ehdr.e_shnum, sizeof(struct section));
30969@@ -367,7 +400,7 @@ static void read_shdrs(FILE *fp) 30975@@ -420,7 +453,7 @@ static void read_shdrs(FILE *fp)
30970 30976
30971 static void read_strtabs(FILE *fp) 30977 static void read_strtabs(FILE *fp)
30972 { 30978 {
@@ -30975,7 +30981,7 @@ index 79d67bd..c7e1b90 100644
30975 for (i = 0; i < ehdr.e_shnum; i++) { 30981 for (i = 0; i < ehdr.e_shnum; i++) {
30976 struct section *sec = &secs[i]; 30982 struct section *sec = &secs[i];
30977 if (sec->shdr.sh_type != SHT_STRTAB) { 30983 if (sec->shdr.sh_type != SHT_STRTAB) {
30978@@ -392,7 +425,7 @@ static void read_strtabs(FILE *fp) 30984@@ -445,7 +478,7 @@ static void read_strtabs(FILE *fp)
30979 30985
30980 static void read_symtabs(FILE *fp) 30986 static void read_symtabs(FILE *fp)
30981 { 30987 {
@@ -30984,7 +30990,7 @@ index 79d67bd..c7e1b90 100644
30984 for (i = 0; i < ehdr.e_shnum; i++) { 30990 for (i = 0; i < ehdr.e_shnum; i++) {
30985 struct section *sec = &secs[i]; 30991 struct section *sec = &secs[i];
30986 if (sec->shdr.sh_type != SHT_SYMTAB) { 30992 if (sec->shdr.sh_type != SHT_SYMTAB) {
30987@@ -423,9 +456,11 @@ static void read_symtabs(FILE *fp) 30993@@ -476,9 +509,11 @@ static void read_symtabs(FILE *fp)
30988 } 30994 }
30989 30995
30990 30996
@@ -30997,8 +31003,8 @@ index 79d67bd..c7e1b90 100644
30997+ 31003+
30998 for (i = 0; i < ehdr.e_shnum; i++) { 31004 for (i = 0; i < ehdr.e_shnum; i++) {
30999 struct section *sec = &secs[i]; 31005 struct section *sec = &secs[i];
31000 if (sec->shdr.sh_type != SHT_REL) { 31006 if (sec->shdr.sh_type != SHT_REL_TYPE) {
31001@@ -445,9 +480,22 @@ static void read_relocs(FILE *fp) 31007@@ -498,9 +533,22 @@ static void read_relocs(FILE *fp)
31002 die("Cannot read symbol table: %s\n", 31008 die("Cannot read symbol table: %s\n",
31003 strerror(errno)); 31009 strerror(errno));
31004 } 31010 }
@@ -31015,21 +31021,23 @@ index 79d67bd..c7e1b90 100644
31015+ } 31021+ }
31016+#endif 31022+#endif
31017+ 31023+
31018 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) { 31024 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
31019 Elf32_Rel *rel = &sec->reltab[j]; 31025 Elf_Rel *rel = &sec->reltab[j];
31020- rel->r_offset = elf32_to_cpu(rel->r_offset); 31026- rel->r_offset = elf_addr_to_cpu(rel->r_offset);
31021+ rel->r_offset = elf32_to_cpu(rel->r_offset) + base; 31027+ rel->r_offset = elf_addr_to_cpu(rel->r_offset) + base;
31022 rel->r_info = elf32_to_cpu(rel->r_info); 31028 rel->r_info = elf_xword_to_cpu(rel->r_info);
31023 } 31029 #if (SHT_REL_TYPE == SHT_RELA)
31024 } 31030 rel->r_addend = elf_xword_to_cpu(rel->r_addend);
31025@@ -456,13 +504,13 @@ static void read_relocs(FILE *fp) 31031@@ -512,7 +560,7 @@ static void read_relocs(FILE *fp)
31026 31032
31027 static void print_absolute_symbols(void) 31033 static void print_absolute_symbols(void)
31028 { 31034 {
31029- int i; 31035- int i;
31030+ unsigned int i; 31036+ unsigned int i;
31031 printf("Absolute symbols\n"); 31037 const char *format;
31032 printf(" Num: Value Size Type Bind Visibility Name\n"); 31038
31039 if (ELF_BITS == 64)
31040@@ -525,7 +573,7 @@ static void print_absolute_symbols(void)
31033 for (i = 0; i < ehdr.e_shnum; i++) { 31041 for (i = 0; i < ehdr.e_shnum; i++) {
31034 struct section *sec = &secs[i]; 31042 struct section *sec = &secs[i];
31035 char *sym_strtab; 31043 char *sym_strtab;
@@ -31038,76 +31046,76 @@ index 79d67bd..c7e1b90 100644
31038 31046
31039 if (sec->shdr.sh_type != SHT_SYMTAB) { 31047 if (sec->shdr.sh_type != SHT_SYMTAB) {
31040 continue; 31048 continue;
31041@@ -489,14 +537,14 @@ static void print_absolute_symbols(void) 31049@@ -552,7 +600,7 @@ static void print_absolute_symbols(void)
31042 31050
31043 static void print_absolute_relocs(void) 31051 static void print_absolute_relocs(void)
31044 { 31052 {
31045- int i, printed = 0; 31053- int i, printed = 0;
31046+ unsigned int i, printed = 0; 31054+ unsigned int i, printed = 0;
31055 const char *format;
31047 31056
31048 for (i = 0; i < ehdr.e_shnum; i++) { 31057 if (ELF_BITS == 64)
31049 struct section *sec = &secs[i]; 31058@@ -565,7 +613,7 @@ static void print_absolute_relocs(void)
31050 struct section *sec_applies, *sec_symtab; 31059 struct section *sec_applies, *sec_symtab;
31051 char *sym_strtab; 31060 char *sym_strtab;
31052 Elf32_Sym *sh_symtab; 31061 Elf_Sym *sh_symtab;
31053- int j; 31062- int j;
31054+ unsigned int j; 31063+ unsigned int j;
31055 if (sec->shdr.sh_type != SHT_REL) { 31064 if (sec->shdr.sh_type != SHT_REL_TYPE) {
31056 continue; 31065 continue;
31057 } 31066 }
31058@@ -558,13 +606,13 @@ static void print_absolute_relocs(void) 31067@@ -642,13 +690,13 @@ static void add_reloc(struct relocs *r, uint32_t offset)
31059 static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym), 31068 static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
31060 int use_real_mode) 31069 Elf_Sym *sym, const char *symname))
31061 { 31070 {
31062- int i; 31071- int i;
31063+ unsigned int i; 31072+ unsigned int i;
31064 /* Walk through the relocations */ 31073 /* Walk through the relocations */
31065 for (i = 0; i < ehdr.e_shnum; i++) { 31074 for (i = 0; i < ehdr.e_shnum; i++) {
31066 char *sym_strtab; 31075 char *sym_strtab;
31067 Elf32_Sym *sh_symtab; 31076 Elf_Sym *sh_symtab;
31068 struct section *sec_applies, *sec_symtab; 31077 struct section *sec_applies, *sec_symtab;
31069- int j; 31078- int j;
31070+ unsigned int j; 31079+ unsigned int j;
31071 struct section *sec = &secs[i]; 31080 struct section *sec = &secs[i];
31072 31081
31073 if (sec->shdr.sh_type != SHT_REL) { 31082 if (sec->shdr.sh_type != SHT_REL_TYPE) {
31074@@ -588,6 +636,24 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym), 31083@@ -812,6 +860,23 @@ static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
31075 sym = &sh_symtab[ELF32_R_SYM(rel->r_info)]; 31084 {
31076 r_type = ELF32_R_TYPE(rel->r_info); 31085 unsigned r_type = ELF32_R_TYPE(rel->r_info);
31077 31086 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
31078+ if (!use_real_mode) { 31087+ char *sym_strtab = sec->link->link->strtab;
31079+ /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
31080+ if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
31081+ continue;
31082+ 31088+
31083+#if defined(CONFIG_PAX_KERNEXEC) && defined(CONFIG_X86_32) 31089+ /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
31084+ /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */ 31090+ if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
31085+ if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext")) 31091+ return 0;
31086+ continue;
31087+ if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
31088+ continue;
31089+ if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
31090+ continue;
31091+ if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
31092+ continue;
31093+#endif
31094+ }
31095+ 31092+
31096 shn_abs = sym->st_shndx == SHN_ABS; 31093+#ifdef CONFIG_PAX_KERNEXEC
31094+ /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
31095+ if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
31096+ return 0;
31097+ if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
31098+ return 0;
31099+ if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
31100+ return 0;
31101+ if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
31102+ return 0;
31103+#endif
31097 31104
31098 switch (r_type) { 31105 switch (r_type) {
31099@@ -681,7 +747,7 @@ static int write32(unsigned int v, FILE *f) 31106 case R_386_NONE:
31107@@ -950,7 +1015,7 @@ static int write32_as_text(uint32_t v, FILE *f)
31100 31108
31101 static void emit_relocs(int as_text, int use_real_mode) 31109 static void emit_relocs(int as_text, int use_real_mode)
31102 { 31110 {
31103- int i; 31111- int i;
31104+ unsigned int i; 31112+ unsigned int i;
31105 /* Count how many relocations I have and allocate space for them. */ 31113 int (*write_reloc)(uint32_t, FILE *) = write32;
31106 reloc_count = 0; 31114 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
31107 walk_relocs(count_reloc, use_real_mode); 31115 const char *symname);
31108@@ -808,10 +874,11 @@ int main(int argc, char **argv) 31116@@ -1026,10 +1091,11 @@ void process(FILE *fp, int use_real_mode, int as_text,
31109 fname, strerror(errno)); 31117 {
31110 } 31118 regex_init(use_real_mode);
31111 read_ehdr(fp); 31119 read_ehdr(fp);
31112+ read_phdrs(fp); 31120+ read_phdrs(fp);
31113 read_shdrs(fp); 31121 read_shdrs(fp);
@@ -31115,9 +31123,22 @@ index 79d67bd..c7e1b90 100644
31115 read_symtabs(fp); 31123 read_symtabs(fp);
31116- read_relocs(fp); 31124- read_relocs(fp);
31117+ read_relocs(fp, use_real_mode); 31125+ read_relocs(fp, use_real_mode);
31126 if (ELF_BITS == 64)
31127 percpu_init();
31118 if (show_absolute_syms) { 31128 if (show_absolute_syms) {
31119 print_absolute_symbols(); 31129diff --git a/arch/x86/um/tls_32.c b/arch/x86/um/tls_32.c
31120 goto out; 31130index 80ffa5b..a33bd15 100644
31131--- a/arch/x86/um/tls_32.c
31132+++ b/arch/x86/um/tls_32.c
31133@@ -260,7 +260,7 @@ out:
31134 if (unlikely(task == current &&
31135 !t->arch.tls_array[idx - GDT_ENTRY_TLS_MIN].flushed)) {
31136 printk(KERN_ERR "get_tls_entry: task with pid %d got here "
31137- "without flushed TLS.", current->pid);
31138+ "without flushed TLS.", task_pid_nr(current));
31139 }
31140
31141 return 0;
31121diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile 31142diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile
31122index fd14be1..e3c79c0 100644 31143index fd14be1..e3c79c0 100644
31123--- a/arch/x86/vdso/Makefile 31144--- a/arch/x86/vdso/Makefile
@@ -31291,10 +31312,10 @@ index 431e875..cbb23f3 100644
31291-} 31312-}
31292-__setup("vdso=", vdso_setup); 31313-__setup("vdso=", vdso_setup);
31293diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c 31314diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
31294index cf95e19..17e9f50 100644 31315index a492be2..08678da 100644
31295--- a/arch/x86/xen/enlighten.c 31316--- a/arch/x86/xen/enlighten.c
31296+++ b/arch/x86/xen/enlighten.c 31317+++ b/arch/x86/xen/enlighten.c
31297@@ -100,8 +100,6 @@ EXPORT_SYMBOL_GPL(xen_start_info); 31318@@ -123,8 +123,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
31298 31319
31299 struct shared_info xen_dummy_shared_info; 31320 struct shared_info xen_dummy_shared_info;
31300 31321
@@ -31303,7 +31324,7 @@ index cf95e19..17e9f50 100644
31303 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE); 31324 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
31304 __read_mostly int xen_have_vector_callback; 31325 __read_mostly int xen_have_vector_callback;
31305 EXPORT_SYMBOL_GPL(xen_have_vector_callback); 31326 EXPORT_SYMBOL_GPL(xen_have_vector_callback);
31306@@ -511,8 +509,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr) 31327@@ -542,8 +540,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
31307 { 31328 {
31308 unsigned long va = dtr->address; 31329 unsigned long va = dtr->address;
31309 unsigned int size = dtr->size + 1; 31330 unsigned int size = dtr->size + 1;
@@ -31313,7 +31334,7 @@ index cf95e19..17e9f50 100644
31313 int f; 31334 int f;
31314 31335
31315 /* 31336 /*
31316@@ -560,8 +557,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr) 31337@@ -591,8 +588,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
31317 { 31338 {
31318 unsigned long va = dtr->address; 31339 unsigned long va = dtr->address;
31319 unsigned int size = dtr->size + 1; 31340 unsigned int size = dtr->size + 1;
@@ -31323,7 +31344,7 @@ index cf95e19..17e9f50 100644
31323 int f; 31344 int f;
31324 31345
31325 /* 31346 /*
31326@@ -569,7 +565,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr) 31347@@ -600,7 +596,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
31327 * 8-byte entries, or 16 4k pages.. 31348 * 8-byte entries, or 16 4k pages..
31328 */ 31349 */
31329 31350
@@ -31332,7 +31353,7 @@ index cf95e19..17e9f50 100644
31332 BUG_ON(va & ~PAGE_MASK); 31353 BUG_ON(va & ~PAGE_MASK);
31333 31354
31334 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) { 31355 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
31335@@ -954,7 +950,7 @@ static u32 xen_safe_apic_wait_icr_idle(void) 31356@@ -985,7 +981,7 @@ static u32 xen_safe_apic_wait_icr_idle(void)
31336 return 0; 31357 return 0;
31337 } 31358 }
31338 31359
@@ -31341,7 +31362,7 @@ index cf95e19..17e9f50 100644
31341 { 31362 {
31342 apic->read = xen_apic_read; 31363 apic->read = xen_apic_read;
31343 apic->write = xen_apic_write; 31364 apic->write = xen_apic_write;
31344@@ -1260,30 +1256,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = { 31365@@ -1290,30 +1286,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
31345 #endif 31366 #endif
31346 }; 31367 };
31347 31368
@@ -31379,7 +31400,7 @@ index cf95e19..17e9f50 100644
31379 { 31400 {
31380 if (pm_power_off) 31401 if (pm_power_off)
31381 pm_power_off(); 31402 pm_power_off();
31382@@ -1385,7 +1381,17 @@ asmlinkage void __init xen_start_kernel(void) 31403@@ -1464,7 +1460,17 @@ asmlinkage void __init xen_start_kernel(void)
31383 __userpte_alloc_gfp &= ~__GFP_HIGHMEM; 31404 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
31384 31405
31385 /* Work out if we support NX */ 31406 /* Work out if we support NX */
@@ -31398,7 +31419,7 @@ index cf95e19..17e9f50 100644
31398 31419
31399 xen_setup_features(); 31420 xen_setup_features();
31400 31421
31401@@ -1416,13 +1422,6 @@ asmlinkage void __init xen_start_kernel(void) 31422@@ -1495,13 +1501,6 @@ asmlinkage void __init xen_start_kernel(void)
31402 31423
31403 machine_ops = xen_machine_ops; 31424 machine_ops = xen_machine_ops;
31404 31425
@@ -31412,7 +31433,7 @@ index cf95e19..17e9f50 100644
31412 xen_smp_init(); 31433 xen_smp_init();
31413 31434
31414 #ifdef CONFIG_ACPI_NUMA 31435 #ifdef CONFIG_ACPI_NUMA
31415@@ -1616,7 +1615,7 @@ static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self, 31436@@ -1700,7 +1699,7 @@ static int __cpuinit xen_hvm_cpu_notify(struct notifier_block *self,
31416 return NOTIFY_OK; 31437 return NOTIFY_OK;
31417 } 31438 }
31418 31439
@@ -31422,7 +31443,7 @@ index cf95e19..17e9f50 100644
31422 }; 31443 };
31423 31444
31424diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c 31445diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
31425index e006c18..b9a7d6c 100644 31446index fdc3ba2..3daee39 100644
31426--- a/arch/x86/xen/mmu.c 31447--- a/arch/x86/xen/mmu.c
31427+++ b/arch/x86/xen/mmu.c 31448+++ b/arch/x86/xen/mmu.c
31428@@ -1894,6 +1894,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn) 31449@@ -1894,6 +1894,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
@@ -31448,7 +31469,7 @@ index e006c18..b9a7d6c 100644
31448 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO); 31469 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
31449 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO); 31470 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
31450 31471
31451@@ -2110,6 +2117,7 @@ static void __init xen_post_allocator_init(void) 31472@@ -2108,6 +2115,7 @@ static void __init xen_post_allocator_init(void)
31452 pv_mmu_ops.set_pud = xen_set_pud; 31473 pv_mmu_ops.set_pud = xen_set_pud;
31453 #if PAGETABLE_LEVELS == 4 31474 #if PAGETABLE_LEVELS == 4
31454 pv_mmu_ops.set_pgd = xen_set_pgd; 31475 pv_mmu_ops.set_pgd = xen_set_pgd;
@@ -31456,7 +31477,7 @@ index e006c18..b9a7d6c 100644
31456 #endif 31477 #endif
31457 31478
31458 /* This will work as long as patching hasn't happened yet 31479 /* This will work as long as patching hasn't happened yet
31459@@ -2188,6 +2196,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = { 31480@@ -2186,6 +2194,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
31460 .pud_val = PV_CALLEE_SAVE(xen_pud_val), 31481 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
31461 .make_pud = PV_CALLEE_SAVE(xen_make_pud), 31482 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
31462 .set_pgd = xen_set_pgd_hyper, 31483 .set_pgd = xen_set_pgd_hyper,
@@ -31465,10 +31486,10 @@ index e006c18..b9a7d6c 100644
31465 .alloc_pud = xen_alloc_pmd_init, 31486 .alloc_pud = xen_alloc_pmd_init,
31466 .release_pud = xen_release_pmd_init, 31487 .release_pud = xen_release_pmd_init,
31467diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c 31488diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
31468index 96c4e85..284fded 100644 31489index d99cae8..18401e1 100644
31469--- a/arch/x86/xen/smp.c 31490--- a/arch/x86/xen/smp.c
31470+++ b/arch/x86/xen/smp.c 31491+++ b/arch/x86/xen/smp.c
31471@@ -230,11 +230,6 @@ static void __init xen_smp_prepare_boot_cpu(void) 31492@@ -240,11 +240,6 @@ static void __init xen_smp_prepare_boot_cpu(void)
31472 { 31493 {
31473 BUG_ON(smp_processor_id() != 0); 31494 BUG_ON(smp_processor_id() != 0);
31474 native_smp_prepare_boot_cpu(); 31495 native_smp_prepare_boot_cpu();
@@ -31480,7 +31501,7 @@ index 96c4e85..284fded 100644
31480 xen_filter_cpu_maps(); 31501 xen_filter_cpu_maps();
31481 xen_setup_vcpu_info_placement(); 31502 xen_setup_vcpu_info_placement();
31482 } 31503 }
31483@@ -304,7 +299,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle) 31504@@ -314,7 +309,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
31484 ctxt->user_regs.ss = __KERNEL_DS; 31505 ctxt->user_regs.ss = __KERNEL_DS;
31485 #ifdef CONFIG_X86_32 31506 #ifdef CONFIG_X86_32
31486 ctxt->user_regs.fs = __KERNEL_PERCPU; 31507 ctxt->user_regs.fs = __KERNEL_PERCPU;
@@ -31489,7 +31510,7 @@ index 96c4e85..284fded 100644
31489 #else 31510 #else
31490 ctxt->gs_base_kernel = per_cpu_offset(cpu); 31511 ctxt->gs_base_kernel = per_cpu_offset(cpu);
31491 #endif 31512 #endif
31492@@ -314,8 +309,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle) 31513@@ -324,8 +319,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
31493 31514
31494 { 31515 {
31495 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */ 31516 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
@@ -31500,7 +31521,7 @@ index 96c4e85..284fded 100644
31500 31521
31501 xen_copy_trap_info(ctxt->trap_ctxt); 31522 xen_copy_trap_info(ctxt->trap_ctxt);
31502 31523
31503@@ -360,13 +355,12 @@ static int __cpuinit xen_cpu_up(unsigned int cpu, struct task_struct *idle) 31524@@ -370,13 +365,12 @@ static int __cpuinit xen_cpu_up(unsigned int cpu, struct task_struct *idle)
31504 int rc; 31525 int rc;
31505 31526
31506 per_cpu(current_task, cpu) = idle; 31527 per_cpu(current_task, cpu) = idle;
@@ -31516,7 +31537,7 @@ index 96c4e85..284fded 100644
31516 #endif 31537 #endif
31517 xen_setup_runstate_info(cpu); 31538 xen_setup_runstate_info(cpu);
31518 xen_setup_timer(cpu); 31539 xen_setup_timer(cpu);
31519@@ -642,7 +636,7 @@ static const struct smp_ops xen_smp_ops __initconst = { 31540@@ -651,7 +645,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
31520 31541
31521 void __init xen_smp_init(void) 31542 void __init xen_smp_init(void)
31522 { 31543 {
@@ -31647,7 +31668,7 @@ index af00795..2bb8105 100644
31647 #define XCHAL_ICACHE_SIZE 32768 /* I-cache size in bytes or 0 */ 31668 #define XCHAL_ICACHE_SIZE 32768 /* I-cache size in bytes or 0 */
31648 #define XCHAL_DCACHE_SIZE 32768 /* D-cache size in bytes or 0 */ 31669 #define XCHAL_DCACHE_SIZE 32768 /* D-cache size in bytes or 0 */
31649diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c 31670diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
31650index 58916af..eb9dbcf 100644 31671index 58916af..eb9dbcf6 100644
31651--- a/block/blk-iopoll.c 31672--- a/block/blk-iopoll.c
31652+++ b/block/blk-iopoll.c 31673+++ b/block/blk-iopoll.c
31653@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopoll *iopoll) 31674@@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopoll *iopoll)
@@ -31748,7 +31769,7 @@ index 7c668c8..db3521c 100644
31748 err = -EFAULT; 31769 err = -EFAULT;
31749 goto out; 31770 goto out;
31750diff --git a/block/genhd.c b/block/genhd.c 31771diff --git a/block/genhd.c b/block/genhd.c
31751index 5098a64..d15a9e8 100644 31772index cdeb527..10aa34db 100644
31752--- a/block/genhd.c 31773--- a/block/genhd.c
31753+++ b/block/genhd.c 31774+++ b/block/genhd.c
31754@@ -467,21 +467,24 @@ static char *bdevt_str(dev_t devt, char *buf) 31775@@ -467,21 +467,24 @@ static char *bdevt_str(dev_t devt, char *buf)
@@ -31780,33 +31801,35 @@ index 5098a64..d15a9e8 100644
31780 31801
31781 EXPORT_SYMBOL(blk_unregister_region); 31802 EXPORT_SYMBOL(blk_unregister_region);
31782diff --git a/block/partitions/efi.c b/block/partitions/efi.c 31803diff --git a/block/partitions/efi.c b/block/partitions/efi.c
31783index ff5804e..a88acad 100644 31804index c85fc89..51e690b 100644
31784--- a/block/partitions/efi.c 31805--- a/block/partitions/efi.c
31785+++ b/block/partitions/efi.c 31806+++ b/block/partitions/efi.c
31786@@ -234,14 +234,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state, 31807@@ -234,14 +234,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
31787 if (!gpt) 31808 if (!gpt)
31788 return NULL; 31809 return NULL;
31789 31810
31790- count = le32_to_cpu(gpt->num_partition_entries) *
31791- le32_to_cpu(gpt->sizeof_partition_entry);
31792- if (!count)
31793+ if (!le32_to_cpu(gpt->num_partition_entries)) 31811+ if (!le32_to_cpu(gpt->num_partition_entries))
31794 return NULL; 31812+ return NULL;
31795- pte = kzalloc(count, GFP_KERNEL);
31796+ pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL); 31813+ pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
31797 if (!pte) 31814+ if (!pte)
31798 return NULL; 31815+ return NULL;
31799 31816+
31800+ count = le32_to_cpu(gpt->num_partition_entries) * 31817 count = le32_to_cpu(gpt->num_partition_entries) *
31801+ le32_to_cpu(gpt->sizeof_partition_entry); 31818 le32_to_cpu(gpt->sizeof_partition_entry);
31819- if (!count)
31820- return NULL;
31821- pte = kmalloc(count, GFP_KERNEL);
31822- if (!pte)
31823- return NULL;
31824-
31802 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba), 31825 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
31803 (u8 *) pte, 31826 (u8 *) pte,
31804 count) < count) { 31827 count) < count) {
31805diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c 31828diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
31806index 9a87daa..fb17486 100644 31829index a5ffcc9..3cedc9c 100644
31807--- a/block/scsi_ioctl.c 31830--- a/block/scsi_ioctl.c
31808+++ b/block/scsi_ioctl.c 31831+++ b/block/scsi_ioctl.c
31809@@ -223,8 +223,20 @@ EXPORT_SYMBOL(blk_verify_command); 31832@@ -224,8 +224,20 @@ EXPORT_SYMBOL(blk_verify_command);
31810 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq, 31833 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
31811 struct sg_io_hdr *hdr, fmode_t mode) 31834 struct sg_io_hdr *hdr, fmode_t mode)
31812 { 31835 {
@@ -31828,7 +31851,7 @@ index 9a87daa..fb17486 100644
31828 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE)) 31851 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
31829 return -EPERM; 31852 return -EPERM;
31830 31853
31831@@ -433,6 +445,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode, 31854@@ -434,6 +446,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
31832 int err; 31855 int err;
31833 unsigned int in_len, out_len, bytes, opcode, cmdlen; 31856 unsigned int in_len, out_len, bytes, opcode, cmdlen;
31834 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE]; 31857 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
@@ -31837,7 +31860,7 @@ index 9a87daa..fb17486 100644
31837 31860
31838 if (!sic) 31861 if (!sic)
31839 return -EINVAL; 31862 return -EINVAL;
31840@@ -466,9 +480,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode, 31863@@ -467,9 +481,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
31841 */ 31864 */
31842 err = -EFAULT; 31865 err = -EFAULT;
31843 rq->cmd_len = cmdlen; 31866 rq->cmd_len = cmdlen;
@@ -31917,7 +31940,7 @@ index f220d64..d359ad6 100644
31917 struct apei_exec_context { 31940 struct apei_exec_context {
31918 u32 ip; 31941 u32 ip;
31919diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c 31942diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
31920index fefc2ca..12a535d 100644 31943index 33dc6a0..4b24b47 100644
31921--- a/drivers/acpi/apei/cper.c 31944--- a/drivers/acpi/apei/cper.c
31922+++ b/drivers/acpi/apei/cper.c 31945+++ b/drivers/acpi/apei/cper.c
31923@@ -39,12 +39,12 @@ 31946@@ -39,12 +39,12 @@
@@ -32030,10 +32053,10 @@ index 7586544..636a2f0 100644
32030 if (err) 32053 if (err)
32031 return err; 32054 return err;
32032diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c 32055diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
32033index ee255c6..747c68b 100644 32056index eb133c7..f571552 100644
32034--- a/drivers/acpi/processor_idle.c 32057--- a/drivers/acpi/processor_idle.c
32035+++ b/drivers/acpi/processor_idle.c 32058+++ b/drivers/acpi/processor_idle.c
32036@@ -986,7 +986,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr) 32059@@ -994,7 +994,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
32037 { 32060 {
32038 int i, count = CPUIDLE_DRIVER_STATE_START; 32061 int i, count = CPUIDLE_DRIVER_STATE_START;
32039 struct acpi_processor_cx *cx; 32062 struct acpi_processor_cx *cx;
@@ -32043,10 +32066,10 @@ index ee255c6..747c68b 100644
32043 32066
32044 if (!pr->flags.power_setup_done) 32067 if (!pr->flags.power_setup_done)
32045diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c 32068diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
32046index 41c0504..f8c0836 100644 32069index fcae5fa..e9f71ea 100644
32047--- a/drivers/acpi/sysfs.c 32070--- a/drivers/acpi/sysfs.c
32048+++ b/drivers/acpi/sysfs.c 32071+++ b/drivers/acpi/sysfs.c
32049@@ -420,11 +420,11 @@ static u32 num_counters; 32072@@ -423,11 +423,11 @@ static u32 num_counters;
32050 static struct attribute **all_attrs; 32073 static struct attribute **all_attrs;
32051 static u32 acpi_gpe_count; 32074 static u32 acpi_gpe_count;
32052 32075
@@ -32061,7 +32084,7 @@ index 41c0504..f8c0836 100644
32061 static void delete_gpe_attr_array(void) 32084 static void delete_gpe_attr_array(void)
32062 { 32085 {
32063diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c 32086diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
32064index 09f6047..3b3dab4 100644 32087index 7b9bdd8..37638ca 100644
32065--- a/drivers/ata/libahci.c 32088--- a/drivers/ata/libahci.c
32066+++ b/drivers/ata/libahci.c 32089+++ b/drivers/ata/libahci.c
32067@@ -1230,7 +1230,7 @@ int ahci_kick_engine(struct ata_port *ap) 32090@@ -1230,7 +1230,7 @@ int ahci_kick_engine(struct ata_port *ap)
@@ -32074,7 +32097,7 @@ index 09f6047..3b3dab4 100644
32074 unsigned long timeout_msec) 32097 unsigned long timeout_msec)
32075 { 32098 {
32076diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c 32099diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
32077index 8038ee3..a19a6e6 100644 32100index adf002a..39bb8f9 100644
32078--- a/drivers/ata/libata-core.c 32101--- a/drivers/ata/libata-core.c
32079+++ b/drivers/ata/libata-core.c 32102+++ b/drivers/ata/libata-core.c
32080@@ -4792,7 +4792,7 @@ void ata_qc_free(struct ata_queued_cmd *qc) 32103@@ -4792,7 +4792,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
@@ -32115,20 +32138,20 @@ index 8038ee3..a19a6e6 100644
32115 } 32138 }
32116 32139
32117diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c 32140diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
32118index 405022d..fb70e53 100644 32141index 7638121..357a965 100644
32119--- a/drivers/ata/pata_arasan_cf.c 32142--- a/drivers/ata/pata_arasan_cf.c
32120+++ b/drivers/ata/pata_arasan_cf.c 32143+++ b/drivers/ata/pata_arasan_cf.c
32121@@ -864,7 +864,9 @@ static int arasan_cf_probe(struct platform_device *pdev) 32144@@ -865,7 +865,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
32122 /* Handle platform specific quirks */ 32145 /* Handle platform specific quirks */
32123 if (pdata->quirk) { 32146 if (quirk) {
32124 if (pdata->quirk & CF_BROKEN_PIO) { 32147 if (quirk & CF_BROKEN_PIO) {
32125- ap->ops->set_piomode = NULL; 32148- ap->ops->set_piomode = NULL;
32126+ pax_open_kernel(); 32149+ pax_open_kernel();
32127+ *(void **)&ap->ops->set_piomode = NULL; 32150+ *(void **)&ap->ops->set_piomode = NULL;
32128+ pax_close_kernel(); 32151+ pax_close_kernel();
32129 ap->pio_mask = 0; 32152 ap->pio_mask = 0;
32130 } 32153 }
32131 if (pdata->quirk & CF_BROKEN_MWDMA) 32154 if (quirk & CF_BROKEN_MWDMA)
32132diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c 32155diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
32133index f9b983a..887b9d8 100644 32156index f9b983a..887b9d8 100644
32134--- a/drivers/atm/adummy.c 32157--- a/drivers/atm/adummy.c
@@ -32382,7 +32405,7 @@ index 204814e..cede831 100644
32382 fore200e->tx_sat++; 32405 fore200e->tx_sat++;
32383 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n", 32406 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
32384diff --git a/drivers/atm/he.c b/drivers/atm/he.c 32407diff --git a/drivers/atm/he.c b/drivers/atm/he.c
32385index d689126..e78e412 100644 32408index 507362a..a845e57 100644
32386--- a/drivers/atm/he.c 32409--- a/drivers/atm/he.c
32387+++ b/drivers/atm/he.c 32410+++ b/drivers/atm/he.c
32388@@ -1698,7 +1698,7 @@ he_service_rbrq(struct he_dev *he_dev, int group) 32411@@ -1698,7 +1698,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
@@ -33139,7 +33162,7 @@ index d78b204..ecc1929 100644
33139 fn(cont, dev, &ic->classdev); 33162 fn(cont, dev, &ic->classdev);
33140 else 33163 else
33141diff --git a/drivers/base/bus.c b/drivers/base/bus.c 33164diff --git a/drivers/base/bus.c b/drivers/base/bus.c
33142index 519865b..e540db3 100644 33165index d414331..b4dd4ba 100644
33143--- a/drivers/base/bus.c 33166--- a/drivers/base/bus.c
33144+++ b/drivers/base/bus.c 33167+++ b/drivers/base/bus.c
33145@@ -1163,7 +1163,7 @@ int subsys_interface_register(struct subsys_interface *sif) 33168@@ -1163,7 +1163,7 @@ int subsys_interface_register(struct subsys_interface *sif)
@@ -33161,10 +33184,10 @@ index 519865b..e540db3 100644
33161 subsys_dev_iter_init(&iter, subsys, NULL, NULL); 33184 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
33162 while ((dev = subsys_dev_iter_next(&iter))) 33185 while ((dev = subsys_dev_iter_next(&iter)))
33163diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c 33186diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
33164index 01fc5b0..917801f 100644 33187index 7413d06..79155fa 100644
33165--- a/drivers/base/devtmpfs.c 33188--- a/drivers/base/devtmpfs.c
33166+++ b/drivers/base/devtmpfs.c 33189+++ b/drivers/base/devtmpfs.c
33167@@ -348,7 +348,7 @@ int devtmpfs_mount(const char *mntdir) 33190@@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
33168 if (!thread) 33191 if (!thread)
33169 return 0; 33192 return 0;
33170 33193
@@ -33173,7 +33196,7 @@ index 01fc5b0..917801f 100644
33173 if (err) 33196 if (err)
33174 printk(KERN_INFO "devtmpfs: error mounting %i\n", err); 33197 printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
33175 else 33198 else
33176@@ -373,11 +373,11 @@ static int devtmpfsd(void *p) 33199@@ -380,11 +380,11 @@ static int devtmpfsd(void *p)
33177 *err = sys_unshare(CLONE_NEWNS); 33200 *err = sys_unshare(CLONE_NEWNS);
33178 if (*err) 33201 if (*err)
33179 goto out; 33202 goto out;
@@ -33189,10 +33212,10 @@ index 01fc5b0..917801f 100644
33189 while (1) { 33212 while (1) {
33190 spin_lock(&req_lock); 33213 spin_lock(&req_lock);
33191diff --git a/drivers/base/node.c b/drivers/base/node.c 33214diff --git a/drivers/base/node.c b/drivers/base/node.c
33192index fac124a..66bd4ab 100644 33215index 7616a77c..8f57f51 100644
33193--- a/drivers/base/node.c 33216--- a/drivers/base/node.c
33194+++ b/drivers/base/node.c 33217+++ b/drivers/base/node.c
33195@@ -625,7 +625,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf) 33218@@ -626,7 +626,7 @@ static ssize_t print_nodes_state(enum node_states state, char *buf)
33196 struct node_attr { 33219 struct node_attr {
33197 struct device_attribute attr; 33220 struct device_attribute attr;
33198 enum node_states state; 33221 enum node_states state;
@@ -33202,7 +33225,7 @@ index fac124a..66bd4ab 100644
33202 static ssize_t show_node_state(struct device *dev, 33225 static ssize_t show_node_state(struct device *dev,
33203 struct device_attribute *attr, char *buf) 33226 struct device_attribute *attr, char *buf)
33204diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c 33227diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
33205index 9a6b05a..2fc8fb9 100644 33228index 7072404..76dcebd 100644
33206--- a/drivers/base/power/domain.c 33229--- a/drivers/base/power/domain.c
33207+++ b/drivers/base/power/domain.c 33230+++ b/drivers/base/power/domain.c
33208@@ -1850,7 +1850,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state) 33231@@ -1850,7 +1850,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
@@ -33298,10 +33321,10 @@ index e8d11b6..7b1b36f 100644
33298 } 33321 }
33299 EXPORT_SYMBOL_GPL(unregister_syscore_ops); 33322 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
33300diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c 33323diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
33301index dadea48..a1f3835 100644 33324index 62b6c2c..4a11354 100644
33302--- a/drivers/block/cciss.c 33325--- a/drivers/block/cciss.c
33303+++ b/drivers/block/cciss.c 33326+++ b/drivers/block/cciss.c
33304@@ -1184,6 +1184,8 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode, 33327@@ -1189,6 +1189,8 @@ static int cciss_ioctl32_passthru(struct block_device *bdev, fmode_t mode,
33305 int err; 33328 int err;
33306 u32 cp; 33329 u32 cp;
33307 33330
@@ -33310,7 +33333,7 @@ index dadea48..a1f3835 100644
33310 err = 0; 33333 err = 0;
33311 err |= 33334 err |=
33312 copy_from_user(&arg64.LUN_info, &arg32->LUN_info, 33335 copy_from_user(&arg64.LUN_info, &arg32->LUN_info,
33313@@ -3005,7 +3007,7 @@ static void start_io(ctlr_info_t *h) 33336@@ -3010,7 +3012,7 @@ static void start_io(ctlr_info_t *h)
33314 while (!list_empty(&h->reqQ)) { 33337 while (!list_empty(&h->reqQ)) {
33315 c = list_entry(h->reqQ.next, CommandList_struct, list); 33338 c = list_entry(h->reqQ.next, CommandList_struct, list);
33316 /* can't do anything if fifo is full */ 33339 /* can't do anything if fifo is full */
@@ -33319,7 +33342,7 @@ index dadea48..a1f3835 100644
33319 dev_warn(&h->pdev->dev, "fifo full\n"); 33342 dev_warn(&h->pdev->dev, "fifo full\n");
33320 break; 33343 break;
33321 } 33344 }
33322@@ -3015,7 +3017,7 @@ static void start_io(ctlr_info_t *h) 33345@@ -3020,7 +3022,7 @@ static void start_io(ctlr_info_t *h)
33323 h->Qdepth--; 33346 h->Qdepth--;
33324 33347
33325 /* Tell the controller execute command */ 33348 /* Tell the controller execute command */
@@ -33328,7 +33351,7 @@ index dadea48..a1f3835 100644
33328 33351
33329 /* Put job onto the completed Q */ 33352 /* Put job onto the completed Q */
33330 addQ(&h->cmpQ, c); 33353 addQ(&h->cmpQ, c);
33331@@ -3441,17 +3443,17 @@ startio: 33354@@ -3446,17 +3448,17 @@ startio:
33332 33355
33333 static inline unsigned long get_next_completion(ctlr_info_t *h) 33356 static inline unsigned long get_next_completion(ctlr_info_t *h)
33334 { 33357 {
@@ -33349,7 +33372,7 @@ index dadea48..a1f3835 100644
33349 (h->interrupts_enabled == 0)); 33372 (h->interrupts_enabled == 0));
33350 } 33373 }
33351 33374
33352@@ -3484,7 +3486,7 @@ static inline u32 next_command(ctlr_info_t *h) 33375@@ -3489,7 +3491,7 @@ static inline u32 next_command(ctlr_info_t *h)
33353 u32 a; 33376 u32 a;
33354 33377
33355 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant))) 33378 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
@@ -33358,7 +33381,7 @@ index dadea48..a1f3835 100644
33358 33381
33359 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) { 33382 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
33360 a = *(h->reply_pool_head); /* Next cmd in ring buffer */ 33383 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
33361@@ -4041,7 +4043,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h) 33384@@ -4046,7 +4048,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
33362 trans_support & CFGTBL_Trans_use_short_tags); 33385 trans_support & CFGTBL_Trans_use_short_tags);
33363 33386
33364 /* Change the access methods to the performant access methods */ 33387 /* Change the access methods to the performant access methods */
@@ -33367,7 +33390,7 @@ index dadea48..a1f3835 100644
33367 h->transMethod = CFGTBL_Trans_Performant; 33390 h->transMethod = CFGTBL_Trans_Performant;
33368 33391
33369 return; 33392 return;
33370@@ -4310,7 +4312,7 @@ static int cciss_pci_init(ctlr_info_t *h) 33393@@ -4319,7 +4321,7 @@ static int cciss_pci_init(ctlr_info_t *h)
33371 if (prod_index < 0) 33394 if (prod_index < 0)
33372 return -ENODEV; 33395 return -ENODEV;
33373 h->product_name = products[prod_index].product_name; 33396 h->product_name = products[prod_index].product_name;
@@ -33376,7 +33399,7 @@ index dadea48..a1f3835 100644
33376 33399
33377 if (cciss_board_disabled(h)) { 33400 if (cciss_board_disabled(h)) {
33378 dev_warn(&h->pdev->dev, "controller appears to be disabled\n"); 33401 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
33379@@ -5032,7 +5034,7 @@ reinit_after_soft_reset: 33402@@ -5051,7 +5053,7 @@ reinit_after_soft_reset:
33380 } 33403 }
33381 33404
33382 /* make sure the board interrupts are off */ 33405 /* make sure the board interrupts are off */
@@ -33385,7 +33408,7 @@ index dadea48..a1f3835 100644
33385 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx); 33408 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
33386 if (rc) 33409 if (rc)
33387 goto clean2; 33410 goto clean2;
33388@@ -5082,7 +5084,7 @@ reinit_after_soft_reset: 33411@@ -5101,7 +5103,7 @@ reinit_after_soft_reset:
33389 * fake ones to scoop up any residual completions. 33412 * fake ones to scoop up any residual completions.
33390 */ 33413 */
33391 spin_lock_irqsave(&h->lock, flags); 33414 spin_lock_irqsave(&h->lock, flags);
@@ -33394,7 +33417,7 @@ index dadea48..a1f3835 100644
33394 spin_unlock_irqrestore(&h->lock, flags); 33417 spin_unlock_irqrestore(&h->lock, flags);
33395 free_irq(h->intr[h->intr_mode], h); 33418 free_irq(h->intr[h->intr_mode], h);
33396 rc = cciss_request_irq(h, cciss_msix_discard_completions, 33419 rc = cciss_request_irq(h, cciss_msix_discard_completions,
33397@@ -5102,9 +5104,9 @@ reinit_after_soft_reset: 33420@@ -5121,9 +5123,9 @@ reinit_after_soft_reset:
33398 dev_info(&h->pdev->dev, "Board READY.\n"); 33421 dev_info(&h->pdev->dev, "Board READY.\n");
33399 dev_info(&h->pdev->dev, 33422 dev_info(&h->pdev->dev,
33400 "Waiting for stale completions to drain.\n"); 33423 "Waiting for stale completions to drain.\n");
@@ -33406,7 +33429,7 @@ index dadea48..a1f3835 100644
33406 33429
33407 rc = controller_reset_failed(h->cfgtable); 33430 rc = controller_reset_failed(h->cfgtable);
33408 if (rc) 33431 if (rc)
33409@@ -5127,7 +5129,7 @@ reinit_after_soft_reset: 33432@@ -5146,7 +5148,7 @@ reinit_after_soft_reset:
33410 cciss_scsi_setup(h); 33433 cciss_scsi_setup(h);
33411 33434
33412 /* Turn the interrupts on so we can service requests */ 33435 /* Turn the interrupts on so we can service requests */
@@ -33415,7 +33438,7 @@ index dadea48..a1f3835 100644
33415 33438
33416 /* Get the firmware version */ 33439 /* Get the firmware version */
33417 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL); 33440 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
33418@@ -5199,7 +5201,7 @@ static void cciss_shutdown(struct pci_dev *pdev) 33441@@ -5218,7 +5220,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
33419 kfree(flush_buf); 33442 kfree(flush_buf);
33420 if (return_code != IO_OK) 33443 if (return_code != IO_OK)
33421 dev_warn(&h->pdev->dev, "Error flushing cache\n"); 33444 dev_warn(&h->pdev->dev, "Error flushing cache\n");
@@ -33438,7 +33461,7 @@ index 7fda30e..eb5dfe0 100644
33438 /* queue and queue Info */ 33461 /* queue and queue Info */
33439 struct list_head reqQ; 33462 struct list_head reqQ;
33440diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c 33463diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
33441index 3f08713..87d4b4a 100644 33464index 639d26b..fd6ad1f 100644
33442--- a/drivers/block/cpqarray.c 33465--- a/drivers/block/cpqarray.c
33443+++ b/drivers/block/cpqarray.c 33466+++ b/drivers/block/cpqarray.c
33444@@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev) 33467@@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
@@ -33477,7 +33500,7 @@ index 3f08713..87d4b4a 100644
33477 hba[ctlr]->ctlr = ctlr; 33500 hba[ctlr]->ctlr = ctlr;
33478 hba[ctlr]->board_id = board_id; 33501 hba[ctlr]->board_id = board_id;
33479 hba[ctlr]->pci_dev = NULL; /* not PCI */ 33502 hba[ctlr]->pci_dev = NULL; /* not PCI */
33480@@ -980,7 +980,7 @@ static void start_io(ctlr_info_t *h) 33503@@ -978,7 +978,7 @@ static void start_io(ctlr_info_t *h)
33481 33504
33482 while((c = h->reqQ) != NULL) { 33505 while((c = h->reqQ) != NULL) {
33483 /* Can't do anything if we're busy */ 33506 /* Can't do anything if we're busy */
@@ -33486,7 +33509,7 @@ index 3f08713..87d4b4a 100644
33486 return; 33509 return;
33487 33510
33488 /* Get the first entry from the request Q */ 33511 /* Get the first entry from the request Q */
33489@@ -988,7 +988,7 @@ static void start_io(ctlr_info_t *h) 33512@@ -986,7 +986,7 @@ static void start_io(ctlr_info_t *h)
33490 h->Qdepth--; 33513 h->Qdepth--;
33491 33514
33492 /* Tell the controller to do our bidding */ 33515 /* Tell the controller to do our bidding */
@@ -33495,7 +33518,7 @@ index 3f08713..87d4b4a 100644
33495 33518
33496 /* Get onto the completion Q */ 33519 /* Get onto the completion Q */
33497 addQ(&h->cmpQ, c); 33520 addQ(&h->cmpQ, c);
33498@@ -1050,7 +1050,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id) 33521@@ -1048,7 +1048,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
33499 unsigned long flags; 33522 unsigned long flags;
33500 __u32 a,a1; 33523 __u32 a,a1;
33501 33524
@@ -33504,7 +33527,7 @@ index 3f08713..87d4b4a 100644
33504 /* Is this interrupt for us? */ 33527 /* Is this interrupt for us? */
33505 if (istat == 0) 33528 if (istat == 0)
33506 return IRQ_NONE; 33529 return IRQ_NONE;
33507@@ -1061,7 +1061,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id) 33530@@ -1059,7 +1059,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
33508 */ 33531 */
33509 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags); 33532 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
33510 if (istat & FIFO_NOT_EMPTY) { 33533 if (istat & FIFO_NOT_EMPTY) {
@@ -33513,7 +33536,7 @@ index 3f08713..87d4b4a 100644
33513 a1 = a; a &= ~3; 33536 a1 = a; a &= ~3;
33514 if ((c = h->cmpQ) == NULL) 33537 if ((c = h->cmpQ) == NULL)
33515 { 33538 {
33516@@ -1195,6 +1195,7 @@ out_passthru: 33539@@ -1193,6 +1193,7 @@ out_passthru:
33517 ida_pci_info_struct pciinfo; 33540 ida_pci_info_struct pciinfo;
33518 33541
33519 if (!arg) return -EINVAL; 33542 if (!arg) return -EINVAL;
@@ -33521,7 +33544,7 @@ index 3f08713..87d4b4a 100644
33521 pciinfo.bus = host->pci_dev->bus->number; 33544 pciinfo.bus = host->pci_dev->bus->number;
33522 pciinfo.dev_fn = host->pci_dev->devfn; 33545 pciinfo.dev_fn = host->pci_dev->devfn;
33523 pciinfo.board_id = host->board_id; 33546 pciinfo.board_id = host->board_id;
33524@@ -1449,11 +1450,11 @@ static int sendcmd( 33547@@ -1447,11 +1448,11 @@ static int sendcmd(
33525 /* 33548 /*
33526 * Disable interrupt 33549 * Disable interrupt
33527 */ 33550 */
@@ -33535,7 +33558,7 @@ index 3f08713..87d4b4a 100644
33535 if (temp != 0) { 33558 if (temp != 0) {
33536 break; 33559 break;
33537 } 33560 }
33538@@ -1466,7 +1467,7 @@ DBG( 33561@@ -1464,7 +1465,7 @@ DBG(
33539 /* 33562 /*
33540 * Send the cmd 33563 * Send the cmd
33541 */ 33564 */
@@ -33544,7 +33567,7 @@ index 3f08713..87d4b4a 100644
33544 complete = pollcomplete(ctlr); 33567 complete = pollcomplete(ctlr);
33545 33568
33546 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr, 33569 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
33547@@ -1549,9 +1550,9 @@ static int revalidate_allvol(ctlr_info_t *host) 33570@@ -1547,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
33548 * we check the new geometry. Then turn interrupts back on when 33571 * we check the new geometry. Then turn interrupts back on when
33549 * we're done. 33572 * we're done.
33550 */ 33573 */
@@ -33556,7 +33579,7 @@ index 3f08713..87d4b4a 100644
33556 33579
33557 for(i=0; i<NWD; i++) { 33580 for(i=0; i<NWD; i++) {
33558 struct gendisk *disk = ida_gendisk[ctlr][i]; 33581 struct gendisk *disk = ida_gendisk[ctlr][i];
33559@@ -1591,7 +1592,7 @@ static int pollcomplete(int ctlr) 33582@@ -1589,7 +1590,7 @@ static int pollcomplete(int ctlr)
33560 /* Wait (up to 2 seconds) for a command to complete */ 33583 /* Wait (up to 2 seconds) for a command to complete */
33561 33584
33562 for (i = 200000; i > 0; i--) { 33585 for (i = 200000; i > 0; i--) {
@@ -33579,7 +33602,7 @@ index be73e9d..7fbf140 100644
33579 cmdlist_t *reqQ; 33602 cmdlist_t *reqQ;
33580 cmdlist_t *cmpQ; 33603 cmdlist_t *cmpQ;
33581diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h 33604diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
33582index 6b51afa..17e1191 100644 33605index f943aac..99bfd19 100644
33583--- a/drivers/block/drbd/drbd_int.h 33606--- a/drivers/block/drbd/drbd_int.h
33584+++ b/drivers/block/drbd/drbd_int.h 33607+++ b/drivers/block/drbd/drbd_int.h
33585@@ -582,7 +582,7 @@ struct drbd_epoch { 33608@@ -582,7 +582,7 @@ struct drbd_epoch {
@@ -33591,16 +33614,16 @@ index 6b51afa..17e1191 100644
33591 atomic_t active; /* increased on every req. added, and dec on every finished. */ 33614 atomic_t active; /* increased on every req. added, and dec on every finished. */
33592 unsigned long flags; 33615 unsigned long flags;
33593 }; 33616 };
33594@@ -1011,7 +1011,7 @@ struct drbd_conf { 33617@@ -1021,7 +1021,7 @@ struct drbd_conf {
33618 unsigned int al_tr_number;
33595 int al_tr_cycle; 33619 int al_tr_cycle;
33596 int al_tr_pos; /* position of the next transaction in the journal */
33597 wait_queue_head_t seq_wait; 33620 wait_queue_head_t seq_wait;
33598- atomic_t packet_seq; 33621- atomic_t packet_seq;
33599+ atomic_unchecked_t packet_seq; 33622+ atomic_unchecked_t packet_seq;
33600 unsigned int peer_seq; 33623 unsigned int peer_seq;
33601 spinlock_t peer_seq_lock; 33624 spinlock_t peer_seq_lock;
33602 unsigned int minor; 33625 unsigned int minor;
33603@@ -1527,7 +1527,7 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname, 33626@@ -1562,7 +1562,7 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname,
33604 char __user *uoptval; 33627 char __user *uoptval;
33605 int err; 33628 int err;
33606 33629
@@ -33610,7 +33633,7 @@ index 6b51afa..17e1191 100644
33610 set_fs(KERNEL_DS); 33633 set_fs(KERNEL_DS);
33611 if (level == SOL_SOCKET) 33634 if (level == SOL_SOCKET)
33612diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c 33635diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
33613index 54d03d4..332f311 100644 33636index a5dca6a..bb27967 100644
33614--- a/drivers/block/drbd/drbd_main.c 33637--- a/drivers/block/drbd/drbd_main.c
33615+++ b/drivers/block/drbd/drbd_main.c 33638+++ b/drivers/block/drbd/drbd_main.c
33616@@ -1317,7 +1317,7 @@ static int _drbd_send_ack(struct drbd_conf *mdev, enum drbd_packet cmd, 33639@@ -1317,7 +1317,7 @@ static int _drbd_send_ack(struct drbd_conf *mdev, enum drbd_packet cmd,
@@ -33643,10 +33666,10 @@ index 54d03d4..332f311 100644
33643 33666
33644 idr_destroy(&tconn->volumes); 33667 idr_destroy(&tconn->volumes);
33645diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c 33668diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
33646index 2f5fffd..b22a1ae 100644 33669index 4222aff..1f79506 100644
33647--- a/drivers/block/drbd/drbd_receiver.c 33670--- a/drivers/block/drbd/drbd_receiver.c
33648+++ b/drivers/block/drbd/drbd_receiver.c 33671+++ b/drivers/block/drbd/drbd_receiver.c
33649@@ -833,7 +833,7 @@ int drbd_connected(struct drbd_conf *mdev) 33672@@ -834,7 +834,7 @@ int drbd_connected(struct drbd_conf *mdev)
33650 { 33673 {
33651 int err; 33674 int err;
33652 33675
@@ -33655,7 +33678,7 @@ index 2f5fffd..b22a1ae 100644
33655 mdev->peer_seq = 0; 33678 mdev->peer_seq = 0;
33656 33679
33657 mdev->state_mutex = mdev->tconn->agreed_pro_version < 100 ? 33680 mdev->state_mutex = mdev->tconn->agreed_pro_version < 100 ?
33658@@ -1191,7 +1191,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_tconn *tconn, 33681@@ -1193,7 +1193,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_tconn *tconn,
33659 do { 33682 do {
33660 next_epoch = NULL; 33683 next_epoch = NULL;
33661 33684
@@ -33664,7 +33687,7 @@ index 2f5fffd..b22a1ae 100644
33664 33687
33665 switch (ev & ~EV_CLEANUP) { 33688 switch (ev & ~EV_CLEANUP) {
33666 case EV_PUT: 33689 case EV_PUT:
33667@@ -1231,7 +1231,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_tconn *tconn, 33690@@ -1233,7 +1233,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_tconn *tconn,
33668 rv = FE_DESTROYED; 33691 rv = FE_DESTROYED;
33669 } else { 33692 } else {
33670 epoch->flags = 0; 33693 epoch->flags = 0;
@@ -33673,7 +33696,7 @@ index 2f5fffd..b22a1ae 100644
33673 /* atomic_set(&epoch->active, 0); is already zero */ 33696 /* atomic_set(&epoch->active, 0); is already zero */
33674 if (rv == FE_STILL_LIVE) 33697 if (rv == FE_STILL_LIVE)
33675 rv = FE_RECYCLED; 33698 rv = FE_RECYCLED;
33676@@ -1449,7 +1449,7 @@ static int receive_Barrier(struct drbd_tconn *tconn, struct packet_info *pi) 33699@@ -1451,7 +1451,7 @@ static int receive_Barrier(struct drbd_tconn *tconn, struct packet_info *pi)
33677 conn_wait_active_ee_empty(tconn); 33700 conn_wait_active_ee_empty(tconn);
33678 drbd_flush(tconn); 33701 drbd_flush(tconn);
33679 33702
@@ -33682,7 +33705,7 @@ index 2f5fffd..b22a1ae 100644
33682 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO); 33705 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
33683 if (epoch) 33706 if (epoch)
33684 break; 33707 break;
33685@@ -1462,11 +1462,11 @@ static int receive_Barrier(struct drbd_tconn *tconn, struct packet_info *pi) 33708@@ -1464,11 +1464,11 @@ static int receive_Barrier(struct drbd_tconn *tconn, struct packet_info *pi)
33686 } 33709 }
33687 33710
33688 epoch->flags = 0; 33711 epoch->flags = 0;
@@ -33696,7 +33719,7 @@ index 2f5fffd..b22a1ae 100644
33696 list_add(&epoch->list, &tconn->current_epoch->list); 33719 list_add(&epoch->list, &tconn->current_epoch->list);
33697 tconn->current_epoch = epoch; 33720 tconn->current_epoch = epoch;
33698 tconn->epochs++; 33721 tconn->epochs++;
33699@@ -2170,7 +2170,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi) 33722@@ -2172,7 +2172,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
33700 33723
33701 err = wait_for_and_update_peer_seq(mdev, peer_seq); 33724 err = wait_for_and_update_peer_seq(mdev, peer_seq);
33702 drbd_send_ack_dp(mdev, P_NEG_ACK, p, pi->size); 33725 drbd_send_ack_dp(mdev, P_NEG_ACK, p, pi->size);
@@ -33705,7 +33728,7 @@ index 2f5fffd..b22a1ae 100644
33705 err2 = drbd_drain_block(mdev, pi->size); 33728 err2 = drbd_drain_block(mdev, pi->size);
33706 if (!err) 33729 if (!err)
33707 err = err2; 33730 err = err2;
33708@@ -2204,7 +2204,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi) 33731@@ -2206,7 +2206,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
33709 33732
33710 spin_lock(&tconn->epoch_lock); 33733 spin_lock(&tconn->epoch_lock);
33711 peer_req->epoch = tconn->current_epoch; 33734 peer_req->epoch = tconn->current_epoch;
@@ -33714,7 +33737,7 @@ index 2f5fffd..b22a1ae 100644
33714 atomic_inc(&peer_req->epoch->active); 33737 atomic_inc(&peer_req->epoch->active);
33715 spin_unlock(&tconn->epoch_lock); 33738 spin_unlock(&tconn->epoch_lock);
33716 33739
33717@@ -4345,7 +4345,7 @@ struct data_cmd { 33740@@ -4347,7 +4347,7 @@ struct data_cmd {
33718 int expect_payload; 33741 int expect_payload;
33719 size_t pkt_size; 33742 size_t pkt_size;
33720 int (*fn)(struct drbd_tconn *, struct packet_info *); 33743 int (*fn)(struct drbd_tconn *, struct packet_info *);
@@ -33723,7 +33746,7 @@ index 2f5fffd..b22a1ae 100644
33723 33746
33724 static struct data_cmd drbd_cmd_handler[] = { 33747 static struct data_cmd drbd_cmd_handler[] = {
33725 [P_DATA] = { 1, sizeof(struct p_data), receive_Data }, 33748 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
33726@@ -4465,7 +4465,7 @@ static void conn_disconnect(struct drbd_tconn *tconn) 33749@@ -4467,7 +4467,7 @@ static void conn_disconnect(struct drbd_tconn *tconn)
33727 if (!list_empty(&tconn->current_epoch->list)) 33750 if (!list_empty(&tconn->current_epoch->list))
33728 conn_err(tconn, "ASSERTION FAILED: tconn->current_epoch->list not empty\n"); 33751 conn_err(tconn, "ASSERTION FAILED: tconn->current_epoch->list not empty\n");
33729 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */ 33752 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
@@ -33732,7 +33755,7 @@ index 2f5fffd..b22a1ae 100644
33732 tconn->send.seen_any_write_yet = false; 33755 tconn->send.seen_any_write_yet = false;
33733 33756
33734 conn_info(tconn, "Connection closed\n"); 33757 conn_info(tconn, "Connection closed\n");
33735@@ -5221,7 +5221,7 @@ static int tconn_finish_peer_reqs(struct drbd_tconn *tconn) 33758@@ -5223,7 +5223,7 @@ static int tconn_finish_peer_reqs(struct drbd_tconn *tconn)
33736 struct asender_cmd { 33759 struct asender_cmd {
33737 size_t pkt_size; 33760 size_t pkt_size;
33738 int (*fn)(struct drbd_tconn *tconn, struct packet_info *); 33761 int (*fn)(struct drbd_tconn *tconn, struct packet_info *);
@@ -33742,28 +33765,28 @@ index 2f5fffd..b22a1ae 100644
33742 static struct asender_cmd asender_tbl[] = { 33765 static struct asender_cmd asender_tbl[] = {
33743 [P_PING] = { 0, got_Ping }, 33766 [P_PING] = { 0, got_Ping },
33744diff --git a/drivers/block/loop.c b/drivers/block/loop.c 33767diff --git a/drivers/block/loop.c b/drivers/block/loop.c
33745index dfe7583..83768bb 100644 33768index d92d50f..a7e9d97 100644
33746--- a/drivers/block/loop.c 33769--- a/drivers/block/loop.c
33747+++ b/drivers/block/loop.c 33770+++ b/drivers/block/loop.c
33748@@ -231,7 +231,7 @@ static int __do_lo_send_write(struct file *file, 33771@@ -232,7 +232,7 @@ static int __do_lo_send_write(struct file *file,
33749 mm_segment_t old_fs = get_fs();
33750 33772
33773 file_start_write(file);
33751 set_fs(get_ds()); 33774 set_fs(get_ds());
33752- bw = file->f_op->write(file, buf, len, &pos); 33775- bw = file->f_op->write(file, buf, len, &pos);
33753+ bw = file->f_op->write(file, (const char __force_user *)buf, len, &pos); 33776+ bw = file->f_op->write(file, (const char __force_user *)buf, len, &pos);
33754 set_fs(old_fs); 33777 set_fs(old_fs);
33778 file_end_write(file);
33755 if (likely(bw == len)) 33779 if (likely(bw == len))
33756 return 0;
33757diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c 33780diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
33758index 2e7de7a..ed86dc0 100644 33781index f5d0ea1..c62380a 100644
33759--- a/drivers/block/pktcdvd.c 33782--- a/drivers/block/pktcdvd.c
33760+++ b/drivers/block/pktcdvd.c 33783+++ b/drivers/block/pktcdvd.c
33761@@ -83,7 +83,7 @@ 33784@@ -84,7 +84,7 @@
33762
33763 #define MAX_SPEED 0xffff 33785 #define MAX_SPEED 0xffff
33764 33786
33765-#define ZONE(sector, pd) (((sector) + (pd)->offset) & ~((pd)->settings.size - 1)) 33787 #define ZONE(sector, pd) (((sector) + (pd)->offset) & \
33766+#define ZONE(sector, pd) (((sector) + (pd)->offset) & ~((pd)->settings.size - 1UL)) 33788- ~(sector_t)((pd)->settings.size - 1))
33789+ ~(sector_t)((pd)->settings.size - 1UL))
33767 33790
33768 static DEFINE_MUTEX(pktcdvd_mutex); 33791 static DEFINE_MUTEX(pktcdvd_mutex);
33769 static struct pktcdvd_device *pkt_devs[MAX_WRITERS]; 33792 static struct pktcdvd_device *pkt_devs[MAX_WRITERS];
@@ -33820,7 +33843,7 @@ index 8a3aff7..d7538c2 100644
33820 return 1; 33843 return 1;
33821 33844
33822diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c 33845diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
33823index d59cdcb..11afddf 100644 33846index 4afcb65..a68a32d 100644
33824--- a/drivers/cdrom/gdrom.c 33847--- a/drivers/cdrom/gdrom.c
33825+++ b/drivers/cdrom/gdrom.c 33848+++ b/drivers/cdrom/gdrom.c
33826@@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = { 33849@@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = {
@@ -33889,10 +33912,10 @@ index 2e04433..771f2cc 100644
33889 kfree(segment); 33912 kfree(segment);
33890 return -EFAULT; 33913 return -EFAULT;
33891diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c 33914diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
33892index 21cb980..f15107c 100644 33915index 4f94375..413694e 100644
33893--- a/drivers/char/genrtc.c 33916--- a/drivers/char/genrtc.c
33894+++ b/drivers/char/genrtc.c 33917+++ b/drivers/char/genrtc.c
33895@@ -272,6 +272,7 @@ static int gen_rtc_ioctl(struct file *file, 33918@@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
33896 switch (cmd) { 33919 switch (cmd) {
33897 33920
33898 case RTC_PLL_GET: 33921 case RTC_PLL_GET:
@@ -33927,7 +33950,7 @@ index 86fe45c..c0ea948 100644
33927 } 33950 }
33928 33951
33929diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c 33952diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
33930index 053201b..8335cce 100644 33953index 4445fa1..7c6de37 100644
33931--- a/drivers/char/ipmi/ipmi_msghandler.c 33954--- a/drivers/char/ipmi/ipmi_msghandler.c
33932+++ b/drivers/char/ipmi/ipmi_msghandler.c 33955+++ b/drivers/char/ipmi/ipmi_msghandler.c
33933@@ -420,7 +420,7 @@ struct ipmi_smi { 33956@@ -420,7 +420,7 @@ struct ipmi_smi {
@@ -33951,7 +33974,7 @@ index 053201b..8335cce 100644
33951 33974
33952 static int is_lan_addr(struct ipmi_addr *addr) 33975 static int is_lan_addr(struct ipmi_addr *addr)
33953 { 33976 {
33954@@ -2884,7 +2884,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers, 33977@@ -2883,7 +2883,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
33955 INIT_LIST_HEAD(&intf->cmd_rcvrs); 33978 INIT_LIST_HEAD(&intf->cmd_rcvrs);
33956 init_waitqueue_head(&intf->waitq); 33979 init_waitqueue_head(&intf->waitq);
33957 for (i = 0; i < IPMI_NUM_STATS; i++) 33980 for (i = 0; i < IPMI_NUM_STATS; i++)
@@ -33961,7 +33984,7 @@ index 053201b..8335cce 100644
33961 intf->proc_dir = NULL; 33984 intf->proc_dir = NULL;
33962 33985
33963diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c 33986diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
33964index 0ac9b45..6179fb5 100644 33987index af4b23f..79806fc 100644
33965--- a/drivers/char/ipmi/ipmi_si_intf.c 33988--- a/drivers/char/ipmi/ipmi_si_intf.c
33966+++ b/drivers/char/ipmi/ipmi_si_intf.c 33989+++ b/drivers/char/ipmi/ipmi_si_intf.c
33967@@ -275,7 +275,7 @@ struct smi_info { 33990@@ -275,7 +275,7 @@ struct smi_info {
@@ -33985,7 +34008,7 @@ index 0ac9b45..6179fb5 100644
33985 34008
33986 #define SI_MAX_PARMS 4 34009 #define SI_MAX_PARMS 4
33987 34010
33988@@ -3254,7 +3254,7 @@ static int try_smi_init(struct smi_info *new_smi) 34011@@ -3258,7 +3258,7 @@ static int try_smi_init(struct smi_info *new_smi)
33989 atomic_set(&new_smi->req_events, 0); 34012 atomic_set(&new_smi->req_events, 0);
33990 new_smi->run_to_completion = 0; 34013 new_smi->run_to_completion = 0;
33991 for (i = 0; i < SI_NUM_STATS; i++) 34014 for (i = 0; i < SI_NUM_STATS; i++)
@@ -33995,7 +34018,7 @@ index 0ac9b45..6179fb5 100644
33995 new_smi->interrupt_disabled = 1; 34018 new_smi->interrupt_disabled = 1;
33996 atomic_set(&new_smi->stop_operation, 0); 34019 atomic_set(&new_smi->stop_operation, 0);
33997diff --git a/drivers/char/mem.c b/drivers/char/mem.c 34020diff --git a/drivers/char/mem.c b/drivers/char/mem.c
33998index 2c644af..4b7aede 100644 34021index 1ccbe94..6ad651a 100644
33999--- a/drivers/char/mem.c 34022--- a/drivers/char/mem.c
34000+++ b/drivers/char/mem.c 34023+++ b/drivers/char/mem.c
34001@@ -18,6 +18,7 @@ 34024@@ -18,6 +18,7 @@
@@ -34006,7 +34029,7 @@ index 2c644af..4b7aede 100644
34006 #include <linux/ptrace.h> 34029 #include <linux/ptrace.h>
34007 #include <linux/device.h> 34030 #include <linux/device.h>
34008 #include <linux/highmem.h> 34031 #include <linux/highmem.h>
34009@@ -37,6 +38,10 @@ 34032@@ -38,6 +39,10 @@
34010 34033
34011 #define DEVPORT_MINOR 4 34034 #define DEVPORT_MINOR 4
34012 34035
@@ -34017,7 +34040,7 @@ index 2c644af..4b7aede 100644
34017 static inline unsigned long size_inside_page(unsigned long start, 34040 static inline unsigned long size_inside_page(unsigned long start,
34018 unsigned long size) 34041 unsigned long size)
34019 { 34042 {
34020@@ -68,9 +73,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size) 34043@@ -69,9 +74,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34021 34044
34022 while (cursor < to) { 34045 while (cursor < to) {
34023 if (!devmem_is_allowed(pfn)) { 34046 if (!devmem_is_allowed(pfn)) {
@@ -34031,7 +34054,7 @@ index 2c644af..4b7aede 100644
34031 return 0; 34054 return 0;
34032 } 34055 }
34033 cursor += PAGE_SIZE; 34056 cursor += PAGE_SIZE;
34034@@ -78,6 +87,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size) 34057@@ -79,6 +88,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34035 } 34058 }
34036 return 1; 34059 return 1;
34037 } 34060 }
@@ -34043,7 +34066,7 @@ index 2c644af..4b7aede 100644
34043 #else 34066 #else
34044 static inline int range_is_allowed(unsigned long pfn, unsigned long size) 34067 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34045 { 34068 {
34046@@ -120,6 +134,7 @@ static ssize_t read_mem(struct file *file, char __user *buf, 34069@@ -121,6 +135,7 @@ static ssize_t read_mem(struct file *file, char __user *buf,
34047 34070
34048 while (count > 0) { 34071 while (count > 0) {
34049 unsigned long remaining; 34072 unsigned long remaining;
@@ -34051,7 +34074,7 @@ index 2c644af..4b7aede 100644
34051 34074
34052 sz = size_inside_page(p, count); 34075 sz = size_inside_page(p, count);
34053 34076
34054@@ -135,7 +150,23 @@ static ssize_t read_mem(struct file *file, char __user *buf, 34077@@ -136,7 +151,23 @@ static ssize_t read_mem(struct file *file, char __user *buf,
34055 if (!ptr) 34078 if (!ptr)
34056 return -EFAULT; 34079 return -EFAULT;
34057 34080
@@ -34076,7 +34099,7 @@ index 2c644af..4b7aede 100644
34076 unxlate_dev_mem_ptr(p, ptr); 34099 unxlate_dev_mem_ptr(p, ptr);
34077 if (remaining) 34100 if (remaining)
34078 return -EFAULT; 34101 return -EFAULT;
34079@@ -378,7 +409,7 @@ static ssize_t read_oldmem(struct file *file, char __user *buf, 34102@@ -379,7 +410,7 @@ static ssize_t read_oldmem(struct file *file, char __user *buf,
34080 else 34103 else
34081 csize = count; 34104 csize = count;
34082 34105
@@ -34085,7 +34108,7 @@ index 2c644af..4b7aede 100644
34085 if (rc < 0) 34108 if (rc < 0)
34086 return rc; 34109 return rc;
34087 buf += csize; 34110 buf += csize;
34088@@ -398,9 +429,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf, 34111@@ -399,9 +430,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
34089 size_t count, loff_t *ppos) 34112 size_t count, loff_t *ppos)
34090 { 34113 {
34091 unsigned long p = *ppos; 34114 unsigned long p = *ppos;
@@ -34096,7 +34119,7 @@ index 2c644af..4b7aede 100644
34096 34119
34097 read = 0; 34120 read = 0;
34098 if (p < (unsigned long) high_memory) { 34121 if (p < (unsigned long) high_memory) {
34099@@ -422,6 +452,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf, 34122@@ -423,6 +453,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
34100 } 34123 }
34101 #endif 34124 #endif
34102 while (low_count > 0) { 34125 while (low_count > 0) {
@@ -34105,7 +34128,7 @@ index 2c644af..4b7aede 100644
34105 sz = size_inside_page(p, low_count); 34128 sz = size_inside_page(p, low_count);
34106 34129
34107 /* 34130 /*
34108@@ -431,7 +463,22 @@ static ssize_t read_kmem(struct file *file, char __user *buf, 34131@@ -432,7 +464,22 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
34109 */ 34132 */
34110 kbuf = xlate_dev_kmem_ptr((char *)p); 34133 kbuf = xlate_dev_kmem_ptr((char *)p);
34111 34134
@@ -34129,7 +34152,7 @@ index 2c644af..4b7aede 100644
34129 return -EFAULT; 34152 return -EFAULT;
34130 buf += sz; 34153 buf += sz;
34131 p += sz; 34154 p += sz;
34132@@ -833,6 +880,9 @@ static const struct memdev { 34155@@ -869,6 +916,9 @@ static const struct memdev {
34133 #ifdef CONFIG_CRASH_DUMP 34156 #ifdef CONFIG_CRASH_DUMP
34134 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 34157 [12] = { "oldmem", 0, &oldmem_fops, NULL },
34135 #endif 34158 #endif
@@ -34139,7 +34162,7 @@ index 2c644af..4b7aede 100644
34139 }; 34162 };
34140 34163
34141 static int memory_open(struct inode *inode, struct file *filp) 34164 static int memory_open(struct inode *inode, struct file *filp)
34142@@ -904,7 +954,7 @@ static int __init chr_dev_init(void) 34165@@ -940,7 +990,7 @@ static int __init chr_dev_init(void)
34143 continue; 34166 continue;
34144 34167
34145 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor), 34168 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
@@ -34149,7 +34172,7 @@ index 2c644af..4b7aede 100644
34149 34172
34150 return tty_init(); 34173 return tty_init();
34151diff --git a/drivers/char/mwave/tp3780i.c b/drivers/char/mwave/tp3780i.c 34174diff --git a/drivers/char/mwave/tp3780i.c b/drivers/char/mwave/tp3780i.c
34152index c689697..04e6d6a 100644 34175index c689697..04e6d6a2 100644
34153--- a/drivers/char/mwave/tp3780i.c 34176--- a/drivers/char/mwave/tp3780i.c
34154+++ b/drivers/char/mwave/tp3780i.c 34177+++ b/drivers/char/mwave/tp3780i.c
34155@@ -479,6 +479,7 @@ int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities 34178@@ -479,6 +479,7 @@ int tp3780I_QueryAbilities(THINKPAD_BD_DATA * pBDData, MW_ABILITIES * pAbilities
@@ -34249,7 +34272,7 @@ index 5c5cc00..ac9edb7 100644
34249 34272
34250 if (cmd != SIOCWANDEV) 34273 if (cmd != SIOCWANDEV)
34251diff --git a/drivers/char/random.c b/drivers/char/random.c 34274diff --git a/drivers/char/random.c b/drivers/char/random.c
34252index eccd7cc..98038d5 100644 34275index 35487e8..dac8bd1 100644
34253--- a/drivers/char/random.c 34276--- a/drivers/char/random.c
34254+++ b/drivers/char/random.c 34277+++ b/drivers/char/random.c
34255@@ -272,8 +272,13 @@ 34278@@ -272,8 +272,13 @@
@@ -34415,7 +34438,7 @@ index 84ddc55..1d32f1e 100644
34415 return 0; 34438 return 0;
34416 } 34439 }
34417diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c 34440diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
34418index ce5f3fc..e2d3e55 100644 34441index 1b456fe..2510242 100644
34419--- a/drivers/char/virtio_console.c 34442--- a/drivers/char/virtio_console.c
34420+++ b/drivers/char/virtio_console.c 34443+++ b/drivers/char/virtio_console.c
34421@@ -679,7 +679,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count, 34444@@ -679,7 +679,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
@@ -34436,11 +34459,49 @@ index ce5f3fc..e2d3e55 100644
34436 } 34459 }
34437 34460
34438 static int wait_port_writable(struct port *port, bool nonblock) 34461 static int wait_port_writable(struct port *port, bool nonblock)
34462diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
34463index a33f46f..a720eed 100644
34464--- a/drivers/clk/clk-composite.c
34465+++ b/drivers/clk/clk-composite.c
34466@@ -122,7 +122,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
34467 struct clk *clk;
34468 struct clk_init_data init;
34469 struct clk_composite *composite;
34470- struct clk_ops *clk_composite_ops;
34471+ clk_ops_no_const *clk_composite_ops;
34472
34473 composite = kzalloc(sizeof(*composite), GFP_KERNEL);
34474 if (!composite) {
34475diff --git a/drivers/clk/socfpga/clk.c b/drivers/clk/socfpga/clk.c
34476index bd11315..7f87098 100644
34477--- a/drivers/clk/socfpga/clk.c
34478+++ b/drivers/clk/socfpga/clk.c
34479@@ -22,6 +22,7 @@
34480 #include <linux/clk-provider.h>
34481 #include <linux/io.h>
34482 #include <linux/of.h>
34483+#include <asm/pgtable.h>
34484
34485 /* Clock Manager offsets */
34486 #define CLKMGR_CTRL 0x0
34487@@ -135,8 +136,10 @@ static __init struct clk *socfpga_clk_init(struct device_node *node,
34488 if (strcmp(clk_name, "main_pll") || strcmp(clk_name, "periph_pll") ||
34489 strcmp(clk_name, "sdram_pll")) {
34490 socfpga_clk->hw.bit_idx = SOCFPGA_PLL_EXT_ENA;
34491- clk_pll_ops.enable = clk_gate_ops.enable;
34492- clk_pll_ops.disable = clk_gate_ops.disable;
34493+ pax_open_kernel();
34494+ *(void **)&clk_pll_ops.enable = clk_gate_ops.enable;
34495+ *(void **)&clk_pll_ops.disable = clk_gate_ops.disable;
34496+ pax_close_kernel();
34497 }
34498
34499 clk = clk_register(NULL, &socfpga_clk->hw.hw);
34439diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c 34500diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
34440index d7ad425..3e3f81f 100644 34501index a2b2541..bc1e7ff 100644
34441--- a/drivers/clocksource/arm_arch_timer.c 34502--- a/drivers/clocksource/arm_arch_timer.c
34442+++ b/drivers/clocksource/arm_arch_timer.c 34503+++ b/drivers/clocksource/arm_arch_timer.c
34443@@ -262,7 +262,7 @@ static int __cpuinit arch_timer_cpu_notify(struct notifier_block *self, 34504@@ -264,7 +264,7 @@ static int __cpuinit arch_timer_cpu_notify(struct notifier_block *self,
34444 return NOTIFY_OK; 34505 return NOTIFY_OK;
34445 } 34506 }
34446 34507
@@ -34463,7 +34524,7 @@ index ade7513..069445f 100644
34463 }; 34524 };
34464 34525
34465diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c 34526diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
34466index bb5939b..d9accb7 100644 34527index edc089e..bc7c0bc 100644
34467--- a/drivers/cpufreq/acpi-cpufreq.c 34528--- a/drivers/cpufreq/acpi-cpufreq.c
34468+++ b/drivers/cpufreq/acpi-cpufreq.c 34529+++ b/drivers/cpufreq/acpi-cpufreq.c
34469@@ -172,7 +172,7 @@ static ssize_t show_global_boost(struct kobject *kobj, 34530@@ -172,7 +172,7 @@ static ssize_t show_global_boost(struct kobject *kobj,
@@ -34475,7 +34536,7 @@ index bb5939b..d9accb7 100644
34475 show_global_boost, 34536 show_global_boost,
34476 store_global_boost); 34537 store_global_boost);
34477 34538
34478@@ -712,8 +712,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) 34539@@ -705,8 +705,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
34479 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu); 34540 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
34480 per_cpu(acfreq_data, cpu) = data; 34541 per_cpu(acfreq_data, cpu) = data;
34481 34542
@@ -34489,7 +34550,7 @@ index bb5939b..d9accb7 100644
34489 34550
34490 result = acpi_processor_register_performance(data->acpi_data, cpu); 34551 result = acpi_processor_register_performance(data->acpi_data, cpu);
34491 if (result) 34552 if (result)
34492@@ -839,7 +842,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) 34553@@ -832,7 +835,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
34493 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu); 34554 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
34494 break; 34555 break;
34495 case ACPI_ADR_SPACE_FIXED_HARDWARE: 34556 case ACPI_ADR_SPACE_FIXED_HARDWARE:
@@ -34500,7 +34561,7 @@ index bb5939b..d9accb7 100644
34500 policy->cur = get_cur_freq_on_cpu(cpu); 34561 policy->cur = get_cur_freq_on_cpu(cpu);
34501 break; 34562 break;
34502 default: 34563 default:
34503@@ -850,8 +855,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) 34564@@ -843,8 +848,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
34504 acpi_processor_notify_smm(THIS_MODULE); 34565 acpi_processor_notify_smm(THIS_MODULE);
34505 34566
34506 /* Check for APERF/MPERF support in hardware */ 34567 /* Check for APERF/MPERF support in hardware */
@@ -34515,10 +34576,10 @@ index bb5939b..d9accb7 100644
34515 pr_debug("CPU%u - ACPI performance management activated.\n", cpu); 34576 pr_debug("CPU%u - ACPI performance management activated.\n", cpu);
34516 for (i = 0; i < perf->state_count; i++) 34577 for (i = 0; i < perf->state_count; i++)
34517diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c 34578diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
34518index b02824d..51e44aa 100644 34579index 178fe7a..5ee8501 100644
34519--- a/drivers/cpufreq/cpufreq.c 34580--- a/drivers/cpufreq/cpufreq.c
34520+++ b/drivers/cpufreq/cpufreq.c 34581+++ b/drivers/cpufreq/cpufreq.c
34521@@ -1813,7 +1813,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb, 34582@@ -1853,7 +1853,7 @@ static int __cpuinit cpufreq_cpu_callback(struct notifier_block *nfb,
34522 return NOTIFY_OK; 34583 return NOTIFY_OK;
34523 } 34584 }
34524 34585
@@ -34527,7 +34588,7 @@ index b02824d..51e44aa 100644
34527 .notifier_call = cpufreq_cpu_callback, 34588 .notifier_call = cpufreq_cpu_callback,
34528 }; 34589 };
34529 34590
34530@@ -1845,8 +1845,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data) 34591@@ -1885,8 +1885,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
34531 34592
34532 pr_debug("trying to register driver %s\n", driver_data->name); 34593 pr_debug("trying to register driver %s\n", driver_data->name);
34533 34594
@@ -34539,36 +34600,77 @@ index b02824d..51e44aa 100644
34539+ pax_close_kernel(); 34600+ pax_close_kernel();
34540+ } 34601+ }
34541 34602
34542 spin_lock_irqsave(&cpufreq_driver_lock, flags); 34603 write_lock_irqsave(&cpufreq_driver_lock, flags);
34543 if (cpufreq_driver) { 34604 if (cpufreq_driver) {
34544diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c 34605diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
34545index 5a76086..0f4d394 100644 34606index 5af40ad..ddf907b 100644
34546--- a/drivers/cpufreq/cpufreq_governor.c 34607--- a/drivers/cpufreq/cpufreq_governor.c
34547+++ b/drivers/cpufreq/cpufreq_governor.c 34608+++ b/drivers/cpufreq/cpufreq_governor.c
34548@@ -201,8 +201,8 @@ int cpufreq_governor_dbs(struct dbs_data *dbs_data, 34609@@ -235,7 +235,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
34549 { 34610 struct dbs_data *dbs_data;
34550 struct od_cpu_dbs_info_s *od_dbs_info = NULL; 34611 struct od_cpu_dbs_info_s *od_dbs_info = NULL;
34551 struct cs_cpu_dbs_info_s *cs_dbs_info = NULL; 34612 struct cs_cpu_dbs_info_s *cs_dbs_info = NULL;
34552- struct cs_ops *cs_ops = NULL;
34553- struct od_ops *od_ops = NULL; 34613- struct od_ops *od_ops = NULL;
34554+ const struct cs_ops *cs_ops = NULL;
34555+ const struct od_ops *od_ops = NULL; 34614+ const struct od_ops *od_ops = NULL;
34556 struct od_dbs_tuners *od_tuners = dbs_data->tuners; 34615 struct od_dbs_tuners *od_tuners = NULL;
34557 struct cs_dbs_tuners *cs_tuners = dbs_data->tuners; 34616 struct cs_dbs_tuners *cs_tuners = NULL;
34558 struct cpu_dbs_common_info *cpu_cdbs; 34617 struct cpu_dbs_common_info *cpu_cdbs;
34618@@ -298,7 +298,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
34619
34620 if ((cdata->governor == GOV_CONSERVATIVE) &&
34621 (!policy->governor->initialized)) {
34622- struct cs_ops *cs_ops = dbs_data->cdata->gov_ops;
34623+ const struct cs_ops *cs_ops = dbs_data->cdata->gov_ops;
34624
34625 cpufreq_register_notifier(cs_ops->notifier_block,
34626 CPUFREQ_TRANSITION_NOTIFIER);
34627@@ -315,7 +315,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
34628
34629 if ((dbs_data->cdata->governor == GOV_CONSERVATIVE) &&
34630 (policy->governor->initialized == 1)) {
34631- struct cs_ops *cs_ops = dbs_data->cdata->gov_ops;
34632+ const struct cs_ops *cs_ops = dbs_data->cdata->gov_ops;
34633
34634 cpufreq_unregister_notifier(cs_ops->notifier_block,
34635 CPUFREQ_TRANSITION_NOTIFIER);
34559diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h 34636diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
34560index cc4bd2f..ad142bc 100644 34637index e16a961..0e68927 100644
34561--- a/drivers/cpufreq/cpufreq_governor.h 34638--- a/drivers/cpufreq/cpufreq_governor.h
34562+++ b/drivers/cpufreq/cpufreq_governor.h 34639+++ b/drivers/cpufreq/cpufreq_governor.h
34563@@ -142,7 +142,7 @@ struct dbs_data { 34640@@ -204,7 +204,7 @@ struct common_dbs_data {
34564 void (*gov_check_cpu)(int cpu, unsigned int load); 34641 void (*exit)(struct dbs_data *dbs_data);
34565 34642
34566 /* Governor specific ops, see below */ 34643 /* Governor specific ops, see below */
34567- void *gov_ops; 34644- void *gov_ops;
34568+ const void *gov_ops; 34645+ const void *gov_ops;
34569 }; 34646 };
34570 34647
34571 /* Governor specific ops, will be passed to dbs_data->gov_ops */ 34648 /* Governer Per policy data */
34649diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
34650index 93eb5cb..f8ab572 100644
34651--- a/drivers/cpufreq/cpufreq_ondemand.c
34652+++ b/drivers/cpufreq/cpufreq_ondemand.c
34653@@ -615,14 +615,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
34654 (struct cpufreq_policy *, unsigned int, unsigned int),
34655 unsigned int powersave_bias)
34656 {
34657- od_ops.powersave_bias_target = f;
34658+ pax_open_kernel();
34659+ *(void **)&od_ops.powersave_bias_target = f;
34660+ pax_close_kernel();
34661 od_set_powersave_bias(powersave_bias);
34662 }
34663 EXPORT_SYMBOL_GPL(od_register_powersave_bias_handler);
34664
34665 void od_unregister_powersave_bias_handler(void)
34666 {
34667- od_ops.powersave_bias_target = generic_powersave_bias_target;
34668+ pax_open_kernel();
34669+ *(void **)&od_ops.powersave_bias_target = generic_powersave_bias_target;
34670+ pax_close_kernel();
34671 od_set_powersave_bias(0);
34672 }
34673 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
34572diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c 34674diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
34573index bfd6273..e39dd63 100644 34675index bfd6273..e39dd63 100644
34574--- a/drivers/cpufreq/cpufreq_stats.c 34676--- a/drivers/cpufreq/cpufreq_stats.c
@@ -34583,10 +34685,10 @@ index bfd6273..e39dd63 100644
34583 .priority = 1, 34685 .priority = 1,
34584 }; 34686 };
34585diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c 34687diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
34586index 827629c9..0bc6a03 100644 34688index 421ef37..e708530c 100644
34587--- a/drivers/cpufreq/p4-clockmod.c 34689--- a/drivers/cpufreq/p4-clockmod.c
34588+++ b/drivers/cpufreq/p4-clockmod.c 34690+++ b/drivers/cpufreq/p4-clockmod.c
34589@@ -167,10 +167,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) 34691@@ -160,10 +160,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
34590 case 0x0F: /* Core Duo */ 34692 case 0x0F: /* Core Duo */
34591 case 0x16: /* Celeron Core */ 34693 case 0x16: /* Celeron Core */
34592 case 0x1C: /* Atom */ 34694 case 0x1C: /* Atom */
@@ -34603,7 +34705,7 @@ index 827629c9..0bc6a03 100644
34603 /* fall through */ 34705 /* fall through */
34604 case 0x09: /* Pentium M (Banias) */ 34706 case 0x09: /* Pentium M (Banias) */
34605 return speedstep_get_frequency(SPEEDSTEP_CPU_PM); 34707 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
34606@@ -182,7 +186,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c) 34708@@ -175,7 +179,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
34607 34709
34608 /* on P-4s, the TSC runs with constant frequency independent whether 34710 /* on P-4s, the TSC runs with constant frequency independent whether
34609 * throttling is active or not. */ 34711 * throttling is active or not. */
@@ -34614,8 +34716,117 @@ index 827629c9..0bc6a03 100644
34614 34716
34615 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) { 34717 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
34616 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. " 34718 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
34719diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
34720index c71ee14..7c2e183 100644
34721--- a/drivers/cpufreq/sparc-us3-cpufreq.c
34722+++ b/drivers/cpufreq/sparc-us3-cpufreq.c
34723@@ -18,14 +18,12 @@
34724 #include <asm/head.h>
34725 #include <asm/timer.h>
34726
34727-static struct cpufreq_driver *cpufreq_us3_driver;
34728-
34729 struct us3_freq_percpu_info {
34730 struct cpufreq_frequency_table table[4];
34731 };
34732
34733 /* Indexed by cpu number. */
34734-static struct us3_freq_percpu_info *us3_freq_table;
34735+static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
34736
34737 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
34738 * in the Safari config register.
34739@@ -186,12 +184,25 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
34740
34741 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
34742 {
34743- if (cpufreq_us3_driver)
34744- us3_set_cpu_divider_index(policy, 0);
34745+ us3_set_cpu_divider_index(policy->cpu, 0);
34746
34747 return 0;
34748 }
34749
34750+static int __init us3_freq_init(void);
34751+static void __exit us3_freq_exit(void);
34752+
34753+static struct cpufreq_driver cpufreq_us3_driver = {
34754+ .init = us3_freq_cpu_init,
34755+ .verify = us3_freq_verify,
34756+ .target = us3_freq_target,
34757+ .get = us3_freq_get,
34758+ .exit = us3_freq_cpu_exit,
34759+ .owner = THIS_MODULE,
34760+ .name = "UltraSPARC-III",
34761+
34762+};
34763+
34764 static int __init us3_freq_init(void)
34765 {
34766 unsigned long manuf, impl, ver;
34767@@ -208,57 +219,15 @@ static int __init us3_freq_init(void)
34768 (impl == CHEETAH_IMPL ||
34769 impl == CHEETAH_PLUS_IMPL ||
34770 impl == JAGUAR_IMPL ||
34771- impl == PANTHER_IMPL)) {
34772- struct cpufreq_driver *driver;
34773-
34774- ret = -ENOMEM;
34775- driver = kzalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);
34776- if (!driver)
34777- goto err_out;
34778-
34779- us3_freq_table = kzalloc(
34780- (NR_CPUS * sizeof(struct us3_freq_percpu_info)),
34781- GFP_KERNEL);
34782- if (!us3_freq_table)
34783- goto err_out;
34784-
34785- driver->init = us3_freq_cpu_init;
34786- driver->verify = us3_freq_verify;
34787- driver->target = us3_freq_target;
34788- driver->get = us3_freq_get;
34789- driver->exit = us3_freq_cpu_exit;
34790- driver->owner = THIS_MODULE,
34791- strcpy(driver->name, "UltraSPARC-III");
34792-
34793- cpufreq_us3_driver = driver;
34794- ret = cpufreq_register_driver(driver);
34795- if (ret)
34796- goto err_out;
34797-
34798- return 0;
34799-
34800-err_out:
34801- if (driver) {
34802- kfree(driver);
34803- cpufreq_us3_driver = NULL;
34804- }
34805- kfree(us3_freq_table);
34806- us3_freq_table = NULL;
34807- return ret;
34808- }
34809+ impl == PANTHER_IMPL))
34810+ return cpufreq_register_driver(&cpufreq_us3_driver);
34811
34812 return -ENODEV;
34813 }
34814
34815 static void __exit us3_freq_exit(void)
34816 {
34817- if (cpufreq_us3_driver) {
34818- cpufreq_unregister_driver(cpufreq_us3_driver);
34819- kfree(cpufreq_us3_driver);
34820- cpufreq_us3_driver = NULL;
34821- kfree(us3_freq_table);
34822- us3_freq_table = NULL;
34823- }
34824+ cpufreq_unregister_driver(&cpufreq_us3_driver);
34825 }
34826
34827 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
34617diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c 34828diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
34618index 3a953d5..f5993f6 100644 34829index 618e6f4..e89d915 100644
34619--- a/drivers/cpufreq/speedstep-centrino.c 34830--- a/drivers/cpufreq/speedstep-centrino.c
34620+++ b/drivers/cpufreq/speedstep-centrino.c 34831+++ b/drivers/cpufreq/speedstep-centrino.c
34621@@ -353,8 +353,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy) 34832@@ -353,8 +353,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
@@ -34633,10 +34844,10 @@ index 3a953d5..f5993f6 100644
34633 if (policy->cpu != 0) 34844 if (policy->cpu != 0)
34634 return -ENODEV; 34845 return -ENODEV;
34635diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c 34846diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
34636index eba6929..0f53baf 100644 34847index c3a93fe..e808f24 100644
34637--- a/drivers/cpuidle/cpuidle.c 34848--- a/drivers/cpuidle/cpuidle.c
34638+++ b/drivers/cpuidle/cpuidle.c 34849+++ b/drivers/cpuidle/cpuidle.c
34639@@ -277,7 +277,7 @@ static int poll_idle(struct cpuidle_device *dev, 34850@@ -254,7 +254,7 @@ static int poll_idle(struct cpuidle_device *dev,
34640 34851
34641 static void poll_idle_init(struct cpuidle_driver *drv) 34852 static void poll_idle_init(struct cpuidle_driver *drv)
34642 { 34853 {
@@ -34724,45 +34935,11 @@ index b70709b..1d8d02a 100644
34724 .notifier_call = sh_dmae_nmi_handler, 34935 .notifier_call = sh_dmae_nmi_handler,
34725 34936
34726 /* Run before NMI debug handler and KGDB */ 34937 /* Run before NMI debug handler and KGDB */
34727diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
34728index 27e86d9..89e1090 100644
34729--- a/drivers/edac/edac_mc.c
34730+++ b/drivers/edac/edac_mc.c
34731@@ -48,6 +48,8 @@ static LIST_HEAD(mc_devices);
34732 */
34733 static void const *edac_mc_owner;
34734
34735+static struct bus_type mc_bus[EDAC_MAX_MCS];
34736+
34737 unsigned edac_dimm_info_location(struct dimm_info *dimm, char *buf,
34738 unsigned len)
34739 {
34740@@ -723,6 +725,11 @@ int edac_mc_add_mc(struct mem_ctl_info *mci)
34741 int ret = -EINVAL;
34742 edac_dbg(0, "\n");
34743
34744+ if (mci->mc_idx >= EDAC_MAX_MCS) {
34745+ pr_warn_once("Too many memory controllers: %d\n", mci->mc_idx);
34746+ return -ENODEV;
34747+ }
34748+
34749 #ifdef CONFIG_EDAC_DEBUG
34750 if (edac_debug_level >= 3)
34751 edac_mc_dump_mci(mci);
34752@@ -762,6 +769,8 @@ int edac_mc_add_mc(struct mem_ctl_info *mci)
34753 /* set load time so that error rate can be tracked */
34754 mci->start_time = jiffies;
34755
34756+ mci->bus = &mc_bus[mci->mc_idx];
34757+
34758 if (edac_create_sysfs_mci_device(mci)) {
34759 edac_mc_printk(mci, KERN_WARNING,
34760 "failed to create sysfs device\n");
34761diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c 34938diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
34762index 769d92e..8baa11a 100644 34939index c4d700a..0b57abd 100644
34763--- a/drivers/edac/edac_mc_sysfs.c 34940--- a/drivers/edac/edac_mc_sysfs.c
34764+++ b/drivers/edac/edac_mc_sysfs.c 34941+++ b/drivers/edac/edac_mc_sysfs.c
34765@@ -148,7 +148,7 @@ static const char *edac_caps[] = { 34942@@ -148,7 +148,7 @@ static const char * const edac_caps[] = {
34766 struct dev_ch_attribute { 34943 struct dev_ch_attribute {
34767 struct device_attribute attr; 34944 struct device_attribute attr;
34768 int channel; 34945 int channel;
@@ -34771,60 +34948,7 @@ index 769d92e..8baa11a 100644
34771 34948
34772 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \ 34949 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
34773 struct dev_ch_attribute dev_attr_legacy_##_name = \ 34950 struct dev_ch_attribute dev_attr_legacy_##_name = \
34774@@ -370,7 +370,7 @@ static int edac_create_csrow_object(struct mem_ctl_info *mci, 34951@@ -1005,14 +1005,16 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
34775 return -ENODEV;
34776
34777 csrow->dev.type = &csrow_attr_type;
34778- csrow->dev.bus = &mci->bus;
34779+ csrow->dev.bus = mci->bus;
34780 device_initialize(&csrow->dev);
34781 csrow->dev.parent = &mci->dev;
34782 csrow->mci = mci;
34783@@ -605,7 +605,7 @@ static int edac_create_dimm_object(struct mem_ctl_info *mci,
34784 dimm->mci = mci;
34785
34786 dimm->dev.type = &dimm_attr_type;
34787- dimm->dev.bus = &mci->bus;
34788+ dimm->dev.bus = mci->bus;
34789 device_initialize(&dimm->dev);
34790
34791 dimm->dev.parent = &mci->dev;
34792@@ -975,11 +975,13 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
34793 * The memory controller needs its own bus, in order to avoid
34794 * namespace conflicts at /sys/bus/edac.
34795 */
34796- mci->bus.name = kasprintf(GFP_KERNEL, "mc%d", mci->mc_idx);
34797- if (!mci->bus.name)
34798+ mci->bus->name = kasprintf(GFP_KERNEL, "mc%d", mci->mc_idx);
34799+ if (!mci->bus->name)
34800 return -ENOMEM;
34801- edac_dbg(0, "creating bus %s\n", mci->bus.name);
34802- err = bus_register(&mci->bus);
34803+
34804+ edac_dbg(0, "creating bus %s\n", mci->bus->name);
34805+
34806+ err = bus_register(mci->bus);
34807 if (err < 0)
34808 return err;
34809
34810@@ -988,7 +990,7 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
34811 device_initialize(&mci->dev);
34812
34813 mci->dev.parent = mci_pdev;
34814- mci->dev.bus = &mci->bus;
34815+ mci->dev.bus = mci->bus;
34816 dev_set_name(&mci->dev, "mc%d", mci->mc_idx);
34817 dev_set_drvdata(&mci->dev, mci);
34818 pm_runtime_forbid(&mci->dev);
34819@@ -997,20 +999,22 @@ int edac_create_sysfs_mci_device(struct mem_ctl_info *mci)
34820 err = device_add(&mci->dev);
34821 if (err < 0) {
34822 edac_dbg(1, "failure: create device %s\n", dev_name(&mci->dev));
34823- bus_unregister(&mci->bus);
34824- kfree(mci->bus.name);
34825+ bus_unregister(mci->bus);
34826+ kfree(mci->bus->name);
34827 return err;
34828 } 34952 }
34829 34953
34830 if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) { 34954 if (mci->set_sdram_scrub_rate || mci->get_sdram_scrub_rate) {
@@ -34845,28 +34969,6 @@ index 769d92e..8baa11a 100644
34845 err = device_create_file(&mci->dev, 34969 err = device_create_file(&mci->dev,
34846 &dev_attr_sdram_scrub_rate); 34970 &dev_attr_sdram_scrub_rate);
34847 if (err) { 34971 if (err) {
34848@@ -1064,8 +1068,8 @@ fail:
34849 }
34850 fail2:
34851 device_unregister(&mci->dev);
34852- bus_unregister(&mci->bus);
34853- kfree(mci->bus.name);
34854+ bus_unregister(mci->bus);
34855+ kfree(mci->bus->name);
34856 return err;
34857 }
34858
34859@@ -1098,8 +1102,8 @@ void edac_unregister_sysfs(struct mem_ctl_info *mci)
34860 {
34861 edac_dbg(1, "Unregistering device %s\n", dev_name(&mci->dev));
34862 device_unregister(&mci->dev);
34863- bus_unregister(&mci->bus);
34864- kfree(mci->bus.name);
34865+ bus_unregister(mci->bus);
34866+ kfree(mci->bus->name);
34867 }
34868
34869 static void mc_attr_release(struct device *dev)
34870diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c 34972diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
34871index e8658e4..22746d6 100644 34973index e8658e4..22746d6 100644
34872--- a/drivers/edac/edac_pci_sysfs.c 34974--- a/drivers/edac/edac_pci_sysfs.c
@@ -34963,19 +35065,6 @@ index e8658e4..22746d6 100644
34963 panic("EDAC: PCI Parity Error"); 35065 panic("EDAC: PCI Parity Error");
34964 } 35066 }
34965 } 35067 }
34966diff --git a/drivers/edac/i5100_edac.c b/drivers/edac/i5100_edac.c
34967index 1b63517..157b934 100644
34968--- a/drivers/edac/i5100_edac.c
34969+++ b/drivers/edac/i5100_edac.c
34970@@ -974,7 +974,7 @@ static int i5100_setup_debugfs(struct mem_ctl_info *mci)
34971 if (!i5100_debugfs)
34972 return -ENODEV;
34973
34974- priv->debugfs = debugfs_create_dir(mci->bus.name, i5100_debugfs);
34975+ priv->debugfs = debugfs_create_dir(mci->bus->name, i5100_debugfs);
34976
34977 if (!priv->debugfs)
34978 return -ENOMEM;
34979diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h 35068diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
34980index 51b7e3a..aa8a3e8 100644 35069index 51b7e3a..aa8a3e8 100644
34981--- a/drivers/edac/mce_amd.h 35070--- a/drivers/edac/mce_amd.h
@@ -35002,22 +35091,8 @@ index 57ea7f4..789e3c3 100644
35002 35091
35003 card->driver->update_phy_reg(card, 4, 35092 card->driver->update_phy_reg(card, 4,
35004 PHY_LINK_ACTIVE | PHY_CONTENDER, 0); 35093 PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
35005diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c
35006index 27ac423..13573e8 100644
35007--- a/drivers/firewire/core-cdev.c
35008+++ b/drivers/firewire/core-cdev.c
35009@@ -1366,8 +1366,7 @@ static int init_iso_resource(struct client *client,
35010 int ret;
35011
35012 if ((request->channels == 0 && request->bandwidth == 0) ||
35013- request->bandwidth > BANDWIDTH_AVAILABLE_INITIAL ||
35014- request->bandwidth < 0)
35015+ request->bandwidth > BANDWIDTH_AVAILABLE_INITIAL)
35016 return -EINVAL;
35017
35018 r = kmalloc(sizeof(*r), GFP_KERNEL);
35019diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c 35094diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
35020index 03ce7d9..b70f5da 100644 35095index 664a6ff..af13580 100644
35021--- a/drivers/firewire/core-device.c 35096--- a/drivers/firewire/core-device.c
35022+++ b/drivers/firewire/core-device.c 35097+++ b/drivers/firewire/core-device.c
35023@@ -232,7 +232,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma); 35098@@ -232,7 +232,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma);
@@ -35067,10 +35142,10 @@ index 94a58a0..f5eba42 100644
35067 container_of(_dev_attr, struct dmi_device_attribute, dev_attr) 35142 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
35068 35143
35069diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c 35144diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
35070index 4cd392d..4b629e1 100644 35145index b95159b..841ae55 100644
35071--- a/drivers/firmware/dmi_scan.c 35146--- a/drivers/firmware/dmi_scan.c
35072+++ b/drivers/firmware/dmi_scan.c 35147+++ b/drivers/firmware/dmi_scan.c
35073@@ -490,11 +490,6 @@ void __init dmi_scan_machine(void) 35148@@ -497,11 +497,6 @@ void __init dmi_scan_machine(void)
35074 } 35149 }
35075 } 35150 }
35076 else { 35151 else {
@@ -35082,7 +35157,7 @@ index 4cd392d..4b629e1 100644
35082 p = dmi_ioremap(0xF0000, 0x10000); 35157 p = dmi_ioremap(0xF0000, 0x10000);
35083 if (p == NULL) 35158 if (p == NULL)
35084 goto error; 35159 goto error;
35085@@ -769,7 +764,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *), 35160@@ -786,7 +781,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
35086 if (buf == NULL) 35161 if (buf == NULL)
35087 return -1; 35162 return -1;
35088 35163
@@ -35091,22 +35166,39 @@ index 4cd392d..4b629e1 100644
35091 35166
35092 iounmap(buf); 35167 iounmap(buf);
35093 return 0; 35168 return 0;
35094diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c 35169diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
35095index f4baa11..7970c3a 100644 35170index 5145fa3..0d3babd 100644
35096--- a/drivers/firmware/efivars.c 35171--- a/drivers/firmware/efi/efi.c
35097+++ b/drivers/firmware/efivars.c 35172+++ b/drivers/firmware/efi/efi.c
35098@@ -139,7 +139,7 @@ struct efivar_attribute { 35173@@ -65,14 +65,16 @@ static struct attribute_group efi_subsys_attr_group = {
35099 }; 35174 };
35100 35175
35101 static struct efivars __efivars; 35176 static struct efivars generic_efivars;
35102-static struct efivar_operations ops; 35177-static struct efivar_operations generic_ops;
35103+static efivar_operations_no_const ops __read_only; 35178+static efivar_operations_no_const generic_ops __read_only;
35179
35180 static int generic_ops_register(void)
35181 {
35182- generic_ops.get_variable = efi.get_variable;
35183- generic_ops.set_variable = efi.set_variable;
35184- generic_ops.get_next_variable = efi.get_next_variable;
35185- generic_ops.query_variable_store = efi_query_variable_store;
35186+ pax_open_kernel();
35187+ *(void **)&generic_ops.get_variable = efi.get_variable;
35188+ *(void **)&generic_ops.set_variable = efi.set_variable;
35189+ *(void **)&generic_ops.get_next_variable = efi.get_next_variable;
35190+ *(void **)&generic_ops.query_variable_store = efi_query_variable_store;
35191+ pax_close_kernel();
35104 35192
35105 #define PSTORE_EFI_ATTRIBUTES \ 35193 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
35106 (EFI_VARIABLE_NON_VOLATILE | \ 35194 }
35107@@ -1844,7 +1844,7 @@ efivar_create_sysfs_entry(struct efivars *efivars, 35195diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
35196index 8bd1bb6..c48b0c6 100644
35197--- a/drivers/firmware/efi/efivars.c
35198+++ b/drivers/firmware/efi/efivars.c
35199@@ -452,7 +452,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
35108 static int 35200 static int
35109 create_efivars_bin_attributes(struct efivars *efivars) 35201 create_efivars_bin_attributes(void)
35110 { 35202 {
35111- struct bin_attribute *attr; 35203- struct bin_attribute *attr;
35112+ bin_attribute_no_const *attr; 35204+ bin_attribute_no_const *attr;
@@ -35129,7 +35221,7 @@ index 2a90ba6..07f3733 100644
35129 ret = sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr); 35221 ret = sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
35130 35222
35131diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c 35223diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
35132index de3c317..b7cd029 100644 35224index e16d932..f0206ef 100644
35133--- a/drivers/gpio/gpio-ich.c 35225--- a/drivers/gpio/gpio-ich.c
35134+++ b/drivers/gpio/gpio-ich.c 35226+++ b/drivers/gpio/gpio-ich.c
35135@@ -69,7 +69,7 @@ struct ichx_desc { 35227@@ -69,7 +69,7 @@ struct ichx_desc {
@@ -35155,10 +35247,10 @@ index 9902732..64b62dd 100644
35155 return -EINVAL; 35247 return -EINVAL;
35156 } 35248 }
35157diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c 35249diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
35158index 7b2d378..cc947ea 100644 35250index ed1334e..ee0dd42 100644
35159--- a/drivers/gpu/drm/drm_crtc_helper.c 35251--- a/drivers/gpu/drm/drm_crtc_helper.c
35160+++ b/drivers/gpu/drm/drm_crtc_helper.c 35252+++ b/drivers/gpu/drm/drm_crtc_helper.c
35161@@ -319,7 +319,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder, 35253@@ -321,7 +321,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
35162 struct drm_crtc *tmp; 35254 struct drm_crtc *tmp;
35163 int crtc_mask = 1; 35255 int crtc_mask = 1;
35164 35256
@@ -35168,7 +35260,7 @@ index 7b2d378..cc947ea 100644
35168 dev = crtc->dev; 35260 dev = crtc->dev;
35169 35261
35170diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c 35262diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
35171index 25f91cd..a376f55 100644 35263index 9cc247f..36aa285 100644
35172--- a/drivers/gpu/drm/drm_drv.c 35264--- a/drivers/gpu/drm/drm_drv.c
35173+++ b/drivers/gpu/drm/drm_drv.c 35265+++ b/drivers/gpu/drm/drm_drv.c
35174@@ -306,7 +306,7 @@ module_exit(drm_core_exit); 35266@@ -306,7 +306,7 @@ module_exit(drm_core_exit);
@@ -35183,7 +35275,7 @@ index 25f91cd..a376f55 100644
35183@@ -376,7 +376,7 @@ long drm_ioctl(struct file *filp, 35275@@ -376,7 +376,7 @@ long drm_ioctl(struct file *filp,
35184 struct drm_file *file_priv = filp->private_data; 35276 struct drm_file *file_priv = filp->private_data;
35185 struct drm_device *dev; 35277 struct drm_device *dev;
35186 struct drm_ioctl_desc *ioctl; 35278 const struct drm_ioctl_desc *ioctl = NULL;
35187- drm_ioctl_t *func; 35279- drm_ioctl_t *func;
35188+ drm_ioctl_no_const_t func; 35280+ drm_ioctl_no_const_t func;
35189 unsigned int nr = DRM_IOCTL_NR(cmd); 35281 unsigned int nr = DRM_IOCTL_NR(cmd);
@@ -35197,29 +35289,7 @@ index 25f91cd..a376f55 100644
35197+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_IOCTLS]); 35289+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_IOCTLS]);
35198 ++file_priv->ioctl_count; 35290 ++file_priv->ioctl_count;
35199 35291
35200 DRM_DEBUG("pid=%d, cmd=0x%02x, nr=0x%02x, dev 0x%lx, auth=%d\n", 35292 if ((nr >= DRM_CORE_IOCTL_COUNT) &&
35201diff --git a/drivers/gpu/drm/drm_encoder_slave.c b/drivers/gpu/drm/drm_encoder_slave.c
35202index 48c52f7..0cfb60f 100644
35203--- a/drivers/gpu/drm/drm_encoder_slave.c
35204+++ b/drivers/gpu/drm/drm_encoder_slave.c
35205@@ -54,16 +54,12 @@ int drm_i2c_encoder_init(struct drm_device *dev,
35206 struct i2c_adapter *adap,
35207 const struct i2c_board_info *info)
35208 {
35209- char modalias[sizeof(I2C_MODULE_PREFIX)
35210- + I2C_NAME_SIZE];
35211 struct module *module = NULL;
35212 struct i2c_client *client;
35213 struct drm_i2c_encoder_driver *encoder_drv;
35214 int err = 0;
35215
35216- snprintf(modalias, sizeof(modalias),
35217- "%s%s", I2C_MODULE_PREFIX, info->type);
35218- request_module(modalias);
35219+ request_module("%s%s", I2C_MODULE_PREFIX, info->type);
35220
35221 client = i2c_new_device(adap, info);
35222 if (!client) {
35223diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c 35293diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
35224index 429e07d..e681a2c 100644 35294index 429e07d..e681a2c 100644
35225--- a/drivers/gpu/drm/drm_fops.c 35295--- a/drivers/gpu/drm/drm_fops.c
@@ -35486,7 +35556,7 @@ index d752c96..fe08455 100644
35486 if (drm_lock_free(&master->lock, lock->context)) { 35556 if (drm_lock_free(&master->lock, lock->context)) {
35487 /* FIXME: Should really bail out here. */ 35557 /* FIXME: Should really bail out here. */
35488diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c 35558diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
35489index 7d30802..42c6cbb 100644 35559index 16f3ec5..b28f9ca 100644
35490--- a/drivers/gpu/drm/drm_stub.c 35560--- a/drivers/gpu/drm/drm_stub.c
35491+++ b/drivers/gpu/drm/drm_stub.c 35561+++ b/drivers/gpu/drm/drm_stub.c
35492@@ -501,7 +501,7 @@ void drm_unplug_dev(struct drm_device *dev) 35562@@ -501,7 +501,7 @@ void drm_unplug_dev(struct drm_device *dev)
@@ -35553,7 +35623,7 @@ index 6e0acad..93c8289 100644
35553 int front_offset; 35623 int front_offset;
35554 } drm_i810_private_t; 35624 } drm_i810_private_t;
35555diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c 35625diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
35556index 7299ea4..5314487 100644 35626index e913d32..4d9b351 100644
35557--- a/drivers/gpu/drm/i915/i915_debugfs.c 35627--- a/drivers/gpu/drm/i915/i915_debugfs.c
35558+++ b/drivers/gpu/drm/i915/i915_debugfs.c 35628+++ b/drivers/gpu/drm/i915/i915_debugfs.c
35559@@ -499,7 +499,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data) 35629@@ -499,7 +499,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
@@ -35566,7 +35636,7 @@ index 7299ea4..5314487 100644
35566 if (IS_GEN6(dev) || IS_GEN7(dev)) { 35636 if (IS_GEN6(dev) || IS_GEN7(dev)) {
35567 seq_printf(m, 35637 seq_printf(m,
35568diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c 35638diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
35569index 4fa6beb..f930fec 100644 35639index 3b315ba..aac280f 100644
35570--- a/drivers/gpu/drm/i915/i915_dma.c 35640--- a/drivers/gpu/drm/i915/i915_dma.c
35571+++ b/drivers/gpu/drm/i915/i915_dma.c 35641+++ b/drivers/gpu/drm/i915/i915_dma.c
35572@@ -1259,7 +1259,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev) 35642@@ -1259,7 +1259,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
@@ -35579,10 +35649,10 @@ index 4fa6beb..f930fec 100644
35579 return can_switch; 35649 return can_switch;
35580 } 35650 }
35581diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h 35651diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
35582index ef99b1c..09ce7fb 100644 35652index 9669a0b..bb65176 100644
35583--- a/drivers/gpu/drm/i915/i915_drv.h 35653--- a/drivers/gpu/drm/i915/i915_drv.h
35584+++ b/drivers/gpu/drm/i915/i915_drv.h 35654+++ b/drivers/gpu/drm/i915/i915_drv.h
35585@@ -893,7 +893,7 @@ typedef struct drm_i915_private { 35655@@ -915,7 +915,7 @@ typedef struct drm_i915_private {
35586 drm_dma_handle_t *status_page_dmah; 35656 drm_dma_handle_t *status_page_dmah;
35587 struct resource mch_res; 35657 struct resource mch_res;
35588 35658
@@ -35591,7 +35661,7 @@ index ef99b1c..09ce7fb 100644
35591 35661
35592 /* protects the irq masks */ 35662 /* protects the irq masks */
35593 spinlock_t irq_lock; 35663 spinlock_t irq_lock;
35594@@ -1775,7 +1775,7 @@ extern struct i2c_adapter *intel_gmbus_get_adapter( 35664@@ -1811,7 +1811,7 @@ extern struct i2c_adapter *intel_gmbus_get_adapter(
35595 struct drm_i915_private *dev_priv, unsigned port); 35665 struct drm_i915_private *dev_priv, unsigned port);
35596 extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed); 35666 extern void intel_gmbus_set_speed(struct i2c_adapter *adapter, int speed);
35597 extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit); 35667 extern void intel_gmbus_force_bit(struct i2c_adapter *adapter, bool force_bit);
@@ -35601,10 +35671,10 @@ index ef99b1c..09ce7fb 100644
35601 return container_of(adapter, struct intel_gmbus, adapter)->force_bit; 35671 return container_of(adapter, struct intel_gmbus, adapter)->force_bit;
35602 } 35672 }
35603diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c 35673diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
35604index 9a48e1a..f0cbc3e 100644 35674index 117ce38..eefd237 100644
35605--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 35675--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
35606+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c 35676+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
35607@@ -729,9 +729,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec) 35677@@ -727,9 +727,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
35608 35678
35609 static int 35679 static int
35610 validate_exec_list(struct drm_i915_gem_exec_object2 *exec, 35680 validate_exec_list(struct drm_i915_gem_exec_object2 *exec,
@@ -35616,15 +35686,6 @@ index 9a48e1a..f0cbc3e 100644
35616 int relocs_total = 0; 35686 int relocs_total = 0;
35617 int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry); 35687 int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
35618 35688
35619@@ -1195,7 +1195,7 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
35620 return -ENOMEM;
35621 }
35622 ret = copy_from_user(exec2_list,
35623- (struct drm_i915_relocation_entry __user *)
35624+ (struct drm_i915_gem_exec_object2 __user *)
35625 (uintptr_t) args->buffers_ptr,
35626 sizeof(*exec2_list) * args->buffer_count);
35627 if (ret != 0) {
35628diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c 35689diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
35629index 3c59584..500f2e9 100644 35690index 3c59584..500f2e9 100644
35630--- a/drivers/gpu/drm/i915/i915_ioc32.c 35691--- a/drivers/gpu/drm/i915/i915_ioc32.c
@@ -35661,10 +35722,10 @@ index 3c59584..500f2e9 100644
35661 35722
35662 return ret; 35723 return ret;
35663diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c 35724diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
35664index 3c7bb04..182e049 100644 35725index e5e32869..1678f36 100644
35665--- a/drivers/gpu/drm/i915/i915_irq.c 35726--- a/drivers/gpu/drm/i915/i915_irq.c
35666+++ b/drivers/gpu/drm/i915/i915_irq.c 35727+++ b/drivers/gpu/drm/i915/i915_irq.c
35667@@ -549,7 +549,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg) 35728@@ -670,7 +670,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
35668 int pipe; 35729 int pipe;
35669 u32 pipe_stats[I915_MAX_PIPES]; 35730 u32 pipe_stats[I915_MAX_PIPES];
35670 35731
@@ -35673,7 +35734,7 @@ index 3c7bb04..182e049 100644
35673 35734
35674 while (true) { 35735 while (true) {
35675 iir = I915_READ(VLV_IIR); 35736 iir = I915_READ(VLV_IIR);
35676@@ -705,7 +705,7 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg) 35737@@ -835,7 +835,7 @@ static irqreturn_t ivybridge_irq_handler(int irq, void *arg)
35677 irqreturn_t ret = IRQ_NONE; 35738 irqreturn_t ret = IRQ_NONE;
35678 int i; 35739 int i;
35679 35740
@@ -35682,7 +35743,7 @@ index 3c7bb04..182e049 100644
35682 35743
35683 /* disable master interrupt before clearing iir */ 35744 /* disable master interrupt before clearing iir */
35684 de_ier = I915_READ(DEIER); 35745 de_ier = I915_READ(DEIER);
35685@@ -791,7 +791,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg) 35746@@ -925,7 +925,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
35686 int ret = IRQ_NONE; 35747 int ret = IRQ_NONE;
35687 u32 de_iir, gt_iir, de_ier, pm_iir, sde_ier; 35748 u32 de_iir, gt_iir, de_ier, pm_iir, sde_ier;
35688 35749
@@ -35691,7 +35752,7 @@ index 3c7bb04..182e049 100644
35691 35752
35692 /* disable master interrupt before clearing iir */ 35753 /* disable master interrupt before clearing iir */
35693 de_ier = I915_READ(DEIER); 35754 de_ier = I915_READ(DEIER);
35694@@ -1886,7 +1886,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev) 35755@@ -2089,7 +2089,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
35695 { 35756 {
35696 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 35757 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
35697 35758
@@ -35700,7 +35761,7 @@ index 3c7bb04..182e049 100644
35700 35761
35701 I915_WRITE(HWSTAM, 0xeffe); 35762 I915_WRITE(HWSTAM, 0xeffe);
35702 35763
35703@@ -1912,7 +1912,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev) 35764@@ -2124,7 +2124,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev)
35704 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 35765 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
35705 int pipe; 35766 int pipe;
35706 35767
@@ -35709,7 +35770,7 @@ index 3c7bb04..182e049 100644
35709 35770
35710 /* VLV magic */ 35771 /* VLV magic */
35711 I915_WRITE(VLV_IMR, 0); 35772 I915_WRITE(VLV_IMR, 0);
35712@@ -2208,7 +2208,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev) 35773@@ -2411,7 +2411,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev)
35713 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 35774 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
35714 int pipe; 35775 int pipe;
35715 35776
@@ -35718,7 +35779,7 @@ index 3c7bb04..182e049 100644
35718 35779
35719 for_each_pipe(pipe) 35780 for_each_pipe(pipe)
35720 I915_WRITE(PIPESTAT(pipe), 0); 35781 I915_WRITE(PIPESTAT(pipe), 0);
35721@@ -2259,7 +2259,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg) 35782@@ -2490,7 +2490,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
35722 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT | 35783 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
35723 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT; 35784 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
35724 35785
@@ -35727,7 +35788,7 @@ index 3c7bb04..182e049 100644
35727 35788
35728 iir = I915_READ16(IIR); 35789 iir = I915_READ16(IIR);
35729 if (iir == 0) 35790 if (iir == 0)
35730@@ -2344,7 +2344,7 @@ static void i915_irq_preinstall(struct drm_device * dev) 35791@@ -2565,7 +2565,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
35731 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 35792 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
35732 int pipe; 35793 int pipe;
35733 35794
@@ -35736,8 +35797,8 @@ index 3c7bb04..182e049 100644
35736 35797
35737 if (I915_HAS_HOTPLUG(dev)) { 35798 if (I915_HAS_HOTPLUG(dev)) {
35738 I915_WRITE(PORT_HOTPLUG_EN, 0); 35799 I915_WRITE(PORT_HOTPLUG_EN, 0);
35739@@ -2448,7 +2448,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg) 35800@@ -2664,7 +2664,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
35740 }; 35801 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
35741 int pipe, ret = IRQ_NONE; 35802 int pipe, ret = IRQ_NONE;
35742 35803
35743- atomic_inc(&dev_priv->irq_received); 35804- atomic_inc(&dev_priv->irq_received);
@@ -35745,7 +35806,7 @@ index 3c7bb04..182e049 100644
35745 35806
35746 iir = I915_READ(IIR); 35807 iir = I915_READ(IIR);
35747 do { 35808 do {
35748@@ -2574,7 +2574,7 @@ static void i965_irq_preinstall(struct drm_device * dev) 35809@@ -2791,7 +2791,7 @@ static void i965_irq_preinstall(struct drm_device * dev)
35749 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 35810 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
35750 int pipe; 35811 int pipe;
35751 35812
@@ -35754,9 +35815,9 @@ index 3c7bb04..182e049 100644
35754 35815
35755 I915_WRITE(PORT_HOTPLUG_EN, 0); 35816 I915_WRITE(PORT_HOTPLUG_EN, 0);
35756 I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT)); 35817 I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
35757@@ -2690,7 +2690,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg) 35818@@ -2898,7 +2898,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
35758 int irq_received; 35819 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
35759 int ret = IRQ_NONE, pipe; 35820 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
35760 35821
35761- atomic_inc(&dev_priv->irq_received); 35822- atomic_inc(&dev_priv->irq_received);
35762+ atomic_inc_unchecked(&dev_priv->irq_received); 35823+ atomic_inc_unchecked(&dev_priv->irq_received);
@@ -35764,10 +35825,10 @@ index 3c7bb04..182e049 100644
35764 iir = I915_READ(IIR); 35825 iir = I915_READ(IIR);
35765 35826
35766diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c 35827diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
35767index 2ab65b4..acbd821 100644 35828index 56746dc..b5a214f 100644
35768--- a/drivers/gpu/drm/i915/intel_display.c 35829--- a/drivers/gpu/drm/i915/intel_display.c
35769+++ b/drivers/gpu/drm/i915/intel_display.c 35830+++ b/drivers/gpu/drm/i915/intel_display.c
35770@@ -8742,13 +8742,13 @@ struct intel_quirk { 35831@@ -8919,13 +8919,13 @@ struct intel_quirk {
35771 int subsystem_vendor; 35832 int subsystem_vendor;
35772 int subsystem_device; 35833 int subsystem_device;
35773 void (*hook)(struct drm_device *dev); 35834 void (*hook)(struct drm_device *dev);
@@ -35783,7 +35844,7 @@ index 2ab65b4..acbd821 100644
35783 35844
35784 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) 35845 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
35785 { 35846 {
35786@@ -8756,18 +8756,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id) 35847@@ -8933,18 +8933,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
35787 return 1; 35848 return 1;
35788 } 35849 }
35789 35850
@@ -35906,7 +35967,7 @@ index 598c281..60d590e 100644
35906 35967
35907 *sequence = cur_fence; 35968 *sequence = cur_fence;
35908diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c 35969diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
35909index 50a6dd0..ea66ed8 100644 35970index 6aa2137..fe8dc55 100644
35910--- a/drivers/gpu/drm/nouveau/nouveau_bios.c 35971--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
35911+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c 35972+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
35912@@ -965,7 +965,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios, 35973@@ -965,7 +965,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
@@ -35919,10 +35980,10 @@ index 50a6dd0..ea66ed8 100644
35919 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry }) 35980 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
35920 35981
35921diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h 35982diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
35922index 9c39baf..30a22be 100644 35983index f2b30f8..d0f9a95 100644
35923--- a/drivers/gpu/drm/nouveau/nouveau_drm.h 35984--- a/drivers/gpu/drm/nouveau/nouveau_drm.h
35924+++ b/drivers/gpu/drm/nouveau/nouveau_drm.h 35985+++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
35925@@ -81,7 +81,7 @@ struct nouveau_drm { 35986@@ -92,7 +92,7 @@ struct nouveau_drm {
35926 struct drm_global_reference mem_global_ref; 35987 struct drm_global_reference mem_global_ref;
35927 struct ttm_bo_global_ref bo_global_ref; 35988 struct ttm_bo_global_ref bo_global_ref;
35928 struct ttm_bo_device bdev; 35989 struct ttm_bo_device bdev;
@@ -35979,6 +36040,71 @@ index 25d3495..d81aaf6 100644
35979 spin_unlock(&dev->count_lock); 36040 spin_unlock(&dev->count_lock);
35980 return can_switch; 36041 return can_switch;
35981 } 36042 }
36043diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
36044index 489cb8c..0b8d0d3 100644
36045--- a/drivers/gpu/drm/qxl/qxl_ttm.c
36046+++ b/drivers/gpu/drm/qxl/qxl_ttm.c
36047@@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
36048 }
36049 }
36050
36051-static struct vm_operations_struct qxl_ttm_vm_ops;
36052+static vm_operations_struct_no_const qxl_ttm_vm_ops __read_only;
36053 static const struct vm_operations_struct *ttm_vm_ops;
36054
36055 static int qxl_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
36056@@ -147,8 +147,10 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
36057 return r;
36058 if (unlikely(ttm_vm_ops == NULL)) {
36059 ttm_vm_ops = vma->vm_ops;
36060+ pax_open_kernel();
36061 qxl_ttm_vm_ops = *ttm_vm_ops;
36062 qxl_ttm_vm_ops.fault = &qxl_ttm_fault;
36063+ pax_close_kernel();
36064 }
36065 vma->vm_ops = &qxl_ttm_vm_ops;
36066 return 0;
36067@@ -556,25 +558,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
36068 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
36069 {
36070 #if defined(CONFIG_DEBUG_FS)
36071- static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES];
36072- static char qxl_mem_types_names[QXL_DEBUGFS_MEM_TYPES][32];
36073- unsigned i;
36074+ static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES] = {
36075+ {
36076+ .name = "qxl_mem_mm",
36077+ .show = &qxl_mm_dump_table,
36078+ },
36079+ {
36080+ .name = "qxl_surf_mm",
36081+ .show = &qxl_mm_dump_table,
36082+ }
36083+ };
36084
36085- for (i = 0; i < QXL_DEBUGFS_MEM_TYPES; i++) {
36086- if (i == 0)
36087- sprintf(qxl_mem_types_names[i], "qxl_mem_mm");
36088- else
36089- sprintf(qxl_mem_types_names[i], "qxl_surf_mm");
36090- qxl_mem_types_list[i].name = qxl_mem_types_names[i];
36091- qxl_mem_types_list[i].show = &qxl_mm_dump_table;
36092- qxl_mem_types_list[i].driver_features = 0;
36093- if (i == 0)
36094- qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
36095- else
36096- qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
36097+ pax_open_kernel();
36098+ *(void **)&qxl_mem_types_list[0].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
36099+ *(void **)&qxl_mem_types_list[1].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
36100+ pax_close_kernel();
36101
36102- }
36103- return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
36104+ return qxl_debugfs_add_files(qdev, qxl_mem_types_list, QXL_DEBUGFS_MEM_TYPES);
36105 #else
36106 return 0;
36107 #endif
35982diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c 36108diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
35983index d4660cf..70dbe65 100644 36109index d4660cf..70dbe65 100644
35984--- a/drivers/gpu/drm/r128/r128_cce.c 36110--- a/drivers/gpu/drm/r128/r128_cce.c
@@ -36109,10 +36235,10 @@ index 5a82b6b..9e69c73 100644
36109 if (regcomp 36235 if (regcomp
36110 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) { 36236 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
36111diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c 36237diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
36112index 5073665..31d15a6 100644 36238index b0dc0b6..a9bfe9c 100644
36113--- a/drivers/gpu/drm/radeon/radeon_device.c 36239--- a/drivers/gpu/drm/radeon/radeon_device.c
36114+++ b/drivers/gpu/drm/radeon/radeon_device.c 36240+++ b/drivers/gpu/drm/radeon/radeon_device.c
36115@@ -976,7 +976,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev) 36241@@ -1014,7 +1014,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
36116 bool can_switch; 36242 bool can_switch;
36117 36243
36118 spin_lock(&dev->count_lock); 36244 spin_lock(&dev->count_lock);
@@ -36225,7 +36351,7 @@ index 4d20910..6726b6d 100644
36225 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID); 36351 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
36226 36352
36227diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c 36353diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
36228index 6c0ce89..66f6d65 100644 36354index 6c0ce89..57a2529 100644
36229--- a/drivers/gpu/drm/radeon/radeon_ttm.c 36355--- a/drivers/gpu/drm/radeon/radeon_ttm.c
36230+++ b/drivers/gpu/drm/radeon/radeon_ttm.c 36356+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
36231@@ -782,7 +782,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size) 36357@@ -782,7 +782,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
@@ -36248,59 +36374,74 @@ index 6c0ce89..66f6d65 100644
36248 } 36374 }
36249 vma->vm_ops = &radeon_ttm_vm_ops; 36375 vma->vm_ops = &radeon_ttm_vm_ops;
36250 return 0; 36376 return 0;
36251@@ -862,28 +864,33 @@ static int radeon_ttm_debugfs_init(struct radeon_device *rdev) 36377@@ -853,38 +855,33 @@ static int radeon_mm_dump_table(struct seq_file *m, void *data)
36252 sprintf(radeon_mem_types_names[i], "radeon_vram_mm"); 36378 static int radeon_ttm_debugfs_init(struct radeon_device *rdev)
36253 else 36379 {
36254 sprintf(radeon_mem_types_names[i], "radeon_gtt_mm"); 36380 #if defined(CONFIG_DEBUG_FS)
36381- static struct drm_info_list radeon_mem_types_list[RADEON_DEBUGFS_MEM_TYPES+2];
36382- static char radeon_mem_types_names[RADEON_DEBUGFS_MEM_TYPES+2][32];
36383+ static struct drm_info_list radeon_mem_types_list[RADEON_DEBUGFS_MEM_TYPES+2] = {
36384+ {
36385+ .name = "radeon_vram_mm",
36386+ .show = &radeon_mm_dump_table,
36387+ },
36388+ {
36389+ .name = "radeon_gtt_mm",
36390+ .show = &radeon_mm_dump_table,
36391+ },
36392+ {
36393+ .name = "ttm_page_pool",
36394+ .show = &ttm_page_alloc_debugfs,
36395+ },
36396+ {
36397+ .name = "ttm_dma_page_pool",
36398+ .show = &ttm_dma_page_alloc_debugfs,
36399+ },
36400+ };
36401 unsigned i;
36402
36403- for (i = 0; i < RADEON_DEBUGFS_MEM_TYPES; i++) {
36404- if (i == 0)
36405- sprintf(radeon_mem_types_names[i], "radeon_vram_mm");
36406- else
36407- sprintf(radeon_mem_types_names[i], "radeon_gtt_mm");
36255- radeon_mem_types_list[i].name = radeon_mem_types_names[i]; 36408- radeon_mem_types_list[i].name = radeon_mem_types_names[i];
36256- radeon_mem_types_list[i].show = &radeon_mm_dump_table; 36409- radeon_mem_types_list[i].show = &radeon_mm_dump_table;
36257- radeon_mem_types_list[i].driver_features = 0; 36410- radeon_mem_types_list[i].driver_features = 0;
36258+ pax_open_kernel(); 36411- if (i == 0)
36259+ *(const char **)&radeon_mem_types_list[i].name = radeon_mem_types_names[i];
36260+ *(void **)&radeon_mem_types_list[i].show = &radeon_mm_dump_table;
36261+ *(u32 *)&radeon_mem_types_list[i].driver_features = 0;
36262 if (i == 0)
36263- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv; 36412- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv;
36264+ *(void **)&radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv; 36413- else
36265 else
36266- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_TT].priv; 36414- radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_TT].priv;
36267- 36415-
36268+ *(void **)&radeon_mem_types_list[i].data = rdev->mman.bdev.man[TTM_PL_TT].priv; 36416- }
36269+ pax_close_kernel(); 36417- /* Add ttm page pool to debugfs */
36270 } 36418- sprintf(radeon_mem_types_names[i], "ttm_page_pool");
36271 /* Add ttm page pool to debugfs */
36272 sprintf(radeon_mem_types_names[i], "ttm_page_pool");
36273- radeon_mem_types_list[i].name = radeon_mem_types_names[i]; 36419- radeon_mem_types_list[i].name = radeon_mem_types_names[i];
36274- radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs; 36420- radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs;
36275- radeon_mem_types_list[i].driver_features = 0; 36421- radeon_mem_types_list[i].driver_features = 0;
36276- radeon_mem_types_list[i++].data = NULL; 36422- radeon_mem_types_list[i++].data = NULL;
36277+ pax_open_kernel(); 36423+ pax_open_kernel();
36278+ *(const char **)&radeon_mem_types_list[i].name = radeon_mem_types_names[i]; 36424+ *(void **)&radeon_mem_types_list[0].data = rdev->mman.bdev.man[TTM_PL_VRAM].priv;
36279+ *(void **)&radeon_mem_types_list[i].show = &ttm_page_alloc_debugfs; 36425+ *(void **)&radeon_mem_types_list[1].data = rdev->mman.bdev.man[TTM_PL_TT].priv;
36280+ *(u32 *)&radeon_mem_types_list[i].driver_features = 0;
36281+ *(void **)&radeon_mem_types_list[i++].data = NULL;
36282+ pax_close_kernel(); 36426+ pax_close_kernel();
36283 #ifdef CONFIG_SWIOTLB 36427 #ifdef CONFIG_SWIOTLB
36284 if (swiotlb_nr_tbl()) { 36428- if (swiotlb_nr_tbl()) {
36285 sprintf(radeon_mem_types_names[i], "ttm_dma_page_pool"); 36429- sprintf(radeon_mem_types_names[i], "ttm_dma_page_pool");
36286- radeon_mem_types_list[i].name = radeon_mem_types_names[i]; 36430- radeon_mem_types_list[i].name = radeon_mem_types_names[i];
36287- radeon_mem_types_list[i].show = &ttm_dma_page_alloc_debugfs; 36431- radeon_mem_types_list[i].show = &ttm_dma_page_alloc_debugfs;
36288- radeon_mem_types_list[i].driver_features = 0; 36432- radeon_mem_types_list[i].driver_features = 0;
36289- radeon_mem_types_list[i++].data = NULL; 36433- radeon_mem_types_list[i++].data = NULL;
36290+ pax_open_kernel(); 36434- }
36291+ *(const char **)&radeon_mem_types_list[i].name = radeon_mem_types_names[i]; 36435+ if (swiotlb_nr_tbl())
36292+ *(void **)&radeon_mem_types_list[i].show = &ttm_dma_page_alloc_debugfs; 36436+ i++;
36293+ *(u32 *)&radeon_mem_types_list[i].driver_features = 0;
36294+ *(void **)&radeon_mem_types_list[i++].data = NULL;
36295+ pax_close_kernel();
36296 }
36297 #endif 36437 #endif
36298 return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i); 36438 return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
36439
36299diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c 36440diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
36300index fad6633..4ff94de 100644 36441index 55880d5..9e95342 100644
36301--- a/drivers/gpu/drm/radeon/rs690.c 36442--- a/drivers/gpu/drm/radeon/rs690.c
36302+++ b/drivers/gpu/drm/radeon/rs690.c 36443+++ b/drivers/gpu/drm/radeon/rs690.c
36303@@ -304,9 +304,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev, 36444@@ -327,9 +327,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
36304 if (rdev->pm.max_bandwidth.full > rdev->pm.sideport_bandwidth.full && 36445 if (rdev->pm.max_bandwidth.full > rdev->pm.sideport_bandwidth.full &&
36305 rdev->pm.sideport_bandwidth.full) 36446 rdev->pm.sideport_bandwidth.full)
36306 rdev->pm.max_bandwidth = rdev->pm.sideport_bandwidth; 36447 rdev->pm.max_bandwidth = rdev->pm.sideport_bandwidth;
@@ -36352,7 +36493,7 @@ index bd2a3b4..122d9ad 100644
36352 int shrink_pages = sc->nr_to_scan; 36493 int shrink_pages = sc->nr_to_scan;
36353 36494
36354diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c 36495diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
36355index 9f4be3d..cbc9fcc 100644 36496index dc0c065..58a0782 100644
36356--- a/drivers/gpu/drm/udl/udl_fb.c 36497--- a/drivers/gpu/drm/udl/udl_fb.c
36357+++ b/drivers/gpu/drm/udl/udl_fb.c 36498+++ b/drivers/gpu/drm/udl/udl_fb.c
36358@@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user) 36499@@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user)
@@ -36569,11 +36710,24 @@ index 8a8725c2..afed796 100644
36569 else { 36710 else {
36570 marker = list_first_entry(&queue->head, 36711 marker = list_first_entry(&queue->head,
36571 struct vmw_marker, head); 36712 struct vmw_marker, head);
36713diff --git a/drivers/gpu/host1x/drm/dc.c b/drivers/gpu/host1x/drm/dc.c
36714index 8c04943..4370ed9 100644
36715--- a/drivers/gpu/host1x/drm/dc.c
36716+++ b/drivers/gpu/host1x/drm/dc.c
36717@@ -999,7 +999,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
36718 }
36719
36720 for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
36721- dc->debugfs_files[i].data = dc;
36722+ *(void **)&dc->debugfs_files[i].data = dc;
36723
36724 err = drm_debugfs_create_files(dc->debugfs_files,
36725 ARRAY_SIZE(debugfs_files),
36572diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c 36726diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
36573index e6dbf09..3dd2540 100644 36727index 402f486..f862d7e 100644
36574--- a/drivers/hid/hid-core.c 36728--- a/drivers/hid/hid-core.c
36575+++ b/drivers/hid/hid-core.c 36729+++ b/drivers/hid/hid-core.c
36576@@ -2268,7 +2268,7 @@ EXPORT_SYMBOL_GPL(hid_ignore); 36730@@ -2275,7 +2275,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
36577 36731
36578 int hid_add_device(struct hid_device *hdev) 36732 int hid_add_device(struct hid_device *hdev)
36579 { 36733 {
@@ -36582,7 +36736,7 @@ index e6dbf09..3dd2540 100644
36582 int ret; 36736 int ret;
36583 36737
36584 if (WARN_ON(hdev->status & HID_STAT_ADDED)) 36738 if (WARN_ON(hdev->status & HID_STAT_ADDED))
36585@@ -2302,7 +2302,7 @@ int hid_add_device(struct hid_device *hdev) 36739@@ -2309,7 +2309,7 @@ int hid_add_device(struct hid_device *hdev)
36586 /* XXX hack, any other cleaner solution after the driver core 36740 /* XXX hack, any other cleaner solution after the driver core
36587 * is converted to allow more than 20 bytes as the device name? */ 36741 * is converted to allow more than 20 bytes as the device name? */
36588 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus, 36742 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
@@ -36620,7 +36774,7 @@ index 0b122f8..b1d8160 100644
36620 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount); 36774 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
36621 if (ret) 36775 if (ret)
36622diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c 36776diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
36623index 7311589..861e9ef 100644 36777index ae49237..380d4c9 100644
36624--- a/drivers/hv/hv.c 36778--- a/drivers/hv/hv.c
36625+++ b/drivers/hv/hv.c 36779+++ b/drivers/hv/hv.c
36626@@ -112,7 +112,7 @@ static u64 do_hypercall(u64 control, void *input, void *output) 36780@@ -112,7 +112,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
@@ -36685,7 +36839,7 @@ index 6351aba..dc4aaf4 100644
36685 int res = 0; 36839 int res = 0;
36686 36840
36687diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c 36841diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
36688index b41baff..4953e4d 100644 36842index 62c2e32..8f2859a 100644
36689--- a/drivers/hwmon/applesmc.c 36843--- a/drivers/hwmon/applesmc.c
36690+++ b/drivers/hwmon/applesmc.c 36844+++ b/drivers/hwmon/applesmc.c
36691@@ -1084,7 +1084,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num) 36845@@ -1084,7 +1084,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
@@ -36726,10 +36880,10 @@ index b25c643..a13460d 100644
36726 { 36880 {
36727 sysfs_attr_init(&attr->attr); 36881 sysfs_attr_init(&attr->attr);
36728diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c 36882diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
36729index 3f1e297..a6cafb5 100644 36883index 658ce3a..0d0c2f3 100644
36730--- a/drivers/hwmon/coretemp.c 36884--- a/drivers/hwmon/coretemp.c
36731+++ b/drivers/hwmon/coretemp.c 36885+++ b/drivers/hwmon/coretemp.c
36732@@ -791,7 +791,7 @@ static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb, 36886@@ -790,7 +790,7 @@ static int __cpuinit coretemp_cpu_callback(struct notifier_block *nfb,
36733 return NOTIFY_OK; 36887 return NOTIFY_OK;
36734 } 36888 }
36735 36889
@@ -36739,10 +36893,10 @@ index 3f1e297..a6cafb5 100644
36739 }; 36893 };
36740 36894
36741diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c 36895diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
36742index a14f634..2916ee2 100644 36896index 1429f6e..ee03d59 100644
36743--- a/drivers/hwmon/ibmaem.c 36897--- a/drivers/hwmon/ibmaem.c
36744+++ b/drivers/hwmon/ibmaem.c 36898+++ b/drivers/hwmon/ibmaem.c
36745@@ -925,7 +925,7 @@ static int aem_register_sensors(struct aem_data *data, 36899@@ -926,7 +926,7 @@ static int aem_register_sensors(struct aem_data *data,
36746 struct aem_rw_sensor_template *rw) 36900 struct aem_rw_sensor_template *rw)
36747 { 36901 {
36748 struct device *dev = &data->pdev->dev; 36902 struct device *dev = &data->pdev->dev;
@@ -36751,6 +36905,19 @@ index a14f634..2916ee2 100644
36751 int err; 36905 int err;
36752 36906
36753 /* Set up read-only sensors */ 36907 /* Set up read-only sensors */
36908diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
36909index 52b77af..aed1ddf 100644
36910--- a/drivers/hwmon/iio_hwmon.c
36911+++ b/drivers/hwmon/iio_hwmon.c
36912@@ -73,7 +73,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
36913 {
36914 struct device *dev = &pdev->dev;
36915 struct iio_hwmon_state *st;
36916- struct sensor_device_attribute *a;
36917+ sensor_device_attribute_no_const *a;
36918 int ret, i;
36919 int in_i = 1, temp_i = 1, curr_i = 1;
36920 enum iio_chan_type type;
36754diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c 36921diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
36755index 9add6092..ee7ba3f 100644 36922index 9add6092..ee7ba3f 100644
36756--- a/drivers/hwmon/pmbus/pmbus_core.c 36923--- a/drivers/hwmon/pmbus/pmbus_core.c
@@ -36866,7 +37033,7 @@ index 76f157b..9c0db1b 100644
36866 }; 37033 };
36867 37034
36868diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c 37035diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
36869index 378fcb5..5e91fa8 100644 37036index 07f01ac..d79ad3d 100644
36870--- a/drivers/i2c/busses/i2c-amd756-s4882.c 37037--- a/drivers/i2c/busses/i2c-amd756-s4882.c
36871+++ b/drivers/i2c/busses/i2c-amd756-s4882.c 37038+++ b/drivers/i2c/busses/i2c-amd756-s4882.c
36872@@ -43,7 +43,7 @@ 37039@@ -43,7 +43,7 @@
@@ -36879,7 +37046,7 @@ index 378fcb5..5e91fa8 100644
36879 /* Wrapper access functions for multiplexed SMBus */ 37046 /* Wrapper access functions for multiplexed SMBus */
36880 static DEFINE_MUTEX(amd756_lock); 37047 static DEFINE_MUTEX(amd756_lock);
36881diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c 37048diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
36882index 29015eb..af2d8e9 100644 37049index 2ca268d..c6acbdf 100644
36883--- a/drivers/i2c/busses/i2c-nforce2-s4985.c 37050--- a/drivers/i2c/busses/i2c-nforce2-s4985.c
36884+++ b/drivers/i2c/busses/i2c-nforce2-s4985.c 37051+++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
36885@@ -41,7 +41,7 @@ 37052@@ -41,7 +41,7 @@
@@ -36905,7 +37072,7 @@ index c3ccdea..5b3dc1a 100644
36905 if (IS_ERR(rdwr_pa[i].buf)) { 37072 if (IS_ERR(rdwr_pa[i].buf)) {
36906 res = PTR_ERR(rdwr_pa[i].buf); 37073 res = PTR_ERR(rdwr_pa[i].buf);
36907diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c 37074diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
36908index 8126824..55a2798 100644 37075index 2ff6204..218c16e 100644
36909--- a/drivers/ide/ide-cd.c 37076--- a/drivers/ide/ide-cd.c
36910+++ b/drivers/ide/ide-cd.c 37077+++ b/drivers/ide/ide-cd.c
36911@@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq) 37078@@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
@@ -36918,7 +37085,7 @@ index 8126824..55a2798 100644
36918 } 37085 }
36919 } 37086 }
36920diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c 37087diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
36921index 8848f16..f8e6dd8 100644 37088index e145931..08bfc59 100644
36922--- a/drivers/iio/industrialio-core.c 37089--- a/drivers/iio/industrialio-core.c
36923+++ b/drivers/iio/industrialio-core.c 37090+++ b/drivers/iio/industrialio-core.c
36924@@ -506,7 +506,7 @@ static ssize_t iio_write_channel_info(struct device *dev, 37091@@ -506,7 +506,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
@@ -37145,10 +37312,10 @@ index 9f5ad7c..588cd84 100644
37145 } 37312 }
37146 } 37313 }
37147diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c 37314diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
37148index 903a92d..9262548 100644 37315index 4cb8eb2..146bf60 100644
37149--- a/drivers/infiniband/hw/cxgb4/mem.c 37316--- a/drivers/infiniband/hw/cxgb4/mem.c
37150+++ b/drivers/infiniband/hw/cxgb4/mem.c 37317+++ b/drivers/infiniband/hw/cxgb4/mem.c
37151@@ -122,7 +122,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, 37318@@ -249,7 +249,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
37152 int err; 37319 int err;
37153 struct fw_ri_tpte tpt; 37320 struct fw_ri_tpte tpt;
37154 u32 stag_idx; 37321 u32 stag_idx;
@@ -37157,7 +37324,7 @@ index 903a92d..9262548 100644
37157 37324
37158 if (c4iw_fatal_error(rdev)) 37325 if (c4iw_fatal_error(rdev))
37159 return -EIO; 37326 return -EIO;
37160@@ -139,7 +139,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry, 37327@@ -266,7 +266,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
37161 if (rdev->stats.stag.cur > rdev->stats.stag.max) 37328 if (rdev->stats.stag.cur > rdev->stats.stag.max)
37162 rdev->stats.stag.max = rdev->stats.stag.cur; 37329 rdev->stats.stag.max = rdev->stats.stag.cur;
37163 mutex_unlock(&rdev->stats.lock); 37330 mutex_unlock(&rdev->stats.lock);
@@ -37561,7 +37728,7 @@ index 4166452..fc952c3 100644
37561 } 37728 }
37562 37729
37563diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c 37730diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
37564index 85cf4d1..05d8e71 100644 37731index 49eb511..a774366 100644
37565--- a/drivers/infiniband/hw/nes/nes_nic.c 37732--- a/drivers/infiniband/hw/nes/nes_nic.c
37566+++ b/drivers/infiniband/hw/nes/nes_nic.c 37733+++ b/drivers/infiniband/hw/nes/nes_nic.c
37567@@ -1273,39 +1273,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev, 37734@@ -1273,39 +1273,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
@@ -37797,10 +37964,10 @@ index 25fc597..558bf3b3 100644
37797 serio->dev.release = serio_release_port; 37964 serio->dev.release = serio_release_port;
37798 serio->dev.groups = serio_device_attr_groups; 37965 serio->dev.groups = serio_device_attr_groups;
37799diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c 37966diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
37800index b972d43..8943713 100644 37967index d8f98b1..f62a640 100644
37801--- a/drivers/iommu/iommu.c 37968--- a/drivers/iommu/iommu.c
37802+++ b/drivers/iommu/iommu.c 37969+++ b/drivers/iommu/iommu.c
37803@@ -554,7 +554,7 @@ static struct notifier_block iommu_bus_nb = { 37970@@ -583,7 +583,7 @@ static struct notifier_block iommu_bus_nb = {
37804 static void iommu_bus_init(struct bus_type *bus, struct iommu_ops *ops) 37971 static void iommu_bus_init(struct bus_type *bus, struct iommu_ops *ops)
37805 { 37972 {
37806 bus_register_notifier(bus, &iommu_bus_nb); 37973 bus_register_notifier(bus, &iommu_bus_nb);
@@ -37840,10 +38007,10 @@ index dcfea4e..f4226b2 100644
37840 38007
37841 bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip) 38008 bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
37842diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c 38009diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
37843index fc6aebf..762c5f5 100644 38010index 19ceaa6..3625818 100644
37844--- a/drivers/irqchip/irq-gic.c 38011--- a/drivers/irqchip/irq-gic.c
37845+++ b/drivers/irqchip/irq-gic.c 38012+++ b/drivers/irqchip/irq-gic.c
37846@@ -83,7 +83,7 @@ static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly; 38013@@ -84,7 +84,7 @@ static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly;
37847 * Supported arch specific GIC irq extension. 38014 * Supported arch specific GIC irq extension.
37848 * Default make them NULL. 38015 * Default make them NULL.
37849 */ 38016 */
@@ -37852,7 +38019,7 @@ index fc6aebf..762c5f5 100644
37852 .irq_eoi = NULL, 38019 .irq_eoi = NULL,
37853 .irq_mask = NULL, 38020 .irq_mask = NULL,
37854 .irq_unmask = NULL, 38021 .irq_unmask = NULL,
37855@@ -332,7 +332,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc) 38022@@ -333,7 +333,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
37856 chained_irq_exit(chip, desc); 38023 chained_irq_exit(chip, desc);
37857 } 38024 }
37858 38025
@@ -37862,7 +38029,7 @@ index fc6aebf..762c5f5 100644
37862 .irq_mask = gic_mask_irq, 38029 .irq_mask = gic_mask_irq,
37863 .irq_unmask = gic_unmask_irq, 38030 .irq_unmask = gic_unmask_irq,
37864diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c 38031diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
37865index 89562a8..218999b 100644 38032index ac6f72b..81150f2 100644
37866--- a/drivers/isdn/capi/capi.c 38033--- a/drivers/isdn/capi/capi.c
37867+++ b/drivers/isdn/capi/capi.c 38034+++ b/drivers/isdn/capi/capi.c
37868@@ -81,8 +81,8 @@ struct capiminor { 38035@@ -81,8 +81,8 @@ struct capiminor {
@@ -37902,39 +38069,8 @@ index 89562a8..218999b 100644
37902 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */ 38069 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
37903 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */ 38070 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
37904 capimsg_setu16(skb->data, 16, len); /* Data length */ 38071 capimsg_setu16(skb->data, 16, len); /* Data length */
37905diff --git a/drivers/isdn/capi/kcapi.c b/drivers/isdn/capi/kcapi.c
37906index 9b1b274..c123709 100644
37907--- a/drivers/isdn/capi/kcapi.c
37908+++ b/drivers/isdn/capi/kcapi.c
37909@@ -93,7 +93,7 @@ capi_ctr_put(struct capi_ctr *ctr)
37910
37911 static inline struct capi_ctr *get_capi_ctr_by_nr(u16 contr)
37912 {
37913- if (contr - 1 >= CAPI_MAXCONTR)
37914+ if (contr < 1 || contr - 1 >= CAPI_MAXCONTR)
37915 return NULL;
37916
37917 return capi_controller[contr - 1];
37918@@ -103,7 +103,7 @@ static inline struct capi20_appl *__get_capi_appl_by_nr(u16 applid)
37919 {
37920 lockdep_assert_held(&capi_controller_lock);
37921
37922- if (applid - 1 >= CAPI_MAXAPPL)
37923+ if (applid < 1 || applid - 1 >= CAPI_MAXAPPL)
37924 return NULL;
37925
37926 return capi_applications[applid - 1];
37927@@ -111,7 +111,7 @@ static inline struct capi20_appl *__get_capi_appl_by_nr(u16 applid)
37928
37929 static inline struct capi20_appl *get_capi_appl_by_nr(u16 applid)
37930 {
37931- if (applid - 1 >= CAPI_MAXAPPL)
37932+ if (applid < 1 || applid - 1 >= CAPI_MAXAPPL)
37933 return NULL;
37934
37935 return rcu_dereference(capi_applications[applid - 1]);
37936diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c 38072diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
37937index e2b5396..c5486dc 100644 38073index 600c79b..3752bab 100644
37938--- a/drivers/isdn/gigaset/interface.c 38074--- a/drivers/isdn/gigaset/interface.c
37939+++ b/drivers/isdn/gigaset/interface.c 38075+++ b/drivers/isdn/gigaset/interface.c
37940@@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp) 38076@@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp)
@@ -37962,7 +38098,7 @@ index e2b5396..c5486dc 100644
37962 38098
37963 mutex_unlock(&cs->mutex); 38099 mutex_unlock(&cs->mutex);
37964diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c 38100diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
37965index 821f7ac..28d4030 100644 38101index 4d9b195..455075c 100644
37966--- a/drivers/isdn/hardware/avm/b1.c 38102--- a/drivers/isdn/hardware/avm/b1.c
37967+++ b/drivers/isdn/hardware/avm/b1.c 38103+++ b/drivers/isdn/hardware/avm/b1.c
37968@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file) 38104@@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
@@ -37984,10 +38120,10 @@ index 821f7ac..28d4030 100644
37984 } else { 38120 } else {
37985 memcpy(buf, dp, left); 38121 memcpy(buf, dp, left);
37986diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c 38122diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
37987index ebaebdf..acd4405 100644 38123index 3c5f249..5fac4d0 100644
37988--- a/drivers/isdn/i4l/isdn_tty.c 38124--- a/drivers/isdn/i4l/isdn_tty.c
37989+++ b/drivers/isdn/i4l/isdn_tty.c 38125+++ b/drivers/isdn/i4l/isdn_tty.c
37990@@ -1511,9 +1511,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp) 38126@@ -1508,9 +1508,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
37991 38127
37992 #ifdef ISDN_DEBUG_MODEM_OPEN 38128 #ifdef ISDN_DEBUG_MODEM_OPEN
37993 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name, 38129 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
@@ -37999,7 +38135,7 @@ index ebaebdf..acd4405 100644
37999 port->tty = tty; 38135 port->tty = tty;
38000 /* 38136 /*
38001 * Start up serial port 38137 * Start up serial port
38002@@ -1557,7 +1557,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp) 38138@@ -1554,7 +1554,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
38003 #endif 38139 #endif
38004 return; 38140 return;
38005 } 38141 }
@@ -38008,7 +38144,7 @@ index ebaebdf..acd4405 100644
38008 /* 38144 /*
38009 * Uh, oh. tty->count is 1, which means that the tty 38145 * Uh, oh. tty->count is 1, which means that the tty
38010 * structure will be freed. Info->count should always 38146 * structure will be freed. Info->count should always
38011@@ -1566,15 +1566,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp) 38147@@ -1563,15 +1563,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
38012 * serial port won't be shutdown. 38148 * serial port won't be shutdown.
38013 */ 38149 */
38014 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, " 38150 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, "
@@ -38030,7 +38166,7 @@ index ebaebdf..acd4405 100644
38030 #ifdef ISDN_DEBUG_MODEM_OPEN 38166 #ifdef ISDN_DEBUG_MODEM_OPEN
38031 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n"); 38167 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n");
38032 #endif 38168 #endif
38033@@ -1628,7 +1628,7 @@ isdn_tty_hangup(struct tty_struct *tty) 38169@@ -1625,7 +1625,7 @@ isdn_tty_hangup(struct tty_struct *tty)
38034 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup")) 38170 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup"))
38035 return; 38171 return;
38036 isdn_tty_shutdown(info); 38172 isdn_tty_shutdown(info);
@@ -38039,7 +38175,7 @@ index ebaebdf..acd4405 100644
38039 port->flags &= ~ASYNC_NORMAL_ACTIVE; 38175 port->flags &= ~ASYNC_NORMAL_ACTIVE;
38040 port->tty = NULL; 38176 port->tty = NULL;
38041 wake_up_interruptible(&port->open_wait); 38177 wake_up_interruptible(&port->open_wait);
38042@@ -1973,7 +1973,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup) 38178@@ -1970,7 +1970,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
38043 for (i = 0; i < ISDN_MAX_CHANNELS; i++) { 38179 for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
38044 modem_info *info = &dev->mdm.info[i]; 38180 modem_info *info = &dev->mdm.info[i];
38045 38181
@@ -38088,28 +38224,28 @@ index 64e204e..c6bf189 100644
38088 .callback = ss4200_led_dmi_callback, 38224 .callback = ss4200_led_dmi_callback,
38089 .ident = "Intel SS4200-E", 38225 .ident = "Intel SS4200-E",
38090diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c 38226diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
38091index a5ebc00..3de3364 100644 38227index 0bf1e4e..b4bf44e 100644
38092--- a/drivers/lguest/core.c 38228--- a/drivers/lguest/core.c
38093+++ b/drivers/lguest/core.c 38229+++ b/drivers/lguest/core.c
38094@@ -92,9 +92,17 @@ static __init int map_switcher(void) 38230@@ -97,9 +97,17 @@ static __init int map_switcher(void)
38095 * it's worked so far. The end address needs +1 because __get_vm_area 38231 * The end address needs +1 because __get_vm_area allocates an
38096 * allocates an extra guard page, so we need space for that. 38232 * extra guard page, so we need space for that.
38097 */ 38233 */
38098+ 38234+
38099+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC) 38235+#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
38100+ switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE, 38236+ switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
38101+ VM_ALLOC | VM_KERNEXEC, SWITCHER_ADDR, SWITCHER_ADDR 38237+ VM_ALLOC | VM_KERNEXEC, switcher_addr, switcher_addr
38102+ + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE); 38238+ + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
38103+#else 38239+#else
38104 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE, 38240 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
38105 VM_ALLOC, SWITCHER_ADDR, SWITCHER_ADDR 38241 VM_ALLOC, switcher_addr, switcher_addr
38106 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE); 38242 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
38107+#endif 38243+#endif
38108+ 38244+
38109 if (!switcher_vma) { 38245 if (!switcher_vma) {
38110 err = -ENOMEM; 38246 err = -ENOMEM;
38111 printk("lguest: could not map switcher pages high\n"); 38247 printk("lguest: could not map switcher pages high\n");
38112@@ -119,7 +127,7 @@ static __init int map_switcher(void) 38248@@ -124,7 +132,7 @@ static __init int map_switcher(void)
38113 * Now the Switcher is mapped at the right address, we can't fail! 38249 * Now the Switcher is mapped at the right address, we can't fail!
38114 * Copy in the compiled-in Switcher code (from x86/switcher_32.S). 38250 * Copy in the compiled-in Switcher code (from x86/switcher_32.S).
38115 */ 38251 */
@@ -38119,10 +38255,10 @@ index a5ebc00..3de3364 100644
38119 38255
38120 printk(KERN_INFO "lguest: mapped switcher at %p\n", 38256 printk(KERN_INFO "lguest: mapped switcher at %p\n",
38121diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c 38257diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
38122index 3b62be16..e33134a 100644 38258index 5b9ac32..2ef4f26 100644
38123--- a/drivers/lguest/page_tables.c 38259--- a/drivers/lguest/page_tables.c
38124+++ b/drivers/lguest/page_tables.c 38260+++ b/drivers/lguest/page_tables.c
38125@@ -532,7 +532,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr) 38261@@ -559,7 +559,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
38126 /*:*/ 38262 /*:*/
38127 38263
38128 #ifdef CONFIG_X86_PAE 38264 #ifdef CONFIG_X86_PAE
@@ -38132,19 +38268,19 @@ index 3b62be16..e33134a 100644
38132 /* If the entry's not present, there's nothing to release. */ 38268 /* If the entry's not present, there's nothing to release. */
38133 if (pmd_flags(*spmd) & _PAGE_PRESENT) { 38269 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
38134diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c 38270diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
38135index 4af12e1..0e89afe 100644 38271index f0a3347..f6608b2 100644
38136--- a/drivers/lguest/x86/core.c 38272--- a/drivers/lguest/x86/core.c
38137+++ b/drivers/lguest/x86/core.c 38273+++ b/drivers/lguest/x86/core.c
38138@@ -59,7 +59,7 @@ static struct { 38274@@ -59,7 +59,7 @@ static struct {
38139 /* Offset from where switcher.S was compiled to where we've copied it */ 38275 /* Offset from where switcher.S was compiled to where we've copied it */
38140 static unsigned long switcher_offset(void) 38276 static unsigned long switcher_offset(void)
38141 { 38277 {
38142- return SWITCHER_ADDR - (unsigned long)start_switcher_text; 38278- return switcher_addr - (unsigned long)start_switcher_text;
38143+ return SWITCHER_ADDR - (unsigned long)ktla_ktva(start_switcher_text); 38279+ return switcher_addr - (unsigned long)ktla_ktva(start_switcher_text);
38144 } 38280 }
38145 38281
38146 /* This cpu's struct lguest_pages. */ 38282 /* This cpu's struct lguest_pages (after the Switcher text page) */
38147@@ -100,7 +100,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages) 38283@@ -99,7 +99,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages)
38148 * These copies are pretty cheap, so we do them unconditionally: */ 38284 * These copies are pretty cheap, so we do them unconditionally: */
38149 /* Save the current Host top-level page directory. 38285 /* Save the current Host top-level page directory.
38150 */ 38286 */
@@ -38158,7 +38294,7 @@ index 4af12e1..0e89afe 100644
38158 /* 38294 /*
38159 * Set up the Guest's page tables to see this CPU's pages (and no 38295 * Set up the Guest's page tables to see this CPU's pages (and no
38160 * other CPU's pages). 38296 * other CPU's pages).
38161@@ -476,7 +482,7 @@ void __init lguest_arch_host_init(void) 38297@@ -475,7 +481,7 @@ void __init lguest_arch_host_init(void)
38162 * compiled-in switcher code and the high-mapped copy we just made. 38298 * compiled-in switcher code and the high-mapped copy we just made.
38163 */ 38299 */
38164 for (i = 0; i < IDT_ENTRIES; i++) 38300 for (i = 0; i < IDT_ENTRIES; i++)
@@ -38167,7 +38303,7 @@ index 4af12e1..0e89afe 100644
38167 38303
38168 /* 38304 /*
38169 * Set up the Switcher's per-cpu areas. 38305 * Set up the Switcher's per-cpu areas.
38170@@ -559,7 +565,7 @@ void __init lguest_arch_host_init(void) 38306@@ -558,7 +564,7 @@ void __init lguest_arch_host_init(void)
38171 * it will be undisturbed when we switch. To change %cs and jump we 38307 * it will be undisturbed when we switch. To change %cs and jump we
38172 * need this structure to feed to Intel's "lcall" instruction. 38308 * need this structure to feed to Intel's "lcall" instruction.
38173 */ 38309 */
@@ -38238,8 +38374,21 @@ index 40634b0..4f5855e 100644
38238 38374
38239 // Every interrupt can come to us here 38375 // Every interrupt can come to us here
38240 // But we must truly tell each apart. 38376 // But we must truly tell each apart.
38377diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
38378index 0003992..854bbce 100644
38379--- a/drivers/md/bcache/closure.h
38380+++ b/drivers/md/bcache/closure.h
38381@@ -622,7 +622,7 @@ static inline void closure_wake_up(struct closure_waitlist *list)
38382 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
38383 struct workqueue_struct *wq)
38384 {
38385- BUG_ON(object_is_on_stack(cl));
38386+ BUG_ON(object_starts_on_stack(cl));
38387 closure_set_ip(cl);
38388 cl->fn = fn;
38389 cl->wq = wq;
38241diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c 38390diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
38242index 4fd9d6a..834fa03 100644 38391index 5a2c754..0fa55db 100644
38243--- a/drivers/md/bitmap.c 38392--- a/drivers/md/bitmap.c
38244+++ b/drivers/md/bitmap.c 38393+++ b/drivers/md/bitmap.c
38245@@ -1779,7 +1779,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap) 38394@@ -1779,7 +1779,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
@@ -38265,7 +38414,7 @@ index aa04f02..2a1309e 100644
38265 DMWARN("name not supplied when creating device"); 38414 DMWARN("name not supplied when creating device");
38266 return -EINVAL; 38415 return -EINVAL;
38267diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c 38416diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
38268index d053098..05cc375 100644 38417index 699b5be..eac0a15 100644
38269--- a/drivers/md/dm-raid1.c 38418--- a/drivers/md/dm-raid1.c
38270+++ b/drivers/md/dm-raid1.c 38419+++ b/drivers/md/dm-raid1.c
38271@@ -40,7 +40,7 @@ enum dm_raid1_error { 38420@@ -40,7 +40,7 @@ enum dm_raid1_error {
@@ -38341,7 +38490,7 @@ index d053098..05cc375 100644
38341 38490
38342 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' : 38491 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
38343diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c 38492diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
38344index 7b8b2b9..9c7d145 100644 38493index d907ca6..cfb8384 100644
38345--- a/drivers/md/dm-stripe.c 38494--- a/drivers/md/dm-stripe.c
38346+++ b/drivers/md/dm-stripe.c 38495+++ b/drivers/md/dm-stripe.c
38347@@ -20,7 +20,7 @@ struct stripe { 38496@@ -20,7 +20,7 @@ struct stripe {
@@ -38396,7 +38545,7 @@ index 1ff252a..ee384c1 100644
38396 "start=%llu, len=%llu, dev_size=%llu", 38545 "start=%llu, len=%llu, dev_size=%llu",
38397 dm_device_name(ti->table->md), bdevname(bdev, b), 38546 dm_device_name(ti->table->md), bdevname(bdev, b),
38398diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c 38547diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
38399index 00cee02..b89a29d 100644 38548index 60bce43..9b997d0 100644
38400--- a/drivers/md/dm-thin-metadata.c 38549--- a/drivers/md/dm-thin-metadata.c
38401+++ b/drivers/md/dm-thin-metadata.c 38550+++ b/drivers/md/dm-thin-metadata.c
38402@@ -397,7 +397,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd) 38551@@ -397,7 +397,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
@@ -38418,7 +38567,7 @@ index 00cee02..b89a29d 100644
38418 pmd->bl_info.value_type.inc = data_block_inc; 38567 pmd->bl_info.value_type.inc = data_block_inc;
38419 pmd->bl_info.value_type.dec = data_block_dec; 38568 pmd->bl_info.value_type.dec = data_block_dec;
38420diff --git a/drivers/md/dm.c b/drivers/md/dm.c 38569diff --git a/drivers/md/dm.c b/drivers/md/dm.c
38421index 9a0bdad..4df9543 100644 38570index d5370a9..8761bbc 100644
38422--- a/drivers/md/dm.c 38571--- a/drivers/md/dm.c
38423+++ b/drivers/md/dm.c 38572+++ b/drivers/md/dm.c
38424@@ -169,9 +169,9 @@ struct mapped_device { 38573@@ -169,9 +169,9 @@ struct mapped_device {
@@ -38433,7 +38582,7 @@ index 9a0bdad..4df9543 100644
38433 struct list_head uevent_list; 38582 struct list_head uevent_list;
38434 spinlock_t uevent_lock; /* Protect access to uevent_list */ 38583 spinlock_t uevent_lock; /* Protect access to uevent_list */
38435 38584
38436@@ -1879,8 +1879,8 @@ static struct mapped_device *alloc_dev(int minor) 38585@@ -1877,8 +1877,8 @@ static struct mapped_device *alloc_dev(int minor)
38437 rwlock_init(&md->map_lock); 38586 rwlock_init(&md->map_lock);
38438 atomic_set(&md->holders, 1); 38587 atomic_set(&md->holders, 1);
38439 atomic_set(&md->open_count, 0); 38588 atomic_set(&md->open_count, 0);
@@ -38444,7 +38593,7 @@ index 9a0bdad..4df9543 100644
38444 INIT_LIST_HEAD(&md->uevent_list); 38593 INIT_LIST_HEAD(&md->uevent_list);
38445 spin_lock_init(&md->uevent_lock); 38594 spin_lock_init(&md->uevent_lock);
38446 38595
38447@@ -2028,7 +2028,7 @@ static void event_callback(void *context) 38596@@ -2026,7 +2026,7 @@ static void event_callback(void *context)
38448 38597
38449 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj); 38598 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
38450 38599
@@ -38453,7 +38602,7 @@ index 9a0bdad..4df9543 100644
38453 wake_up(&md->eventq); 38602 wake_up(&md->eventq);
38454 } 38603 }
38455 38604
38456@@ -2685,18 +2685,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action, 38605@@ -2683,18 +2683,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
38457 38606
38458 uint32_t dm_next_uevent_seq(struct mapped_device *md) 38607 uint32_t dm_next_uevent_seq(struct mapped_device *md)
38459 { 38608 {
@@ -38476,10 +38625,10 @@ index 9a0bdad..4df9543 100644
38476 38625
38477 void dm_uevent_add(struct mapped_device *md, struct list_head *elist) 38626 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
38478diff --git a/drivers/md/md.c b/drivers/md/md.c 38627diff --git a/drivers/md/md.c b/drivers/md/md.c
38479index a4a93b9..4747b63 100644 38628index 9b82377..6b6922d 100644
38480--- a/drivers/md/md.c 38629--- a/drivers/md/md.c
38481+++ b/drivers/md/md.c 38630+++ b/drivers/md/md.c
38482@@ -240,10 +240,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio); 38631@@ -234,10 +234,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
38483 * start build, activate spare 38632 * start build, activate spare
38484 */ 38633 */
38485 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters); 38634 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
@@ -38492,7 +38641,7 @@ index a4a93b9..4747b63 100644
38492 wake_up(&md_event_waiters); 38641 wake_up(&md_event_waiters);
38493 } 38642 }
38494 EXPORT_SYMBOL_GPL(md_new_event); 38643 EXPORT_SYMBOL_GPL(md_new_event);
38495@@ -253,7 +253,7 @@ EXPORT_SYMBOL_GPL(md_new_event); 38644@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
38496 */ 38645 */
38497 static void md_new_event_inintr(struct mddev *mddev) 38646 static void md_new_event_inintr(struct mddev *mddev)
38498 { 38647 {
@@ -38501,7 +38650,7 @@ index a4a93b9..4747b63 100644
38501 wake_up(&md_event_waiters); 38650 wake_up(&md_event_waiters);
38502 } 38651 }
38503 38652
38504@@ -1507,7 +1507,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_ 38653@@ -1501,7 +1501,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
38505 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) && 38654 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
38506 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET)) 38655 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
38507 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset); 38656 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
@@ -38510,7 +38659,7 @@ index a4a93b9..4747b63 100644
38510 38659
38511 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256; 38660 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
38512 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1; 38661 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
38513@@ -1751,7 +1751,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev) 38662@@ -1745,7 +1745,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
38514 else 38663 else
38515 sb->resync_offset = cpu_to_le64(0); 38664 sb->resync_offset = cpu_to_le64(0);
38516 38665
@@ -38519,7 +38668,7 @@ index a4a93b9..4747b63 100644
38519 38668
38520 sb->raid_disks = cpu_to_le32(mddev->raid_disks); 38669 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
38521 sb->size = cpu_to_le64(mddev->dev_sectors); 38670 sb->size = cpu_to_le64(mddev->dev_sectors);
38522@@ -2751,7 +2751,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store); 38671@@ -2750,7 +2750,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
38523 static ssize_t 38672 static ssize_t
38524 errors_show(struct md_rdev *rdev, char *page) 38673 errors_show(struct md_rdev *rdev, char *page)
38525 { 38674 {
@@ -38528,7 +38677,7 @@ index a4a93b9..4747b63 100644
38528 } 38677 }
38529 38678
38530 static ssize_t 38679 static ssize_t
38531@@ -2760,7 +2760,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len) 38680@@ -2759,7 +2759,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
38532 char *e; 38681 char *e;
38533 unsigned long n = simple_strtoul(buf, &e, 10); 38682 unsigned long n = simple_strtoul(buf, &e, 10);
38534 if (*buf && (*e == 0 || *e == '\n')) { 38683 if (*buf && (*e == 0 || *e == '\n')) {
@@ -38537,7 +38686,7 @@ index a4a93b9..4747b63 100644
38537 return len; 38686 return len;
38538 } 38687 }
38539 return -EINVAL; 38688 return -EINVAL;
38540@@ -3210,8 +3210,8 @@ int md_rdev_init(struct md_rdev *rdev) 38689@@ -3207,8 +3207,8 @@ int md_rdev_init(struct md_rdev *rdev)
38541 rdev->sb_loaded = 0; 38690 rdev->sb_loaded = 0;
38542 rdev->bb_page = NULL; 38691 rdev->bb_page = NULL;
38543 atomic_set(&rdev->nr_pending, 0); 38692 atomic_set(&rdev->nr_pending, 0);
@@ -38548,7 +38697,7 @@ index a4a93b9..4747b63 100644
38548 38697
38549 INIT_LIST_HEAD(&rdev->same_set); 38698 INIT_LIST_HEAD(&rdev->same_set);
38550 init_waitqueue_head(&rdev->blocked_wait); 38699 init_waitqueue_head(&rdev->blocked_wait);
38551@@ -6994,7 +6994,7 @@ static int md_seq_show(struct seq_file *seq, void *v) 38700@@ -7009,7 +7009,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
38552 38701
38553 spin_unlock(&pers_lock); 38702 spin_unlock(&pers_lock);
38554 seq_printf(seq, "\n"); 38703 seq_printf(seq, "\n");
@@ -38557,7 +38706,7 @@ index a4a93b9..4747b63 100644
38557 return 0; 38706 return 0;
38558 } 38707 }
38559 if (v == (void*)2) { 38708 if (v == (void*)2) {
38560@@ -7097,7 +7097,7 @@ static int md_seq_open(struct inode *inode, struct file *file) 38709@@ -7112,7 +7112,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
38561 return error; 38710 return error;
38562 38711
38563 seq = file->private_data; 38712 seq = file->private_data;
@@ -38566,7 +38715,7 @@ index a4a93b9..4747b63 100644
38566 return error; 38715 return error;
38567 } 38716 }
38568 38717
38569@@ -7111,7 +7111,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait) 38718@@ -7126,7 +7126,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
38570 /* always allow read */ 38719 /* always allow read */
38571 mask = POLLIN | POLLRDNORM; 38720 mask = POLLIN | POLLRDNORM;
38572 38721
@@ -38575,7 +38724,7 @@ index a4a93b9..4747b63 100644
38575 mask |= POLLERR | POLLPRI; 38724 mask |= POLLERR | POLLPRI;
38576 return mask; 38725 return mask;
38577 } 38726 }
38578@@ -7155,7 +7155,7 @@ static int is_mddev_idle(struct mddev *mddev, int init) 38727@@ -7170,7 +7170,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
38579 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk; 38728 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
38580 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) + 38729 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
38581 (int)part_stat_read(&disk->part0, sectors[1]) - 38730 (int)part_stat_read(&disk->part0, sectors[1]) -
@@ -38585,7 +38734,7 @@ index a4a93b9..4747b63 100644
38585 * as sync_io is counted when a request starts, and 38734 * as sync_io is counted when a request starts, and
38586 * disk_stats is counted when it completes. 38735 * disk_stats is counted when it completes.
38587diff --git a/drivers/md/md.h b/drivers/md/md.h 38736diff --git a/drivers/md/md.h b/drivers/md/md.h
38588index d90fb1a..4174a2b 100644 38737index 653f992b6..6af6c40 100644
38589--- a/drivers/md/md.h 38738--- a/drivers/md/md.h
38590+++ b/drivers/md/md.h 38739+++ b/drivers/md/md.h
38591@@ -94,13 +94,13 @@ struct md_rdev { 38740@@ -94,13 +94,13 @@ struct md_rdev {
@@ -38614,22 +38763,22 @@ index d90fb1a..4174a2b 100644
38614 38763
38615 struct md_personality 38764 struct md_personality
38616diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h 38765diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
38617index 1cbfc6b..56e1dbb 100644 38766index 3e6d115..ffecdeb 100644
38618--- a/drivers/md/persistent-data/dm-space-map.h 38767--- a/drivers/md/persistent-data/dm-space-map.h
38619+++ b/drivers/md/persistent-data/dm-space-map.h 38768+++ b/drivers/md/persistent-data/dm-space-map.h
38620@@ -60,6 +60,7 @@ struct dm_space_map { 38769@@ -71,6 +71,7 @@ struct dm_space_map {
38621 int (*root_size)(struct dm_space_map *sm, size_t *result); 38770 dm_sm_threshold_fn fn,
38622 int (*copy_root)(struct dm_space_map *sm, void *copy_to_here_le, size_t len); 38771 void *context);
38623 }; 38772 };
38624+typedef struct dm_space_map __no_const dm_space_map_no_const; 38773+typedef struct dm_space_map __no_const dm_space_map_no_const;
38625 38774
38626 /*----------------------------------------------------------------*/ 38775 /*----------------------------------------------------------------*/
38627 38776
38628diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c 38777diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
38629index 7116798..c81390c 100644 38778index 6e17f81..140f717 100644
38630--- a/drivers/md/raid1.c 38779--- a/drivers/md/raid1.c
38631+++ b/drivers/md/raid1.c 38780+++ b/drivers/md/raid1.c
38632@@ -1836,7 +1836,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio) 38781@@ -1822,7 +1822,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
38633 if (r1_sync_page_io(rdev, sect, s, 38782 if (r1_sync_page_io(rdev, sect, s,
38634 bio->bi_io_vec[idx].bv_page, 38783 bio->bi_io_vec[idx].bv_page,
38635 READ) != 0) 38784 READ) != 0)
@@ -38638,7 +38787,7 @@ index 7116798..c81390c 100644
38638 } 38787 }
38639 sectors -= s; 38788 sectors -= s;
38640 sect += s; 38789 sect += s;
38641@@ -2058,7 +2058,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk, 38790@@ -2042,7 +2042,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
38642 test_bit(In_sync, &rdev->flags)) { 38791 test_bit(In_sync, &rdev->flags)) {
38643 if (r1_sync_page_io(rdev, sect, s, 38792 if (r1_sync_page_io(rdev, sect, s,
38644 conf->tmppage, READ)) { 38793 conf->tmppage, READ)) {
@@ -38648,10 +38797,10 @@ index 7116798..c81390c 100644
38648 "md/raid1:%s: read error corrected " 38797 "md/raid1:%s: read error corrected "
38649 "(%d sectors at %llu on %s)\n", 38798 "(%d sectors at %llu on %s)\n",
38650diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c 38799diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
38651index e4ea992..d234520 100644 38800index d61eb7e..adfd00a 100644
38652--- a/drivers/md/raid10.c 38801--- a/drivers/md/raid10.c
38653+++ b/drivers/md/raid10.c 38802+++ b/drivers/md/raid10.c
38654@@ -1942,7 +1942,7 @@ static void end_sync_read(struct bio *bio, int error) 38803@@ -1940,7 +1940,7 @@ static void end_sync_read(struct bio *bio, int error)
38655 /* The write handler will notice the lack of 38804 /* The write handler will notice the lack of
38656 * R10BIO_Uptodate and record any errors etc 38805 * R10BIO_Uptodate and record any errors etc
38657 */ 38806 */
@@ -38660,7 +38809,7 @@ index e4ea992..d234520 100644
38660 &conf->mirrors[d].rdev->corrected_errors); 38809 &conf->mirrors[d].rdev->corrected_errors);
38661 38810
38662 /* for reconstruct, we always reschedule after a read. 38811 /* for reconstruct, we always reschedule after a read.
38663@@ -2291,7 +2291,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev) 38812@@ -2292,7 +2292,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
38664 { 38813 {
38665 struct timespec cur_time_mon; 38814 struct timespec cur_time_mon;
38666 unsigned long hours_since_last; 38815 unsigned long hours_since_last;
@@ -38669,7 +38818,7 @@ index e4ea992..d234520 100644
38669 38818
38670 ktime_get_ts(&cur_time_mon); 38819 ktime_get_ts(&cur_time_mon);
38671 38820
38672@@ -2313,9 +2313,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev) 38821@@ -2314,9 +2314,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
38673 * overflowing the shift of read_errors by hours_since_last. 38822 * overflowing the shift of read_errors by hours_since_last.
38674 */ 38823 */
38675 if (hours_since_last >= 8 * sizeof(read_errors)) 38824 if (hours_since_last >= 8 * sizeof(read_errors))
@@ -38681,7 +38830,7 @@ index e4ea992..d234520 100644
38681 } 38830 }
38682 38831
38683 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector, 38832 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
38684@@ -2369,8 +2369,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10 38833@@ -2370,8 +2370,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
38685 return; 38834 return;
38686 38835
38687 check_decay_read_errors(mddev, rdev); 38836 check_decay_read_errors(mddev, rdev);
@@ -38692,7 +38841,7 @@ index e4ea992..d234520 100644
38692 char b[BDEVNAME_SIZE]; 38841 char b[BDEVNAME_SIZE];
38693 bdevname(rdev->bdev, b); 38842 bdevname(rdev->bdev, b);
38694 38843
38695@@ -2378,7 +2378,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10 38844@@ -2379,7 +2379,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
38696 "md/raid10:%s: %s: Raid device exceeded " 38845 "md/raid10:%s: %s: Raid device exceeded "
38697 "read_error threshold [cur %d:max %d]\n", 38846 "read_error threshold [cur %d:max %d]\n",
38698 mdname(mddev), b, 38847 mdname(mddev), b,
@@ -38701,7 +38850,7 @@ index e4ea992..d234520 100644
38701 printk(KERN_NOTICE 38850 printk(KERN_NOTICE
38702 "md/raid10:%s: %s: Failing raid device\n", 38851 "md/raid10:%s: %s: Failing raid device\n",
38703 mdname(mddev), b); 38852 mdname(mddev), b);
38704@@ -2533,7 +2533,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10 38853@@ -2534,7 +2534,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
38705 sect + 38854 sect +
38706 choose_data_offset(r10_bio, rdev)), 38855 choose_data_offset(r10_bio, rdev)),
38707 bdevname(rdev->bdev, b)); 38856 bdevname(rdev->bdev, b));
@@ -38711,10 +38860,10 @@ index e4ea992..d234520 100644
38711 38860
38712 rdev_dec_pending(rdev, mddev); 38861 rdev_dec_pending(rdev, mddev);
38713diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c 38862diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
38714index 251ab64..ed23a18 100644 38863index 05e4a10..48fbe37 100644
38715--- a/drivers/md/raid5.c 38864--- a/drivers/md/raid5.c
38716+++ b/drivers/md/raid5.c 38865+++ b/drivers/md/raid5.c
38717@@ -1763,21 +1763,21 @@ static void raid5_end_read_request(struct bio * bi, int error) 38866@@ -1764,21 +1764,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
38718 mdname(conf->mddev), STRIPE_SECTORS, 38867 mdname(conf->mddev), STRIPE_SECTORS,
38719 (unsigned long long)s, 38868 (unsigned long long)s,
38720 bdevname(rdev->bdev, b)); 38869 bdevname(rdev->bdev, b));
@@ -38740,7 +38889,7 @@ index 251ab64..ed23a18 100644
38740 if (test_bit(R5_ReadRepl, &sh->dev[i].flags)) 38889 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
38741 printk_ratelimited( 38890 printk_ratelimited(
38742 KERN_WARNING 38891 KERN_WARNING
38743@@ -1805,7 +1805,7 @@ static void raid5_end_read_request(struct bio * bi, int error) 38892@@ -1806,7 +1806,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
38744 mdname(conf->mddev), 38893 mdname(conf->mddev),
38745 (unsigned long long)s, 38894 (unsigned long long)s,
38746 bdn); 38895 bdn);
@@ -38776,7 +38925,7 @@ index 9b6c3bb..baeb5c7 100644
38776 #if IS_ENABLED(CONFIG_DVB_DIB3000MB) 38925 #if IS_ENABLED(CONFIG_DVB_DIB3000MB)
38777 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config, 38926 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
38778diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c 38927diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
38779index bc78354..42c9459 100644 38928index c7a9be1..683f6f8 100644
38780--- a/drivers/media/pci/cx88/cx88-video.c 38929--- a/drivers/media/pci/cx88/cx88-video.c
38781+++ b/drivers/media/pci/cx88/cx88-video.c 38930+++ b/drivers/media/pci/cx88/cx88-video.c
38782@@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION); 38931@@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
@@ -38792,22 +38941,8 @@ index bc78354..42c9459 100644
38792 38941
38793 module_param_array(video_nr, int, NULL, 0444); 38942 module_param_array(video_nr, int, NULL, 0444);
38794 module_param_array(vbi_nr, int, NULL, 0444); 38943 module_param_array(vbi_nr, int, NULL, 0444);
38795diff --git a/drivers/media/pci/saa7134/saa7134-alsa.c b/drivers/media/pci/saa7134/saa7134-alsa.c
38796index 10460fd..dbcdfbf 100644
38797--- a/drivers/media/pci/saa7134/saa7134-alsa.c
38798+++ b/drivers/media/pci/saa7134/saa7134-alsa.c
38799@@ -172,7 +172,9 @@ static void saa7134_irq_alsa_done(struct saa7134_dev *dev,
38800 dprintk("irq: overrun [full=%d/%d] - Blocks in %d\n",dev->dmasound.read_count,
38801 dev->dmasound.bufsize, dev->dmasound.blocks);
38802 spin_unlock(&dev->slock);
38803+ snd_pcm_stream_lock(dev->dmasound.substream);
38804 snd_pcm_stop(dev->dmasound.substream,SNDRV_PCM_STATE_XRUN);
38805+ snd_pcm_stream_unlock(dev->dmasound.substream);
38806 return;
38807 }
38808
38809diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c 38944diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
38810index 96c4a17..1305a79 100644 38945index d338b19..aae4f9e 100644
38811--- a/drivers/media/platform/omap/omap_vout.c 38946--- a/drivers/media/platform/omap/omap_vout.c
38812+++ b/drivers/media/platform/omap/omap_vout.c 38947+++ b/drivers/media/platform/omap/omap_vout.c
38813@@ -63,7 +63,6 @@ enum omap_vout_channels { 38948@@ -63,7 +63,6 @@ enum omap_vout_channels {
@@ -38818,7 +38953,7 @@ index 96c4a17..1305a79 100644
38818 /* Variables configurable through module params*/ 38953 /* Variables configurable through module params*/
38819 static u32 video1_numbuffers = 3; 38954 static u32 video1_numbuffers = 3;
38820 static u32 video2_numbuffers = 3; 38955 static u32 video2_numbuffers = 3;
38821@@ -1012,6 +1011,12 @@ static int omap_vout_open(struct file *file) 38956@@ -1015,6 +1014,12 @@ static int omap_vout_open(struct file *file)
38822 { 38957 {
38823 struct videobuf_queue *q; 38958 struct videobuf_queue *q;
38824 struct omap_vout_device *vout = NULL; 38959 struct omap_vout_device *vout = NULL;
@@ -38831,7 +38966,7 @@ index 96c4a17..1305a79 100644
38831 38966
38832 vout = video_drvdata(file); 38967 vout = video_drvdata(file);
38833 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__); 38968 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
38834@@ -1029,10 +1034,6 @@ static int omap_vout_open(struct file *file) 38969@@ -1032,10 +1037,6 @@ static int omap_vout_open(struct file *file)
38835 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT; 38970 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
38836 38971
38837 q = &vout->vbq; 38972 q = &vout->vbq;
@@ -38882,7 +39017,7 @@ index b713403..53cb5ad 100644
38882 if (done && done != layer->shadow_buf) 39017 if (done && done != layer->shadow_buf)
38883 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE); 39018 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
38884diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c 39019diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
38885index 82142a2..6de47e8 100644 39020index ef0efdf..8c78eb6 100644
38886--- a/drivers/media/platform/s5p-tv/mixer_video.c 39021--- a/drivers/media/platform/s5p-tv/mixer_video.c
38887+++ b/drivers/media/platform/s5p-tv/mixer_video.c 39022+++ b/drivers/media/platform/s5p-tv/mixer_video.c
38888@@ -209,7 +209,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer) 39023@@ -209,7 +209,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
@@ -38936,7 +39071,7 @@ index 82142a2..6de47e8 100644
38936 39071
38937 /* retrieve update selection rectangle */ 39072 /* retrieve update selection rectangle */
38938 res.left = target->x_offset; 39073 res.left = target->x_offset;
38939@@ -938,13 +938,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count) 39074@@ -954,13 +954,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
38940 mxr_output_get(mdev); 39075 mxr_output_get(mdev);
38941 39076
38942 mxr_layer_update_output(layer); 39077 mxr_layer_update_output(layer);
@@ -38952,7 +39087,7 @@ index 82142a2..6de47e8 100644
38952 mxr_streamer_get(mdev); 39087 mxr_streamer_get(mdev);
38953 39088
38954 return 0; 39089 return 0;
38955@@ -1014,7 +1014,7 @@ static int stop_streaming(struct vb2_queue *vq) 39090@@ -1030,7 +1030,7 @@ static int stop_streaming(struct vb2_queue *vq)
38956 spin_unlock_irqrestore(&layer->enq_slock, flags); 39091 spin_unlock_irqrestore(&layer->enq_slock, flags);
38957 39092
38958 /* disabling layer in hardware */ 39093 /* disabling layer in hardware */
@@ -38961,7 +39096,7 @@ index 82142a2..6de47e8 100644
38961 /* remove one streamer */ 39096 /* remove one streamer */
38962 mxr_streamer_put(mdev); 39097 mxr_streamer_put(mdev);
38963 /* allow changes in output configuration */ 39098 /* allow changes in output configuration */
38964@@ -1053,8 +1053,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer) 39099@@ -1069,8 +1069,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer)
38965 39100
38966 void mxr_layer_release(struct mxr_layer *layer) 39101 void mxr_layer_release(struct mxr_layer *layer)
38967 { 39102 {
@@ -38972,7 +39107,7 @@ index 82142a2..6de47e8 100644
38972 } 39107 }
38973 39108
38974 void mxr_base_layer_release(struct mxr_layer *layer) 39109 void mxr_base_layer_release(struct mxr_layer *layer)
38975@@ -1080,7 +1080,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev, 39110@@ -1096,7 +1096,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev,
38976 39111
38977 layer->mdev = mdev; 39112 layer->mdev = mdev;
38978 layer->idx = idx; 39113 layer->idx = idx;
@@ -38995,10 +39130,10 @@ index 3d13a63..da31bf1 100644
38995 .buffer_set = mxr_vp_buffer_set, 39130 .buffer_set = mxr_vp_buffer_set,
38996 .stream_set = mxr_vp_stream_set, 39131 .stream_set = mxr_vp_stream_set,
38997diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c 39132diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
38998index 643d80a..56bb96b 100644 39133index 545c04c..a14bded 100644
38999--- a/drivers/media/radio/radio-cadet.c 39134--- a/drivers/media/radio/radio-cadet.c
39000+++ b/drivers/media/radio/radio-cadet.c 39135+++ b/drivers/media/radio/radio-cadet.c
39001@@ -302,6 +302,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo 39136@@ -324,6 +324,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
39002 unsigned char readbuf[RDS_BUFFER]; 39137 unsigned char readbuf[RDS_BUFFER];
39003 int i = 0; 39138 int i = 0;
39004 39139
@@ -39007,7 +39142,7 @@ index 643d80a..56bb96b 100644
39007 mutex_lock(&dev->lock); 39142 mutex_lock(&dev->lock);
39008 if (dev->rdsstat == 0) 39143 if (dev->rdsstat == 0)
39009 cadet_start_rds(dev); 39144 cadet_start_rds(dev);
39010@@ -317,7 +319,7 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo 39145@@ -339,7 +341,7 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
39011 while (i < count && dev->rdsin != dev->rdsout) 39146 while (i < count && dev->rdsin != dev->rdsout)
39012 readbuf[i++] = dev->rdsbuf[dev->rdsout++]; 39147 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
39013 39148
@@ -39030,10 +39165,10 @@ index 3940bb0..fb3952a 100644
39030 static int dib7070_set_param_override(struct dvb_frontend *fe) 39165 static int dib7070_set_param_override(struct dvb_frontend *fe)
39031 { 39166 {
39032diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c 39167diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
39033index 9578a67..31aa652 100644 39168index 6e237b6..dc25556 100644
39034--- a/drivers/media/usb/dvb-usb/dw2102.c 39169--- a/drivers/media/usb/dvb-usb/dw2102.c
39035+++ b/drivers/media/usb/dvb-usb/dw2102.c 39170+++ b/drivers/media/usb/dvb-usb/dw2102.c
39036@@ -115,7 +115,7 @@ struct su3000_state { 39171@@ -118,7 +118,7 @@ struct su3000_state {
39037 39172
39038 struct s6x0_state { 39173 struct s6x0_state {
39039 int (*old_set_voltage)(struct dvb_frontend *f, fe_sec_voltage_t v); 39174 int (*old_set_voltage)(struct dvb_frontend *f, fe_sec_voltage_t v);
@@ -39043,7 +39178,7 @@ index 9578a67..31aa652 100644
39043 /* debug */ 39178 /* debug */
39044 static int dvb_usb_dw2102_debug; 39179 static int dvb_usb_dw2102_debug;
39045diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 39180diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
39046index 7157af3..139e91a 100644 39181index f129551..ecf6514 100644
39047--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 39182--- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
39048+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c 39183+++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
39049@@ -326,7 +326,7 @@ struct v4l2_buffer32 { 39184@@ -326,7 +326,7 @@ struct v4l2_buffer32 {
@@ -39074,40 +39209,10 @@ index 7157af3..139e91a 100644
39074 return 0; 39209 return 0;
39075 } 39210 }
39076diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c 39211diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
39077index aa6e7c7..cb5de87 100644 39212index 7658586..1079260 100644
39078--- a/drivers/media/v4l2-core/v4l2-ioctl.c 39213--- a/drivers/media/v4l2-core/v4l2-ioctl.c
39079+++ b/drivers/media/v4l2-core/v4l2-ioctl.c 39214+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
39080@@ -236,7 +236,7 @@ static void v4l_print_format(const void *arg, bool write_only) 39215@@ -1995,7 +1995,8 @@ struct v4l2_ioctl_info {
39081 const struct v4l2_vbi_format *vbi;
39082 const struct v4l2_sliced_vbi_format *sliced;
39083 const struct v4l2_window *win;
39084- const struct v4l2_clip *clip;
39085+ const struct v4l2_clip __user *pclip;
39086 unsigned i;
39087
39088 pr_cont("type=%s", prt_names(p->type, v4l2_type_names));
39089@@ -284,12 +284,16 @@ static void v4l_print_format(const void *arg, bool write_only)
39090 win->w.left, win->w.top,
39091 prt_names(win->field, v4l2_field_names),
39092 win->chromakey, win->bitmap, win->global_alpha);
39093- clip = win->clips;
39094+ pclip = win->clips;
39095 for (i = 0; i < win->clipcount; i++) {
39096+ struct v4l2_clip clip;
39097+
39098+ if (copy_from_user(&clip, pclip, sizeof clip))
39099+ break;
39100 printk(KERN_DEBUG "clip %u: wxh=%dx%d, x,y=%d,%d\n",
39101- i, clip->c.width, clip->c.height,
39102- clip->c.left, clip->c.top);
39103- clip = clip->next;
39104+ i, clip.c.width, clip.c.height,
39105+ clip.c.left, clip.c.top);
39106+ pclip = clip.next;
39107 }
39108 break;
39109 case V4L2_BUF_TYPE_VBI_CAPTURE:
39110@@ -1923,7 +1927,8 @@ struct v4l2_ioctl_info {
39111 struct file *file, void *fh, void *p); 39216 struct file *file, void *fh, void *p);
39112 } u; 39217 } u;
39113 void (*debug)(const void *arg, bool write_only); 39218 void (*debug)(const void *arg, bool write_only);
@@ -39117,7 +39222,7 @@ index aa6e7c7..cb5de87 100644
39117 39222
39118 /* This control needs a priority check */ 39223 /* This control needs a priority check */
39119 #define INFO_FL_PRIO (1 << 0) 39224 #define INFO_FL_PRIO (1 << 0)
39120@@ -2108,7 +2113,7 @@ static long __video_do_ioctl(struct file *file, 39225@@ -2177,7 +2178,7 @@ static long __video_do_ioctl(struct file *file,
39121 struct video_device *vfd = video_devdata(file); 39226 struct video_device *vfd = video_devdata(file);
39122 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops; 39227 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops;
39123 bool write_only = false; 39228 bool write_only = false;
@@ -39126,7 +39231,7 @@ index aa6e7c7..cb5de87 100644
39126 const struct v4l2_ioctl_info *info; 39231 const struct v4l2_ioctl_info *info;
39127 void *fh = file->private_data; 39232 void *fh = file->private_data;
39128 struct v4l2_fh *vfh = NULL; 39233 struct v4l2_fh *vfh = NULL;
39129@@ -2193,7 +2198,7 @@ done: 39234@@ -2251,7 +2252,7 @@ done:
39130 } 39235 }
39131 39236
39132 static int check_array_args(unsigned int cmd, void *parg, size_t *array_size, 39237 static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
@@ -39135,7 +39240,7 @@ index aa6e7c7..cb5de87 100644
39135 { 39240 {
39136 int ret = 0; 39241 int ret = 0;
39137 39242
39138@@ -2209,7 +2214,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size, 39243@@ -2267,7 +2268,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
39139 ret = -EINVAL; 39244 ret = -EINVAL;
39140 break; 39245 break;
39141 } 39246 }
@@ -39144,7 +39249,7 @@ index aa6e7c7..cb5de87 100644
39144 *kernel_ptr = (void *)&buf->m.planes; 39249 *kernel_ptr = (void *)&buf->m.planes;
39145 *array_size = sizeof(struct v4l2_plane) * buf->length; 39250 *array_size = sizeof(struct v4l2_plane) * buf->length;
39146 ret = 1; 39251 ret = 1;
39147@@ -2244,7 +2249,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size, 39252@@ -2302,7 +2303,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
39148 ret = -EINVAL; 39253 ret = -EINVAL;
39149 break; 39254 break;
39150 } 39255 }
@@ -39154,7 +39259,7 @@ index aa6e7c7..cb5de87 100644
39154 *array_size = sizeof(struct v4l2_ext_control) 39259 *array_size = sizeof(struct v4l2_ext_control)
39155 * ctrls->count; 39260 * ctrls->count;
39156diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c 39261diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
39157index fb69baa..3aeea2e 100644 39262index 767ff4d..c69d259 100644
39158--- a/drivers/message/fusion/mptbase.c 39263--- a/drivers/message/fusion/mptbase.c
39159+++ b/drivers/message/fusion/mptbase.c 39264+++ b/drivers/message/fusion/mptbase.c
39160@@ -6755,8 +6755,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v) 39265@@ -6755,8 +6755,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
@@ -39184,7 +39289,7 @@ index fb69baa..3aeea2e 100644
39184 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n", 39289 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n",
39185 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz); 39290 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
39186diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c 39291diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
39187index fa43c39..daeb158 100644 39292index dd239bd..689c4f7 100644
39188--- a/drivers/message/fusion/mptsas.c 39293--- a/drivers/message/fusion/mptsas.c
39189+++ b/drivers/message/fusion/mptsas.c 39294+++ b/drivers/message/fusion/mptsas.c
39190@@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached) 39295@@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
@@ -39236,7 +39341,7 @@ index fa43c39..daeb158 100644
39236 mptsas_get_port(struct mptsas_phyinfo *phy_info) 39341 mptsas_get_port(struct mptsas_phyinfo *phy_info)
39237 { 39342 {
39238diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c 39343diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
39239index 164afa7..b6b2e74 100644 39344index 727819c..ad74694 100644
39240--- a/drivers/message/fusion/mptscsih.c 39345--- a/drivers/message/fusion/mptscsih.c
39241+++ b/drivers/message/fusion/mptscsih.c 39346+++ b/drivers/message/fusion/mptscsih.c
39242@@ -1271,15 +1271,16 @@ mptscsih_info(struct Scsi_Host *SChost) 39347@@ -1271,15 +1271,16 @@ mptscsih_info(struct Scsi_Host *SChost)
@@ -39265,7 +39370,7 @@ index 164afa7..b6b2e74 100644
39265 return h->info_kbuf; 39370 return h->info_kbuf;
39266 } 39371 }
39267diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c 39372diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c
39268index 8001aa6..b137580 100644 39373index b7d87cd..9890039 100644
39269--- a/drivers/message/i2o/i2o_proc.c 39374--- a/drivers/message/i2o/i2o_proc.c
39270+++ b/drivers/message/i2o/i2o_proc.c 39375+++ b/drivers/message/i2o/i2o_proc.c
39271@@ -255,12 +255,6 @@ static char *scsi_devices[] = { 39376@@ -255,12 +255,6 @@ static char *scsi_devices[] = {
@@ -39522,7 +39627,7 @@ index 36f5d52..32311c3 100644
39522 if (memcmp(before, after, BREAK_INSTR_SIZE)) { 39627 if (memcmp(before, after, BREAK_INSTR_SIZE)) {
39523 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n"); 39628 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
39524diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c 39629diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
39525index 4a87e5c..76bdf5c 100644 39630index 4cd4a3d..b48cbc7 100644
39526--- a/drivers/misc/lis3lv02d/lis3lv02d.c 39631--- a/drivers/misc/lis3lv02d/lis3lv02d.c
39527+++ b/drivers/misc/lis3lv02d/lis3lv02d.c 39632+++ b/drivers/misc/lis3lv02d/lis3lv02d.c
39528@@ -498,7 +498,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data) 39633@@ -498,7 +498,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
@@ -39543,7 +39648,7 @@ index 4a87e5c..76bdf5c 100644
39543 return 0; 39648 return 0;
39544 } 39649 }
39545 39650
39546@@ -617,7 +617,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf, 39651@@ -616,7 +616,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
39547 add_wait_queue(&lis3->misc_wait, &wait); 39652 add_wait_queue(&lis3->misc_wait, &wait);
39548 while (true) { 39653 while (true) {
39549 set_current_state(TASK_INTERRUPTIBLE); 39654 set_current_state(TASK_INTERRUPTIBLE);
@@ -39552,7 +39657,7 @@ index 4a87e5c..76bdf5c 100644
39552 if (data) 39657 if (data)
39553 break; 39658 break;
39554 39659
39555@@ -658,7 +658,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait) 39660@@ -657,7 +657,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
39556 struct lis3lv02d, miscdev); 39661 struct lis3lv02d, miscdev);
39557 39662
39558 poll_wait(file, &lis3->misc_wait, wait); 39663 poll_wait(file, &lis3->misc_wait, wait);
@@ -39590,7 +39695,7 @@ index 2f30bad..c4c13d0 100644
39590 mcs_op_statistics[op].max = nsec; 39695 mcs_op_statistics[op].max = nsec;
39591 } 39696 }
39592diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c 39697diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
39593index 950dbe9..eeef0f8 100644 39698index 797d796..ae8f01e 100644
39594--- a/drivers/misc/sgi-gru/gruprocfs.c 39699--- a/drivers/misc/sgi-gru/gruprocfs.c
39595+++ b/drivers/misc/sgi-gru/gruprocfs.c 39700+++ b/drivers/misc/sgi-gru/gruprocfs.c
39596@@ -32,9 +32,9 @@ 39701@@ -32,9 +32,9 @@
@@ -39675,31 +39780,6 @@ index 5c3ce24..4915ccb 100644
39675- atomic_long_t flush_tlb_gru; 39780- atomic_long_t flush_tlb_gru;
39676- atomic_long_t flush_tlb_gru_tgh; 39781- atomic_long_t flush_tlb_gru_tgh;
39677- atomic_long_t flush_tlb_gru_zero_asid; 39782- atomic_long_t flush_tlb_gru_zero_asid;
39678-
39679- atomic_long_t copy_gpa;
39680- atomic_long_t read_gpa;
39681-
39682- atomic_long_t mesq_receive;
39683- atomic_long_t mesq_receive_none;
39684- atomic_long_t mesq_send;
39685- atomic_long_t mesq_send_failed;
39686- atomic_long_t mesq_noop;
39687- atomic_long_t mesq_send_unexpected_error;
39688- atomic_long_t mesq_send_lb_overflow;
39689- atomic_long_t mesq_send_qlimit_reached;
39690- atomic_long_t mesq_send_amo_nacked;
39691- atomic_long_t mesq_send_put_nacked;
39692- atomic_long_t mesq_page_overflow;
39693- atomic_long_t mesq_qf_locked;
39694- atomic_long_t mesq_qf_noop_not_full;
39695- atomic_long_t mesq_qf_switch_head_failed;
39696- atomic_long_t mesq_qf_unexpected_error;
39697- atomic_long_t mesq_noop_unexpected_error;
39698- atomic_long_t mesq_noop_lb_overflow;
39699- atomic_long_t mesq_noop_qlimit_reached;
39700- atomic_long_t mesq_noop_amo_nacked;
39701- atomic_long_t mesq_noop_put_nacked;
39702- atomic_long_t mesq_noop_page_overflow;
39703+ atomic_long_unchecked_t vdata_alloc; 39783+ atomic_long_unchecked_t vdata_alloc;
39704+ atomic_long_unchecked_t vdata_free; 39784+ atomic_long_unchecked_t vdata_free;
39705+ atomic_long_unchecked_t gts_alloc; 39785+ atomic_long_unchecked_t gts_alloc;
@@ -39751,10 +39831,33 @@ index 5c3ce24..4915ccb 100644
39751+ atomic_long_unchecked_t flush_tlb_gru; 39831+ atomic_long_unchecked_t flush_tlb_gru;
39752+ atomic_long_unchecked_t flush_tlb_gru_tgh; 39832+ atomic_long_unchecked_t flush_tlb_gru_tgh;
39753+ atomic_long_unchecked_t flush_tlb_gru_zero_asid; 39833+ atomic_long_unchecked_t flush_tlb_gru_zero_asid;
39754+ 39834
39835- atomic_long_t copy_gpa;
39836- atomic_long_t read_gpa;
39755+ atomic_long_unchecked_t copy_gpa; 39837+ atomic_long_unchecked_t copy_gpa;
39756+ atomic_long_unchecked_t read_gpa; 39838+ atomic_long_unchecked_t read_gpa;
39757+ 39839
39840- atomic_long_t mesq_receive;
39841- atomic_long_t mesq_receive_none;
39842- atomic_long_t mesq_send;
39843- atomic_long_t mesq_send_failed;
39844- atomic_long_t mesq_noop;
39845- atomic_long_t mesq_send_unexpected_error;
39846- atomic_long_t mesq_send_lb_overflow;
39847- atomic_long_t mesq_send_qlimit_reached;
39848- atomic_long_t mesq_send_amo_nacked;
39849- atomic_long_t mesq_send_put_nacked;
39850- atomic_long_t mesq_page_overflow;
39851- atomic_long_t mesq_qf_locked;
39852- atomic_long_t mesq_qf_noop_not_full;
39853- atomic_long_t mesq_qf_switch_head_failed;
39854- atomic_long_t mesq_qf_unexpected_error;
39855- atomic_long_t mesq_noop_unexpected_error;
39856- atomic_long_t mesq_noop_lb_overflow;
39857- atomic_long_t mesq_noop_qlimit_reached;
39858- atomic_long_t mesq_noop_amo_nacked;
39859- atomic_long_t mesq_noop_put_nacked;
39860- atomic_long_t mesq_noop_page_overflow;
39758+ atomic_long_unchecked_t mesq_receive; 39861+ atomic_long_unchecked_t mesq_receive;
39759+ atomic_long_unchecked_t mesq_receive_none; 39862+ atomic_long_unchecked_t mesq_receive_none;
39760+ atomic_long_unchecked_t mesq_send; 39863+ atomic_long_unchecked_t mesq_send;
@@ -39869,21 +39972,21 @@ index 49f04bc..65660c2 100644
39869 /* 39972 /*
39870 * dma onto stack is unsafe/nonportable, but callers to this 39973 * dma onto stack is unsafe/nonportable, but callers to this
39871diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h 39974diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
39872index 53b8fd9..615b462 100644 39975index 0b74189..818358f 100644
39873--- a/drivers/mmc/host/dw_mmc.h 39976--- a/drivers/mmc/host/dw_mmc.h
39874+++ b/drivers/mmc/host/dw_mmc.h 39977+++ b/drivers/mmc/host/dw_mmc.h
39875@@ -205,5 +205,5 @@ struct dw_mci_drv_data { 39978@@ -202,5 +202,5 @@ struct dw_mci_drv_data {
39979 void (*prepare_command)(struct dw_mci *host, u32 *cmdr);
39980 void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
39876 int (*parse_dt)(struct dw_mci *host); 39981 int (*parse_dt)(struct dw_mci *host);
39877 int (*setup_bus)(struct dw_mci *host,
39878 struct device_node *slot_np, u8 bus_width);
39879-}; 39982-};
39880+} __do_const; 39983+} __do_const;
39881 #endif /* _DW_MMC_H_ */ 39984 #endif /* _DW_MMC_H_ */
39882diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c 39985diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
39883index 7363efe..681558e 100644 39986index c6f6246..60760a8 100644
39884--- a/drivers/mmc/host/sdhci-s3c.c 39987--- a/drivers/mmc/host/sdhci-s3c.c
39885+++ b/drivers/mmc/host/sdhci-s3c.c 39988+++ b/drivers/mmc/host/sdhci-s3c.c
39886@@ -720,9 +720,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev) 39989@@ -664,9 +664,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
39887 * we can use overriding functions instead of default. 39990 * we can use overriding functions instead of default.
39888 */ 39991 */
39889 if (host->quirks & SDHCI_QUIRK_NONSTANDARD_CLOCK) { 39992 if (host->quirks & SDHCI_QUIRK_NONSTANDARD_CLOCK) {
@@ -39898,19 +40001,6 @@ index 7363efe..681558e 100644
39898 } 40001 }
39899 40002
39900 /* It supports additional host capabilities if needed */ 40003 /* It supports additional host capabilities if needed */
39901diff --git a/drivers/mtd/devices/doc2000.c b/drivers/mtd/devices/doc2000.c
39902index a4eb8b5..8c0628f 100644
39903--- a/drivers/mtd/devices/doc2000.c
39904+++ b/drivers/mtd/devices/doc2000.c
39905@@ -753,7 +753,7 @@ static int doc_write(struct mtd_info *mtd, loff_t to, size_t len,
39906
39907 /* The ECC will not be calculated correctly if less than 512 is written */
39908 /* DBB-
39909- if (len != 0x200 && eccbuf)
39910+ if (len != 0x200)
39911 printk(KERN_WARNING
39912 "ECC needs a full sector write (adr: %lx size %lx)\n",
39913 (long) to, (long) len);
39914diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c 40004diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
39915index 0c8bb6b..6f35deb 100644 40005index 0c8bb6b..6f35deb 100644
39916--- a/drivers/mtd/nand/denali.c 40006--- a/drivers/mtd/nand/denali.c
@@ -39936,7 +40026,7 @@ index 51b9d6a..52af9a7 100644
39936 #include <linux/mtd/nand.h> 40026 #include <linux/mtd/nand.h>
39937 #include <linux/mtd/nftl.h> 40027 #include <linux/mtd/nftl.h>
39938diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c 40028diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
39939index 8dd6ba5..419cc1d 100644 40029index f9d5615..99dd95f 100644
39940--- a/drivers/mtd/sm_ftl.c 40030--- a/drivers/mtd/sm_ftl.c
39941+++ b/drivers/mtd/sm_ftl.c 40031+++ b/drivers/mtd/sm_ftl.c
39942@@ -56,7 +56,7 @@ ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr, 40032@@ -56,7 +56,7 @@ ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
@@ -39949,10 +40039,10 @@ index 8dd6ba5..419cc1d 100644
39949 struct sm_sysfs_attribute *vendor_attribute; 40039 struct sm_sysfs_attribute *vendor_attribute;
39950 40040
39951diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c 40041diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
39952index dbbea0e..3f4a0b1 100644 40042index f975696..4597e21 100644
39953--- a/drivers/net/bonding/bond_main.c 40043--- a/drivers/net/bonding/bond_main.c
39954+++ b/drivers/net/bonding/bond_main.c 40044+++ b/drivers/net/bonding/bond_main.c
39955@@ -4822,7 +4822,7 @@ static unsigned int bond_get_num_tx_queues(void) 40045@@ -4870,7 +4870,7 @@ static unsigned int bond_get_num_tx_queues(void)
39956 return tx_queues; 40046 return tx_queues;
39957 } 40047 }
39958 40048
@@ -39961,7 +40051,7 @@ index dbbea0e..3f4a0b1 100644
39961 .kind = "bond", 40051 .kind = "bond",
39962 .priv_size = sizeof(struct bonding), 40052 .priv_size = sizeof(struct bonding),
39963 .setup = bond_setup, 40053 .setup = bond_setup,
39964@@ -4947,8 +4947,8 @@ static void __exit bonding_exit(void) 40054@@ -4995,8 +4995,8 @@ static void __exit bonding_exit(void)
39965 40055
39966 bond_destroy_debugfs(); 40056 bond_destroy_debugfs();
39967 40057
@@ -39971,28 +40061,6 @@ index dbbea0e..3f4a0b1 100644
39971 40061
39972 #ifdef CONFIG_NET_POLL_CONTROLLER 40062 #ifdef CONFIG_NET_POLL_CONTROLLER
39973 /* 40063 /*
39974diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
39975index 42aa54a..b710c6b 100644
39976--- a/drivers/net/dummy.c
39977+++ b/drivers/net/dummy.c
39978@@ -185,6 +185,8 @@ static int __init dummy_init_module(void)
39979
39980 rtnl_lock();
39981 err = __rtnl_link_register(&dummy_link_ops);
39982+ if (err < 0)
39983+ goto out;
39984
39985 for (i = 0; i < numdummies && !err; i++) {
39986 err = dummy_init_one();
39987@@ -192,6 +194,8 @@ static int __init dummy_init_module(void)
39988 }
39989 if (err < 0)
39990 __rtnl_link_unregister(&dummy_link_ops);
39991+
39992+out:
39993 rtnl_unlock();
39994
39995 return err;
39996diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c 40064diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
39997index e1d2643..7f4133b 100644 40065index e1d2643..7f4133b 100644
39998--- a/drivers/net/ethernet/8390/ax88796.c 40066--- a/drivers/net/ethernet/8390/ax88796.c
@@ -40010,117 +40078,11 @@ index e1d2643..7f4133b 100644
40010 } 40078 }
40011 40079
40012 if (!request_mem_region(mem->start, mem_size, pdev->name)) { 40080 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
40013diff --git a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
40014index ac25f05..35c9d1a 100644
40015--- a/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
40016+++ b/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
40017@@ -1667,8 +1667,8 @@ check_sum:
40018 return 0;
40019 }
40020
40021-static void atl1e_tx_map(struct atl1e_adapter *adapter,
40022- struct sk_buff *skb, struct atl1e_tpd_desc *tpd)
40023+static int atl1e_tx_map(struct atl1e_adapter *adapter,
40024+ struct sk_buff *skb, struct atl1e_tpd_desc *tpd)
40025 {
40026 struct atl1e_tpd_desc *use_tpd = NULL;
40027 struct atl1e_tx_buffer *tx_buffer = NULL;
40028@@ -1679,6 +1679,8 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
40029 u16 nr_frags;
40030 u16 f;
40031 int segment;
40032+ int ring_start = adapter->tx_ring.next_to_use;
40033+ int ring_end;
40034
40035 nr_frags = skb_shinfo(skb)->nr_frags;
40036 segment = (tpd->word3 >> TPD_SEGMENT_EN_SHIFT) & TPD_SEGMENT_EN_MASK;
40037@@ -1691,6 +1693,9 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
40038 tx_buffer->length = map_len;
40039 tx_buffer->dma = pci_map_single(adapter->pdev,
40040 skb->data, hdr_len, PCI_DMA_TODEVICE);
40041+ if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma))
40042+ return -ENOSPC;
40043+
40044 ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_SINGLE);
40045 mapped_len += map_len;
40046 use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma);
40047@@ -1717,6 +1722,22 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
40048 tx_buffer->dma =
40049 pci_map_single(adapter->pdev, skb->data + mapped_len,
40050 map_len, PCI_DMA_TODEVICE);
40051+
40052+ if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) {
40053+ /* We need to unwind the mappings we've done */
40054+ ring_end = adapter->tx_ring.next_to_use;
40055+ adapter->tx_ring.next_to_use = ring_start;
40056+ while (adapter->tx_ring.next_to_use != ring_end) {
40057+ tpd = atl1e_get_tpd(adapter);
40058+ tx_buffer = atl1e_get_tx_buffer(adapter, tpd);
40059+ pci_unmap_single(adapter->pdev, tx_buffer->dma,
40060+ tx_buffer->length, PCI_DMA_TODEVICE);
40061+ }
40062+ /* Reset the tx rings next pointer */
40063+ adapter->tx_ring.next_to_use = ring_start;
40064+ return -ENOSPC;
40065+ }
40066+
40067 ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_SINGLE);
40068 mapped_len += map_len;
40069 use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma);
40070@@ -1752,6 +1773,23 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
40071 (i * MAX_TX_BUF_LEN),
40072 tx_buffer->length,
40073 DMA_TO_DEVICE);
40074+
40075+ if (dma_mapping_error(&adapter->pdev->dev, tx_buffer->dma)) {
40076+ /* We need to unwind the mappings we've done */
40077+ ring_end = adapter->tx_ring.next_to_use;
40078+ adapter->tx_ring.next_to_use = ring_start;
40079+ while (adapter->tx_ring.next_to_use != ring_end) {
40080+ tpd = atl1e_get_tpd(adapter);
40081+ tx_buffer = atl1e_get_tx_buffer(adapter, tpd);
40082+ dma_unmap_page(&adapter->pdev->dev, tx_buffer->dma,
40083+ tx_buffer->length, DMA_TO_DEVICE);
40084+ }
40085+
40086+ /* Reset the ring next to use pointer */
40087+ adapter->tx_ring.next_to_use = ring_start;
40088+ return -ENOSPC;
40089+ }
40090+
40091 ATL1E_SET_PCIMAP_TYPE(tx_buffer, ATL1E_TX_PCIMAP_PAGE);
40092 use_tpd->buffer_addr = cpu_to_le64(tx_buffer->dma);
40093 use_tpd->word2 = (use_tpd->word2 & (~TPD_BUFLEN_MASK)) |
40094@@ -1769,6 +1807,7 @@ static void atl1e_tx_map(struct atl1e_adapter *adapter,
40095 /* The last buffer info contain the skb address,
40096 so it will be free after unmap */
40097 tx_buffer->skb = skb;
40098+ return 0;
40099 }
40100
40101 static void atl1e_tx_queue(struct atl1e_adapter *adapter, u16 count,
40102@@ -1836,10 +1875,15 @@ static netdev_tx_t atl1e_xmit_frame(struct sk_buff *skb,
40103 return NETDEV_TX_OK;
40104 }
40105
40106- atl1e_tx_map(adapter, skb, tpd);
40107+ if (atl1e_tx_map(adapter, skb, tpd)) {
40108+ dev_kfree_skb_any(skb);
40109+ goto out;
40110+ }
40111+
40112 atl1e_tx_queue(adapter, tpd_req, tpd);
40113
40114 netdev->trans_start = jiffies; /* NETIF_F_LLTX driver :( */
40115+out:
40116 spin_unlock_irqrestore(&adapter->tx_lock, flags);
40117 return NETDEV_TX_OK;
40118 }
40119diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h 40081diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
40120index aee7671..3ca2651 100644 40082index 151675d..0139a9d 100644
40121--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h 40083--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
40122+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h 40084+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
40123@@ -1093,7 +1093,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp) 40085@@ -1112,7 +1112,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
40124 static inline void bnx2x_init_bp_objs(struct bnx2x *bp) 40086 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
40125 { 40087 {
40126 /* RX_MODE controlling object */ 40088 /* RX_MODE controlling object */
@@ -40130,7 +40092,7 @@ index aee7671..3ca2651 100644
40130 /* multicast configuration controlling object */ 40092 /* multicast configuration controlling object */
40131 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid, 40093 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
40132diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c 40094diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
40133index edfa67a..d6c52ae 100644 40095index ce1a916..10b52b0 100644
40134--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c 40096--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
40135+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c 40097+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_ethtool.c
40136@@ -960,6 +960,9 @@ static int bnx2x_set_dump(struct net_device *dev, struct ethtool_dump *val) 40098@@ -960,6 +960,9 @@ static int bnx2x_set_dump(struct net_device *dev, struct ethtool_dump *val)
@@ -40153,10 +40115,10 @@ index edfa67a..d6c52ae 100644
40153 * cause false alarms by reading never written registers. We 40115 * cause false alarms by reading never written registers. We
40154 * will re-enable parity attentions right after the dump. 40116 * will re-enable parity attentions right after the dump.
40155diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c 40117diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
40156index c50696b..cf96f52 100644 40118index b4c9dea..2a9927f 100644
40157--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c 40119--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
40158+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c 40120+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
40159@@ -11394,6 +11394,8 @@ static int bnx2x_init_bp(struct bnx2x *bp) 40121@@ -11497,6 +11497,8 @@ static int bnx2x_init_bp(struct bnx2x *bp)
40160 bp->min_msix_vec_cnt = 2; 40122 bp->min_msix_vec_cnt = 2;
40161 BNX2X_DEV_INFO("bp->min_msix_vec_cnt %d", bp->min_msix_vec_cnt); 40123 BNX2X_DEV_INFO("bp->min_msix_vec_cnt %d", bp->min_msix_vec_cnt);
40162 40124
@@ -40166,10 +40128,10 @@ index c50696b..cf96f52 100644
40166 } 40128 }
40167 40129
40168diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c 40130diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
40169index 7306416..5fb7fb5 100644 40131index 32a9609..0b1c53a 100644
40170--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c 40132--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
40171+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c 40133+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
40172@@ -2381,15 +2381,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp, 40134@@ -2387,15 +2387,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
40173 return rc; 40135 return rc;
40174 } 40136 }
40175 40137
@@ -40191,10 +40153,10 @@ index 7306416..5fb7fb5 100644
40191 } 40153 }
40192 40154
40193diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h 40155diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
40194index ff90760..08d8aed 100644 40156index 43c00bc..dd1d03d 100644
40195--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h 40157--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
40196+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h 40158+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
40197@@ -1306,8 +1306,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp, 40159@@ -1321,8 +1321,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
40198 40160
40199 /********************* RX MODE ****************/ 40161 /********************* RX MODE ****************/
40200 40162
@@ -40205,7 +40167,7 @@ index ff90760..08d8aed 100644
40205 /** 40167 /**
40206 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters. 40168 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
40207diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h 40169diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
40208index 25309bf..fcfd54c 100644 40170index ff6e30e..87e8452 100644
40209--- a/drivers/net/ethernet/broadcom/tg3.h 40171--- a/drivers/net/ethernet/broadcom/tg3.h
40210+++ b/drivers/net/ethernet/broadcom/tg3.h 40172+++ b/drivers/net/ethernet/broadcom/tg3.h
40211@@ -147,6 +147,7 @@ 40173@@ -147,6 +147,7 @@
@@ -40216,24 +40178,11 @@ index 25309bf..fcfd54c 100644
40216 #define CHIPREV_ID_5750_C2 0x4202 40178 #define CHIPREV_ID_5750_C2 0x4202
40217 #define CHIPREV_ID_5752_A0_HW 0x5000 40179 #define CHIPREV_ID_5752_A0_HW 0x5000
40218 #define CHIPREV_ID_5752_A0 0x6000 40180 #define CHIPREV_ID_5752_A0 0x6000
40219diff --git a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
40220index 6e8bc9d..94d957d 100644
40221--- a/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
40222+++ b/drivers/net/ethernet/brocade/bna/bnad_debugfs.c
40223@@ -244,7 +244,7 @@ bnad_debugfs_lseek(struct file *file, loff_t offset, int orig)
40224 file->f_pos += offset;
40225 break;
40226 case 2:
40227- file->f_pos = debug->buffer_len - offset;
40228+ file->f_pos = debug->buffer_len + offset;
40229 break;
40230 default:
40231 return -EINVAL;
40232diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 40181diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
40233index 2b5e621..32187b8 100644 40182index 71497e8..b650951 100644
40234--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 40183--- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
40235+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c 40184+++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
40236@@ -3036,7 +3036,9 @@ static void t3_io_resume(struct pci_dev *pdev) 40185@@ -3037,7 +3037,9 @@ static void t3_io_resume(struct pci_dev *pdev)
40237 CH_ALERT(adapter, "adapter recovering, PEX ERR 0x%x\n", 40186 CH_ALERT(adapter, "adapter recovering, PEX ERR 0x%x\n",
40238 t3_read_reg(adapter, A_PCIE_PEX_ERR)); 40187 t3_read_reg(adapter, A_PCIE_PEX_ERR));
40239 40188
@@ -40279,10 +40228,10 @@ index 4c83003..2a2a5b9 100644
40279 break; 40228 break;
40280 } 40229 }
40281diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c 40230diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
40282index 2886c9b..db71673 100644 40231index 6e43426..1bd8365 100644
40283--- a/drivers/net/ethernet/emulex/benet/be_main.c 40232--- a/drivers/net/ethernet/emulex/benet/be_main.c
40284+++ b/drivers/net/ethernet/emulex/benet/be_main.c 40233+++ b/drivers/net/ethernet/emulex/benet/be_main.c
40285@@ -455,7 +455,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val) 40234@@ -469,7 +469,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
40286 40235
40287 if (wrapped) 40236 if (wrapped)
40288 newacc += 65536; 40237 newacc += 65536;
@@ -40290,9 +40239,9 @@ index 2886c9b..db71673 100644
40290+ ACCESS_ONCE_RW(*acc) = newacc; 40239+ ACCESS_ONCE_RW(*acc) = newacc;
40291 } 40240 }
40292 40241
40293 void be_parse_stats(struct be_adapter *adapter) 40242 void populate_erx_stats(struct be_adapter *adapter,
40294diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c 40243diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
40295index 7c361d1..57e3ff1 100644 40244index 21b85fb..b49e5fc 100644
40296--- a/drivers/net/ethernet/faraday/ftgmac100.c 40245--- a/drivers/net/ethernet/faraday/ftgmac100.c
40297+++ b/drivers/net/ethernet/faraday/ftgmac100.c 40246+++ b/drivers/net/ethernet/faraday/ftgmac100.c
40298@@ -31,6 +31,8 @@ 40247@@ -31,6 +31,8 @@
@@ -40305,7 +40254,7 @@ index 7c361d1..57e3ff1 100644
40305 40254
40306 #include "ftgmac100.h" 40255 #include "ftgmac100.h"
40307diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c 40256diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
40308index b5ea8fb..bd25e9a 100644 40257index a6eda8d..935d273 100644
40309--- a/drivers/net/ethernet/faraday/ftmac100.c 40258--- a/drivers/net/ethernet/faraday/ftmac100.c
40310+++ b/drivers/net/ethernet/faraday/ftmac100.c 40259+++ b/drivers/net/ethernet/faraday/ftmac100.c
40311@@ -31,6 +31,8 @@ 40260@@ -31,6 +31,8 @@
@@ -40356,11 +40305,11 @@ index fbe5363..266b4e3 100644
40356 __vxge_hw_mempool_create(vpath->hldev, 40305 __vxge_hw_mempool_create(vpath->hldev,
40357 fifo->config->memblock_size, 40306 fifo->config->memblock_size,
40358diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c 40307diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
40359index 5c033f2..7bbb0d8 100644 40308index 5e7fb1d..f8d1810 100644
40360--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c 40309--- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
40361+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c 40310+++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
40362@@ -1894,7 +1894,9 @@ int qlcnic_83xx_config_default_opmode(struct qlcnic_adapter *adapter) 40311@@ -1948,7 +1948,9 @@ int qlcnic_83xx_config_default_opmode(struct qlcnic_adapter *adapter)
40363 op_mode = QLCRDX(ahw, QLC_83XX_DRV_OP_MODE); 40312 op_mode = QLC_83XX_DEFAULT_OPMODE;
40364 40313
40365 if (op_mode == QLC_83XX_DEFAULT_OPMODE) { 40314 if (op_mode == QLC_83XX_DEFAULT_OPMODE) {
40366- adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver; 40315- adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
@@ -40400,10 +40349,10 @@ index b0c3de9..fc5857e 100644
40400 return -EIO; 40349 return -EIO;
40401 } 40350 }
40402diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c 40351diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
40403index 54fd2ef..33c8a4f 100644 40352index 393f961..d343034 100644
40404--- a/drivers/net/ethernet/realtek/r8169.c 40353--- a/drivers/net/ethernet/realtek/r8169.c
40405+++ b/drivers/net/ethernet/realtek/r8169.c 40354+++ b/drivers/net/ethernet/realtek/r8169.c
40406@@ -740,22 +740,22 @@ struct rtl8169_private { 40355@@ -753,22 +753,22 @@ struct rtl8169_private {
40407 struct mdio_ops { 40356 struct mdio_ops {
40408 void (*write)(struct rtl8169_private *, int, int); 40357 void (*write)(struct rtl8169_private *, int, int);
40409 int (*read)(struct rtl8169_private *, int); 40358 int (*read)(struct rtl8169_private *, int);
@@ -40430,66 +40379,11 @@ index 54fd2ef..33c8a4f 100644
40430 40379
40431 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv); 40380 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
40432 int (*get_settings)(struct net_device *, struct ethtool_cmd *); 40381 int (*get_settings)(struct net_device *, struct ethtool_cmd *);
40433diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
40434index 8791999..68caa85 100644
40435--- a/drivers/net/ethernet/renesas/sh_eth.c
40436+++ b/drivers/net/ethernet/renesas/sh_eth.c
40437@@ -172,8 +172,9 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data = {
40438 .rmcr_value = 0x00000001,
40439
40440 .tx_check = EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_RTO,
40441- .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RDE |
40442- EESR_RFRMER | EESR_TFE | EESR_TDE | EESR_ECI,
40443+ .eesr_err_check = EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
40444+ EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE |
40445+ EESR_ECI,
40446 .tx_error_check = EESR_TWB | EESR_TABT | EESR_TDE | EESR_TFE,
40447
40448 .apr = 1,
40449@@ -286,9 +287,9 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data_giga = {
40450 .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff,
40451
40452 .tx_check = EESR_TC1 | EESR_FTC,
40453- .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | \
40454- EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | \
40455- EESR_ECI,
40456+ .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
40457+ EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE |
40458+ EESR_TDE | EESR_ECI,
40459 .tx_error_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_TDE | \
40460 EESR_TFE,
40461 .fdr_value = 0x0000072f,
40462@@ -505,9 +506,9 @@ static struct sh_eth_cpu_data sh_eth_my_cpu_data = {
40463 .eesipr_value = DMAC_M_RFRMER | DMAC_M_ECI | 0x003fffff,
40464
40465 .tx_check = EESR_TC1 | EESR_FTC,
40466- .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT | \
40467- EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE | \
40468- EESR_ECI,
40469+ .eesr_err_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_RABT |
40470+ EESR_RFE | EESR_RDE | EESR_RFRMER | EESR_TFE |
40471+ EESR_TDE | EESR_ECI,
40472 .tx_error_check = EESR_TWB1 | EESR_TWB | EESR_TABT | EESR_TDE | \
40473 EESR_TFE,
40474
40475diff --git a/drivers/net/ethernet/renesas/sh_eth.h b/drivers/net/ethernet/renesas/sh_eth.h
40476index 828be45..832be11 100644
40477--- a/drivers/net/ethernet/renesas/sh_eth.h
40478+++ b/drivers/net/ethernet/renesas/sh_eth.h
40479@@ -472,7 +472,7 @@ enum EESR_BIT {
40480
40481 #define DEFAULT_TX_CHECK (EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | \
40482 EESR_RTO)
40483-#define DEFAULT_EESR_ERR_CHECK (EESR_TWB | EESR_TABT | EESR_RABT | \
40484+#define DEFAULT_EESR_ERR_CHECK (EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE | \
40485 EESR_RDE | EESR_RFRMER | EESR_ADE | \
40486 EESR_TFE | EESR_TDE | EESR_ECI)
40487 #define DEFAULT_TX_ERROR_CHECK (EESR_TWB | EESR_TABT | EESR_ADE | EESR_TDE | \
40488diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c 40382diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
40489index 3f93624..cf01144 100644 40383index 9a95abf..36df7f9 100644
40490--- a/drivers/net/ethernet/sfc/ptp.c 40384--- a/drivers/net/ethernet/sfc/ptp.c
40491+++ b/drivers/net/ethernet/sfc/ptp.c 40385+++ b/drivers/net/ethernet/sfc/ptp.c
40492@@ -553,7 +553,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings) 40386@@ -535,7 +535,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
40493 (u32)((u64)ptp->start.dma_addr >> 32)); 40387 (u32)((u64)ptp->start.dma_addr >> 32));
40494 40388
40495 /* Clear flag that signals MC ready */ 40389 /* Clear flag that signals MC ready */
@@ -40513,19 +40407,6 @@ index 50617c5..b13724c 100644
40513 } 40407 }
40514 40408
40515 /* To mask all all interrupts.*/ 40409 /* To mask all all interrupts.*/
40516diff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c
40517index 1df0ff3..3df5684 100644
40518--- a/drivers/net/ethernet/sun/sunvnet.c
40519+++ b/drivers/net/ethernet/sun/sunvnet.c
40520@@ -1239,6 +1239,8 @@ static int vnet_port_remove(struct vio_dev *vdev)
40521 dev_set_drvdata(&vdev->dev, NULL);
40522
40523 kfree(port);
40524+
40525+ unregister_netdev(vp->dev);
40526 }
40527 return 0;
40528 }
40529diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h 40410diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
40530index e6fe0d8..2b7d752 100644 40411index e6fe0d8..2b7d752 100644
40531--- a/drivers/net/hyperv/hyperv_net.h 40412--- a/drivers/net/hyperv/hyperv_net.h
@@ -40562,10 +40443,10 @@ index 0775f0a..d4fb316 100644
40562 /* Ignore return since this msg is optional. */ 40443 /* Ignore return since this msg is optional. */
40563 rndis_filter_send_request(dev, request); 40444 rndis_filter_send_request(dev, request);
40564diff --git a/drivers/net/ieee802154/fakehard.c b/drivers/net/ieee802154/fakehard.c 40445diff --git a/drivers/net/ieee802154/fakehard.c b/drivers/net/ieee802154/fakehard.c
40565index 8f1c256..a2991d1 100644 40446index bf0d55e..82bcfbd1 100644
40566--- a/drivers/net/ieee802154/fakehard.c 40447--- a/drivers/net/ieee802154/fakehard.c
40567+++ b/drivers/net/ieee802154/fakehard.c 40448+++ b/drivers/net/ieee802154/fakehard.c
40568@@ -385,7 +385,7 @@ static int ieee802154fake_probe(struct platform_device *pdev) 40449@@ -364,7 +364,7 @@ static int ieee802154fake_probe(struct platform_device *pdev)
40569 phy->transmit_power = 0xbf; 40450 phy->transmit_power = 0xbf;
40570 40451
40571 dev->netdev_ops = &fake_ops; 40452 dev->netdev_ops = &fake_ops;
@@ -40574,34 +40455,11 @@ index 8f1c256..a2991d1 100644
40574 40455
40575 priv = netdev_priv(dev); 40456 priv = netdev_priv(dev);
40576 priv->phy = phy; 40457 priv->phy = phy;
40577diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
40578index 8216438..c51944d 100644
40579--- a/drivers/net/ifb.c
40580+++ b/drivers/net/ifb.c
40581@@ -290,11 +290,17 @@ static int __init ifb_init_module(void)
40582
40583 rtnl_lock();
40584 err = __rtnl_link_register(&ifb_link_ops);
40585+ if (err < 0)
40586+ goto out;
40587
40588- for (i = 0; i < numifbs && !err; i++)
40589+ for (i = 0; i < numifbs && !err; i++) {
40590 err = ifb_init_one(i);
40591+ cond_resched();
40592+ }
40593 if (err)
40594 __rtnl_link_unregister(&ifb_link_ops);
40595+
40596+out:
40597 rtnl_unlock();
40598
40599 return err;
40600diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c 40458diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
40601index 011062e..ada88e9 100644 40459index 6e91931..2b0ebe7 100644
40602--- a/drivers/net/macvlan.c 40460--- a/drivers/net/macvlan.c
40603+++ b/drivers/net/macvlan.c 40461+++ b/drivers/net/macvlan.c
40604@@ -892,13 +892,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = { 40462@@ -905,13 +905,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
40605 int macvlan_link_register(struct rtnl_link_ops *ops) 40463 int macvlan_link_register(struct rtnl_link_ops *ops)
40606 { 40464 {
40607 /* common fields */ 40465 /* common fields */
@@ -40624,7 +40482,7 @@ index 011062e..ada88e9 100644
40624 40482
40625 return rtnl_link_register(ops); 40483 return rtnl_link_register(ops);
40626 }; 40484 };
40627@@ -954,7 +956,7 @@ static int macvlan_device_event(struct notifier_block *unused, 40485@@ -967,7 +969,7 @@ static int macvlan_device_event(struct notifier_block *unused,
40628 return NOTIFY_DONE; 40486 return NOTIFY_DONE;
40629 } 40487 }
40630 40488
@@ -40634,121 +40492,10 @@ index 011062e..ada88e9 100644
40634 }; 40492 };
40635 40493
40636diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c 40494diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
40637index acf6450..d880503 100644 40495index 523d6b2..5e16aa1 100644
40638--- a/drivers/net/macvtap.c 40496--- a/drivers/net/macvtap.c
40639+++ b/drivers/net/macvtap.c 40497+++ b/drivers/net/macvtap.c
40640@@ -525,8 +525,10 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from, 40498@@ -1110,7 +1110,7 @@ static int macvtap_device_event(struct notifier_block *unused,
40641 return -EMSGSIZE;
40642 num_pages = get_user_pages_fast(base, size, 0, &page[i]);
40643 if (num_pages != size) {
40644- for (i = 0; i < num_pages; i++)
40645- put_page(page[i]);
40646+ int j;
40647+
40648+ for (j = 0; j < num_pages; j++)
40649+ put_page(page[i + j]);
40650 return -EFAULT;
40651 }
40652 truesize = size * PAGE_SIZE;
40653@@ -632,6 +634,28 @@ static int macvtap_skb_to_vnet_hdr(const struct sk_buff *skb,
40654 return 0;
40655 }
40656
40657+static unsigned long iov_pages(const struct iovec *iv, int offset,
40658+ unsigned long nr_segs)
40659+{
40660+ unsigned long seg, base;
40661+ int pages = 0, len, size;
40662+
40663+ while (nr_segs && (offset >= iv->iov_len)) {
40664+ offset -= iv->iov_len;
40665+ ++iv;
40666+ --nr_segs;
40667+ }
40668+
40669+ for (seg = 0; seg < nr_segs; seg++) {
40670+ base = (unsigned long)iv[seg].iov_base + offset;
40671+ len = iv[seg].iov_len - offset;
40672+ size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT;
40673+ pages += size;
40674+ offset = 0;
40675+ }
40676+
40677+ return pages;
40678+}
40679
40680 /* Get packet from user space buffer */
40681 static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
40682@@ -647,6 +671,7 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
40683 int copylen = 0;
40684 bool zerocopy = false;
40685 struct flow_keys keys;
40686+ size_t linear;
40687
40688 if (q->flags & IFF_VNET_HDR) {
40689 vnet_hdr_len = q->vnet_hdr_sz;
40690@@ -678,42 +703,35 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
40691 if (unlikely(count > UIO_MAXIOV))
40692 goto err;
40693
40694- if (m && m->msg_control && sock_flag(&q->sk, SOCK_ZEROCOPY))
40695- zerocopy = true;
40696+ if (m && m->msg_control && sock_flag(&q->sk, SOCK_ZEROCOPY)) {
40697+ copylen = vnet_hdr.hdr_len ? vnet_hdr.hdr_len : GOODCOPY_LEN;
40698+ linear = copylen;
40699+ if (iov_pages(iv, vnet_hdr_len + copylen, count)
40700+ <= MAX_SKB_FRAGS)
40701+ zerocopy = true;
40702+ }
40703
40704- if (zerocopy) {
40705- /* Userspace may produce vectors with count greater than
40706- * MAX_SKB_FRAGS, so we need to linearize parts of the skb
40707- * to let the rest of data to be fit in the frags.
40708- */
40709- if (count > MAX_SKB_FRAGS) {
40710- copylen = iov_length(iv, count - MAX_SKB_FRAGS);
40711- if (copylen < vnet_hdr_len)
40712- copylen = 0;
40713- else
40714- copylen -= vnet_hdr_len;
40715- }
40716- /* There are 256 bytes to be copied in skb, so there is enough
40717- * room for skb expand head in case it is used.
40718- * The rest buffer is mapped from userspace.
40719- */
40720- if (copylen < vnet_hdr.hdr_len)
40721- copylen = vnet_hdr.hdr_len;
40722- if (!copylen)
40723- copylen = GOODCOPY_LEN;
40724- } else
40725+ if (!zerocopy) {
40726 copylen = len;
40727+ linear = vnet_hdr.hdr_len;
40728+ }
40729
40730 skb = macvtap_alloc_skb(&q->sk, NET_IP_ALIGN, copylen,
40731- vnet_hdr.hdr_len, noblock, &err);
40732+ linear, noblock, &err);
40733 if (!skb)
40734 goto err;
40735
40736 if (zerocopy)
40737 err = zerocopy_sg_from_iovec(skb, iv, vnet_hdr_len, count);
40738- else
40739+ else {
40740 err = skb_copy_datagram_from_iovec(skb, 0, iv, vnet_hdr_len,
40741 len);
40742+ if (!err && m && m->msg_control) {
40743+ struct ubuf_info *uarg = m->msg_control;
40744+ uarg->callback(uarg, false);
40745+ }
40746+ }
40747+
40748 if (err)
40749 goto err_kfree;
40750
40751@@ -1099,7 +1117,7 @@ static int macvtap_device_event(struct notifier_block *unused,
40752 return NOTIFY_DONE; 40499 return NOTIFY_DONE;
40753 } 40500 }
40754 40501
@@ -40805,10 +40552,10 @@ index 1252d9c..80e660b 100644
40805 40552
40806 /* We've got a compressed packet; read the change byte */ 40553 /* We've got a compressed packet; read the change byte */
40807diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c 40554diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
40808index 0017b67..ab8f595 100644 40555index b305105..8ead6df 100644
40809--- a/drivers/net/team/team.c 40556--- a/drivers/net/team/team.c
40810+++ b/drivers/net/team/team.c 40557+++ b/drivers/net/team/team.c
40811@@ -2668,7 +2668,7 @@ static int team_device_event(struct notifier_block *unused, 40558@@ -2682,7 +2682,7 @@ static int team_device_event(struct notifier_block *unused,
40812 return NOTIFY_DONE; 40559 return NOTIFY_DONE;
40813 } 40560 }
40814 40561
@@ -40818,125 +40565,10 @@ index 0017b67..ab8f595 100644
40818 }; 40565 };
40819 40566
40820diff --git a/drivers/net/tun.c b/drivers/net/tun.c 40567diff --git a/drivers/net/tun.c b/drivers/net/tun.c
40821index 8ad822e..9bf0655 100644 40568index 2491eb2..694b2ec 100644
40822--- a/drivers/net/tun.c 40569--- a/drivers/net/tun.c
40823+++ b/drivers/net/tun.c 40570+++ b/drivers/net/tun.c
40824@@ -1013,8 +1013,10 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from, 40571@@ -1869,7 +1869,7 @@ unlock:
40825 return -EMSGSIZE;
40826 num_pages = get_user_pages_fast(base, size, 0, &page[i]);
40827 if (num_pages != size) {
40828- for (i = 0; i < num_pages; i++)
40829- put_page(page[i]);
40830+ int j;
40831+
40832+ for (j = 0; j < num_pages; j++)
40833+ put_page(page[i + j]);
40834 return -EFAULT;
40835 }
40836 truesize = size * PAGE_SIZE;
40837@@ -1038,6 +1040,29 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
40838 return 0;
40839 }
40840
40841+static unsigned long iov_pages(const struct iovec *iv, int offset,
40842+ unsigned long nr_segs)
40843+{
40844+ unsigned long seg, base;
40845+ int pages = 0, len, size;
40846+
40847+ while (nr_segs && (offset >= iv->iov_len)) {
40848+ offset -= iv->iov_len;
40849+ ++iv;
40850+ --nr_segs;
40851+ }
40852+
40853+ for (seg = 0; seg < nr_segs; seg++) {
40854+ base = (unsigned long)iv[seg].iov_base + offset;
40855+ len = iv[seg].iov_len - offset;
40856+ size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT;
40857+ pages += size;
40858+ offset = 0;
40859+ }
40860+
40861+ return pages;
40862+}
40863+
40864 /* Get packet from user space buffer */
40865 static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile,
40866 void *msg_control, const struct iovec *iv,
40867@@ -1045,7 +1070,7 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile,
40868 {
40869 struct tun_pi pi = { 0, cpu_to_be16(ETH_P_IP) };
40870 struct sk_buff *skb;
40871- size_t len = total_len, align = NET_SKB_PAD;
40872+ size_t len = total_len, align = NET_SKB_PAD, linear;
40873 struct virtio_net_hdr gso = { 0 };
40874 int offset = 0;
40875 int copylen;
40876@@ -1086,34 +1111,23 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile,
40877 return -EINVAL;
40878 }
40879
40880- if (msg_control)
40881- zerocopy = true;
40882-
40883- if (zerocopy) {
40884- /* Userspace may produce vectors with count greater than
40885- * MAX_SKB_FRAGS, so we need to linearize parts of the skb
40886- * to let the rest of data to be fit in the frags.
40887- */
40888- if (count > MAX_SKB_FRAGS) {
40889- copylen = iov_length(iv, count - MAX_SKB_FRAGS);
40890- if (copylen < offset)
40891- copylen = 0;
40892- else
40893- copylen -= offset;
40894- } else
40895- copylen = 0;
40896- /* There are 256 bytes to be copied in skb, so there is enough
40897- * room for skb expand head in case it is used.
40898+ if (msg_control) {
40899+ /* There are 256 bytes to be copied in skb, so there is
40900+ * enough room for skb expand head in case it is used.
40901 * The rest of the buffer is mapped from userspace.
40902 */
40903- if (copylen < gso.hdr_len)
40904- copylen = gso.hdr_len;
40905- if (!copylen)
40906- copylen = GOODCOPY_LEN;
40907- } else
40908+ copylen = gso.hdr_len ? gso.hdr_len : GOODCOPY_LEN;
40909+ linear = copylen;
40910+ if (iov_pages(iv, offset + copylen, count) <= MAX_SKB_FRAGS)
40911+ zerocopy = true;
40912+ }
40913+
40914+ if (!zerocopy) {
40915 copylen = len;
40916+ linear = gso.hdr_len;
40917+ }
40918
40919- skb = tun_alloc_skb(tfile, align, copylen, gso.hdr_len, noblock);
40920+ skb = tun_alloc_skb(tfile, align, copylen, linear, noblock);
40921 if (IS_ERR(skb)) {
40922 if (PTR_ERR(skb) != -EAGAIN)
40923 tun->dev->stats.rx_dropped++;
40924@@ -1122,8 +1136,13 @@ static ssize_t tun_get_user(struct tun_struct *tun, struct tun_file *tfile,
40925
40926 if (zerocopy)
40927 err = zerocopy_sg_from_iovec(skb, iv, offset, count);
40928- else
40929+ else {
40930 err = skb_copy_datagram_from_iovec(skb, 0, iv, offset, len);
40931+ if (!err && msg_control) {
40932+ struct ubuf_info *uarg = msg_control;
40933+ uarg->callback(uarg, false);
40934+ }
40935+ }
40936
40937 if (err) {
40938 tun->dev->stats.rx_dropped++;
40939@@ -1859,7 +1878,7 @@ unlock:
40940 } 40572 }
40941 40573
40942 static long __tun_chr_ioctl(struct file *file, unsigned int cmd, 40574 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
@@ -40945,7 +40577,7 @@ index 8ad822e..9bf0655 100644
40945 { 40577 {
40946 struct tun_file *tfile = file->private_data; 40578 struct tun_file *tfile = file->private_data;
40947 struct tun_struct *tun; 40579 struct tun_struct *tun;
40948@@ -1871,6 +1890,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd, 40580@@ -1881,6 +1881,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
40949 int vnet_hdr_sz; 40581 int vnet_hdr_sz;
40950 int ret; 40582 int ret;
40951 40583
@@ -40956,7 +40588,7 @@ index 8ad822e..9bf0655 100644
40956 if (copy_from_user(&ifr, argp, ifreq_len)) 40588 if (copy_from_user(&ifr, argp, ifreq_len))
40957 return -EFAULT; 40589 return -EFAULT;
40958diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c 40590diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
40959index e2dd324..be92fcf 100644 40591index cba1d46..f703766 100644
40960--- a/drivers/net/usb/hso.c 40592--- a/drivers/net/usb/hso.c
40961+++ b/drivers/net/usb/hso.c 40593+++ b/drivers/net/usb/hso.c
40962@@ -71,7 +71,7 @@ 40594@@ -71,7 +71,7 @@
@@ -41037,7 +40669,7 @@ index e2dd324..be92fcf 100644
41037 /* Setup and send a ctrl req read on 40669 /* Setup and send a ctrl req read on
41038 * port i */ 40670 * port i */
41039 if (!serial->rx_urb_filled[0]) { 40671 if (!serial->rx_urb_filled[0]) {
41040@@ -3066,7 +3065,7 @@ static int hso_resume(struct usb_interface *iface) 40672@@ -3057,7 +3056,7 @@ static int hso_resume(struct usb_interface *iface)
41041 /* Start all serial ports */ 40673 /* Start all serial ports */
41042 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) { 40674 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
41043 if (serial_table[i] && (serial_table[i]->interface == iface)) { 40675 if (serial_table[i] && (serial_table[i]->interface == iface)) {
@@ -41047,10 +40679,10 @@ index e2dd324..be92fcf 100644
41047 hso_start_serial_device(serial_table[i], GFP_NOIO); 40679 hso_start_serial_device(serial_table[i], GFP_NOIO);
41048 hso_kick_transmit(dev2ser(serial_table[i])); 40680 hso_kick_transmit(dev2ser(serial_table[i]));
41049diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c 40681diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
41050index a4fe5f1..6c9e77f 100644 40682index 57325f3..36b181f 100644
41051--- a/drivers/net/vxlan.c 40683--- a/drivers/net/vxlan.c
41052+++ b/drivers/net/vxlan.c 40684+++ b/drivers/net/vxlan.c
41053@@ -1454,7 +1454,7 @@ nla_put_failure: 40685@@ -1579,7 +1579,7 @@ nla_put_failure:
41054 return -EMSGSIZE; 40686 return -EMSGSIZE;
41055 } 40687 }
41056 40688
@@ -41060,7 +40692,7 @@ index a4fe5f1..6c9e77f 100644
41060 .maxtype = IFLA_VXLAN_MAX, 40692 .maxtype = IFLA_VXLAN_MAX,
41061 .policy = vxlan_policy, 40693 .policy = vxlan_policy,
41062diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c 40694diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
41063index 5ac5f7a..5f82012 100644 40695index 34c8a33..3261fdc 100644
41064--- a/drivers/net/wireless/at76c50x-usb.c 40696--- a/drivers/net/wireless/at76c50x-usb.c
41065+++ b/drivers/net/wireless/at76c50x-usb.c 40697+++ b/drivers/net/wireless/at76c50x-usb.c
41066@@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state) 40698@@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
@@ -41278,10 +40910,10 @@ index 301bf72..3f5654f 100644
41278 40910
41279 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads) 40911 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
41280diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h 40912diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
41281index 784e81c..349e01e 100644 40913index ae30343..a117806 100644
41282--- a/drivers/net/wireless/ath/ath9k/hw.h 40914--- a/drivers/net/wireless/ath/ath9k/hw.h
41283+++ b/drivers/net/wireless/ath/ath9k/hw.h 40915+++ b/drivers/net/wireless/ath/ath9k/hw.h
41284@@ -653,7 +653,7 @@ struct ath_hw_private_ops { 40916@@ -652,7 +652,7 @@ struct ath_hw_private_ops {
41285 40917
41286 /* ANI */ 40918 /* ANI */
41287 void (*ani_cache_ini_regs)(struct ath_hw *ah); 40919 void (*ani_cache_ini_regs)(struct ath_hw *ah);
@@ -41290,7 +40922,7 @@ index 784e81c..349e01e 100644
41290 40922
41291 /** 40923 /**
41292 * struct ath_spec_scan - parameters for Atheros spectral scan 40924 * struct ath_spec_scan - parameters for Atheros spectral scan
41293@@ -722,7 +722,7 @@ struct ath_hw_ops { 40925@@ -721,7 +721,7 @@ struct ath_hw_ops {
41294 struct ath_spec_scan *param); 40926 struct ath_spec_scan *param);
41295 void (*spectral_scan_trigger)(struct ath_hw *ah); 40927 void (*spectral_scan_trigger)(struct ath_hw *ah);
41296 void (*spectral_scan_wait)(struct ath_hw *ah); 40928 void (*spectral_scan_wait)(struct ath_hw *ah);
@@ -41300,7 +40932,7 @@ index 784e81c..349e01e 100644
41300 struct ath_nf_limits { 40932 struct ath_nf_limits {
41301 s16 max; 40933 s16 max;
41302diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c 40934diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
41303index c353b5f..62aaca2 100644 40935index b37a582..680835d 100644
41304--- a/drivers/net/wireless/iwlegacy/3945-mac.c 40936--- a/drivers/net/wireless/iwlegacy/3945-mac.c
41305+++ b/drivers/net/wireless/iwlegacy/3945-mac.c 40937+++ b/drivers/net/wireless/iwlegacy/3945-mac.c
41306@@ -3639,7 +3639,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 40938@@ -3639,7 +3639,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
@@ -41315,7 +40947,7 @@ index c353b5f..62aaca2 100644
41315 40947
41316 D_INFO("*** LOAD DRIVER ***\n"); 40948 D_INFO("*** LOAD DRIVER ***\n");
41317diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c 40949diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
41318index 81d4071..f2071ea 100644 40950index d532948..e0d8bb1 100644
41319--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c 40951--- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
41320+++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c 40952+++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
41321@@ -203,7 +203,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file, 40953@@ -203,7 +203,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
@@ -41354,6 +40986,21 @@ index 81d4071..f2071ea 100644
41354 int value; 40986 int value;
41355 40987
41356 memset(buf, 0, sizeof(buf)); 40988 memset(buf, 0, sizeof(buf));
40989@@ -698,10 +698,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
40990 DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
40991 DEBUGFS_READ_FILE_OPS(current_sleep_command);
40992
40993-static const char *fmt_value = " %-30s %10u\n";
40994-static const char *fmt_hex = " %-30s 0x%02X\n";
40995-static const char *fmt_table = " %-30s %10u %10u %10u %10u\n";
40996-static const char *fmt_header =
40997+static const char fmt_value[] = " %-30s %10u\n";
40998+static const char fmt_hex[] = " %-30s 0x%02X\n";
40999+static const char fmt_table[] = " %-30s %10u %10u %10u %10u\n";
41000+static const char fmt_header[] =
41001 "%-32s current cumulative delta max\n";
41002
41003 static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
41357@@ -1871,7 +1871,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file, 41004@@ -1871,7 +1871,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
41358 { 41005 {
41359 struct iwl_priv *priv = file->private_data; 41006 struct iwl_priv *priv = file->private_data;
@@ -41417,7 +41064,7 @@ index 81d4071..f2071ea 100644
41417 41064
41418 memset(buf, 0, sizeof(buf)); 41065 memset(buf, 0, sizeof(buf));
41419 buf_size = min(count, sizeof(buf) - 1); 41066 buf_size = min(count, sizeof(buf) - 1);
41420@@ -2256,7 +2256,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file, 41067@@ -2254,7 +2254,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
41421 struct iwl_priv *priv = file->private_data; 41068 struct iwl_priv *priv = file->private_data;
41422 u32 event_log_flag; 41069 u32 event_log_flag;
41423 char buf[8]; 41070 char buf[8];
@@ -41426,7 +41073,7 @@ index 81d4071..f2071ea 100644
41426 41073
41427 /* check that the interface is up */ 41074 /* check that the interface is up */
41428 if (!iwl_is_ready(priv)) 41075 if (!iwl_is_ready(priv))
41429@@ -2310,7 +2310,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file, 41076@@ -2308,7 +2308,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
41430 struct iwl_priv *priv = file->private_data; 41077 struct iwl_priv *priv = file->private_data;
41431 char buf[8]; 41078 char buf[8];
41432 u32 calib_disabled; 41079 u32 calib_disabled;
@@ -41436,10 +41083,10 @@ index 81d4071..f2071ea 100644
41436 memset(buf, 0, sizeof(buf)); 41083 memset(buf, 0, sizeof(buf));
41437 buf_size = min(count, sizeof(buf) - 1); 41084 buf_size = min(count, sizeof(buf) - 1);
41438diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c 41085diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
41439index 12c4f31..484d948 100644 41086index 50ba0a4..29424e7 100644
41440--- a/drivers/net/wireless/iwlwifi/pcie/trans.c 41087--- a/drivers/net/wireless/iwlwifi/pcie/trans.c
41441+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c 41088+++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
41442@@ -1328,7 +1328,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file, 41089@@ -1329,7 +1329,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
41443 struct isr_statistics *isr_stats = &trans_pcie->isr_stats; 41090 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
41444 41091
41445 char buf[8]; 41092 char buf[8];
@@ -41448,7 +41095,7 @@ index 12c4f31..484d948 100644
41448 u32 reset_flag; 41095 u32 reset_flag;
41449 41096
41450 memset(buf, 0, sizeof(buf)); 41097 memset(buf, 0, sizeof(buf));
41451@@ -1349,7 +1349,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file, 41098@@ -1350,7 +1350,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
41452 { 41099 {
41453 struct iwl_trans *trans = file->private_data; 41100 struct iwl_trans *trans = file->private_data;
41454 char buf[8]; 41101 char buf[8];
@@ -41458,10 +41105,10 @@ index 12c4f31..484d948 100644
41458 41105
41459 memset(buf, 0, sizeof(buf)); 41106 memset(buf, 0, sizeof(buf));
41460diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c 41107diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
41461index 2b49f48..14fc244 100644 41108index cb34c78..9fec0dc 100644
41462--- a/drivers/net/wireless/mac80211_hwsim.c 41109--- a/drivers/net/wireless/mac80211_hwsim.c
41463+++ b/drivers/net/wireless/mac80211_hwsim.c 41110+++ b/drivers/net/wireless/mac80211_hwsim.c
41464@@ -2143,25 +2143,19 @@ static int __init init_mac80211_hwsim(void) 41111@@ -2195,25 +2195,19 @@ static int __init init_mac80211_hwsim(void)
41465 41112
41466 if (channels > 1) { 41113 if (channels > 1) {
41467 hwsim_if_comb.num_different_channels = channels; 41114 hwsim_if_comb.num_different_channels = channels;
@@ -41500,48 +41147,8 @@ index 2b49f48..14fc244 100644
41500 } 41147 }
41501 41148
41502 spin_lock_init(&hwsim_radio_lock); 41149 spin_lock_init(&hwsim_radio_lock);
41503diff --git a/drivers/net/wireless/mwifiex/debugfs.c b/drivers/net/wireless/mwifiex/debugfs.c
41504index 753b568..a5f9875 100644
41505--- a/drivers/net/wireless/mwifiex/debugfs.c
41506+++ b/drivers/net/wireless/mwifiex/debugfs.c
41507@@ -26,10 +26,17 @@
41508 static struct dentry *mwifiex_dfs_dir;
41509
41510 static char *bss_modes[] = {
41511- "Unknown",
41512- "Ad-hoc",
41513- "Managed",
41514- "Auto"
41515+ "UNSPECIFIED",
41516+ "ADHOC",
41517+ "STATION",
41518+ "AP",
41519+ "AP_VLAN",
41520+ "WDS",
41521+ "MONITOR",
41522+ "MESH_POINT",
41523+ "P2P_CLIENT",
41524+ "P2P_GO",
41525+ "P2P_DEVICE",
41526 };
41527
41528 /* size/addr for mwifiex_debug_info */
41529@@ -200,7 +207,12 @@ mwifiex_info_read(struct file *file, char __user *ubuf,
41530 p += sprintf(p, "driver_version = %s", fmt);
41531 p += sprintf(p, "\nverext = %s", priv->version_str);
41532 p += sprintf(p, "\ninterface_name=\"%s\"\n", netdev->name);
41533- p += sprintf(p, "bss_mode=\"%s\"\n", bss_modes[info.bss_mode]);
41534+
41535+ if (info.bss_mode >= ARRAY_SIZE(bss_modes))
41536+ p += sprintf(p, "bss_mode=\"%d\"\n", info.bss_mode);
41537+ else
41538+ p += sprintf(p, "bss_mode=\"%s\"\n", bss_modes[info.bss_mode]);
41539+
41540 p += sprintf(p, "media_state=\"%s\"\n",
41541 (!priv->media_connected ? "Disconnected" : "Connected"));
41542 p += sprintf(p, "mac_address=\"%pM\"\n", netdev->dev_addr);
41543diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c 41150diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
41544index 525fd75..6c9f791 100644 41151index 8169a85..7fa3b47 100644
41545--- a/drivers/net/wireless/rndis_wlan.c 41152--- a/drivers/net/wireless/rndis_wlan.c
41546+++ b/drivers/net/wireless/rndis_wlan.c 41153+++ b/drivers/net/wireless/rndis_wlan.c
41547@@ -1238,7 +1238,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold) 41154@@ -1238,7 +1238,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
@@ -41554,10 +41161,10 @@ index 525fd75..6c9f791 100644
41554 41161
41555 tmp = cpu_to_le32(rts_threshold); 41162 tmp = cpu_to_le32(rts_threshold);
41556diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h 41163diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
41557index 086abb4..8279c30 100644 41164index 7510723..5ba37f5 100644
41558--- a/drivers/net/wireless/rt2x00/rt2x00.h 41165--- a/drivers/net/wireless/rt2x00/rt2x00.h
41559+++ b/drivers/net/wireless/rt2x00/rt2x00.h 41166+++ b/drivers/net/wireless/rt2x00/rt2x00.h
41560@@ -396,7 +396,7 @@ struct rt2x00_intf { 41167@@ -386,7 +386,7 @@ struct rt2x00_intf {
41561 * for hardware which doesn't support hardware 41168 * for hardware which doesn't support hardware
41562 * sequence counting. 41169 * sequence counting.
41563 */ 41170 */
@@ -41567,10 +41174,10 @@ index 086abb4..8279c30 100644
41567 41174
41568 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif) 41175 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
41569diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c 41176diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
41570index 4d91795..62fccff 100644 41177index 2c12311..7b77f24 100644
41571--- a/drivers/net/wireless/rt2x00/rt2x00queue.c 41178--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
41572+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c 41179+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
41573@@ -251,9 +251,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev, 41180@@ -252,9 +252,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
41574 * sequence counter given by mac80211. 41181 * sequence counter given by mac80211.
41575 */ 41182 */
41576 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags)) 41183 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
@@ -41583,10 +41190,10 @@ index 4d91795..62fccff 100644
41583 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG); 41190 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
41584 hdr->seq_ctrl |= cpu_to_le16(seqno); 41191 hdr->seq_ctrl |= cpu_to_le16(seqno);
41585diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c 41192diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
41586index e57ee48..541cf6c 100644 41193index e2b3d9c..67a5184 100644
41587--- a/drivers/net/wireless/ti/wl1251/sdio.c 41194--- a/drivers/net/wireless/ti/wl1251/sdio.c
41588+++ b/drivers/net/wireless/ti/wl1251/sdio.c 41195+++ b/drivers/net/wireless/ti/wl1251/sdio.c
41589@@ -269,13 +269,17 @@ static int wl1251_sdio_probe(struct sdio_func *func, 41196@@ -271,13 +271,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
41590 41197
41591 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING); 41198 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
41592 41199
@@ -41609,7 +41216,7 @@ index e57ee48..541cf6c 100644
41609 wl1251_info("using SDIO interrupt"); 41216 wl1251_info("using SDIO interrupt");
41610 } 41217 }
41611diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c 41218diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
41612index 09694e3..24ccec7 100644 41219index 1c627da..69f7d17 100644
41613--- a/drivers/net/wireless/ti/wl12xx/main.c 41220--- a/drivers/net/wireless/ti/wl12xx/main.c
41614+++ b/drivers/net/wireless/ti/wl12xx/main.c 41221+++ b/drivers/net/wireless/ti/wl12xx/main.c
41615@@ -656,7 +656,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl) 41222@@ -656,7 +656,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
@@ -41635,10 +41242,10 @@ index 09694e3..24ccec7 100644
41635 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER, 41242 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
41636 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER, 41243 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
41637diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c 41244diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
41638index da3ef1b..4790b95 100644 41245index 9fa692d..b31fee0 100644
41639--- a/drivers/net/wireless/ti/wl18xx/main.c 41246--- a/drivers/net/wireless/ti/wl18xx/main.c
41640+++ b/drivers/net/wireless/ti/wl18xx/main.c 41247+++ b/drivers/net/wireless/ti/wl18xx/main.c
41641@@ -1664,8 +1664,10 @@ static int wl18xx_setup(struct wl1271 *wl) 41248@@ -1687,8 +1687,10 @@ static int wl18xx_setup(struct wl1271 *wl)
41642 } 41249 }
41643 41250
41644 if (!checksum_param) { 41251 if (!checksum_param) {
@@ -41811,7 +41418,7 @@ index 93404f7..4a313d8 100644
41811 }; 41418 };
41812 41419
41813diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c 41420diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
41814index 3f56bc0..707d642 100644 41421index 92ed045..62d39bd7 100644
41815--- a/drivers/parport/procfs.c 41422--- a/drivers/parport/procfs.c
41816+++ b/drivers/parport/procfs.c 41423+++ b/drivers/parport/procfs.c
41817@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *table, int write, 41424@@ -64,7 +64,7 @@ static int do_active_device(ctl_table *table, int write,
@@ -41942,10 +41549,10 @@ index 76ba8a1..20ca857 100644
41942 41549
41943 /* initialize our int15 lock */ 41550 /* initialize our int15 lock */
41944diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c 41551diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
41945index 202f4a9..8ee47d0 100644 41552index ec20f74..c1d961e 100644
41946--- a/drivers/pci/hotplug/pci_hotplug_core.c 41553--- a/drivers/pci/hotplug/pci_hotplug_core.c
41947+++ b/drivers/pci/hotplug/pci_hotplug_core.c 41554+++ b/drivers/pci/hotplug/pci_hotplug_core.c
41948@@ -448,8 +448,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus, 41555@@ -441,8 +441,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
41949 return -EINVAL; 41556 return -EINVAL;
41950 } 41557 }
41951 41558
@@ -41972,7 +41579,7 @@ index 7d72c5e..edce02c 100644
41972 int retval = -ENOMEM; 41579 int retval = -ENOMEM;
41973 41580
41974diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c 41581diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
41975index 9c6e9bb..2916736 100644 41582index 5b4a9d9..cd5ac1f 100644
41976--- a/drivers/pci/pci-sysfs.c 41583--- a/drivers/pci/pci-sysfs.c
41977+++ b/drivers/pci/pci-sysfs.c 41584+++ b/drivers/pci/pci-sysfs.c
41978@@ -1071,7 +1071,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine) 41585@@ -1071,7 +1071,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
@@ -42003,10 +41610,10 @@ index 9c6e9bb..2916736 100644
42003 if (!sysfs_initialized) 41610 if (!sysfs_initialized)
42004 return -EACCES; 41611 return -EACCES;
42005diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h 41612diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
42006index 7346ee6..41520eb 100644 41613index d1182c4..2a138ec 100644
42007--- a/drivers/pci/pci.h 41614--- a/drivers/pci/pci.h
42008+++ b/drivers/pci/pci.h 41615+++ b/drivers/pci/pci.h
42009@@ -93,7 +93,7 @@ struct pci_vpd_ops { 41616@@ -92,7 +92,7 @@ struct pci_vpd_ops {
42010 struct pci_vpd { 41617 struct pci_vpd {
42011 unsigned int len; 41618 unsigned int len;
42012 const struct pci_vpd_ops *ops; 41619 const struct pci_vpd_ops *ops;
@@ -42014,7 +41621,7 @@ index 7346ee6..41520eb 100644
42014+ bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */ 41621+ bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */
42015 }; 41622 };
42016 41623
42017 extern int pci_vpd_pci22_init(struct pci_dev *dev); 41624 int pci_vpd_pci22_init(struct pci_dev *dev);
42018diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c 41625diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
42019index d320df6..ca9a8f6 100644 41626index d320df6..ca9a8f6 100644
42020--- a/drivers/pci/pcie/aspm.c 41627--- a/drivers/pci/pcie/aspm.c
@@ -42033,7 +41640,7 @@ index d320df6..ca9a8f6 100644
42033 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1) 41640 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
42034 41641
42035diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c 41642diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
42036index 9c8b3bd..899c8fa 100644 41643index ea37072..10e58e56 100644
42037--- a/drivers/pci/probe.c 41644--- a/drivers/pci/probe.c
42038+++ b/drivers/pci/probe.c 41645+++ b/drivers/pci/probe.c
42039@@ -173,7 +173,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type, 41646@@ -173,7 +173,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
@@ -42046,10 +41653,10 @@ index 9c8b3bd..899c8fa 100644
42046 /* No printks while decoding is disabled! */ 41653 /* No printks while decoding is disabled! */
42047 if (!dev->mmio_always_on) { 41654 if (!dev->mmio_always_on) {
42048diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c 41655diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
42049index 0b00947..64f7c0a 100644 41656index 0812608..b04018c4 100644
42050--- a/drivers/pci/proc.c 41657--- a/drivers/pci/proc.c
42051+++ b/drivers/pci/proc.c 41658+++ b/drivers/pci/proc.c
42052@@ -465,7 +465,16 @@ static const struct file_operations proc_bus_pci_dev_operations = { 41659@@ -453,7 +453,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
42053 static int __init pci_proc_init(void) 41660 static int __init pci_proc_init(void)
42054 { 41661 {
42055 struct pci_dev *dev = NULL; 41662 struct pci_dev *dev = NULL;
@@ -42105,10 +41712,10 @@ index 6b22938..bc9700e 100644
42105 41712
42106 /* disable hardware control by fn key */ 41713 /* disable hardware control by fn key */
42107diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c 41714diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
42108index 14d4dce..b129917 100644 41715index 2ac045f..39c443d 100644
42109--- a/drivers/platform/x86/sony-laptop.c 41716--- a/drivers/platform/x86/sony-laptop.c
42110+++ b/drivers/platform/x86/sony-laptop.c 41717+++ b/drivers/platform/x86/sony-laptop.c
42111@@ -2465,7 +2465,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd) 41718@@ -2483,7 +2483,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
42112 } 41719 }
42113 41720
42114 /* High speed charging function */ 41721 /* High speed charging function */
@@ -42118,7 +41725,7 @@ index 14d4dce..b129917 100644
42118 static ssize_t sony_nc_highspeed_charging_store(struct device *dev, 41725 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
42119 struct device_attribute *attr, 41726 struct device_attribute *attr,
42120diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c 41727diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
42121index edec135..59a24a3 100644 41728index 54d31c0..3f896d3 100644
42122--- a/drivers/platform/x86/thinkpad_acpi.c 41729--- a/drivers/platform/x86/thinkpad_acpi.c
42123+++ b/drivers/platform/x86/thinkpad_acpi.c 41730+++ b/drivers/platform/x86/thinkpad_acpi.c
42124@@ -2093,7 +2093,7 @@ static int hotkey_mask_get(void) 41731@@ -2093,7 +2093,7 @@ static int hotkey_mask_get(void)
@@ -42332,12 +41939,12 @@ index 3e6db1c..1fbbdae 100644
42332 41939
42333 /* check if the resource is reserved */ 41940 /* check if the resource is reserved */
42334diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c 41941diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
42335index 7df7c5f..bd48c47 100644 41942index 0c52e2a..3421ab7 100644
42336--- a/drivers/power/pda_power.c 41943--- a/drivers/power/pda_power.c
42337+++ b/drivers/power/pda_power.c 41944+++ b/drivers/power/pda_power.c
42338@@ -37,7 +37,11 @@ static int polling; 41945@@ -37,7 +37,11 @@ static int polling;
42339 41946
42340 #ifdef CONFIG_USB_OTG_UTILS 41947 #if IS_ENABLED(CONFIG_USB_PHY)
42341 static struct usb_phy *transceiver; 41948 static struct usb_phy *transceiver;
42342-static struct notifier_block otg_nb; 41949-static struct notifier_block otg_nb;
42343+static int otg_handle_notification(struct notifier_block *nb, 41950+static int otg_handle_notification(struct notifier_block *nb,
@@ -42350,7 +41957,7 @@ index 7df7c5f..bd48c47 100644
42350 static struct regulator *ac_draw; 41957 static struct regulator *ac_draw;
42351@@ -369,7 +373,6 @@ static int pda_power_probe(struct platform_device *pdev) 41958@@ -369,7 +373,6 @@ static int pda_power_probe(struct platform_device *pdev)
42352 41959
42353 #ifdef CONFIG_USB_OTG_UTILS 41960 #if IS_ENABLED(CONFIG_USB_PHY)
42354 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) { 41961 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
42355- otg_nb.notifier_call = otg_handle_notification; 41962- otg_nb.notifier_call = otg_handle_notification;
42356 ret = usb_register_notifier(transceiver, &otg_nb); 41963 ret = usb_register_notifier(transceiver, &otg_nb);
@@ -42376,7 +41983,7 @@ index cc439fd..8fa30df 100644
42376 41983
42377 #endif /* CONFIG_SYSFS */ 41984 #endif /* CONFIG_SYSFS */
42378diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c 41985diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
42379index 5deac43..608c5ff 100644 41986index 1c517c3..ffa2f17 100644
42380--- a/drivers/power/power_supply_core.c 41987--- a/drivers/power/power_supply_core.c
42381+++ b/drivers/power/power_supply_core.c 41988+++ b/drivers/power/power_supply_core.c
42382@@ -24,7 +24,10 @@ 41989@@ -24,7 +24,10 @@
@@ -42389,9 +41996,9 @@ index 5deac43..608c5ff 100644
42389+ .groups = power_supply_attr_groups, 41996+ .groups = power_supply_attr_groups,
42390+}; 41997+};
42391 41998
42392 static int __power_supply_changed_work(struct device *dev, void *data) 41999 static bool __power_supply_is_supplied_by(struct power_supply *supplier,
42393 { 42000 struct power_supply *supply)
42394@@ -393,7 +396,7 @@ static int __init power_supply_class_init(void) 42001@@ -554,7 +557,7 @@ static int __init power_supply_class_init(void)
42395 return PTR_ERR(power_supply_class); 42002 return PTR_ERR(power_supply_class);
42396 42003
42397 power_supply_class->dev_uevent = power_supply_uevent; 42004 power_supply_class->dev_uevent = power_supply_uevent;
@@ -42425,7 +42032,7 @@ index 29178f7..c65f324 100644
42425 __power_supply_attrs[i] = &power_supply_attrs[i].attr; 42032 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
42426 } 42033 }
42427diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c 42034diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
42428index 4d7c635..9860196 100644 42035index d428ef9..fdc0357 100644
42429--- a/drivers/regulator/max8660.c 42036--- a/drivers/regulator/max8660.c
42430+++ b/drivers/regulator/max8660.c 42037+++ b/drivers/regulator/max8660.c
42431@@ -333,8 +333,10 @@ static int max8660_probe(struct i2c_client *client, 42038@@ -333,8 +333,10 @@ static int max8660_probe(struct i2c_client *client,
@@ -42442,7 +42049,7 @@ index 4d7c635..9860196 100644
42442 42049
42443 /* 42050 /*
42444diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c 42051diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
42445index 9a8ea91..c483dd9 100644 42052index adb1414..c13e0ce 100644
42446--- a/drivers/regulator/max8973-regulator.c 42053--- a/drivers/regulator/max8973-regulator.c
42447+++ b/drivers/regulator/max8973-regulator.c 42054+++ b/drivers/regulator/max8973-regulator.c
42448@@ -401,9 +401,11 @@ static int max8973_probe(struct i2c_client *client, 42055@@ -401,9 +401,11 @@ static int max8973_probe(struct i2c_client *client,
@@ -42461,10 +42068,10 @@ index 9a8ea91..c483dd9 100644
42461 42068
42462 max->enable_external_control = pdata->enable_ext_control; 42069 max->enable_external_control = pdata->enable_ext_control;
42463diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c 42070diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
42464index 9891aec..beb3083 100644 42071index b716283..3cc4349 100644
42465--- a/drivers/regulator/mc13892-regulator.c 42072--- a/drivers/regulator/mc13892-regulator.c
42466+++ b/drivers/regulator/mc13892-regulator.c 42073+++ b/drivers/regulator/mc13892-regulator.c
42467@@ -583,10 +583,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev) 42074@@ -582,10 +582,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
42468 } 42075 }
42469 mc13xxx_unlock(mc13892); 42076 mc13xxx_unlock(mc13892);
42470 42077
@@ -42478,9 +42085,9 @@ index 9891aec..beb3083 100644
42478+ pax_close_kernel(); 42085+ pax_close_kernel();
42479 42086
42480 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators, 42087 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
42481 ARRAY_SIZE(mc13892_regulators), 42088 ARRAY_SIZE(mc13892_regulators));
42482diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c 42089diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
42483index cc5bea9..689f7d9 100644 42090index f1cb706..4c7832a 100644
42484--- a/drivers/rtc/rtc-cmos.c 42091--- a/drivers/rtc/rtc-cmos.c
42485+++ b/drivers/rtc/rtc-cmos.c 42092+++ b/drivers/rtc/rtc-cmos.c
42486@@ -724,7 +724,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq) 42093@@ -724,7 +724,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
@@ -42516,10 +42123,10 @@ index d049393..bb20be0 100644
42516 42123
42517 case RTC_PIE_ON: 42124 case RTC_PIE_ON:
42518diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c 42125diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
42519index 970a236..3613169 100644 42126index b53992a..776df84 100644
42520--- a/drivers/rtc/rtc-ds1307.c 42127--- a/drivers/rtc/rtc-ds1307.c
42521+++ b/drivers/rtc/rtc-ds1307.c 42128+++ b/drivers/rtc/rtc-ds1307.c
42522@@ -106,7 +106,7 @@ struct ds1307 { 42129@@ -107,7 +107,7 @@ struct ds1307 {
42523 u8 offset; /* register's offset */ 42130 u8 offset; /* register's offset */
42524 u8 regs[11]; 42131 u8 regs[11];
42525 u16 nvram_offset; 42132 u16 nvram_offset;
@@ -42578,32 +42185,6 @@ index 23a90e7..9cf04ee 100644
42578 42185
42579 /* 42186 /*
42580 * Queue element to wait for room in request queue. FIFO order is 42187 * Queue element to wait for room in request queue. FIFO order is
42581diff --git a/drivers/scsi/bfa/bfad_debugfs.c b/drivers/scsi/bfa/bfad_debugfs.c
42582index 439c012..b63d534 100644
42583--- a/drivers/scsi/bfa/bfad_debugfs.c
42584+++ b/drivers/scsi/bfa/bfad_debugfs.c
42585@@ -186,7 +186,7 @@ bfad_debugfs_lseek(struct file *file, loff_t offset, int orig)
42586 file->f_pos += offset;
42587 break;
42588 case 2:
42589- file->f_pos = debug->buffer_len - offset;
42590+ file->f_pos = debug->buffer_len + offset;
42591 break;
42592 default:
42593 return -EINVAL;
42594diff --git a/drivers/scsi/fnic/fnic_debugfs.c b/drivers/scsi/fnic/fnic_debugfs.c
42595index adc1f7f..85e1ffd 100644
42596--- a/drivers/scsi/fnic/fnic_debugfs.c
42597+++ b/drivers/scsi/fnic/fnic_debugfs.c
42598@@ -174,7 +174,7 @@ static loff_t fnic_trace_debugfs_lseek(struct file *file,
42599 pos = file->f_pos + offset;
42600 break;
42601 case 2:
42602- pos = fnic_dbg_prt->buffer_len - offset;
42603+ pos = fnic_dbg_prt->buffer_len + offset;
42604 }
42605 return (pos < 0 || pos > fnic_dbg_prt->buffer_len) ?
42606 -EINVAL : (file->f_pos = pos);
42607diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c 42188diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
42608index df0c3c7..b00e1d0 100644 42189index df0c3c7..b00e1d0 100644
42609--- a/drivers/scsi/hosts.c 42190--- a/drivers/scsi/hosts.c
@@ -42767,7 +42348,7 @@ index 9816479..c5d4e97 100644
42767 /* queue and queue Info */ 42348 /* queue and queue Info */
42768 struct list_head reqQ; 42349 struct list_head reqQ;
42769diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c 42350diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
42770index c772d8d..35c362c 100644 42351index 8b928c6..9c76300 100644
42771--- a/drivers/scsi/libfc/fc_exch.c 42352--- a/drivers/scsi/libfc/fc_exch.c
42772+++ b/drivers/scsi/libfc/fc_exch.c 42353+++ b/drivers/scsi/libfc/fc_exch.c
42773@@ -100,12 +100,12 @@ struct fc_exch_mgr { 42354@@ -100,12 +100,12 @@ struct fc_exch_mgr {
@@ -42789,7 +42370,7 @@ index c772d8d..35c362c 100644
42789 } stats; 42370 } stats;
42790 }; 42371 };
42791 42372
42792@@ -725,7 +725,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport, 42373@@ -736,7 +736,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
42793 /* allocate memory for exchange */ 42374 /* allocate memory for exchange */
42794 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC); 42375 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
42795 if (!ep) { 42376 if (!ep) {
@@ -42798,7 +42379,7 @@ index c772d8d..35c362c 100644
42798 goto out; 42379 goto out;
42799 } 42380 }
42800 memset(ep, 0, sizeof(*ep)); 42381 memset(ep, 0, sizeof(*ep));
42801@@ -786,7 +786,7 @@ out: 42382@@ -797,7 +797,7 @@ out:
42802 return ep; 42383 return ep;
42803 err: 42384 err:
42804 spin_unlock_bh(&pool->lock); 42385 spin_unlock_bh(&pool->lock);
@@ -42807,7 +42388,7 @@ index c772d8d..35c362c 100644
42807 mempool_free(ep, mp->ep_pool); 42388 mempool_free(ep, mp->ep_pool);
42808 return NULL; 42389 return NULL;
42809 } 42390 }
42810@@ -929,7 +929,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport, 42391@@ -940,7 +940,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
42811 xid = ntohs(fh->fh_ox_id); /* we originated exch */ 42392 xid = ntohs(fh->fh_ox_id); /* we originated exch */
42812 ep = fc_exch_find(mp, xid); 42393 ep = fc_exch_find(mp, xid);
42813 if (!ep) { 42394 if (!ep) {
@@ -42816,7 +42397,7 @@ index c772d8d..35c362c 100644
42816 reject = FC_RJT_OX_ID; 42397 reject = FC_RJT_OX_ID;
42817 goto out; 42398 goto out;
42818 } 42399 }
42819@@ -959,7 +959,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport, 42400@@ -970,7 +970,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
42820 ep = fc_exch_find(mp, xid); 42401 ep = fc_exch_find(mp, xid);
42821 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) { 42402 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
42822 if (ep) { 42403 if (ep) {
@@ -42825,7 +42406,7 @@ index c772d8d..35c362c 100644
42825 reject = FC_RJT_RX_ID; 42406 reject = FC_RJT_RX_ID;
42826 goto rel; 42407 goto rel;
42827 } 42408 }
42828@@ -970,7 +970,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport, 42409@@ -981,7 +981,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
42829 } 42410 }
42830 xid = ep->xid; /* get our XID */ 42411 xid = ep->xid; /* get our XID */
42831 } else if (!ep) { 42412 } else if (!ep) {
@@ -42834,7 +42415,7 @@ index c772d8d..35c362c 100644
42834 reject = FC_RJT_RX_ID; /* XID not found */ 42415 reject = FC_RJT_RX_ID; /* XID not found */
42835 goto out; 42416 goto out;
42836 } 42417 }
42837@@ -987,7 +987,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport, 42418@@ -998,7 +998,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
42838 } else { 42419 } else {
42839 sp = &ep->seq; 42420 sp = &ep->seq;
42840 if (sp->id != fh->fh_seq_id) { 42421 if (sp->id != fh->fh_seq_id) {
@@ -42843,7 +42424,7 @@ index c772d8d..35c362c 100644
42843 if (f_ctl & FC_FC_END_SEQ) { 42424 if (f_ctl & FC_FC_END_SEQ) {
42844 /* 42425 /*
42845 * Update sequence_id based on incoming last 42426 * Update sequence_id based on incoming last
42846@@ -1437,22 +1437,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) 42427@@ -1448,22 +1448,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
42847 42428
42848 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id)); 42429 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
42849 if (!ep) { 42430 if (!ep) {
@@ -42870,7 +42451,7 @@ index c772d8d..35c362c 100644
42870 goto rel; 42451 goto rel;
42871 } 42452 }
42872 sof = fr_sof(fp); 42453 sof = fr_sof(fp);
42873@@ -1461,7 +1461,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) 42454@@ -1472,7 +1472,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
42874 sp->ssb_stat |= SSB_ST_RESP; 42455 sp->ssb_stat |= SSB_ST_RESP;
42875 sp->id = fh->fh_seq_id; 42456 sp->id = fh->fh_seq_id;
42876 } else if (sp->id != fh->fh_seq_id) { 42457 } else if (sp->id != fh->fh_seq_id) {
@@ -42879,7 +42460,7 @@ index c772d8d..35c362c 100644
42879 goto rel; 42460 goto rel;
42880 } 42461 }
42881 42462
42882@@ -1525,9 +1525,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp) 42463@@ -1536,9 +1536,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
42883 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */ 42464 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
42884 42465
42885 if (!sp) 42466 if (!sp)
@@ -42891,7 +42472,7 @@ index c772d8d..35c362c 100644
42891 42472
42892 fc_frame_free(fp); 42473 fc_frame_free(fp);
42893 } 42474 }
42894@@ -2174,13 +2174,13 @@ void fc_exch_update_stats(struct fc_lport *lport) 42475@@ -2185,13 +2185,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
42895 42476
42896 list_for_each_entry(ema, &lport->ema_list, ema_list) { 42477 list_for_each_entry(ema, &lport->ema_list, ema_list) {
42897 mp = ema->mp; 42478 mp = ema->mp;
@@ -42912,7 +42493,7 @@ index c772d8d..35c362c 100644
42912 } 42493 }
42913 EXPORT_SYMBOL(fc_exch_update_stats); 42494 EXPORT_SYMBOL(fc_exch_update_stats);
42914diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c 42495diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
42915index bdb81cd..d3c7c2c 100644 42496index 161c98e..6d563b3 100644
42916--- a/drivers/scsi/libsas/sas_ata.c 42497--- a/drivers/scsi/libsas/sas_ata.c
42917+++ b/drivers/scsi/libsas/sas_ata.c 42498+++ b/drivers/scsi/libsas/sas_ata.c
42918@@ -554,7 +554,7 @@ static struct ata_port_operations sas_sata_ops = { 42499@@ -554,7 +554,7 @@ static struct ata_port_operations sas_sata_ops = {
@@ -42925,10 +42506,10 @@ index bdb81cd..d3c7c2c 100644
42925 .qc_issue = sas_ata_qc_issue, 42506 .qc_issue = sas_ata_qc_issue,
42926 .qc_fill_rtf = sas_ata_qc_fill_rtf, 42507 .qc_fill_rtf = sas_ata_qc_fill_rtf,
42927diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h 42508diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
42928index 7706c99..3b4fc0c 100644 42509index bcc56ca..6f4174a 100644
42929--- a/drivers/scsi/lpfc/lpfc.h 42510--- a/drivers/scsi/lpfc/lpfc.h
42930+++ b/drivers/scsi/lpfc/lpfc.h 42511+++ b/drivers/scsi/lpfc/lpfc.h
42931@@ -424,7 +424,7 @@ struct lpfc_vport { 42512@@ -431,7 +431,7 @@ struct lpfc_vport {
42932 struct dentry *debug_nodelist; 42513 struct dentry *debug_nodelist;
42933 struct dentry *vport_debugfs_root; 42514 struct dentry *vport_debugfs_root;
42934 struct lpfc_debugfs_trc *disc_trc; 42515 struct lpfc_debugfs_trc *disc_trc;
@@ -42937,7 +42518,7 @@ index 7706c99..3b4fc0c 100644
42937 #endif 42518 #endif
42938 uint8_t stat_data_enabled; 42519 uint8_t stat_data_enabled;
42939 uint8_t stat_data_blocked; 42520 uint8_t stat_data_blocked;
42940@@ -853,8 +853,8 @@ struct lpfc_hba { 42521@@ -865,8 +865,8 @@ struct lpfc_hba {
42941 struct timer_list fabric_block_timer; 42522 struct timer_list fabric_block_timer;
42942 unsigned long bit_flags; 42523 unsigned long bit_flags;
42943 #define FABRIC_COMANDS_BLOCKED 0 42524 #define FABRIC_COMANDS_BLOCKED 0
@@ -42948,7 +42529,7 @@ index 7706c99..3b4fc0c 100644
42948 unsigned long last_rsrc_error_time; 42529 unsigned long last_rsrc_error_time;
42949 unsigned long last_ramp_down_time; 42530 unsigned long last_ramp_down_time;
42950 unsigned long last_ramp_up_time; 42531 unsigned long last_ramp_up_time;
42951@@ -890,7 +890,7 @@ struct lpfc_hba { 42532@@ -902,7 +902,7 @@ struct lpfc_hba {
42952 42533
42953 struct dentry *debug_slow_ring_trc; 42534 struct dentry *debug_slow_ring_trc;
42954 struct lpfc_debugfs_trc *slow_ring_trc; 42535 struct lpfc_debugfs_trc *slow_ring_trc;
@@ -42958,7 +42539,7 @@ index 7706c99..3b4fc0c 100644
42958 struct dentry *idiag_root; 42539 struct dentry *idiag_root;
42959 struct dentry *idiag_pci_cfg; 42540 struct dentry *idiag_pci_cfg;
42960diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c 42541diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
42961index f63f5ff..32549a4 100644 42542index f525ecb..32549a4 100644
42962--- a/drivers/scsi/lpfc/lpfc_debugfs.c 42543--- a/drivers/scsi/lpfc/lpfc_debugfs.c
42963+++ b/drivers/scsi/lpfc/lpfc_debugfs.c 42544+++ b/drivers/scsi/lpfc/lpfc_debugfs.c
42964@@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc, 42545@@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
@@ -43022,15 +42603,6 @@ index f63f5ff..32549a4 100644
43022 dtp->jif = jiffies; 42603 dtp->jif = jiffies;
43023 #endif 42604 #endif
43024 return; 42605 return;
43025@@ -1178,7 +1178,7 @@ lpfc_debugfs_lseek(struct file *file, loff_t off, int whence)
43026 pos = file->f_pos + off;
43027 break;
43028 case 2:
43029- pos = debug->len - off;
43030+ pos = debug->len + off;
43031 }
43032 return (pos < 0 || pos > debug->len) ? -EINVAL : (file->f_pos = pos);
43033 }
43034@@ -4182,7 +4182,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport) 42606@@ -4182,7 +4182,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
43035 "slow_ring buffer\n"); 42607 "slow_ring buffer\n");
43036 goto debug_failed; 42608 goto debug_failed;
@@ -43050,10 +42622,10 @@ index f63f5ff..32549a4 100644
43050 snprintf(name, sizeof(name), "discovery_trace"); 42622 snprintf(name, sizeof(name), "discovery_trace");
43051 vport->debug_disc_trc = 42623 vport->debug_disc_trc =
43052diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c 42624diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
43053index 314b4f6..7005d10 100644 42625index cb465b2..2e7b25f 100644
43054--- a/drivers/scsi/lpfc/lpfc_init.c 42626--- a/drivers/scsi/lpfc/lpfc_init.c
43055+++ b/drivers/scsi/lpfc/lpfc_init.c 42627+++ b/drivers/scsi/lpfc/lpfc_init.c
43056@@ -10551,8 +10551,10 @@ lpfc_init(void) 42628@@ -10950,8 +10950,10 @@ lpfc_init(void)
43057 "misc_register returned with status %d", error); 42629 "misc_register returned with status %d", error);
43058 42630
43059 if (lpfc_enable_npiv) { 42631 if (lpfc_enable_npiv) {
@@ -43067,10 +42639,10 @@ index 314b4f6..7005d10 100644
43067 lpfc_transport_template = 42639 lpfc_transport_template =
43068 fc_attach_transport(&lpfc_transport_functions); 42640 fc_attach_transport(&lpfc_transport_functions);
43069diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c 42641diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
43070index 98af07c..7625fb5 100644 42642index 8523b278e..ce1d812 100644
43071--- a/drivers/scsi/lpfc/lpfc_scsi.c 42643--- a/drivers/scsi/lpfc/lpfc_scsi.c
43072+++ b/drivers/scsi/lpfc/lpfc_scsi.c 42644+++ b/drivers/scsi/lpfc/lpfc_scsi.c
43073@@ -325,7 +325,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba) 42645@@ -331,7 +331,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
43074 uint32_t evt_posted; 42646 uint32_t evt_posted;
43075 42647
43076 spin_lock_irqsave(&phba->hbalock, flags); 42648 spin_lock_irqsave(&phba->hbalock, flags);
@@ -43079,7 +42651,7 @@ index 98af07c..7625fb5 100644
43079 phba->last_rsrc_error_time = jiffies; 42651 phba->last_rsrc_error_time = jiffies;
43080 42652
43081 if ((phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL) > jiffies) { 42653 if ((phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL) > jiffies) {
43082@@ -366,7 +366,7 @@ lpfc_rampup_queue_depth(struct lpfc_vport *vport, 42654@@ -372,7 +372,7 @@ lpfc_rampup_queue_depth(struct lpfc_vport *vport,
43083 unsigned long flags; 42655 unsigned long flags;
43084 struct lpfc_hba *phba = vport->phba; 42656 struct lpfc_hba *phba = vport->phba;
43085 uint32_t evt_posted; 42657 uint32_t evt_posted;
@@ -43088,7 +42660,7 @@ index 98af07c..7625fb5 100644
43088 42660
43089 if (vport->cfg_lun_queue_depth <= queue_depth) 42661 if (vport->cfg_lun_queue_depth <= queue_depth)
43090 return; 42662 return;
43091@@ -410,8 +410,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba) 42663@@ -416,8 +416,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
43092 unsigned long num_rsrc_err, num_cmd_success; 42664 unsigned long num_rsrc_err, num_cmd_success;
43093 int i; 42665 int i;
43094 42666
@@ -43099,7 +42671,7 @@ index 98af07c..7625fb5 100644
43099 42671
43100 /* 42672 /*
43101 * The error and success command counters are global per 42673 * The error and success command counters are global per
43102@@ -439,8 +439,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba) 42674@@ -445,8 +445,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
43103 } 42675 }
43104 } 42676 }
43105 lpfc_destroy_vport_work_array(phba, vports); 42677 lpfc_destroy_vport_work_array(phba, vports);
@@ -43110,7 +42682,7 @@ index 98af07c..7625fb5 100644
43110 } 42682 }
43111 42683
43112 /** 42684 /**
43113@@ -474,8 +474,8 @@ lpfc_ramp_up_queue_handler(struct lpfc_hba *phba) 42685@@ -480,8 +480,8 @@ lpfc_ramp_up_queue_handler(struct lpfc_hba *phba)
43114 } 42686 }
43115 } 42687 }
43116 lpfc_destroy_vport_work_array(phba, vports); 42688 lpfc_destroy_vport_work_array(phba, vports);
@@ -43121,133 +42693,8 @@ index 98af07c..7625fb5 100644
43121 } 42693 }
43122 42694
43123 /** 42695 /**
43124diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
43125index 9d53540..e5a5746 100644
43126--- a/drivers/scsi/megaraid/megaraid_sas_base.c
43127+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
43128@@ -4852,10 +4852,12 @@ megasas_mgmt_fw_ioctl(struct megasas_instance *instance,
43129 sense, sense_handle);
43130 }
43131
43132- for (i = 0; i < ioc->sge_count && kbuff_arr[i]; i++) {
43133- dma_free_coherent(&instance->pdev->dev,
43134- kern_sge32[i].length,
43135- kbuff_arr[i], kern_sge32[i].phys_addr);
43136+ for (i = 0; i < ioc->sge_count; i++) {
43137+ if (kbuff_arr[i])
43138+ dma_free_coherent(&instance->pdev->dev,
43139+ kern_sge32[i].length,
43140+ kbuff_arr[i],
43141+ kern_sge32[i].phys_addr);
43142 }
43143
43144 megasas_return_cmd(instance, cmd);
43145diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
43146index dcbf7c8..f8c4b85 100644
43147--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
43148+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
43149@@ -1273,6 +1273,7 @@ _scsih_slave_alloc(struct scsi_device *sdev)
43150 struct MPT3SAS_DEVICE *sas_device_priv_data;
43151 struct scsi_target *starget;
43152 struct _raid_device *raid_device;
43153+ struct _sas_device *sas_device;
43154 unsigned long flags;
43155
43156 sas_device_priv_data = kzalloc(sizeof(struct scsi_device), GFP_KERNEL);
43157@@ -1301,6 +1302,19 @@ _scsih_slave_alloc(struct scsi_device *sdev)
43158 spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
43159 }
43160
43161+ if (!(sas_target_priv_data->flags & MPT_TARGET_FLAGS_VOLUME)) {
43162+ spin_lock_irqsave(&ioc->sas_device_lock, flags);
43163+ sas_device = mpt3sas_scsih_sas_device_find_by_sas_address(ioc,
43164+ sas_target_priv_data->sas_address);
43165+ if (sas_device && (sas_device->starget == NULL)) {
43166+ sdev_printk(KERN_INFO, sdev,
43167+ "%s : sas_device->starget set to starget @ %d\n",
43168+ __func__, __LINE__);
43169+ sas_device->starget = starget;
43170+ }
43171+ spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
43172+ }
43173+
43174 return 0;
43175 }
43176
43177@@ -6392,7 +6406,7 @@ _scsih_search_responding_sas_devices(struct MPT3SAS_ADAPTER *ioc)
43178 handle))) {
43179 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43180 MPI2_IOCSTATUS_MASK;
43181- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43182+ if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
43183 break;
43184 handle = le16_to_cpu(sas_device_pg0.DevHandle);
43185 device_info = le32_to_cpu(sas_device_pg0.DeviceInfo);
43186@@ -6494,7 +6508,7 @@ _scsih_search_responding_raid_devices(struct MPT3SAS_ADAPTER *ioc)
43187 &volume_pg1, MPI2_RAID_VOLUME_PGAD_FORM_GET_NEXT_HANDLE, handle))) {
43188 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43189 MPI2_IOCSTATUS_MASK;
43190- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43191+ if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
43192 break;
43193 handle = le16_to_cpu(volume_pg1.DevHandle);
43194
43195@@ -6518,7 +6532,7 @@ _scsih_search_responding_raid_devices(struct MPT3SAS_ADAPTER *ioc)
43196 phys_disk_num))) {
43197 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43198 MPI2_IOCSTATUS_MASK;
43199- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43200+ if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
43201 break;
43202 phys_disk_num = pd_pg0.PhysDiskNum;
43203 handle = le16_to_cpu(pd_pg0.DevHandle);
43204@@ -6597,7 +6611,7 @@ _scsih_search_responding_expanders(struct MPT3SAS_ADAPTER *ioc)
43205
43206 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43207 MPI2_IOCSTATUS_MASK;
43208- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43209+ if (ioc_status != MPI2_IOCSTATUS_SUCCESS)
43210 break;
43211
43212 handle = le16_to_cpu(expander_pg0.DevHandle);
43213@@ -6742,8 +6756,6 @@ _scsih_scan_for_devices_after_reset(struct MPT3SAS_ADAPTER *ioc)
43214 MPI2_SAS_EXPAND_PGAD_FORM_GET_NEXT_HNDL, handle))) {
43215 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43216 MPI2_IOCSTATUS_MASK;
43217- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43218- break;
43219 if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
43220 pr_info(MPT3SAS_FMT "\tbreak from expander scan: " \
43221 "ioc_status(0x%04x), loginfo(0x%08x)\n",
43222@@ -6787,8 +6799,6 @@ _scsih_scan_for_devices_after_reset(struct MPT3SAS_ADAPTER *ioc)
43223 phys_disk_num))) {
43224 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43225 MPI2_IOCSTATUS_MASK;
43226- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43227- break;
43228 if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
43229 pr_info(MPT3SAS_FMT "\tbreak from phys disk scan: "\
43230 "ioc_status(0x%04x), loginfo(0x%08x)\n",
43231@@ -6854,8 +6864,6 @@ _scsih_scan_for_devices_after_reset(struct MPT3SAS_ADAPTER *ioc)
43232 &volume_pg1, MPI2_RAID_VOLUME_PGAD_FORM_GET_NEXT_HANDLE, handle))) {
43233 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43234 MPI2_IOCSTATUS_MASK;
43235- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43236- break;
43237 if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
43238 pr_info(MPT3SAS_FMT "\tbreak from volume scan: " \
43239 "ioc_status(0x%04x), loginfo(0x%08x)\n",
43240@@ -6914,8 +6922,6 @@ _scsih_scan_for_devices_after_reset(struct MPT3SAS_ADAPTER *ioc)
43241 handle))) {
43242 ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
43243 MPI2_IOCSTATUS_MASK;
43244- if (ioc_status == MPI2_IOCSTATUS_CONFIG_INVALID_PAGE)
43245- break;
43246 if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
43247 pr_info(MPT3SAS_FMT "\tbreak from end device scan:"\
43248 " ioc_status(0x%04x), loginfo(0x%08x)\n",
43249diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c 42696diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
43250index b46f5e9..c4c4ccb 100644 42697index 8e1b737..50ff510 100644
43251--- a/drivers/scsi/pmcraid.c 42698--- a/drivers/scsi/pmcraid.c
43252+++ b/drivers/scsi/pmcraid.c 42699+++ b/drivers/scsi/pmcraid.c
43253@@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev) 42700@@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
@@ -43282,7 +42729,7 @@ index b46f5e9..c4c4ccb 100644
43282 pinstance->num_hrrq; 42729 pinstance->num_hrrq;
43283 cmd->cmd_done = pmcraid_io_done; 42730 cmd->cmd_done = pmcraid_io_done;
43284 42731
43285@@ -3859,7 +3859,7 @@ static long pmcraid_ioctl_passthrough( 42732@@ -3846,7 +3846,7 @@ static long pmcraid_ioctl_passthrough(
43286 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses 42733 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
43287 * hrrq_id assigned here in queuecommand 42734 * hrrq_id assigned here in queuecommand
43288 */ 42735 */
@@ -43291,7 +42738,7 @@ index b46f5e9..c4c4ccb 100644
43291 pinstance->num_hrrq; 42738 pinstance->num_hrrq;
43292 42739
43293 if (request_size) { 42740 if (request_size) {
43294@@ -4497,7 +4497,7 @@ static void pmcraid_worker_function(struct work_struct *workp) 42741@@ -4483,7 +4483,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
43295 42742
43296 pinstance = container_of(workp, struct pmcraid_instance, worker_q); 42743 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
43297 /* add resources only after host is added into system */ 42744 /* add resources only after host is added into system */
@@ -43300,7 +42747,7 @@ index b46f5e9..c4c4ccb 100644
43300 return; 42747 return;
43301 42748
43302 fw_version = be16_to_cpu(pinstance->inq_data->fw_version); 42749 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
43303@@ -5324,8 +5324,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host, 42750@@ -5310,8 +5310,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
43304 init_waitqueue_head(&pinstance->reset_wait_q); 42751 init_waitqueue_head(&pinstance->reset_wait_q);
43305 42752
43306 atomic_set(&pinstance->outstanding_cmds, 0); 42753 atomic_set(&pinstance->outstanding_cmds, 0);
@@ -43311,7 +42758,7 @@ index b46f5e9..c4c4ccb 100644
43311 42758
43312 INIT_LIST_HEAD(&pinstance->free_res_q); 42759 INIT_LIST_HEAD(&pinstance->free_res_q);
43313 INIT_LIST_HEAD(&pinstance->used_res_q); 42760 INIT_LIST_HEAD(&pinstance->used_res_q);
43314@@ -6038,7 +6038,7 @@ static int pmcraid_probe(struct pci_dev *pdev, 42761@@ -6024,7 +6024,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
43315 /* Schedule worker thread to handle CCN and take care of adding and 42762 /* Schedule worker thread to handle CCN and take care of adding and
43316 * removing devices to OS 42763 * removing devices to OS
43317 */ 42764 */
@@ -43354,10 +42801,10 @@ index e1d150f..6c6df44 100644
43354 /* To indicate add/delete/modify during CCN */ 42801 /* To indicate add/delete/modify during CCN */
43355 u8 change_detected; 42802 u8 change_detected;
43356diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c 42803diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
43357index b3db9dc..c3b1756 100644 42804index bf60c63..74d4dce 100644
43358--- a/drivers/scsi/qla2xxx/qla_attr.c 42805--- a/drivers/scsi/qla2xxx/qla_attr.c
43359+++ b/drivers/scsi/qla2xxx/qla_attr.c 42806+++ b/drivers/scsi/qla2xxx/qla_attr.c
43360@@ -1971,7 +1971,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable) 42807@@ -2001,7 +2001,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
43361 return 0; 42808 return 0;
43362 } 42809 }
43363 42810
@@ -43366,7 +42813,7 @@ index b3db9dc..c3b1756 100644
43366 42813
43367 .show_host_node_name = 1, 42814 .show_host_node_name = 1,
43368 .show_host_port_name = 1, 42815 .show_host_port_name = 1,
43369@@ -2018,7 +2018,7 @@ struct fc_function_template qla2xxx_transport_functions = { 42816@@ -2048,7 +2048,7 @@ struct fc_function_template qla2xxx_transport_functions = {
43370 .bsg_timeout = qla24xx_bsg_timeout, 42817 .bsg_timeout = qla24xx_bsg_timeout,
43371 }; 42818 };
43372 42819
@@ -43376,10 +42823,10 @@ index b3db9dc..c3b1756 100644
43376 .show_host_node_name = 1, 42823 .show_host_node_name = 1,
43377 .show_host_port_name = 1, 42824 .show_host_port_name = 1,
43378diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h 42825diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
43379index b310fa9..b9b3944 100644 42826index 026bfde..90c4018 100644
43380--- a/drivers/scsi/qla2xxx/qla_gbl.h 42827--- a/drivers/scsi/qla2xxx/qla_gbl.h
43381+++ b/drivers/scsi/qla2xxx/qla_gbl.h 42828+++ b/drivers/scsi/qla2xxx/qla_gbl.h
43382@@ -523,8 +523,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *); 42829@@ -528,8 +528,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *);
43383 struct device_attribute; 42830 struct device_attribute;
43384 extern struct device_attribute *qla2x00_host_attrs[]; 42831 extern struct device_attribute *qla2x00_host_attrs[];
43385 struct fc_function_template; 42832 struct fc_function_template;
@@ -43391,10 +42838,10 @@ index b310fa9..b9b3944 100644
43391 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *); 42838 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *);
43392 extern void qla2x00_init_host_attr(scsi_qla_host_t *); 42839 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
43393diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c 42840diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
43394index 2c6dd3d..e5ecd82 100644 42841index ad72c1d..afc9a98 100644
43395--- a/drivers/scsi/qla2xxx/qla_os.c 42842--- a/drivers/scsi/qla2xxx/qla_os.c
43396+++ b/drivers/scsi/qla2xxx/qla_os.c 42843+++ b/drivers/scsi/qla2xxx/qla_os.c
43397@@ -1554,8 +1554,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha) 42844@@ -1571,8 +1571,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
43398 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) { 42845 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
43399 /* Ok, a 64bit DMA mask is applicable. */ 42846 /* Ok, a 64bit DMA mask is applicable. */
43400 ha->flags.enable_64bit_addressing = 1; 42847 ha->flags.enable_64bit_addressing = 1;
@@ -43408,10 +42855,10 @@ index 2c6dd3d..e5ecd82 100644
43408 } 42855 }
43409 } 42856 }
43410diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h 42857diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
43411index 129f5dd..ade53e8 100644 42858index ddf16a8..80f4dd0 100644
43412--- a/drivers/scsi/qla4xxx/ql4_def.h 42859--- a/drivers/scsi/qla4xxx/ql4_def.h
43413+++ b/drivers/scsi/qla4xxx/ql4_def.h 42860+++ b/drivers/scsi/qla4xxx/ql4_def.h
43414@@ -275,7 +275,7 @@ struct ddb_entry { 42861@@ -291,7 +291,7 @@ struct ddb_entry {
43415 * (4000 only) */ 42862 * (4000 only) */
43416 atomic_t relogin_timer; /* Max Time to wait for 42863 atomic_t relogin_timer; /* Max Time to wait for
43417 * relogin to complete */ 42864 * relogin to complete */
@@ -43421,10 +42868,10 @@ index 129f5dd..ade53e8 100644
43421 uint32_t default_time2wait; /* Default Min time between 42868 uint32_t default_time2wait; /* Default Min time between
43422 * relogins (+aens) */ 42869 * relogins (+aens) */
43423diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c 42870diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
43424index 6142729..b6a85c9 100644 42871index 4d231c1..2892c37 100644
43425--- a/drivers/scsi/qla4xxx/ql4_os.c 42872--- a/drivers/scsi/qla4xxx/ql4_os.c
43426+++ b/drivers/scsi/qla4xxx/ql4_os.c 42873+++ b/drivers/scsi/qla4xxx/ql4_os.c
43427@@ -2622,12 +2622,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess) 42874@@ -2971,12 +2971,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
43428 */ 42875 */
43429 if (!iscsi_is_session_online(cls_sess)) { 42876 if (!iscsi_is_session_online(cls_sess)) {
43430 /* Reset retry relogin timer */ 42877 /* Reset retry relogin timer */
@@ -43439,7 +42886,7 @@ index 6142729..b6a85c9 100644
43439 ddb_entry->default_time2wait + 4)); 42886 ddb_entry->default_time2wait + 4));
43440 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags); 42887 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
43441 atomic_set(&ddb_entry->retry_relogin_timer, 42888 atomic_set(&ddb_entry->retry_relogin_timer,
43442@@ -4742,7 +4742,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha, 42889@@ -5081,7 +5081,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
43443 42890
43444 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY); 42891 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
43445 atomic_set(&ddb_entry->relogin_timer, 0); 42892 atomic_set(&ddb_entry->relogin_timer, 0);
@@ -43449,7 +42896,7 @@ index 6142729..b6a85c9 100644
43449 ddb_entry->default_relogin_timeout = 42896 ddb_entry->default_relogin_timeout =
43450 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ? 42897 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
43451diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c 42898diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
43452index 2c0d0ec..4e8681a 100644 42899index 3b1ea34..1583a72 100644
43453--- a/drivers/scsi/scsi.c 42900--- a/drivers/scsi/scsi.c
43454+++ b/drivers/scsi/scsi.c 42901+++ b/drivers/scsi/scsi.c
43455@@ -661,7 +661,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd) 42902@@ -661,7 +661,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
@@ -43462,10 +42909,10 @@ index 2c0d0ec..4e8681a 100644
43462 /* check if the device is still usable */ 42909 /* check if the device is still usable */
43463 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) { 42910 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
43464diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c 42911diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
43465index c31187d..0ead8c3 100644 42912index 86d5220..f22c51a 100644
43466--- a/drivers/scsi/scsi_lib.c 42913--- a/drivers/scsi/scsi_lib.c
43467+++ b/drivers/scsi/scsi_lib.c 42914+++ b/drivers/scsi/scsi_lib.c
43468@@ -1459,7 +1459,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q) 42915@@ -1458,7 +1458,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
43469 shost = sdev->host; 42916 shost = sdev->host;
43470 scsi_init_cmd_errh(cmd); 42917 scsi_init_cmd_errh(cmd);
43471 cmd->result = DID_NO_CONNECT << 16; 42918 cmd->result = DID_NO_CONNECT << 16;
@@ -43474,7 +42921,7 @@ index c31187d..0ead8c3 100644
43474 42921
43475 /* 42922 /*
43476 * SCSI request completion path will do scsi_device_unbusy(), 42923 * SCSI request completion path will do scsi_device_unbusy(),
43477@@ -1485,9 +1485,9 @@ static void scsi_softirq_done(struct request *rq) 42924@@ -1484,9 +1484,9 @@ static void scsi_softirq_done(struct request *rq)
43478 42925
43479 INIT_LIST_HEAD(&cmd->eh_entry); 42926 INIT_LIST_HEAD(&cmd->eh_entry);
43480 42927
@@ -43513,10 +42960,10 @@ index 84a1fdf..693b0d6 100644
43513 /* 42960 /*
43514 * TODO: need to fixup sg_tablesize, max_segment_size, 42961 * TODO: need to fixup sg_tablesize, max_segment_size,
43515diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c 42962diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
43516index e894ca7..de9d7660 100644 42963index e106c27..11a380e 100644
43517--- a/drivers/scsi/scsi_transport_fc.c 42964--- a/drivers/scsi/scsi_transport_fc.c
43518+++ b/drivers/scsi/scsi_transport_fc.c 42965+++ b/drivers/scsi/scsi_transport_fc.c
43519@@ -498,7 +498,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class, 42966@@ -497,7 +497,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
43520 * Netlink Infrastructure 42967 * Netlink Infrastructure
43521 */ 42968 */
43522 42969
@@ -43525,7 +42972,7 @@ index e894ca7..de9d7660 100644
43525 42972
43526 /** 42973 /**
43527 * fc_get_event_number - Obtain the next sequential FC event number 42974 * fc_get_event_number - Obtain the next sequential FC event number
43528@@ -511,7 +511,7 @@ static atomic_t fc_event_seq; 42975@@ -510,7 +510,7 @@ static atomic_t fc_event_seq;
43529 u32 42976 u32
43530 fc_get_event_number(void) 42977 fc_get_event_number(void)
43531 { 42978 {
@@ -43534,7 +42981,7 @@ index e894ca7..de9d7660 100644
43534 } 42981 }
43535 EXPORT_SYMBOL(fc_get_event_number); 42982 EXPORT_SYMBOL(fc_get_event_number);
43536 42983
43537@@ -659,7 +659,7 @@ static __init int fc_transport_init(void) 42984@@ -654,7 +654,7 @@ static __init int fc_transport_init(void)
43538 { 42985 {
43539 int error; 42986 int error;
43540 42987
@@ -43543,7 +42990,7 @@ index e894ca7..de9d7660 100644
43543 42990
43544 error = transport_class_register(&fc_host_class); 42991 error = transport_class_register(&fc_host_class);
43545 if (error) 42992 if (error)
43546@@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val) 42993@@ -844,7 +844,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
43547 char *cp; 42994 char *cp;
43548 42995
43549 *val = simple_strtoul(buf, &cp, 0); 42996 *val = simple_strtoul(buf, &cp, 0);
@@ -43553,10 +43000,10 @@ index e894ca7..de9d7660 100644
43553 /* 43000 /*
43554 * Check for overflow; dev_loss_tmo is u32 43001 * Check for overflow; dev_loss_tmo is u32
43555diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c 43002diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
43556index 0a74b97..fa8d648 100644 43003index 133926b..903000d 100644
43557--- a/drivers/scsi/scsi_transport_iscsi.c 43004--- a/drivers/scsi/scsi_transport_iscsi.c
43558+++ b/drivers/scsi/scsi_transport_iscsi.c 43005+++ b/drivers/scsi/scsi_transport_iscsi.c
43559@@ -79,7 +79,7 @@ struct iscsi_internal { 43006@@ -80,7 +80,7 @@ struct iscsi_internal {
43560 struct transport_container session_cont; 43007 struct transport_container session_cont;
43561 }; 43008 };
43562 43009
@@ -43565,7 +43012,7 @@ index 0a74b97..fa8d648 100644
43565 static struct workqueue_struct *iscsi_eh_timer_workq; 43012 static struct workqueue_struct *iscsi_eh_timer_workq;
43566 43013
43567 static DEFINE_IDA(iscsi_sess_ida); 43014 static DEFINE_IDA(iscsi_sess_ida);
43568@@ -1064,7 +1064,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id) 43015@@ -1738,7 +1738,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
43569 int err; 43016 int err;
43570 43017
43571 ihost = shost->shost_data; 43018 ihost = shost->shost_data;
@@ -43574,7 +43021,7 @@ index 0a74b97..fa8d648 100644
43574 43021
43575 if (target_id == ISCSI_MAX_TARGET) { 43022 if (target_id == ISCSI_MAX_TARGET) {
43576 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL); 43023 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
43577@@ -2955,7 +2955,7 @@ static __init int iscsi_transport_init(void) 43024@@ -3944,7 +3944,7 @@ static __init int iscsi_transport_init(void)
43578 printk(KERN_INFO "Loading iSCSI transport class v%s.\n", 43025 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
43579 ISCSI_TRANSPORT_VERSION); 43026 ISCSI_TRANSPORT_VERSION);
43580 43027
@@ -43615,10 +43062,10 @@ index f379c7f..e8fc69c 100644
43615 43062
43616 transport_setup_device(&rport->dev); 43063 transport_setup_device(&rport->dev);
43617diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c 43064diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
43618index 0f0370f..7e076c4 100644 43065index 1b1125e..31a2019 100644
43619--- a/drivers/scsi/sd.c 43066--- a/drivers/scsi/sd.c
43620+++ b/drivers/scsi/sd.c 43067+++ b/drivers/scsi/sd.c
43621@@ -2929,7 +2929,7 @@ static int sd_probe(struct device *dev) 43068@@ -2936,7 +2936,7 @@ static int sd_probe(struct device *dev)
43622 sdkp->disk = gd; 43069 sdkp->disk = gd;
43623 sdkp->index = index; 43070 sdkp->index = index;
43624 atomic_set(&sdkp->openers, 0); 43071 atomic_set(&sdkp->openers, 0);
@@ -43628,10 +43075,10 @@ index 0f0370f..7e076c4 100644
43628 if (!sdp->request_queue->rq_timeout) { 43075 if (!sdp->request_queue->rq_timeout) {
43629 if (sdp->type != TYPE_MOD) 43076 if (sdp->type != TYPE_MOD)
43630diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c 43077diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
43631index 9f0c465..47194ee 100644 43078index df5e961..df6b97f 100644
43632--- a/drivers/scsi/sg.c 43079--- a/drivers/scsi/sg.c
43633+++ b/drivers/scsi/sg.c 43080+++ b/drivers/scsi/sg.c
43634@@ -1101,7 +1101,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) 43081@@ -1102,7 +1102,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
43635 sdp->disk->disk_name, 43082 sdp->disk->disk_name,
43636 MKDEV(SCSI_GENERIC_MAJOR, sdp->index), 43083 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
43637 NULL, 43084 NULL,
@@ -43641,10 +43088,10 @@ index 9f0c465..47194ee 100644
43641 return blk_trace_startstop(sdp->device->request_queue, 1); 43088 return blk_trace_startstop(sdp->device->request_queue, 1);
43642 case BLKTRACESTOP: 43089 case BLKTRACESTOP:
43643diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c 43090diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
43644index 004b10f..7c98d51 100644 43091index 32b7bb1..2f1c4bd 100644
43645--- a/drivers/spi/spi.c 43092--- a/drivers/spi/spi.c
43646+++ b/drivers/spi/spi.c 43093+++ b/drivers/spi/spi.c
43647@@ -1620,7 +1620,7 @@ int spi_bus_unlock(struct spi_master *master) 43094@@ -1631,7 +1631,7 @@ int spi_bus_unlock(struct spi_master *master)
43648 EXPORT_SYMBOL_GPL(spi_bus_unlock); 43095 EXPORT_SYMBOL_GPL(spi_bus_unlock);
43649 43096
43650 /* portable code must never pass more than 32 bytes */ 43097 /* portable code must never pass more than 32 bytes */
@@ -43653,19 +43100,19 @@ index 004b10f..7c98d51 100644
43653 43100
43654 static u8 *buf; 43101 static u8 *buf;
43655 43102
43656diff --git a/drivers/staging/iio/iio_hwmon.c b/drivers/staging/iio/iio_hwmon.c 43103diff --git a/drivers/staging/media/solo6x10/solo6x10-core.c b/drivers/staging/media/solo6x10/solo6x10-core.c
43657index 93af756..a4bc5bf 100644 43104index 3675020..e80d92c 100644
43658--- a/drivers/staging/iio/iio_hwmon.c 43105--- a/drivers/staging/media/solo6x10/solo6x10-core.c
43659+++ b/drivers/staging/iio/iio_hwmon.c 43106+++ b/drivers/staging/media/solo6x10/solo6x10-core.c
43660@@ -67,7 +67,7 @@ static int iio_hwmon_probe(struct platform_device *pdev) 43107@@ -434,7 +434,7 @@ static void solo_device_release(struct device *dev)
43108
43109 static int solo_sysfs_init(struct solo_dev *solo_dev)
43661 { 43110 {
43662 struct device *dev = &pdev->dev; 43111- struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
43663 struct iio_hwmon_state *st; 43112+ bin_attribute_no_const *sdram_attr = &solo_dev->sdram_attr;
43664- struct sensor_device_attribute *a; 43113 struct device *dev = &solo_dev->dev;
43665+ sensor_device_attribute_no_const *a; 43114 const char *driver;
43666 int ret, i; 43115 int i;
43667 int in_i = 1, temp_i = 1, curr_i = 1;
43668 enum iio_chan_type type;
43669diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c 43116diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
43670index 34afc16..ffe44dd 100644 43117index 34afc16..ffe44dd 100644
43671--- a/drivers/staging/octeon/ethernet-rx.c 43118--- a/drivers/staging/octeon/ethernet-rx.c
@@ -43745,7 +43192,7 @@ index 1f5088b..0e59820 100644
43745 43192
43746 return 0; 43193 return 0;
43747diff --git a/drivers/staging/usbip/vhci.h b/drivers/staging/usbip/vhci.h 43194diff --git a/drivers/staging/usbip/vhci.h b/drivers/staging/usbip/vhci.h
43748index 5dddc4d..34fcb2f 100644 43195index a863a98..d272795 100644
43749--- a/drivers/staging/usbip/vhci.h 43196--- a/drivers/staging/usbip/vhci.h
43750+++ b/drivers/staging/usbip/vhci.h 43197+++ b/drivers/staging/usbip/vhci.h
43751@@ -83,7 +83,7 @@ struct vhci_hcd { 43198@@ -83,7 +83,7 @@ struct vhci_hcd {
@@ -43758,7 +43205,7 @@ index 5dddc4d..34fcb2f 100644
43758 /* 43205 /*
43759 * NOTE: 43206 * NOTE:
43760diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c 43207diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c
43761index f1ca084..7b5c0c3 100644 43208index d7974cb..d78076b 100644
43762--- a/drivers/staging/usbip/vhci_hcd.c 43209--- a/drivers/staging/usbip/vhci_hcd.c
43763+++ b/drivers/staging/usbip/vhci_hcd.c 43210+++ b/drivers/staging/usbip/vhci_hcd.c
43764@@ -441,7 +441,7 @@ static void vhci_tx_urb(struct urb *urb) 43211@@ -441,7 +441,7 @@ static void vhci_tx_urb(struct urb *urb)
@@ -43789,10 +43236,10 @@ index f1ca084..7b5c0c3 100644
43789 43236
43790 hcd->power_budget = 0; /* no limit */ 43237 hcd->power_budget = 0; /* no limit */
43791diff --git a/drivers/staging/usbip/vhci_rx.c b/drivers/staging/usbip/vhci_rx.c 43238diff --git a/drivers/staging/usbip/vhci_rx.c b/drivers/staging/usbip/vhci_rx.c
43792index faf8e60..c46f8ab 100644 43239index d07fcb5..358e1e1 100644
43793--- a/drivers/staging/usbip/vhci_rx.c 43240--- a/drivers/staging/usbip/vhci_rx.c
43794+++ b/drivers/staging/usbip/vhci_rx.c 43241+++ b/drivers/staging/usbip/vhci_rx.c
43795@@ -76,7 +76,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev, 43242@@ -80,7 +80,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
43796 if (!urb) { 43243 if (!urb) {
43797 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum); 43244 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
43798 pr_info("max seqnum %d\n", 43245 pr_info("max seqnum %d\n",
@@ -43802,10 +43249,10 @@ index faf8e60..c46f8ab 100644
43802 return; 43249 return;
43803 } 43250 }
43804diff --git a/drivers/staging/vt6655/hostap.c b/drivers/staging/vt6655/hostap.c 43251diff --git a/drivers/staging/vt6655/hostap.c b/drivers/staging/vt6655/hostap.c
43805index 5f13890..36a044b 100644 43252index 8417c2f..ef5ebd6 100644
43806--- a/drivers/staging/vt6655/hostap.c 43253--- a/drivers/staging/vt6655/hostap.c
43807+++ b/drivers/staging/vt6655/hostap.c 43254+++ b/drivers/staging/vt6655/hostap.c
43808@@ -73,14 +73,13 @@ static int msglevel =MSG_LEVEL_INFO; 43255@@ -69,14 +69,13 @@ static int msglevel = MSG_LEVEL_INFO;
43809 * 43256 *
43810 */ 43257 */
43811 43258
@@ -43813,17 +43260,17 @@ index 5f13890..36a044b 100644
43813+ 43260+
43814 static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked) 43261 static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
43815 { 43262 {
43816 PSDevice apdev_priv; 43263 PSDevice apdev_priv;
43817 struct net_device *dev = pDevice->dev; 43264 struct net_device *dev = pDevice->dev;
43818 int ret; 43265 int ret;
43819- const struct net_device_ops apdev_netdev_ops = { 43266- const struct net_device_ops apdev_netdev_ops = {
43820- .ndo_start_xmit = pDevice->tx_80211, 43267- .ndo_start_xmit = pDevice->tx_80211,
43821- }; 43268- };
43822 43269
43823 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name); 43270 DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "%s: Enabling hostapd mode\n", dev->name);
43824 43271
43825@@ -92,6 +91,8 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked) 43272@@ -88,6 +87,8 @@ static int hostap_enable_hostapd(PSDevice pDevice, int rtnl_locked)
43826 *apdev_priv = *pDevice; 43273 *apdev_priv = *pDevice;
43827 memcpy(pDevice->apdev->dev_addr, dev->dev_addr, ETH_ALEN); 43274 memcpy(pDevice->apdev->dev_addr, dev->dev_addr, ETH_ALEN);
43828 43275
43829+ /* only half broken now */ 43276+ /* only half broken now */
@@ -43832,7 +43279,7 @@ index 5f13890..36a044b 100644
43832 43279
43833 pDevice->apdev->type = ARPHRD_IEEE80211; 43280 pDevice->apdev->type = ARPHRD_IEEE80211;
43834diff --git a/drivers/staging/vt6656/hostap.c b/drivers/staging/vt6656/hostap.c 43281diff --git a/drivers/staging/vt6656/hostap.c b/drivers/staging/vt6656/hostap.c
43835index a94e66f..31984d0 100644 43282index c699a30..b90a5fd 100644
43836--- a/drivers/staging/vt6656/hostap.c 43283--- a/drivers/staging/vt6656/hostap.c
43837+++ b/drivers/staging/vt6656/hostap.c 43284+++ b/drivers/staging/vt6656/hostap.c
43838@@ -60,14 +60,13 @@ static int msglevel =MSG_LEVEL_INFO; 43285@@ -60,14 +60,13 @@ static int msglevel =MSG_LEVEL_INFO;
@@ -43862,10 +43309,10 @@ index a94e66f..31984d0 100644
43862 43309
43863 pDevice->apdev->type = ARPHRD_IEEE80211; 43310 pDevice->apdev->type = ARPHRD_IEEE80211;
43864diff --git a/drivers/staging/zcache/tmem.c b/drivers/staging/zcache/tmem.c 43311diff --git a/drivers/staging/zcache/tmem.c b/drivers/staging/zcache/tmem.c
43865index a2b7e03..9ff4bbd 100644 43312index d7e51e4..d07eaab 100644
43866--- a/drivers/staging/zcache/tmem.c 43313--- a/drivers/staging/zcache/tmem.c
43867+++ b/drivers/staging/zcache/tmem.c 43314+++ b/drivers/staging/zcache/tmem.c
43868@@ -50,7 +50,7 @@ 43315@@ -51,7 +51,7 @@
43869 * A tmem host implementation must use this function to register callbacks 43316 * A tmem host implementation must use this function to register callbacks
43870 * for memory allocation. 43317 * for memory allocation.
43871 */ 43318 */
@@ -43874,7 +43321,7 @@ index a2b7e03..9ff4bbd 100644
43874 43321
43875 static void tmem_objnode_tree_init(void); 43322 static void tmem_objnode_tree_init(void);
43876 43323
43877@@ -64,7 +64,7 @@ void tmem_register_hostops(struct tmem_hostops *m) 43324@@ -65,7 +65,7 @@ void tmem_register_hostops(struct tmem_hostops *m)
43878 * A tmem host implementation must use this function to register 43325 * A tmem host implementation must use this function to register
43879 * callbacks for a page-accessible memory (PAM) implementation. 43326 * callbacks for a page-accessible memory (PAM) implementation.
43880 */ 43327 */
@@ -43884,7 +43331,7 @@ index a2b7e03..9ff4bbd 100644
43884 void tmem_register_pamops(struct tmem_pamops *m) 43331 void tmem_register_pamops(struct tmem_pamops *m)
43885 { 43332 {
43886diff --git a/drivers/staging/zcache/tmem.h b/drivers/staging/zcache/tmem.h 43333diff --git a/drivers/staging/zcache/tmem.h b/drivers/staging/zcache/tmem.h
43887index adbe5a8..d387359 100644 43334index d128ce2..a43980c 100644
43888--- a/drivers/staging/zcache/tmem.h 43335--- a/drivers/staging/zcache/tmem.h
43889+++ b/drivers/staging/zcache/tmem.h 43336+++ b/drivers/staging/zcache/tmem.h
43890@@ -226,6 +226,7 @@ struct tmem_pamops { 43337@@ -226,6 +226,7 @@ struct tmem_pamops {
@@ -43904,10 +43351,10 @@ index adbe5a8..d387359 100644
43904 43351
43905 /* core tmem accessor functions */ 43352 /* core tmem accessor functions */
43906diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c 43353diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
43907index 2e4d655..fd72e68 100644 43354index 4630481..c26782a 100644
43908--- a/drivers/target/target_core_device.c 43355--- a/drivers/target/target_core_device.c
43909+++ b/drivers/target/target_core_device.c 43356+++ b/drivers/target/target_core_device.c
43910@@ -1414,7 +1414,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name) 43357@@ -1400,7 +1400,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
43911 spin_lock_init(&dev->se_port_lock); 43358 spin_lock_init(&dev->se_port_lock);
43912 spin_lock_init(&dev->se_tmr_lock); 43359 spin_lock_init(&dev->se_tmr_lock);
43913 spin_lock_init(&dev->qf_cmd_lock); 43360 spin_lock_init(&dev->qf_cmd_lock);
@@ -43917,10 +43364,10 @@ index 2e4d655..fd72e68 100644
43917 spin_lock_init(&dev->t10_wwn.t10_vpd_lock); 43364 spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
43918 INIT_LIST_HEAD(&dev->t10_pr.registration_list); 43365 INIT_LIST_HEAD(&dev->t10_pr.registration_list);
43919diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c 43366diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
43920index fc9a5a0..1d5975e 100644 43367index 21e3158..43c6004 100644
43921--- a/drivers/target/target_core_transport.c 43368--- a/drivers/target/target_core_transport.c
43922+++ b/drivers/target/target_core_transport.c 43369+++ b/drivers/target/target_core_transport.c
43923@@ -1081,7 +1081,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd) 43370@@ -1080,7 +1080,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
43924 * Used to determine when ORDERED commands should go from 43371 * Used to determine when ORDERED commands should go from
43925 * Dormant to Active status. 43372 * Dormant to Active status.
43926 */ 43373 */
@@ -43930,10 +43377,10 @@ index fc9a5a0..1d5975e 100644
43930 pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n", 43377 pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n",
43931 cmd->se_ordered_id, cmd->sam_task_attr, 43378 cmd->se_ordered_id, cmd->sam_task_attr,
43932diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c 43379diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
43933index 345bd0e..61d5375 100644 43380index 33f83fe..d80f8e1 100644
43934--- a/drivers/tty/cyclades.c 43381--- a/drivers/tty/cyclades.c
43935+++ b/drivers/tty/cyclades.c 43382+++ b/drivers/tty/cyclades.c
43936@@ -1576,10 +1576,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp) 43383@@ -1570,10 +1570,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp)
43937 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line, 43384 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line,
43938 info->port.count); 43385 info->port.count);
43939 #endif 43386 #endif
@@ -43946,7 +43393,7 @@ index 345bd0e..61d5375 100644
43946 #endif 43393 #endif
43947 43394
43948 /* 43395 /*
43949@@ -3978,7 +3978,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v) 43396@@ -3972,7 +3972,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v)
43950 for (j = 0; j < cy_card[i].nports; j++) { 43397 for (j = 0; j < cy_card[i].nports; j++) {
43951 info = &cy_card[i].ports[j]; 43398 info = &cy_card[i].ports[j];
43952 43399
@@ -44228,10 +43675,10 @@ index 8fd72ff..34a0bed 100644
44228 ipwireless_disassociate_network_ttys(network, 43675 ipwireless_disassociate_network_ttys(network,
44229 ttyj->channel_idx); 43676 ttyj->channel_idx);
44230diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c 43677diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
44231index adeac25..787a0a1 100644 43678index 1deaca4..c8582d4 100644
44232--- a/drivers/tty/moxa.c 43679--- a/drivers/tty/moxa.c
44233+++ b/drivers/tty/moxa.c 43680+++ b/drivers/tty/moxa.c
44234@@ -1193,7 +1193,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp) 43681@@ -1189,7 +1189,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
44235 } 43682 }
44236 43683
44237 ch = &brd->ports[port % MAX_PORTS_PER_BOARD]; 43684 ch = &brd->ports[port % MAX_PORTS_PER_BOARD];
@@ -44241,10 +43688,10 @@ index adeac25..787a0a1 100644
44241 tty_port_tty_set(&ch->port, tty); 43688 tty_port_tty_set(&ch->port, tty);
44242 mutex_lock(&ch->port.mutex); 43689 mutex_lock(&ch->port.mutex);
44243diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c 43690diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
44244index 4a43ef5d7..aa71f27 100644 43691index 6422390..49003ac8 100644
44245--- a/drivers/tty/n_gsm.c 43692--- a/drivers/tty/n_gsm.c
44246+++ b/drivers/tty/n_gsm.c 43693+++ b/drivers/tty/n_gsm.c
44247@@ -1636,7 +1636,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr) 43694@@ -1632,7 +1632,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
44248 spin_lock_init(&dlci->lock); 43695 spin_lock_init(&dlci->lock);
44249 mutex_init(&dlci->mutex); 43696 mutex_init(&dlci->mutex);
44250 dlci->fifo = &dlci->_fifo; 43697 dlci->fifo = &dlci->_fifo;
@@ -44253,7 +43700,7 @@ index 4a43ef5d7..aa71f27 100644
44253 kfree(dlci); 43700 kfree(dlci);
44254 return NULL; 43701 return NULL;
44255 } 43702 }
44256@@ -2936,7 +2936,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp) 43703@@ -2932,7 +2932,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
44257 struct gsm_dlci *dlci = tty->driver_data; 43704 struct gsm_dlci *dlci = tty->driver_data;
44258 struct tty_port *port = &dlci->port; 43705 struct tty_port *port = &dlci->port;
44259 43706
@@ -44263,10 +43710,10 @@ index 4a43ef5d7..aa71f27 100644
44263 dlci_get(dlci->gsm->dlci[0]); 43710 dlci_get(dlci->gsm->dlci[0]);
44264 mux_get(dlci->gsm); 43711 mux_get(dlci->gsm);
44265diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c 43712diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
44266index 1f8cba6..47b06c2 100644 43713index 6c7fe90..9241dab 100644
44267--- a/drivers/tty/n_tty.c 43714--- a/drivers/tty/n_tty.c
44268+++ b/drivers/tty/n_tty.c 43715+++ b/drivers/tty/n_tty.c
44269@@ -2205,6 +2205,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops) 43716@@ -2203,6 +2203,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
44270 { 43717 {
44271 *ops = tty_ldisc_N_TTY; 43718 *ops = tty_ldisc_N_TTY;
44272 ops->owner = NULL; 43719 ops->owner = NULL;
@@ -44276,10 +43723,10 @@ index 1f8cba6..47b06c2 100644
44276 } 43723 }
44277 EXPORT_SYMBOL_GPL(n_tty_inherit_ops); 43724 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
44278diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c 43725diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
44279index 74a5e8b..40c36a7 100644 43726index abfd990..5ab5da9 100644
44280--- a/drivers/tty/pty.c 43727--- a/drivers/tty/pty.c
44281+++ b/drivers/tty/pty.c 43728+++ b/drivers/tty/pty.c
44282@@ -797,8 +797,10 @@ static void __init unix98_pty_init(void) 43729@@ -796,8 +796,10 @@ static void __init unix98_pty_init(void)
44283 panic("Couldn't register Unix98 pts driver"); 43730 panic("Couldn't register Unix98 pts driver");
44284 43731
44285 /* Now create the /dev/ptmx special device */ 43732 /* Now create the /dev/ptmx special device */
@@ -44292,10 +43739,10 @@ index 74a5e8b..40c36a7 100644
44292 cdev_init(&ptmx_cdev, &ptmx_fops); 43739 cdev_init(&ptmx_cdev, &ptmx_fops);
44293 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) || 43740 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
44294diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c 43741diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
44295index 1d27003..959f452 100644 43742index 354564e..fe50d9a 100644
44296--- a/drivers/tty/rocket.c 43743--- a/drivers/tty/rocket.c
44297+++ b/drivers/tty/rocket.c 43744+++ b/drivers/tty/rocket.c
44298@@ -923,7 +923,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp) 43745@@ -914,7 +914,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
44299 tty->driver_data = info; 43746 tty->driver_data = info;
44300 tty_port_tty_set(port, tty); 43747 tty_port_tty_set(port, tty);
44301 43748
@@ -44304,7 +43751,7 @@ index 1d27003..959f452 100644
44304 atomic_inc(&rp_num_ports_open); 43751 atomic_inc(&rp_num_ports_open);
44305 43752
44306 #ifdef ROCKET_DEBUG_OPEN 43753 #ifdef ROCKET_DEBUG_OPEN
44307@@ -932,7 +932,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp) 43754@@ -923,7 +923,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
44308 #endif 43755 #endif
44309 } 43756 }
44310 #ifdef ROCKET_DEBUG_OPEN 43757 #ifdef ROCKET_DEBUG_OPEN
@@ -44313,7 +43760,7 @@ index 1d27003..959f452 100644
44313 #endif 43760 #endif
44314 43761
44315 /* 43762 /*
44316@@ -1527,7 +1527,7 @@ static void rp_hangup(struct tty_struct *tty) 43763@@ -1515,7 +1515,7 @@ static void rp_hangup(struct tty_struct *tty)
44317 spin_unlock_irqrestore(&info->port.lock, flags); 43764 spin_unlock_irqrestore(&info->port.lock, flags);
44318 return; 43765 return;
44319 } 43766 }
@@ -44429,10 +43876,10 @@ index 1002054..dd644a8 100644
44429 /* This is only available if kgdboc is a built in for early debugging */ 43876 /* This is only available if kgdboc is a built in for early debugging */
44430 static int __init kgdboc_early_init(char *opt) 43877 static int __init kgdboc_early_init(char *opt)
44431diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c 43878diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
44432index 2769a38..f3dbe48 100644 43879index 0c8a9fa..234a95f 100644
44433--- a/drivers/tty/serial/samsung.c 43880--- a/drivers/tty/serial/samsung.c
44434+++ b/drivers/tty/serial/samsung.c 43881+++ b/drivers/tty/serial/samsung.c
44435@@ -451,11 +451,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port) 43882@@ -453,11 +453,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
44436 } 43883 }
44437 } 43884 }
44438 43885
@@ -44449,7 +43896,7 @@ index 2769a38..f3dbe48 100644
44449 dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n", 43896 dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n",
44450 port->mapbase, port->membase); 43897 port->mapbase, port->membase);
44451 43898
44452@@ -1120,10 +1125,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport, 43899@@ -1124,10 +1129,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
44453 /* setup info for port */ 43900 /* setup info for port */
44454 port->dev = &platdev->dev; 43901 port->dev = &platdev->dev;
44455 43902
@@ -44461,7 +43908,7 @@ index 2769a38..f3dbe48 100644
44461 43908
44462 if (cfg->uart_flags & UPF_CONS_FLOW) { 43909 if (cfg->uart_flags & UPF_CONS_FLOW) {
44463diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c 43910diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
44464index 8fbb6d2..822a9e6 100644 43911index f87dbfd..42ad4b1 100644
44465--- a/drivers/tty/serial/serial_core.c 43912--- a/drivers/tty/serial/serial_core.c
44466+++ b/drivers/tty/serial/serial_core.c 43913+++ b/drivers/tty/serial/serial_core.c
44467@@ -1454,7 +1454,7 @@ static void uart_hangup(struct tty_struct *tty) 43914@@ -1454,7 +1454,7 @@ static void uart_hangup(struct tty_struct *tty)
@@ -44501,10 +43948,10 @@ index 8fbb6d2..822a9e6 100644
44501 goto end; 43948 goto end;
44502 } 43949 }
44503diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c 43950diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
44504index 8983276..72a4090 100644 43951index 8eaf1ab..85c030d 100644
44505--- a/drivers/tty/synclink.c 43952--- a/drivers/tty/synclink.c
44506+++ b/drivers/tty/synclink.c 43953+++ b/drivers/tty/synclink.c
44507@@ -3093,7 +3093,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp) 43954@@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
44508 43955
44509 if (debug_level >= DEBUG_LEVEL_INFO) 43956 if (debug_level >= DEBUG_LEVEL_INFO)
44510 printk("%s(%d):mgsl_close(%s) entry, count=%d\n", 43957 printk("%s(%d):mgsl_close(%s) entry, count=%d\n",
@@ -44513,7 +43960,7 @@ index 8983276..72a4090 100644
44513 43960
44514 if (tty_port_close_start(&info->port, tty, filp) == 0) 43961 if (tty_port_close_start(&info->port, tty, filp) == 0)
44515 goto cleanup; 43962 goto cleanup;
44516@@ -3111,7 +3111,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp) 43963@@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
44517 cleanup: 43964 cleanup:
44518 if (debug_level >= DEBUG_LEVEL_INFO) 43965 if (debug_level >= DEBUG_LEVEL_INFO)
44519 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__, 43966 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__,
@@ -44522,7 +43969,7 @@ index 8983276..72a4090 100644
44522 43969
44523 } /* end of mgsl_close() */ 43970 } /* end of mgsl_close() */
44524 43971
44525@@ -3210,8 +3210,8 @@ static void mgsl_hangup(struct tty_struct *tty) 43972@@ -3207,8 +3207,8 @@ static void mgsl_hangup(struct tty_struct *tty)
44526 43973
44527 mgsl_flush_buffer(tty); 43974 mgsl_flush_buffer(tty);
44528 shutdown(info); 43975 shutdown(info);
@@ -44533,7 +43980,7 @@ index 8983276..72a4090 100644
44533 info->port.flags &= ~ASYNC_NORMAL_ACTIVE; 43980 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
44534 info->port.tty = NULL; 43981 info->port.tty = NULL;
44535 43982
44536@@ -3300,12 +3300,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp, 43983@@ -3297,12 +3297,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
44537 43984
44538 if (debug_level >= DEBUG_LEVEL_INFO) 43985 if (debug_level >= DEBUG_LEVEL_INFO)
44539 printk("%s(%d):block_til_ready before block on %s count=%d\n", 43986 printk("%s(%d):block_til_ready before block on %s count=%d\n",
@@ -44548,7 +43995,7 @@ index 8983276..72a4090 100644
44548 } 43995 }
44549 spin_unlock_irqrestore(&info->irq_spinlock, flags); 43996 spin_unlock_irqrestore(&info->irq_spinlock, flags);
44550 port->blocked_open++; 43997 port->blocked_open++;
44551@@ -3334,7 +3334,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp, 43998@@ -3331,7 +3331,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
44552 43999
44553 if (debug_level >= DEBUG_LEVEL_INFO) 44000 if (debug_level >= DEBUG_LEVEL_INFO)
44554 printk("%s(%d):block_til_ready blocking on %s count=%d\n", 44001 printk("%s(%d):block_til_ready blocking on %s count=%d\n",
@@ -44557,7 +44004,7 @@ index 8983276..72a4090 100644
44557 44004
44558 tty_unlock(tty); 44005 tty_unlock(tty);
44559 schedule(); 44006 schedule();
44560@@ -3346,12 +3346,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp, 44007@@ -3343,12 +3343,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
44561 44008
44562 /* FIXME: Racy on hangup during close wait */ 44009 /* FIXME: Racy on hangup during close wait */
44563 if (extra_count) 44010 if (extra_count)
@@ -44572,7 +44019,7 @@ index 8983276..72a4090 100644
44572 44019
44573 if (!retval) 44020 if (!retval)
44574 port->flags |= ASYNC_NORMAL_ACTIVE; 44021 port->flags |= ASYNC_NORMAL_ACTIVE;
44575@@ -3403,7 +3403,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp) 44022@@ -3400,7 +3400,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
44576 44023
44577 if (debug_level >= DEBUG_LEVEL_INFO) 44024 if (debug_level >= DEBUG_LEVEL_INFO)
44578 printk("%s(%d):mgsl_open(%s), old ref count = %d\n", 44025 printk("%s(%d):mgsl_open(%s), old ref count = %d\n",
@@ -44581,7 +44028,7 @@ index 8983276..72a4090 100644
44581 44028
44582 /* If port is closing, signal caller to try again */ 44029 /* If port is closing, signal caller to try again */
44583 if (tty_hung_up_p(filp) || info->port.flags & ASYNC_CLOSING){ 44030 if (tty_hung_up_p(filp) || info->port.flags & ASYNC_CLOSING){
44584@@ -3422,10 +3422,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp) 44031@@ -3419,10 +3419,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
44585 spin_unlock_irqrestore(&info->netlock, flags); 44032 spin_unlock_irqrestore(&info->netlock, flags);
44586 goto cleanup; 44033 goto cleanup;
44587 } 44034 }
@@ -44594,7 +44041,7 @@ index 8983276..72a4090 100644
44594 /* 1st open on this device, init hardware */ 44041 /* 1st open on this device, init hardware */
44595 retval = startup(info); 44042 retval = startup(info);
44596 if (retval < 0) 44043 if (retval < 0)
44597@@ -3449,8 +3449,8 @@ cleanup: 44044@@ -3446,8 +3446,8 @@ cleanup:
44598 if (retval) { 44045 if (retval) {
44599 if (tty->count == 1) 44046 if (tty->count == 1)
44600 info->port.tty = NULL; /* tty layer will release tty struct */ 44047 info->port.tty = NULL; /* tty layer will release tty struct */
@@ -44605,7 +44052,7 @@ index 8983276..72a4090 100644
44605 } 44052 }
44606 44053
44607 return retval; 44054 return retval;
44608@@ -7668,7 +7668,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding, 44055@@ -7665,7 +7665,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
44609 unsigned short new_crctype; 44056 unsigned short new_crctype;
44610 44057
44611 /* return error if TTY interface open */ 44058 /* return error if TTY interface open */
@@ -44614,7 +44061,7 @@ index 8983276..72a4090 100644
44614 return -EBUSY; 44061 return -EBUSY;
44615 44062
44616 switch (encoding) 44063 switch (encoding)
44617@@ -7763,7 +7763,7 @@ static int hdlcdev_open(struct net_device *dev) 44064@@ -7760,7 +7760,7 @@ static int hdlcdev_open(struct net_device *dev)
44618 44065
44619 /* arbitrate between network and tty opens */ 44066 /* arbitrate between network and tty opens */
44620 spin_lock_irqsave(&info->netlock, flags); 44067 spin_lock_irqsave(&info->netlock, flags);
@@ -44623,7 +44070,7 @@ index 8983276..72a4090 100644
44623 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name); 44070 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
44624 spin_unlock_irqrestore(&info->netlock, flags); 44071 spin_unlock_irqrestore(&info->netlock, flags);
44625 return -EBUSY; 44072 return -EBUSY;
44626@@ -7849,7 +7849,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) 44073@@ -7846,7 +7846,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
44627 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name); 44074 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
44628 44075
44629 /* return error if TTY interface open */ 44076 /* return error if TTY interface open */
@@ -44633,7 +44080,7 @@ index 8983276..72a4090 100644
44633 44080
44634 if (cmd != SIOCWANDEV) 44081 if (cmd != SIOCWANDEV)
44635diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c 44082diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
44636index aa9eece..d8baaec 100644 44083index 1abf946..1ee34fc 100644
44637--- a/drivers/tty/synclink_gt.c 44084--- a/drivers/tty/synclink_gt.c
44638+++ b/drivers/tty/synclink_gt.c 44085+++ b/drivers/tty/synclink_gt.c
44639@@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp) 44086@@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp)
@@ -44751,7 +44198,7 @@ index aa9eece..d8baaec 100644
44751 44198
44752 if (!retval) 44199 if (!retval)
44753diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c 44200diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
44754index 6d5780c..aa4d8cd 100644 44201index ff17138..e38b41e 100644
44755--- a/drivers/tty/synclinkmp.c 44202--- a/drivers/tty/synclinkmp.c
44756+++ b/drivers/tty/synclinkmp.c 44203+++ b/drivers/tty/synclinkmp.c
44757@@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp) 44204@@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp)
@@ -44890,10 +44337,10 @@ index 6d5780c..aa4d8cd 100644
44890 if (!retval) 44337 if (!retval)
44891 port->flags |= ASYNC_NORMAL_ACTIVE; 44338 port->flags |= ASYNC_NORMAL_ACTIVE;
44892diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c 44339diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
44893index 3687f0c..6b9b808 100644 44340index b51c154..17d55d1 100644
44894--- a/drivers/tty/sysrq.c 44341--- a/drivers/tty/sysrq.c
44895+++ b/drivers/tty/sysrq.c 44342+++ b/drivers/tty/sysrq.c
44896@@ -995,7 +995,7 @@ EXPORT_SYMBOL(unregister_sysrq_key); 44343@@ -1022,7 +1022,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
44897 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf, 44344 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
44898 size_t count, loff_t *ppos) 44345 size_t count, loff_t *ppos)
44899 { 44346 {
@@ -44903,10 +44350,10 @@ index 3687f0c..6b9b808 100644
44903 44350
44904 if (get_user(c, buf)) 44351 if (get_user(c, buf))
44905diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c 44352diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
44906index a9cd0b9..47b9336 100644 44353index 4476682..d77e748 100644
44907--- a/drivers/tty/tty_io.c 44354--- a/drivers/tty/tty_io.c
44908+++ b/drivers/tty/tty_io.c 44355+++ b/drivers/tty/tty_io.c
44909@@ -3398,7 +3398,7 @@ EXPORT_SYMBOL_GPL(get_current_tty); 44356@@ -3466,7 +3466,7 @@ EXPORT_SYMBOL_GPL(get_current_tty);
44910 44357
44911 void tty_default_fops(struct file_operations *fops) 44358 void tty_default_fops(struct file_operations *fops)
44912 { 44359 {
@@ -44916,19 +44363,10 @@ index a9cd0b9..47b9336 100644
44916 44363
44917 /* 44364 /*
44918diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c 44365diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
44919index d794087..e4f49e5 100644 44366index 1afe192..73d2c20 100644
44920--- a/drivers/tty/tty_ldisc.c 44367--- a/drivers/tty/tty_ldisc.c
44921+++ b/drivers/tty/tty_ldisc.c 44368+++ b/drivers/tty/tty_ldisc.c
44922@@ -56,7 +56,7 @@ static void put_ldisc(struct tty_ldisc *ld) 44369@@ -66,7 +66,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
44923 if (atomic_dec_and_test(&ld->users)) {
44924 struct tty_ldisc_ops *ldo = ld->ops;
44925
44926- ldo->refcount--;
44927+ atomic_dec(&ldo->refcount);
44928 module_put(ldo->owner);
44929 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
44930
44931@@ -93,7 +93,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
44932 raw_spin_lock_irqsave(&tty_ldisc_lock, flags); 44370 raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
44933 tty_ldiscs[disc] = new_ldisc; 44371 tty_ldiscs[disc] = new_ldisc;
44934 new_ldisc->num = disc; 44372 new_ldisc->num = disc;
@@ -44937,7 +44375,7 @@ index d794087..e4f49e5 100644
44937 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags); 44375 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
44938 44376
44939 return ret; 44377 return ret;
44940@@ -121,7 +121,7 @@ int tty_unregister_ldisc(int disc) 44378@@ -94,7 +94,7 @@ int tty_unregister_ldisc(int disc)
44941 return -EINVAL; 44379 return -EINVAL;
44942 44380
44943 raw_spin_lock_irqsave(&tty_ldisc_lock, flags); 44381 raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -44946,7 +44384,7 @@ index d794087..e4f49e5 100644
44946 ret = -EBUSY; 44384 ret = -EBUSY;
44947 else 44385 else
44948 tty_ldiscs[disc] = NULL; 44386 tty_ldiscs[disc] = NULL;
44949@@ -142,7 +142,7 @@ static struct tty_ldisc_ops *get_ldops(int disc) 44387@@ -115,7 +115,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
44950 if (ldops) { 44388 if (ldops) {
44951 ret = ERR_PTR(-EAGAIN); 44389 ret = ERR_PTR(-EAGAIN);
44952 if (try_module_get(ldops->owner)) { 44390 if (try_module_get(ldops->owner)) {
@@ -44955,7 +44393,7 @@ index d794087..e4f49e5 100644
44955 ret = ldops; 44393 ret = ldops;
44956 } 44394 }
44957 } 44395 }
44958@@ -155,7 +155,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops) 44396@@ -128,7 +128,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
44959 unsigned long flags; 44397 unsigned long flags;
44960 44398
44961 raw_spin_lock_irqsave(&tty_ldisc_lock, flags); 44399 raw_spin_lock_irqsave(&tty_ldisc_lock, flags);
@@ -44964,20 +44402,29 @@ index d794087..e4f49e5 100644
44964 module_put(ldops->owner); 44402 module_put(ldops->owner);
44965 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags); 44403 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
44966 } 44404 }
44405@@ -196,7 +196,7 @@ static inline void tty_ldisc_put(struct tty_ldisc *ld)
44406 /* unreleased reader reference(s) will cause this WARN */
44407 WARN_ON(!atomic_dec_and_test(&ld->users));
44408
44409- ld->ops->refcount--;
44410+ atomic_dec(&ld->ops->refcount);
44411 module_put(ld->ops->owner);
44412 kfree(ld);
44413 raw_spin_unlock_irqrestore(&tty_ldisc_lock, flags);
44967diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c 44414diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
44968index b7ff59d..7c6105e 100644 44415index 121aeb9..0d2c4b9 100644
44969--- a/drivers/tty/tty_port.c 44416--- a/drivers/tty/tty_port.c
44970+++ b/drivers/tty/tty_port.c 44417+++ b/drivers/tty/tty_port.c
44971@@ -218,7 +218,7 @@ void tty_port_hangup(struct tty_port *port) 44418@@ -232,7 +232,7 @@ void tty_port_hangup(struct tty_port *port)
44972 unsigned long flags; 44419 unsigned long flags;
44973 44420
44974 spin_lock_irqsave(&port->lock, flags); 44421 spin_lock_irqsave(&port->lock, flags);
44975- port->count = 0; 44422- port->count = 0;
44976+ atomic_set(&port->count, 0); 44423+ atomic_set(&port->count, 0);
44977 port->flags &= ~ASYNC_NORMAL_ACTIVE; 44424 port->flags &= ~ASYNC_NORMAL_ACTIVE;
44978 if (port->tty) { 44425 tty = port->tty;
44979 set_bit(TTY_IO_ERROR, &port->tty->flags); 44426 if (tty)
44980@@ -344,7 +344,7 @@ int tty_port_block_til_ready(struct tty_port *port, 44427@@ -391,7 +391,7 @@ int tty_port_block_til_ready(struct tty_port *port,
44981 /* The port lock protects the port counts */ 44428 /* The port lock protects the port counts */
44982 spin_lock_irqsave(&port->lock, flags); 44429 spin_lock_irqsave(&port->lock, flags);
44983 if (!tty_hung_up_p(filp)) 44430 if (!tty_hung_up_p(filp))
@@ -44986,7 +44433,7 @@ index b7ff59d..7c6105e 100644
44986 port->blocked_open++; 44433 port->blocked_open++;
44987 spin_unlock_irqrestore(&port->lock, flags); 44434 spin_unlock_irqrestore(&port->lock, flags);
44988 44435
44989@@ -386,7 +386,7 @@ int tty_port_block_til_ready(struct tty_port *port, 44436@@ -433,7 +433,7 @@ int tty_port_block_til_ready(struct tty_port *port,
44990 we must not mess that up further */ 44437 we must not mess that up further */
44991 spin_lock_irqsave(&port->lock, flags); 44438 spin_lock_irqsave(&port->lock, flags);
44992 if (!tty_hung_up_p(filp)) 44439 if (!tty_hung_up_p(filp))
@@ -44995,7 +44442,7 @@ index b7ff59d..7c6105e 100644
44995 port->blocked_open--; 44442 port->blocked_open--;
44996 if (retval == 0) 44443 if (retval == 0)
44997 port->flags |= ASYNC_NORMAL_ACTIVE; 44444 port->flags |= ASYNC_NORMAL_ACTIVE;
44998@@ -406,19 +406,19 @@ int tty_port_close_start(struct tty_port *port, 44445@@ -467,19 +467,19 @@ int tty_port_close_start(struct tty_port *port,
44999 return 0; 44446 return 0;
45000 } 44447 }
45001 44448
@@ -45022,7 +44469,7 @@ index b7ff59d..7c6105e 100644
45022 spin_unlock_irqrestore(&port->lock, flags); 44469 spin_unlock_irqrestore(&port->lock, flags);
45023 if (port->ops->drop) 44470 if (port->ops->drop)
45024 port->ops->drop(port); 44471 port->ops->drop(port);
45025@@ -516,7 +516,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty, 44472@@ -565,7 +565,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
45026 { 44473 {
45027 spin_lock_irq(&port->lock); 44474 spin_lock_irq(&port->lock);
45028 if (!tty_hung_up_p(filp)) 44475 if (!tty_hung_up_p(filp))
@@ -45201,7 +44648,7 @@ index 8a7eb77..c00402f 100644
45201 pos += tmp; 44648 pos += tmp;
45202 44649
45203diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c 44650diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
45204index 35f10bf..6a38a0b 100644 44651index d3527dd..26effa2 100644
45205--- a/drivers/usb/atm/usbatm.c 44652--- a/drivers/usb/atm/usbatm.c
45206+++ b/drivers/usb/atm/usbatm.c 44653+++ b/drivers/usb/atm/usbatm.c
45207@@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char 44654@@ -333,7 +333,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
@@ -45315,7 +44762,7 @@ index 2a3bbdf..91d72cf 100644
45315 file->f_version = event_count; 44762 file->f_version = event_count;
45316 return POLLIN | POLLRDNORM; 44763 return POLLIN | POLLRDNORM;
45317diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c 44764diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
45318index f9ec44c..eb5779f 100644 44765index d53547d..6a22d02 100644
45319--- a/drivers/usb/core/hcd.c 44766--- a/drivers/usb/core/hcd.c
45320+++ b/drivers/usb/core/hcd.c 44767+++ b/drivers/usb/core/hcd.c
45321@@ -1526,7 +1526,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags) 44768@@ -1526,7 +1526,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
@@ -45350,7 +44797,7 @@ index 444d30e..f15c850 100644
45350 __u16 size, int timeout) 44797 __u16 size, int timeout)
45351 { 44798 {
45352diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c 44799diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
45353index 3f81a3d..a3aa993 100644 44800index aa38db4..0a08682 100644
45354--- a/drivers/usb/core/sysfs.c 44801--- a/drivers/usb/core/sysfs.c
45355+++ b/drivers/usb/core/sysfs.c 44802+++ b/drivers/usb/core/sysfs.c
45356@@ -239,7 +239,7 @@ show_urbnum(struct device *dev, struct device_attribute *attr, char *buf) 44803@@ -239,7 +239,7 @@ show_urbnum(struct device *dev, struct device_attribute *attr, char *buf)
@@ -45363,10 +44810,10 @@ index 3f81a3d..a3aa993 100644
45363 static DEVICE_ATTR(urbnum, S_IRUGO, show_urbnum, NULL); 44810 static DEVICE_ATTR(urbnum, S_IRUGO, show_urbnum, NULL);
45364 44811
45365diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c 44812diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
45366index f81b925..78d22ec 100644 44813index b10da72..43aa0b2 100644
45367--- a/drivers/usb/core/usb.c 44814--- a/drivers/usb/core/usb.c
45368+++ b/drivers/usb/core/usb.c 44815+++ b/drivers/usb/core/usb.c
45369@@ -388,7 +388,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent, 44816@@ -389,7 +389,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
45370 set_dev_node(&dev->dev, dev_to_node(bus->controller)); 44817 set_dev_node(&dev->dev, dev_to_node(bus->controller));
45371 dev->state = USB_STATE_ATTACHED; 44818 dev->state = USB_STATE_ATTACHED;
45372 dev->lpm_disable_count = 1; 44819 dev->lpm_disable_count = 1;
@@ -45532,132 +44979,6 @@ index 5f3bcd3..bfca43f 100644
45532 usb_autopm_put_interface(serial->interface); 44979 usb_autopm_put_interface(serial->interface);
45533 error_get_interface: 44980 error_get_interface:
45534 usb_serial_put(serial); 44981 usb_serial_put(serial);
45535diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
45536index 4747d1c..3850e92 100644
45537--- a/drivers/usb/serial/cp210x.c
45538+++ b/drivers/usb/serial/cp210x.c
45539@@ -53,6 +53,7 @@ static const struct usb_device_id id_table[] = {
45540 { USB_DEVICE(0x0489, 0xE000) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */
45541 { USB_DEVICE(0x0489, 0xE003) }, /* Pirelli Broadband S.p.A, DP-L10 SIP/GSM Mobile */
45542 { USB_DEVICE(0x0745, 0x1000) }, /* CipherLab USB CCD Barcode Scanner 1000 */
45543+ { USB_DEVICE(0x0846, 0x1100) }, /* NetGear Managed Switch M4100 series, M5300 series, M7100 series */
45544 { USB_DEVICE(0x08e6, 0x5501) }, /* Gemalto Prox-PU/CU contactless smartcard reader */
45545 { USB_DEVICE(0x08FD, 0x000A) }, /* Digianswer A/S , ZigBee/802.15.4 MAC Device */
45546 { USB_DEVICE(0x0BED, 0x1100) }, /* MEI (TM) Cashflow-SC Bill/Voucher Acceptor */
45547@@ -118,6 +119,8 @@ static const struct usb_device_id id_table[] = {
45548 { USB_DEVICE(0x10C4, 0x85F8) }, /* Virtenio Preon32 */
45549 { USB_DEVICE(0x10C4, 0x8664) }, /* AC-Services CAN-IF */
45550 { USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
45551+ { USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */
45552+ { USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */
45553 { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
45554 { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
45555 { USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
45556@@ -148,6 +151,7 @@ static const struct usb_device_id id_table[] = {
45557 { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */
45558 { USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
45559 { USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
45560+ { USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
45561 { USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
45562 { USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
45563 { USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
45564diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
45565index 9162db2..b7cabbf 100644
45566--- a/drivers/usb/serial/option.c
45567+++ b/drivers/usb/serial/option.c
45568@@ -343,17 +343,12 @@ static void option_instat_callback(struct urb *urb);
45569 #define OLIVETTI_VENDOR_ID 0x0b3c
45570 #define OLIVETTI_PRODUCT_OLICARD100 0xc000
45571 #define OLIVETTI_PRODUCT_OLICARD145 0xc003
45572+#define OLIVETTI_PRODUCT_OLICARD200 0xc005
45573
45574 /* Celot products */
45575 #define CELOT_VENDOR_ID 0x211f
45576 #define CELOT_PRODUCT_CT680M 0x6801
45577
45578-/* ONDA Communication vendor id */
45579-#define ONDA_VENDOR_ID 0x1ee8
45580-
45581-/* ONDA MT825UP HSDPA 14.2 modem */
45582-#define ONDA_MT825UP 0x000b
45583-
45584 /* Samsung products */
45585 #define SAMSUNG_VENDOR_ID 0x04e8
45586 #define SAMSUNG_PRODUCT_GT_B3730 0x6889
45587@@ -446,7 +441,8 @@ static void option_instat_callback(struct urb *urb);
45588
45589 /* Hyundai Petatel Inc. products */
45590 #define PETATEL_VENDOR_ID 0x1ff4
45591-#define PETATEL_PRODUCT_NP10T 0x600e
45592+#define PETATEL_PRODUCT_NP10T_600A 0x600a
45593+#define PETATEL_PRODUCT_NP10T_600E 0x600e
45594
45595 /* TP-LINK Incorporated products */
45596 #define TPLINK_VENDOR_ID 0x2357
45597@@ -786,6 +782,7 @@ static const struct usb_device_id option_ids[] = {
45598 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC650) },
45599 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
45600 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
45601+ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
45602 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
45603 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */
45604 { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) },
45605@@ -821,7 +818,8 @@ static const struct usb_device_id option_ids[] = {
45606 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff),
45607 .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
45608 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0018, 0xff, 0xff, 0xff) },
45609- { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff) },
45610+ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0019, 0xff, 0xff, 0xff),
45611+ .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
45612 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0020, 0xff, 0xff, 0xff) },
45613 { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0021, 0xff, 0xff, 0xff),
45614 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
45615@@ -1260,8 +1258,8 @@ static const struct usb_device_id option_ids[] = {
45616
45617 { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) },
45618 { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) },
45619+ { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200) },
45620 { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO modem */
45621- { USB_DEVICE(ONDA_VENDOR_ID, ONDA_MT825UP) }, /* ONDA MT825UP modem */
45622 { USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_GT_B3730, USB_CLASS_CDC_DATA, 0x00, 0x00) }, /* Samsung GT-B3730 LTE USB modem.*/
45623 { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) },
45624 { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM610) },
45625@@ -1333,9 +1331,12 @@ static const struct usb_device_id option_ids[] = {
45626 { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x02, 0x01) },
45627 { USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM2, 0xff, 0x00, 0x00) },
45628 { USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
45629- { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T) },
45630+ { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600A) },
45631+ { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T_600E) },
45632 { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180),
45633 .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
45634+ { USB_DEVICE(TPLINK_VENDOR_ID, 0x9000), /* TP-Link MA260 */
45635+ .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
45636 { USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) },
45637 { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x02, 0x01) }, /* D-Link DWM-156 (variant) */
45638 { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d01, 0xff, 0x00, 0x00) }, /* D-Link DWM-156 (variant) */
45639@@ -1343,6 +1344,8 @@ static const struct usb_device_id option_ids[] = {
45640 { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d02, 0xff, 0x00, 0x00) },
45641 { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x02, 0x01) },
45642 { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) },
45643+ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */
45644+ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */
45645 { } /* Terminating entry */
45646 };
45647 MODULE_DEVICE_TABLE(usb, option_ids);
45648diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
45649index 6c3586a..a94e621 100644
45650--- a/drivers/usb/storage/realtek_cr.c
45651+++ b/drivers/usb/storage/realtek_cr.c
45652@@ -429,7 +429,7 @@ static int rts51x_read_status(struct us_data *us,
45653
45654 buf = kmalloc(len, GFP_NOIO);
45655 if (buf == NULL)
45656- return USB_STOR_TRANSPORT_ERROR;
45657+ return -ENOMEM;
45658
45659 US_DEBUGP("%s, lun = %d\n", __func__, lun);
45660
45661diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h 44982diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
45662index 75f70f0..d467e1a 100644 44983index 75f70f0..d467e1a 100644
45663--- a/drivers/usb/storage/usb.h 44984--- a/drivers/usb/storage/usb.h
@@ -45706,55 +45027,18 @@ index 6ef94bc..1b41265 100644
45706 } 45027 }
45707 45028
45708 /* 45029 /*
45709diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c 45030diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
45710index dfff647..3a19054 100644 45031index 5174eba..86e764a 100644
45711--- a/drivers/vhost/net.c 45032--- a/drivers/vhost/vringh.c
45712+++ b/drivers/vhost/net.c 45033+++ b/drivers/vhost/vringh.c
45713@@ -857,7 +857,7 @@ static long vhost_net_set_backend(struct vhost_net *n, unsigned index, int fd) 45034@@ -800,7 +800,7 @@ static inline int getu16_kern(u16 *val, const u16 *p)
45714 mutex_unlock(&vq->mutex); 45035
45715 45036 static inline int putu16_kern(u16 *p, u16 val)
45716 if (oldubufs) { 45037 {
45717- vhost_ubuf_put_and_wait(oldubufs); 45038- ACCESS_ONCE(*p) = val;
45718+ vhost_ubuf_put_and_wait_and_free(oldubufs); 45039+ ACCESS_ONCE_RW(*p) = val;
45719 mutex_lock(&vq->mutex); 45040 return 0;
45720 vhost_zerocopy_signal_used(n, vq); 45041 }
45721 mutex_unlock(&vq->mutex);
45722@@ -875,7 +875,7 @@ err_used:
45723 rcu_assign_pointer(vq->private_data, oldsock);
45724 vhost_net_enable_vq(n, vq);
45725 if (ubufs)
45726- vhost_ubuf_put_and_wait(ubufs);
45727+ vhost_ubuf_put_and_wait_and_free(ubufs);
45728 err_ubufs:
45729 fput(sock->file);
45730 err_vq:
45731diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
45732index 9759249..2e2524c 100644
45733--- a/drivers/vhost/vhost.c
45734+++ b/drivers/vhost/vhost.c
45735@@ -1581,5 +1581,11 @@ void vhost_ubuf_put_and_wait(struct vhost_ubuf_ref *ubufs)
45736 {
45737 kref_put(&ubufs->kref, vhost_zerocopy_done_signal);
45738 wait_event(ubufs->wait, !atomic_read(&ubufs->kref.refcount));
45739+}
45740+
45741+void vhost_ubuf_put_and_wait_and_free(struct vhost_ubuf_ref *ubufs)
45742+{
45743+ vhost_ubuf_put_and_wait(ubufs);
45744 kfree(ubufs);
45745 }
45746+
45747diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
45748index 17261e2..70cbe6f 100644
45749--- a/drivers/vhost/vhost.h
45750+++ b/drivers/vhost/vhost.h
45751@@ -63,6 +63,7 @@ struct vhost_ubuf_ref {
45752 struct vhost_ubuf_ref *vhost_ubuf_alloc(struct vhost_virtqueue *, bool zcopy);
45753 void vhost_ubuf_put(struct vhost_ubuf_ref *);
45754 void vhost_ubuf_put_and_wait(struct vhost_ubuf_ref *);
45755+void vhost_ubuf_put_and_wait_and_free(struct vhost_ubuf_ref *);
45756
45757 struct ubuf_info;
45758 45042
45759diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c 45043diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c
45760index 8c55011..eed4ae1a 100644 45044index 8c55011..eed4ae1a 100644
@@ -45813,8 +45097,21 @@ index 95ec042..e6affdd 100644
45813 45097
45814 return 0; 45098 return 0;
45815 } 45099 }
45100diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
45101index c74e7aa..e3c2790 100644
45102--- a/drivers/video/backlight/backlight.c
45103+++ b/drivers/video/backlight/backlight.c
45104@@ -304,7 +304,7 @@ struct backlight_device *backlight_device_register(const char *name,
45105 new_bd->dev.class = backlight_class;
45106 new_bd->dev.parent = parent;
45107 new_bd->dev.release = bl_device_release;
45108- dev_set_name(&new_bd->dev, name);
45109+ dev_set_name(&new_bd->dev, "%s", name);
45110 dev_set_drvdata(&new_bd->dev, devdata);
45111
45112 /* Set default properties */
45816diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c 45113diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
45817index 6c5ed6b..b727c88 100644 45114index bca6ccc..252107e 100644
45818--- a/drivers/video/backlight/kb3886_bl.c 45115--- a/drivers/video/backlight/kb3886_bl.c
45819+++ b/drivers/video/backlight/kb3886_bl.c 45116+++ b/drivers/video/backlight/kb3886_bl.c
45820@@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo; 45117@@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
@@ -45826,6 +45123,19 @@ index 6c5ed6b..b727c88 100644
45826 { 45123 {
45827 .ident = "Sahara Touch-iT", 45124 .ident = "Sahara Touch-iT",
45828 .matches = { 45125 .matches = {
45126diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
45127index 34fb6bd..3649fd9 100644
45128--- a/drivers/video/backlight/lcd.c
45129+++ b/drivers/video/backlight/lcd.c
45130@@ -219,7 +219,7 @@ struct lcd_device *lcd_device_register(const char *name, struct device *parent,
45131 new_ld->dev.class = lcd_class;
45132 new_ld->dev.parent = parent;
45133 new_ld->dev.release = lcd_device_release;
45134- dev_set_name(&new_ld->dev, name);
45135+ dev_set_name(&new_ld->dev, "%s", name);
45136 dev_set_drvdata(&new_ld->dev, devdata);
45137
45138 rc = device_register(&new_ld->dev);
45829diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c 45139diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
45830index 900aa4e..6d49418 100644 45140index 900aa4e..6d49418 100644
45831--- a/drivers/video/fb_defio.c 45141--- a/drivers/video/fb_defio.c
@@ -45865,7 +45175,7 @@ index 5c3960d..15cf8fc 100644
45865 goto out1; 45175 goto out1;
45866 } 45176 }
45867diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c 45177diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
45868index 86291dc..7cc5962 100644 45178index 098bfc6..796841d 100644
45869--- a/drivers/video/fbmem.c 45179--- a/drivers/video/fbmem.c
45870+++ b/drivers/video/fbmem.c 45180+++ b/drivers/video/fbmem.c
45871@@ -428,7 +428,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image, 45181@@ -428,7 +428,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
@@ -48729,7 +48039,7 @@ index 0d6f2cd..6285b97 100644
48729 ret_code = device_register(&new_dev->dev); 48039 ret_code = device_register(&new_dev->dev);
48730 if (ret_code) { 48040 if (ret_code) {
48731diff --git a/drivers/video/s1d13xxxfb.c b/drivers/video/s1d13xxxfb.c 48041diff --git a/drivers/video/s1d13xxxfb.c b/drivers/video/s1d13xxxfb.c
48732index 76d9053..dec2bfd 100644 48042index 05c2dc3..ea1f391 100644
48733--- a/drivers/video/s1d13xxxfb.c 48043--- a/drivers/video/s1d13xxxfb.c
48734+++ b/drivers/video/s1d13xxxfb.c 48044+++ b/drivers/video/s1d13xxxfb.c
48735@@ -881,8 +881,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev) 48045@@ -881,8 +881,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
@@ -48746,10 +48056,10 @@ index 76d9053..dec2bfd 100644
48746 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA; 48056 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
48747 break; 48057 break;
48748diff --git a/drivers/video/smscufx.c b/drivers/video/smscufx.c 48058diff --git a/drivers/video/smscufx.c b/drivers/video/smscufx.c
48749index 97bd662..39fab85 100644 48059index b2b33fc..f9f4658 100644
48750--- a/drivers/video/smscufx.c 48060--- a/drivers/video/smscufx.c
48751+++ b/drivers/video/smscufx.c 48061+++ b/drivers/video/smscufx.c
48752@@ -1171,7 +1171,9 @@ static int ufx_ops_release(struct fb_info *info, int user) 48062@@ -1175,7 +1175,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
48753 fb_deferred_io_cleanup(info); 48063 fb_deferred_io_cleanup(info);
48754 kfree(info->fbdefio); 48064 kfree(info->fbdefio);
48755 info->fbdefio = NULL; 48065 info->fbdefio = NULL;
@@ -48761,10 +48071,10 @@ index 97bd662..39fab85 100644
48761 48071
48762 pr_debug("released /dev/fb%d user=%d count=%d", 48072 pr_debug("released /dev/fb%d user=%d count=%d",
48763diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c 48073diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c
48764index 86d449e..8e04dc5 100644 48074index ec03e72..f578436 100644
48765--- a/drivers/video/udlfb.c 48075--- a/drivers/video/udlfb.c
48766+++ b/drivers/video/udlfb.c 48076+++ b/drivers/video/udlfb.c
48767@@ -619,11 +619,11 @@ int dlfb_handle_damage(struct dlfb_data *dev, int x, int y, 48077@@ -623,11 +623,11 @@ int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
48768 dlfb_urb_completion(urb); 48078 dlfb_urb_completion(urb);
48769 48079
48770 error: 48080 error:
@@ -48780,7 +48090,7 @@ index 86d449e..8e04dc5 100644
48780 >> 10)), /* Kcycles */ 48090 >> 10)), /* Kcycles */
48781 &dev->cpu_kcycles_used); 48091 &dev->cpu_kcycles_used);
48782 48092
48783@@ -744,11 +744,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info, 48093@@ -748,11 +748,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
48784 dlfb_urb_completion(urb); 48094 dlfb_urb_completion(urb);
48785 48095
48786 error: 48096 error:
@@ -48796,7 +48106,7 @@ index 86d449e..8e04dc5 100644
48796 >> 10)), /* Kcycles */ 48106 >> 10)), /* Kcycles */
48797 &dev->cpu_kcycles_used); 48107 &dev->cpu_kcycles_used);
48798 } 48108 }
48799@@ -989,7 +989,9 @@ static int dlfb_ops_release(struct fb_info *info, int user) 48109@@ -993,7 +993,9 @@ static int dlfb_ops_release(struct fb_info *info, int user)
48800 fb_deferred_io_cleanup(info); 48110 fb_deferred_io_cleanup(info);
48801 kfree(info->fbdefio); 48111 kfree(info->fbdefio);
48802 info->fbdefio = NULL; 48112 info->fbdefio = NULL;
@@ -48807,7 +48117,7 @@ index 86d449e..8e04dc5 100644
48807 } 48117 }
48808 48118
48809 pr_warn("released /dev/fb%d user=%d count=%d\n", 48119 pr_warn("released /dev/fb%d user=%d count=%d\n",
48810@@ -1372,7 +1374,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev, 48120@@ -1376,7 +1378,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
48811 struct fb_info *fb_info = dev_get_drvdata(fbdev); 48121 struct fb_info *fb_info = dev_get_drvdata(fbdev);
48812 struct dlfb_data *dev = fb_info->par; 48122 struct dlfb_data *dev = fb_info->par;
48813 return snprintf(buf, PAGE_SIZE, "%u\n", 48123 return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -48816,7 +48126,7 @@ index 86d449e..8e04dc5 100644
48816 } 48126 }
48817 48127
48818 static ssize_t metrics_bytes_identical_show(struct device *fbdev, 48128 static ssize_t metrics_bytes_identical_show(struct device *fbdev,
48819@@ -1380,7 +1382,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev, 48129@@ -1384,7 +1386,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
48820 struct fb_info *fb_info = dev_get_drvdata(fbdev); 48130 struct fb_info *fb_info = dev_get_drvdata(fbdev);
48821 struct dlfb_data *dev = fb_info->par; 48131 struct dlfb_data *dev = fb_info->par;
48822 return snprintf(buf, PAGE_SIZE, "%u\n", 48132 return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -48825,7 +48135,7 @@ index 86d449e..8e04dc5 100644
48825 } 48135 }
48826 48136
48827 static ssize_t metrics_bytes_sent_show(struct device *fbdev, 48137 static ssize_t metrics_bytes_sent_show(struct device *fbdev,
48828@@ -1388,7 +1390,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev, 48138@@ -1392,7 +1394,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
48829 struct fb_info *fb_info = dev_get_drvdata(fbdev); 48139 struct fb_info *fb_info = dev_get_drvdata(fbdev);
48830 struct dlfb_data *dev = fb_info->par; 48140 struct dlfb_data *dev = fb_info->par;
48831 return snprintf(buf, PAGE_SIZE, "%u\n", 48141 return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -48834,7 +48144,7 @@ index 86d449e..8e04dc5 100644
48834 } 48144 }
48835 48145
48836 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev, 48146 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
48837@@ -1396,7 +1398,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev, 48147@@ -1400,7 +1402,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
48838 struct fb_info *fb_info = dev_get_drvdata(fbdev); 48148 struct fb_info *fb_info = dev_get_drvdata(fbdev);
48839 struct dlfb_data *dev = fb_info->par; 48149 struct dlfb_data *dev = fb_info->par;
48840 return snprintf(buf, PAGE_SIZE, "%u\n", 48150 return snprintf(buf, PAGE_SIZE, "%u\n",
@@ -48843,7 +48153,7 @@ index 86d449e..8e04dc5 100644
48843 } 48153 }
48844 48154
48845 static ssize_t edid_show( 48155 static ssize_t edid_show(
48846@@ -1456,10 +1458,10 @@ static ssize_t metrics_reset_store(struct device *fbdev, 48156@@ -1460,10 +1462,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
48847 struct fb_info *fb_info = dev_get_drvdata(fbdev); 48157 struct fb_info *fb_info = dev_get_drvdata(fbdev);
48848 struct dlfb_data *dev = fb_info->par; 48158 struct dlfb_data *dev = fb_info->par;
48849 48159
@@ -48859,7 +48169,7 @@ index 86d449e..8e04dc5 100644
48859 return count; 48169 return count;
48860 } 48170 }
48861diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c 48171diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
48862index d428445..79a78df 100644 48172index e328a61..1b08ecb 100644
48863--- a/drivers/video/uvesafb.c 48173--- a/drivers/video/uvesafb.c
48864+++ b/drivers/video/uvesafb.c 48174+++ b/drivers/video/uvesafb.c
48865@@ -19,6 +19,7 @@ 48175@@ -19,6 +19,7 @@
@@ -49124,10 +48434,10 @@ index fef20db..d28b1ab 100644
49124 return -ENOMEM; 48434 return -ENOMEM;
49125 return 0; 48435 return 0;
49126diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c 48436diff --git a/fs/9p/vfs_addr.c b/fs/9p/vfs_addr.c
49127index 0ad61c6..f198bd7 100644 48437index 055562c..fdfb10d 100644
49128--- a/fs/9p/vfs_addr.c 48438--- a/fs/9p/vfs_addr.c
49129+++ b/fs/9p/vfs_addr.c 48439+++ b/fs/9p/vfs_addr.c
49130@@ -185,7 +185,7 @@ static int v9fs_vfs_writepage_locked(struct page *page) 48440@@ -186,7 +186,7 @@ static int v9fs_vfs_writepage_locked(struct page *page)
49131 48441
49132 retval = v9fs_file_write_internal(inode, 48442 retval = v9fs_file_write_internal(inode,
49133 v9inode->writeback_fid, 48443 v9inode->writeback_fid,
@@ -49150,10 +48460,10 @@ index d86edc8..40ff2fb 100644
49150 p9_debug(P9_DEBUG_VFS, " %s %s\n", 48460 p9_debug(P9_DEBUG_VFS, " %s %s\n",
49151 dentry->d_name.name, IS_ERR(s) ? "<error>" : s); 48461 dentry->d_name.name, IS_ERR(s) ? "<error>" : s);
49152diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt 48462diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
49153index 0efd152..b5802ad 100644 48463index 370b24c..ff0be7b 100644
49154--- a/fs/Kconfig.binfmt 48464--- a/fs/Kconfig.binfmt
49155+++ b/fs/Kconfig.binfmt 48465+++ b/fs/Kconfig.binfmt
49156@@ -89,7 +89,7 @@ config HAVE_AOUT 48466@@ -103,7 +103,7 @@ config HAVE_AOUT
49157 48467
49158 config BINFMT_AOUT 48468 config BINFMT_AOUT
49159 tristate "Kernel support for a.out and ECOFF binaries" 48469 tristate "Kernel support for a.out and ECOFF binaries"
@@ -49163,10 +48473,10 @@ index 0efd152..b5802ad 100644
49163 A.out (Assembler.OUTput) is a set of formats for libraries and 48473 A.out (Assembler.OUTput) is a set of formats for libraries and
49164 executables used in the earliest versions of UNIX. Linux used 48474 executables used in the earliest versions of UNIX. Linux used
49165diff --git a/fs/aio.c b/fs/aio.c 48475diff --git a/fs/aio.c b/fs/aio.c
49166index 1dc8786..d3b29e8 100644 48476index 2bbcacf..8614116 100644
49167--- a/fs/aio.c 48477--- a/fs/aio.c
49168+++ b/fs/aio.c 48478+++ b/fs/aio.c
49169@@ -111,7 +111,7 @@ static int aio_setup_ring(struct kioctx *ctx) 48479@@ -160,7 +160,7 @@ static int aio_setup_ring(struct kioctx *ctx)
49170 size += sizeof(struct io_event) * nr_events; 48480 size += sizeof(struct io_event) * nr_events;
49171 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT; 48481 nr_pages = (size + PAGE_SIZE-1) >> PAGE_SHIFT;
49172 48482
@@ -49175,39 +48485,39 @@ index 1dc8786..d3b29e8 100644
49175 return -EINVAL; 48485 return -EINVAL;
49176 48486
49177 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event); 48487 nr_events = (PAGE_SIZE * nr_pages - sizeof(struct aio_ring)) / sizeof(struct io_event);
49178@@ -1375,18 +1375,19 @@ static ssize_t aio_fsync(struct kiocb *iocb) 48488@@ -950,6 +950,7 @@ static ssize_t aio_rw_vect_retry(struct kiocb *iocb, int rw, aio_rw_op *rw_op)
49179 static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat) 48489 static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
49180 { 48490 {
49181 ssize_t ret; 48491 ssize_t ret;
49182+ struct iovec iovstack; 48492+ struct iovec iovstack;
49183 48493
49184 #ifdef CONFIG_COMPAT 48494 kiocb->ki_nr_segs = kiocb->ki_nbytes;
48495
48496@@ -957,17 +958,22 @@ static ssize_t aio_setup_vectored_rw(int rw, struct kiocb *kiocb, bool compat)
49185 if (compat) 48497 if (compat)
49186 ret = compat_rw_copy_check_uvector(type, 48498 ret = compat_rw_copy_check_uvector(rw,
49187 (struct compat_iovec __user *)kiocb->ki_buf, 48499 (struct compat_iovec __user *)kiocb->ki_buf,
49188- kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec, 48500- kiocb->ki_nr_segs, 1, &kiocb->ki_inline_vec,
49189+ kiocb->ki_nbytes, 1, &iovstack, 48501+ kiocb->ki_nr_segs, 1, &iovstack,
49190 &kiocb->ki_iovec); 48502 &kiocb->ki_iovec);
49191 else 48503 else
49192 #endif 48504 #endif
49193 ret = rw_copy_check_uvector(type, 48505 ret = rw_copy_check_uvector(rw,
49194 (struct iovec __user *)kiocb->ki_buf, 48506 (struct iovec __user *)kiocb->ki_buf,
49195- kiocb->ki_nbytes, 1, &kiocb->ki_inline_vec, 48507- kiocb->ki_nr_segs, 1, &kiocb->ki_inline_vec,
49196+ kiocb->ki_nbytes, 1, &iovstack, 48508+ kiocb->ki_nr_segs, 1, &iovstack,
49197 &kiocb->ki_iovec); 48509 &kiocb->ki_iovec);
49198 if (ret < 0) 48510 if (ret < 0)
49199 goto out; 48511 return ret;
49200@@ -1395,6 +1396,10 @@ static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat)
49201 if (ret < 0)
49202 goto out;
49203 48512
49204+ if (kiocb->ki_iovec == &iovstack) { 48513+ if (kiocb->ki_iovec == &iovstack) {
49205+ kiocb->ki_inline_vec = iovstack; 48514+ kiocb->ki_inline_vec = iovstack;
49206+ kiocb->ki_iovec = &kiocb->ki_inline_vec; 48515+ kiocb->ki_iovec = &kiocb->ki_inline_vec;
49207+ } 48516+ }
49208 kiocb->ki_nr_segs = kiocb->ki_nbytes; 48517+
49209 kiocb->ki_cur_seg = 0; 48518 /* ki_nbytes now reflect bytes instead of segs */
49210 /* ki_nbytes/left now reflect bytes instead of segs */ 48519 kiocb->ki_nbytes = ret;
48520 return 0;
49211diff --git a/fs/attr.c b/fs/attr.c 48521diff --git a/fs/attr.c b/fs/attr.c
49212index 1449adb..a2038c2 100644 48522index 1449adb..a2038c2 100644
49213--- a/fs/attr.c 48523--- a/fs/attr.c
@@ -49280,7 +48590,7 @@ index 2722387..c8dd2a7 100644
49280 { 48590 {
49281 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE) 48591 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
49282diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c 48592diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
49283index 8615ee8..388ed68 100644 48593index f95dddc..b1e2c1c 100644
49284--- a/fs/befs/linuxvfs.c 48594--- a/fs/befs/linuxvfs.c
49285+++ b/fs/befs/linuxvfs.c 48595+++ b/fs/befs/linuxvfs.c
49286@@ -510,7 +510,7 @@ static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 48596@@ -510,7 +510,7 @@ static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
@@ -49293,7 +48603,7 @@ index 8615ee8..388ed68 100644
49293 kfree(link); 48603 kfree(link);
49294 } 48604 }
49295diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c 48605diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
49296index bbc8f88..7c7ac97 100644 48606index bce8769..7fc7544 100644
49297--- a/fs/binfmt_aout.c 48607--- a/fs/binfmt_aout.c
49298+++ b/fs/binfmt_aout.c 48608+++ b/fs/binfmt_aout.c
49299@@ -16,6 +16,7 @@ 48609@@ -16,6 +16,7 @@
@@ -49313,7 +48623,7 @@ index bbc8f88..7c7ac97 100644
49313 fs = get_fs(); 48623 fs = get_fs();
49314 set_fs(KERNEL_DS); 48624 set_fs(KERNEL_DS);
49315 has_dumped = 1; 48625 has_dumped = 1;
49316@@ -70,10 +73,12 @@ static int aout_core_dump(struct coredump_params *cprm) 48626@@ -69,10 +72,12 @@ static int aout_core_dump(struct coredump_params *cprm)
49317 48627
49318 /* If the size of the dump file exceeds the rlimit, then see what would happen 48628 /* If the size of the dump file exceeds the rlimit, then see what would happen
49319 if we wrote the stack, but not the data area. */ 48629 if we wrote the stack, but not the data area. */
@@ -49326,7 +48636,7 @@ index bbc8f88..7c7ac97 100644
49326 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit) 48636 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
49327 dump.u_ssize = 0; 48637 dump.u_ssize = 0;
49328 48638
49329@@ -234,6 +239,8 @@ static int load_aout_binary(struct linux_binprm * bprm) 48639@@ -233,6 +238,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
49330 rlim = rlimit(RLIMIT_DATA); 48640 rlim = rlimit(RLIMIT_DATA);
49331 if (rlim >= RLIM_INFINITY) 48641 if (rlim >= RLIM_INFINITY)
49332 rlim = ~0; 48642 rlim = ~0;
@@ -49335,7 +48645,7 @@ index bbc8f88..7c7ac97 100644
49335 if (ex.a_data + ex.a_bss > rlim) 48645 if (ex.a_data + ex.a_bss > rlim)
49336 return -ENOMEM; 48646 return -ENOMEM;
49337 48647
49338@@ -268,6 +275,27 @@ static int load_aout_binary(struct linux_binprm * bprm) 48648@@ -267,6 +274,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
49339 48649
49340 install_exec_creds(bprm); 48650 install_exec_creds(bprm);
49341 48651
@@ -49363,7 +48673,7 @@ index bbc8f88..7c7ac97 100644
49363 if (N_MAGIC(ex) == OMAGIC) { 48673 if (N_MAGIC(ex) == OMAGIC) {
49364 unsigned long text_addr, map_size; 48674 unsigned long text_addr, map_size;
49365 loff_t pos; 48675 loff_t pos;
49366@@ -333,7 +361,7 @@ static int load_aout_binary(struct linux_binprm * bprm) 48676@@ -324,7 +352,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
49367 } 48677 }
49368 48678
49369 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data, 48679 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
@@ -49373,7 +48683,7 @@ index bbc8f88..7c7ac97 100644
49373 fd_offset + ex.a_text); 48683 fd_offset + ex.a_text);
49374 if (error != N_DATADDR(ex)) { 48684 if (error != N_DATADDR(ex)) {
49375diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c 48685diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
49376index 86af964..5d53bf6 100644 48686index f8a0b0e..8c841c3 100644
49377--- a/fs/binfmt_elf.c 48687--- a/fs/binfmt_elf.c
49378+++ b/fs/binfmt_elf.c 48688+++ b/fs/binfmt_elf.c
49379@@ -34,6 +34,7 @@ 48689@@ -34,6 +34,7 @@
@@ -49384,7 +48694,7 @@ index 86af964..5d53bf6 100644
49384 #include <asm/uaccess.h> 48694 #include <asm/uaccess.h>
49385 #include <asm/param.h> 48695 #include <asm/param.h>
49386 #include <asm/page.h> 48696 #include <asm/page.h>
49387@@ -60,6 +61,10 @@ static int elf_core_dump(struct coredump_params *cprm); 48697@@ -60,6 +61,14 @@ static int elf_core_dump(struct coredump_params *cprm);
49388 #define elf_core_dump NULL 48698 #define elf_core_dump NULL
49389 #endif 48699 #endif
49390 48700
@@ -49392,10 +48702,14 @@ index 86af964..5d53bf6 100644
49392+static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags); 48702+static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags);
49393+#endif 48703+#endif
49394+ 48704+
48705+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
48706+static void elf_handle_mmap(struct file *file);
48707+#endif
48708+
49395 #if ELF_EXEC_PAGESIZE > PAGE_SIZE 48709 #if ELF_EXEC_PAGESIZE > PAGE_SIZE
49396 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE 48710 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
49397 #else 48711 #else
49398@@ -79,6 +84,11 @@ static struct linux_binfmt elf_format = { 48712@@ -79,6 +88,15 @@ static struct linux_binfmt elf_format = {
49399 .load_binary = load_elf_binary, 48713 .load_binary = load_elf_binary,
49400 .load_shlib = load_elf_library, 48714 .load_shlib = load_elf_library,
49401 .core_dump = elf_core_dump, 48715 .core_dump = elf_core_dump,
@@ -49404,10 +48718,14 @@ index 86af964..5d53bf6 100644
49404+ .handle_mprotect= elf_handle_mprotect, 48718+ .handle_mprotect= elf_handle_mprotect,
49405+#endif 48719+#endif
49406+ 48720+
48721+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
48722+ .handle_mmap = elf_handle_mmap,
48723+#endif
48724+
49407 .min_coredump = ELF_EXEC_PAGESIZE, 48725 .min_coredump = ELF_EXEC_PAGESIZE,
49408 }; 48726 };
49409 48727
49410@@ -86,6 +96,8 @@ static struct linux_binfmt elf_format = { 48728@@ -86,6 +104,8 @@ static struct linux_binfmt elf_format = {
49411 48729
49412 static int set_brk(unsigned long start, unsigned long end) 48730 static int set_brk(unsigned long start, unsigned long end)
49413 { 48731 {
@@ -49416,7 +48734,7 @@ index 86af964..5d53bf6 100644
49416 start = ELF_PAGEALIGN(start); 48734 start = ELF_PAGEALIGN(start);
49417 end = ELF_PAGEALIGN(end); 48735 end = ELF_PAGEALIGN(end);
49418 if (end > start) { 48736 if (end > start) {
49419@@ -94,7 +106,7 @@ static int set_brk(unsigned long start, unsigned long end) 48737@@ -94,7 +114,7 @@ static int set_brk(unsigned long start, unsigned long end)
49420 if (BAD_ADDR(addr)) 48738 if (BAD_ADDR(addr))
49421 return addr; 48739 return addr;
49422 } 48740 }
@@ -49425,7 +48743,7 @@ index 86af964..5d53bf6 100644
49425 return 0; 48743 return 0;
49426 } 48744 }
49427 48745
49428@@ -155,12 +167,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, 48746@@ -155,12 +175,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
49429 elf_addr_t __user *u_rand_bytes; 48747 elf_addr_t __user *u_rand_bytes;
49430 const char *k_platform = ELF_PLATFORM; 48748 const char *k_platform = ELF_PLATFORM;
49431 const char *k_base_platform = ELF_BASE_PLATFORM; 48749 const char *k_base_platform = ELF_BASE_PLATFORM;
@@ -49440,22 +48758,22 @@ index 86af964..5d53bf6 100644
49440 48758
49441 /* 48759 /*
49442 * In some cases (e.g. Hyper-Threading), we want to avoid L1 48760 * In some cases (e.g. Hyper-Threading), we want to avoid L1
49443@@ -202,8 +215,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, 48761@@ -202,8 +223,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
49444 * Generate 16 random bytes for userspace PRNG seeding. 48762 * Generate 16 random bytes for userspace PRNG seeding.
49445 */ 48763 */
49446 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes)); 48764 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
49447- u_rand_bytes = (elf_addr_t __user *) 48765- u_rand_bytes = (elf_addr_t __user *)
49448- STACK_ALLOC(p, sizeof(k_rand_bytes)); 48766- STACK_ALLOC(p, sizeof(k_rand_bytes));
49449+ srandom32(k_rand_bytes[0] ^ random32()); 48767+ prandom_seed(k_rand_bytes[0] ^ prandom_u32());
49450+ srandom32(k_rand_bytes[1] ^ random32()); 48768+ prandom_seed(k_rand_bytes[1] ^ prandom_u32());
49451+ srandom32(k_rand_bytes[2] ^ random32()); 48769+ prandom_seed(k_rand_bytes[2] ^ prandom_u32());
49452+ srandom32(k_rand_bytes[3] ^ random32()); 48770+ prandom_seed(k_rand_bytes[3] ^ prandom_u32());
49453+ p = STACK_ROUND(p, sizeof(k_rand_bytes)); 48771+ p = STACK_ROUND(p, sizeof(k_rand_bytes));
49454+ u_rand_bytes = (elf_addr_t __user *) p; 48772+ u_rand_bytes = (elf_addr_t __user *) p;
49455 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes))) 48773 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
49456 return -EFAULT; 48774 return -EFAULT;
49457 48775
49458@@ -315,9 +332,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec, 48776@@ -318,9 +343,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
49459 return -EFAULT; 48777 return -EFAULT;
49460 current->mm->env_end = p; 48778 current->mm->env_end = p;
49461 48779
@@ -49468,7 +48786,7 @@ index 86af964..5d53bf6 100644
49468 return -EFAULT; 48786 return -EFAULT;
49469 return 0; 48787 return 0;
49470 } 48788 }
49471@@ -385,15 +404,14 @@ static unsigned long total_mapping_size(struct elf_phdr *cmds, int nr) 48789@@ -388,15 +415,14 @@ static unsigned long total_mapping_size(struct elf_phdr *cmds, int nr)
49472 an ELF header */ 48790 an ELF header */
49473 48791
49474 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex, 48792 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
@@ -49487,7 +48805,7 @@ index 86af964..5d53bf6 100644
49487 unsigned long total_size; 48805 unsigned long total_size;
49488 int retval, i, size; 48806 int retval, i, size;
49489 48807
49490@@ -439,6 +457,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex, 48808@@ -442,6 +468,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
49491 goto out_close; 48809 goto out_close;
49492 } 48810 }
49493 48811
@@ -49499,7 +48817,7 @@ index 86af964..5d53bf6 100644
49499 eppnt = elf_phdata; 48817 eppnt = elf_phdata;
49500 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) { 48818 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
49501 if (eppnt->p_type == PT_LOAD) { 48819 if (eppnt->p_type == PT_LOAD) {
49502@@ -462,8 +485,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex, 48820@@ -465,8 +496,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
49503 map_addr = elf_map(interpreter, load_addr + vaddr, 48821 map_addr = elf_map(interpreter, load_addr + vaddr,
49504 eppnt, elf_prot, elf_type, total_size); 48822 eppnt, elf_prot, elf_type, total_size);
49505 total_size = 0; 48823 total_size = 0;
@@ -49508,7 +48826,7 @@ index 86af964..5d53bf6 100644
49508 error = map_addr; 48826 error = map_addr;
49509 if (BAD_ADDR(map_addr)) 48827 if (BAD_ADDR(map_addr))
49510 goto out_close; 48828 goto out_close;
49511@@ -482,8 +503,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex, 48829@@ -485,8 +514,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
49512 k = load_addr + eppnt->p_vaddr; 48830 k = load_addr + eppnt->p_vaddr;
49513 if (BAD_ADDR(k) || 48831 if (BAD_ADDR(k) ||
49514 eppnt->p_filesz > eppnt->p_memsz || 48832 eppnt->p_filesz > eppnt->p_memsz ||
@@ -49519,7 +48837,7 @@ index 86af964..5d53bf6 100644
49519 error = -ENOMEM; 48837 error = -ENOMEM;
49520 goto out_close; 48838 goto out_close;
49521 } 48839 }
49522@@ -535,6 +556,315 @@ out: 48840@@ -538,6 +567,315 @@ out:
49523 return error; 48841 return error;
49524 } 48842 }
49525 48843
@@ -49835,7 +49153,7 @@ index 86af964..5d53bf6 100644
49835 /* 49153 /*
49836 * These are the functions used to load ELF style executables and shared 49154 * These are the functions used to load ELF style executables and shared
49837 * libraries. There is no binary dependent code anywhere else. 49155 * libraries. There is no binary dependent code anywhere else.
49838@@ -551,6 +881,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top) 49156@@ -554,6 +892,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
49839 { 49157 {
49840 unsigned int random_variable = 0; 49158 unsigned int random_variable = 0;
49841 49159
@@ -49847,7 +49165,7 @@ index 86af964..5d53bf6 100644
49847 if ((current->flags & PF_RANDOMIZE) && 49165 if ((current->flags & PF_RANDOMIZE) &&
49848 !(current->personality & ADDR_NO_RANDOMIZE)) { 49166 !(current->personality & ADDR_NO_RANDOMIZE)) {
49849 random_variable = get_random_int() & STACK_RND_MASK; 49167 random_variable = get_random_int() & STACK_RND_MASK;
49850@@ -569,7 +904,7 @@ static int load_elf_binary(struct linux_binprm *bprm) 49168@@ -572,7 +915,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
49851 unsigned long load_addr = 0, load_bias = 0; 49169 unsigned long load_addr = 0, load_bias = 0;
49852 int load_addr_set = 0; 49170 int load_addr_set = 0;
49853 char * elf_interpreter = NULL; 49171 char * elf_interpreter = NULL;
@@ -49856,7 +49174,7 @@ index 86af964..5d53bf6 100644
49856 struct elf_phdr *elf_ppnt, *elf_phdata; 49174 struct elf_phdr *elf_ppnt, *elf_phdata;
49857 unsigned long elf_bss, elf_brk; 49175 unsigned long elf_bss, elf_brk;
49858 int retval, i; 49176 int retval, i;
49859@@ -579,12 +914,12 @@ static int load_elf_binary(struct linux_binprm *bprm) 49177@@ -582,12 +925,12 @@ static int load_elf_binary(struct linux_binprm *bprm)
49860 unsigned long start_code, end_code, start_data, end_data; 49178 unsigned long start_code, end_code, start_data, end_data;
49861 unsigned long reloc_func_desc __maybe_unused = 0; 49179 unsigned long reloc_func_desc __maybe_unused = 0;
49862 int executable_stack = EXSTACK_DEFAULT; 49180 int executable_stack = EXSTACK_DEFAULT;
@@ -49870,7 +49188,7 @@ index 86af964..5d53bf6 100644
49870 49188
49871 loc = kmalloc(sizeof(*loc), GFP_KERNEL); 49189 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
49872 if (!loc) { 49190 if (!loc) {
49873@@ -720,11 +1055,81 @@ static int load_elf_binary(struct linux_binprm *bprm) 49191@@ -723,11 +1066,81 @@ static int load_elf_binary(struct linux_binprm *bprm)
49874 goto out_free_dentry; 49192 goto out_free_dentry;
49875 49193
49876 /* OK, This is the point of no return */ 49194 /* OK, This is the point of no return */
@@ -49953,7 +49271,7 @@ index 86af964..5d53bf6 100644
49953 if (elf_read_implies_exec(loc->elf_ex, executable_stack)) 49271 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
49954 current->personality |= READ_IMPLIES_EXEC; 49272 current->personality |= READ_IMPLIES_EXEC;
49955 49273
49956@@ -815,6 +1220,20 @@ static int load_elf_binary(struct linux_binprm *bprm) 49274@@ -819,6 +1232,20 @@ static int load_elf_binary(struct linux_binprm *bprm)
49957 #else 49275 #else
49958 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr); 49276 load_bias = ELF_PAGESTART(ELF_ET_DYN_BASE - vaddr);
49959 #endif 49277 #endif
@@ -49974,7 +49292,7 @@ index 86af964..5d53bf6 100644
49974 } 49292 }
49975 49293
49976 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt, 49294 error = elf_map(bprm->file, load_bias + vaddr, elf_ppnt,
49977@@ -847,9 +1266,9 @@ static int load_elf_binary(struct linux_binprm *bprm) 49295@@ -851,9 +1278,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
49978 * allowed task size. Note that p_filesz must always be 49296 * allowed task size. Note that p_filesz must always be
49979 * <= p_memsz so it is only necessary to check p_memsz. 49297 * <= p_memsz so it is only necessary to check p_memsz.
49980 */ 49298 */
@@ -49987,7 +49305,7 @@ index 86af964..5d53bf6 100644
49987 /* set_brk can never work. Avoid overflows. */ 49305 /* set_brk can never work. Avoid overflows. */
49988 send_sig(SIGKILL, current, 0); 49306 send_sig(SIGKILL, current, 0);
49989 retval = -EINVAL; 49307 retval = -EINVAL;
49990@@ -888,17 +1307,45 @@ static int load_elf_binary(struct linux_binprm *bprm) 49308@@ -892,17 +1319,45 @@ static int load_elf_binary(struct linux_binprm *bprm)
49991 goto out_free_dentry; 49309 goto out_free_dentry;
49992 } 49310 }
49993 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) { 49311 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
@@ -50001,8 +49319,6 @@ index 86af964..5d53bf6 100644
50001+ */ 49319+ */
50002 } 49320 }
50003 49321
50004- if (elf_interpreter) {
50005- unsigned long interp_map_addr = 0;
50006+#ifdef CONFIG_PAX_RANDMMAP 49322+#ifdef CONFIG_PAX_RANDMMAP
50007+ if (current->mm->pax_flags & MF_PAX_RANDMMAP) { 49323+ if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
50008+ unsigned long start, size, flags; 49324+ unsigned long start, size, flags;
@@ -50012,7 +49328,7 @@ index 86af964..5d53bf6 100644
50012+ size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4); 49328+ size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
50013+ flags = MAP_FIXED | MAP_PRIVATE; 49329+ flags = MAP_FIXED | MAP_PRIVATE;
50014+ vm_flags = VM_DONTEXPAND | VM_DONTDUMP; 49330+ vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
50015 49331+
50016+ down_write(&current->mm->mmap_sem); 49332+ down_write(&current->mm->mmap_sem);
50017+ start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags); 49333+ start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
50018+ retval = -ENOMEM; 49334+ retval = -ENOMEM;
@@ -50032,14 +49348,16 @@ index 86af964..5d53bf6 100644
50032+ } 49348+ }
50033+#endif 49349+#endif
50034+ 49350+
50035+ if (elf_interpreter) { 49351 if (elf_interpreter) {
49352- unsigned long interp_map_addr = 0;
49353-
50036 elf_entry = load_elf_interp(&loc->interp_elf_ex, 49354 elf_entry = load_elf_interp(&loc->interp_elf_ex,
50037 interpreter, 49355 interpreter,
50038- &interp_map_addr, 49356- &interp_map_addr,
50039 load_bias); 49357 load_bias);
50040 if (!IS_ERR((void *)elf_entry)) { 49358 if (!IS_ERR((void *)elf_entry)) {
50041 /* 49359 /*
50042@@ -1120,7 +1567,7 @@ static bool always_dump_vma(struct vm_area_struct *vma) 49360@@ -1124,7 +1579,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
50043 * Decide what to dump of a segment, part, all or none. 49361 * Decide what to dump of a segment, part, all or none.
50044 */ 49362 */
50045 static unsigned long vma_dump_size(struct vm_area_struct *vma, 49363 static unsigned long vma_dump_size(struct vm_area_struct *vma,
@@ -50048,7 +49366,7 @@ index 86af964..5d53bf6 100644
50048 { 49366 {
50049 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) 49367 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
50050 49368
50051@@ -1158,7 +1605,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma, 49369@@ -1162,7 +1617,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
50052 if (vma->vm_file == NULL) 49370 if (vma->vm_file == NULL)
50053 return 0; 49371 return 0;
50054 49372
@@ -50057,7 +49375,7 @@ index 86af964..5d53bf6 100644
50057 goto whole; 49375 goto whole;
50058 49376
50059 /* 49377 /*
50060@@ -1383,9 +1830,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm) 49378@@ -1387,9 +1842,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
50061 { 49379 {
50062 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv; 49380 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
50063 int i = 0; 49381 int i = 0;
@@ -50069,7 +49387,7 @@ index 86af964..5d53bf6 100644
50069 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv); 49387 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
50070 } 49388 }
50071 49389
50072@@ -1394,7 +1841,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata, 49390@@ -1398,7 +1853,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
50073 { 49391 {
50074 mm_segment_t old_fs = get_fs(); 49392 mm_segment_t old_fs = get_fs();
50075 set_fs(KERNEL_DS); 49393 set_fs(KERNEL_DS);
@@ -50078,7 +49396,7 @@ index 86af964..5d53bf6 100644
50078 set_fs(old_fs); 49396 set_fs(old_fs);
50079 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata); 49397 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
50080 } 49398 }
50081@@ -2015,14 +2462,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum, 49399@@ -2019,14 +2474,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
50082 } 49400 }
50083 49401
50084 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma, 49402 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
@@ -50095,7 +49413,7 @@ index 86af964..5d53bf6 100644
50095 return size; 49413 return size;
50096 } 49414 }
50097 49415
50098@@ -2116,7 +2563,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49416@@ -2119,7 +2574,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50099 49417
50100 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE); 49418 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
50101 49419
@@ -50104,7 +49422,7 @@ index 86af964..5d53bf6 100644
50104 offset += elf_core_extra_data_size(); 49422 offset += elf_core_extra_data_size();
50105 e_shoff = offset; 49423 e_shoff = offset;
50106 49424
50107@@ -2130,10 +2577,12 @@ static int elf_core_dump(struct coredump_params *cprm) 49425@@ -2133,10 +2588,12 @@ static int elf_core_dump(struct coredump_params *cprm)
50108 offset = dataoff; 49426 offset = dataoff;
50109 49427
50110 size += sizeof(*elf); 49428 size += sizeof(*elf);
@@ -50117,7 +49435,7 @@ index 86af964..5d53bf6 100644
50117 if (size > cprm->limit 49435 if (size > cprm->limit
50118 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note))) 49436 || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
50119 goto end_coredump; 49437 goto end_coredump;
50120@@ -2147,7 +2596,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49438@@ -2150,7 +2607,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50121 phdr.p_offset = offset; 49439 phdr.p_offset = offset;
50122 phdr.p_vaddr = vma->vm_start; 49440 phdr.p_vaddr = vma->vm_start;
50123 phdr.p_paddr = 0; 49441 phdr.p_paddr = 0;
@@ -50126,7 +49444,7 @@ index 86af964..5d53bf6 100644
50126 phdr.p_memsz = vma->vm_end - vma->vm_start; 49444 phdr.p_memsz = vma->vm_end - vma->vm_start;
50127 offset += phdr.p_filesz; 49445 offset += phdr.p_filesz;
50128 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0; 49446 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
50129@@ -2158,6 +2607,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49447@@ -2161,6 +2618,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50130 phdr.p_align = ELF_EXEC_PAGESIZE; 49448 phdr.p_align = ELF_EXEC_PAGESIZE;
50131 49449
50132 size += sizeof(phdr); 49450 size += sizeof(phdr);
@@ -50134,7 +49452,7 @@ index 86af964..5d53bf6 100644
50134 if (size > cprm->limit 49452 if (size > cprm->limit
50135 || !dump_write(cprm->file, &phdr, sizeof(phdr))) 49453 || !dump_write(cprm->file, &phdr, sizeof(phdr)))
50136 goto end_coredump; 49454 goto end_coredump;
50137@@ -2182,7 +2632,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49455@@ -2185,7 +2643,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50138 unsigned long addr; 49456 unsigned long addr;
50139 unsigned long end; 49457 unsigned long end;
50140 49458
@@ -50143,7 +49461,7 @@ index 86af964..5d53bf6 100644
50143 49461
50144 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) { 49462 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
50145 struct page *page; 49463 struct page *page;
50146@@ -2191,6 +2641,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49464@@ -2194,6 +2652,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50147 page = get_dump_page(addr); 49465 page = get_dump_page(addr);
50148 if (page) { 49466 if (page) {
50149 void *kaddr = kmap(page); 49467 void *kaddr = kmap(page);
@@ -50151,7 +49469,7 @@ index 86af964..5d53bf6 100644
50151 stop = ((size += PAGE_SIZE) > cprm->limit) || 49469 stop = ((size += PAGE_SIZE) > cprm->limit) ||
50152 !dump_write(cprm->file, kaddr, 49470 !dump_write(cprm->file, kaddr,
50153 PAGE_SIZE); 49471 PAGE_SIZE);
50154@@ -2208,6 +2659,7 @@ static int elf_core_dump(struct coredump_params *cprm) 49472@@ -2211,6 +2670,7 @@ static int elf_core_dump(struct coredump_params *cprm)
50155 49473
50156 if (e_phnum == PN_XNUM) { 49474 if (e_phnum == PN_XNUM) {
50157 size += sizeof(*shdr4extnum); 49475 size += sizeof(*shdr4extnum);
@@ -50159,7 +49477,7 @@ index 86af964..5d53bf6 100644
50159 if (size > cprm->limit 49477 if (size > cprm->limit
50160 || !dump_write(cprm->file, shdr4extnum, 49478 || !dump_write(cprm->file, shdr4extnum,
50161 sizeof(*shdr4extnum))) 49479 sizeof(*shdr4extnum)))
50162@@ -2228,6 +2680,97 @@ out: 49480@@ -2231,6 +2691,167 @@ out:
50163 49481
50164 #endif /* CONFIG_ELF_CORE */ 49482 #endif /* CONFIG_ELF_CORE */
50165 49483
@@ -50227,9 +49545,9 @@ index 86af964..5d53bf6 100644
50227+ elf_dyn dyn; 49545+ elf_dyn dyn;
50228+ 49546+
50229+ if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn))) 49547+ if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn)))
50230+ return; 49548+ break;
50231+ if (dyn.d_tag == DT_NULL) 49549+ if (dyn.d_tag == DT_NULL)
50232+ return; 49550+ break;
50233+ if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) { 49551+ if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) {
50234+ gr_log_textrel(vma); 49552+ gr_log_textrel(vma);
50235+ if (is_textrel_rw) 49553+ if (is_textrel_rw)
@@ -50237,31 +49555,101 @@ index 86af964..5d53bf6 100644
50237+ else 49555+ else
50238+ /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */ 49556+ /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */
50239+ vma->vm_flags &= ~VM_MAYWRITE; 49557+ vma->vm_flags &= ~VM_MAYWRITE;
50240+ return; 49558+ break;
50241+ } 49559+ }
50242+ i++; 49560+ i++;
50243+ } 49561+ }
50244+ return; 49562+ is_textrel_rw = false;
49563+ is_textrel_rx = false;
49564+ continue;
50245+ 49565+
50246+ case PT_GNU_RELRO: 49566+ case PT_GNU_RELRO:
50247+ if (!is_relro) 49567+ if (!is_relro)
50248+ continue; 49568+ continue;
50249+ if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start) 49569+ if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start)
50250+ vma->vm_flags &= ~VM_MAYWRITE; 49570+ vma->vm_flags &= ~VM_MAYWRITE;
50251+ return; 49571+ is_relro = false;
49572+ continue;
49573+
49574+#ifdef CONFIG_PAX_PT_PAX_FLAGS
49575+ case PT_PAX_FLAGS: {
49576+ const char *msg_mprotect = "", *msg_emutramp = "";
49577+ char *buffer_lib, *buffer_exe;
49578+
49579+ if (elf_p.p_flags & PF_NOMPROTECT)
49580+ msg_mprotect = "MPROTECT disabled";
49581+
49582+#ifdef CONFIG_PAX_EMUTRAMP
49583+ if (!(vma->vm_mm->pax_flags & MF_PAX_EMUTRAMP) && !(elf_p.p_flags & PF_NOEMUTRAMP))
49584+ msg_emutramp = "EMUTRAMP enabled";
49585+#endif
49586+
49587+ if (!msg_mprotect[0] && !msg_emutramp[0])
49588+ continue;
49589+
49590+ if (!printk_ratelimit())
49591+ continue;
49592+
49593+ buffer_lib = (char *)__get_free_page(GFP_KERNEL);
49594+ buffer_exe = (char *)__get_free_page(GFP_KERNEL);
49595+ if (buffer_lib && buffer_exe) {
49596+ char *path_lib, *path_exe;
49597+
49598+ path_lib = pax_get_path(&vma->vm_file->f_path, buffer_lib, PAGE_SIZE);
49599+ path_exe = pax_get_path(&vma->vm_mm->exe_file->f_path, buffer_exe, PAGE_SIZE);
49600+
49601+ pr_info("PAX: %s wants %s%s%s on %s\n", path_lib, msg_mprotect,
49602+ (msg_mprotect[0] && msg_emutramp[0] ? " and " : ""), msg_emutramp, path_exe);
49603+
49604+ }
49605+ free_page((unsigned long)buffer_exe);
49606+ free_page((unsigned long)buffer_lib);
49607+ continue;
49608+ }
49609+#endif
49610+
50252+ } 49611+ }
50253+ } 49612+ }
50254+} 49613+}
50255+#endif 49614+#endif
50256+ 49615+
49616+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
49617+
49618+extern int grsec_enable_log_rwxmaps;
49619+
49620+static void elf_handle_mmap(struct file *file)
49621+{
49622+ struct elfhdr elf_h;
49623+ struct elf_phdr elf_p;
49624+ unsigned long i;
49625+
49626+ if (!grsec_enable_log_rwxmaps)
49627+ return;
49628+
49629+ if (sizeof(elf_h) != kernel_read(file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
49630+ memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
49631+ (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || !elf_check_arch(&elf_h) ||
49632+ elf_h.e_phentsize != sizeof(struct elf_phdr) ||
49633+ elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
49634+ return;
49635+
49636+ for (i = 0UL; i < elf_h.e_phnum; i++) {
49637+ if (sizeof(elf_p) != kernel_read(file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
49638+ return;
49639+ if (elf_p.p_type == PT_GNU_STACK && (elf_p.p_flags & PF_X))
49640+ gr_log_ptgnustack(file);
49641+ }
49642+}
49643+#endif
49644+
50257 static int __init init_elf_binfmt(void) 49645 static int __init init_elf_binfmt(void)
50258 { 49646 {
50259 register_binfmt(&elf_format); 49647 register_binfmt(&elf_format);
50260diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c 49648diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c
50261index 2036d21..b0430d0 100644 49649index d50bbe5..af3b649 100644
50262--- a/fs/binfmt_flat.c 49650--- a/fs/binfmt_flat.c
50263+++ b/fs/binfmt_flat.c 49651+++ b/fs/binfmt_flat.c
50264@@ -562,7 +562,9 @@ static int load_flat_file(struct linux_binprm * bprm, 49652@@ -566,7 +566,9 @@ static int load_flat_file(struct linux_binprm * bprm,
50265 realdatastart = (unsigned long) -ENOMEM; 49653 realdatastart = (unsigned long) -ENOMEM;
50266 printk("Unable to allocate RAM for process data, errno %d\n", 49654 printk("Unable to allocate RAM for process data, errno %d\n",
50267 (int)-realdatastart); 49655 (int)-realdatastart);
@@ -50271,7 +49659,7 @@ index 2036d21..b0430d0 100644
50271 ret = realdatastart; 49659 ret = realdatastart;
50272 goto err; 49660 goto err;
50273 } 49661 }
50274@@ -586,8 +588,10 @@ static int load_flat_file(struct linux_binprm * bprm, 49662@@ -590,8 +592,10 @@ static int load_flat_file(struct linux_binprm * bprm,
50275 } 49663 }
50276 if (IS_ERR_VALUE(result)) { 49664 if (IS_ERR_VALUE(result)) {
50277 printk("Unable to read data+bss, errno %d\n", (int)-result); 49665 printk("Unable to read data+bss, errno %d\n", (int)-result);
@@ -50282,7 +49670,7 @@ index 2036d21..b0430d0 100644
50282 ret = result; 49670 ret = result;
50283 goto err; 49671 goto err;
50284 } 49672 }
50285@@ -654,8 +658,10 @@ static int load_flat_file(struct linux_binprm * bprm, 49673@@ -653,8 +657,10 @@ static int load_flat_file(struct linux_binprm * bprm,
50286 } 49674 }
50287 if (IS_ERR_VALUE(result)) { 49675 if (IS_ERR_VALUE(result)) {
50288 printk("Unable to read code+data+bss, errno %d\n",(int)-result); 49676 printk("Unable to read code+data+bss, errno %d\n",(int)-result);
@@ -50294,10 +49682,10 @@ index 2036d21..b0430d0 100644
50294 goto err; 49682 goto err;
50295 } 49683 }
50296diff --git a/fs/bio.c b/fs/bio.c 49684diff --git a/fs/bio.c b/fs/bio.c
50297index b96fc6c..431d628 100644 49685index 94bbc04..6fe78a4 100644
50298--- a/fs/bio.c 49686--- a/fs/bio.c
50299+++ b/fs/bio.c 49687+++ b/fs/bio.c
50300@@ -818,7 +818,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, 49688@@ -1096,7 +1096,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
50301 /* 49689 /*
50302 * Overflow, abort 49690 * Overflow, abort
50303 */ 49691 */
@@ -50306,7 +49694,7 @@ index b96fc6c..431d628 100644
50306 return ERR_PTR(-EINVAL); 49694 return ERR_PTR(-EINVAL);
50307 49695
50308 nr_pages += end - start; 49696 nr_pages += end - start;
50309@@ -952,7 +952,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q, 49697@@ -1230,7 +1230,7 @@ static struct bio *__bio_map_user_iov(struct request_queue *q,
50310 /* 49698 /*
50311 * Overflow, abort 49699 * Overflow, abort
50312 */ 49700 */
@@ -50315,46 +49703,20 @@ index b96fc6c..431d628 100644
50315 return ERR_PTR(-EINVAL); 49703 return ERR_PTR(-EINVAL);
50316 49704
50317 nr_pages += end - start; 49705 nr_pages += end - start;
50318@@ -1214,7 +1214,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err) 49706@@ -1492,7 +1492,7 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
50319 const int read = bio_data_dir(bio) == READ; 49707 const int read = bio_data_dir(bio) == READ;
50320 struct bio_map_data *bmd = bio->bi_private; 49708 struct bio_map_data *bmd = bio->bi_private;
50321 int i; 49709 int i;
50322- char *p = bmd->sgvecs[0].iov_base; 49710- char *p = bmd->sgvecs[0].iov_base;
50323+ char *p = (char __force_kernel *)bmd->sgvecs[0].iov_base; 49711+ char *p = (char __force_kernel *)bmd->sgvecs[0].iov_base;
50324 49712
50325 __bio_for_each_segment(bvec, bio, i, 0) { 49713 bio_for_each_segment_all(bvec, bio, i) {
50326 char *addr = page_address(bvec->bv_page); 49714 char *addr = page_address(bvec->bv_page);
50327diff --git a/fs/block_dev.c b/fs/block_dev.c 49715diff --git a/fs/block_dev.c b/fs/block_dev.c
50328index aae187a..8325c5d 100644 49716index 85f5c85..d6f0b1a 100644
50329--- a/fs/block_dev.c 49717--- a/fs/block_dev.c
50330+++ b/fs/block_dev.c 49718+++ b/fs/block_dev.c
50331@@ -57,17 +57,24 @@ static void bdev_inode_switch_bdi(struct inode *inode, 49719@@ -658,7 +658,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
50332 struct backing_dev_info *dst)
50333 {
50334 struct backing_dev_info *old = inode->i_data.backing_dev_info;
50335+ bool wakeup_bdi = false;
50336
50337 if (unlikely(dst == old)) /* deadlock avoidance */
50338 return;
50339 bdi_lock_two(&old->wb, &dst->wb);
50340 spin_lock(&inode->i_lock);
50341 inode->i_data.backing_dev_info = dst;
50342- if (inode->i_state & I_DIRTY)
50343+ if (inode->i_state & I_DIRTY) {
50344+ if (bdi_cap_writeback_dirty(dst) && !wb_has_dirty_io(&dst->wb))
50345+ wakeup_bdi = true;
50346 list_move(&inode->i_wb_list, &dst->wb.b_dirty);
50347+ }
50348 spin_unlock(&inode->i_lock);
50349 spin_unlock(&old->wb.list_lock);
50350 spin_unlock(&dst->wb.list_lock);
50351+
50352+ if (wakeup_bdi)
50353+ bdi_wakeup_thread_delayed(dst);
50354 }
50355
50356 /* Kill _all_ buffers and pagecache , dirty or not.. */
50357@@ -652,7 +659,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
50358 else if (bdev->bd_contains == bdev) 49720 else if (bdev->bd_contains == bdev)
50359 return true; /* is a whole device which isn't held */ 49721 return true; /* is a whole device which isn't held */
50360 49722
@@ -50364,10 +49726,10 @@ index aae187a..8325c5d 100644
50364 else if (whole->bd_holder != NULL) 49726 else if (whole->bd_holder != NULL)
50365 return false; /* is a partition of a held device */ 49727 return false; /* is a partition of a held device */
50366diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c 49728diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
50367index 7a983f7..c73ee93 100644 49729index 7fb054b..ad36c67 100644
50368--- a/fs/btrfs/ctree.c 49730--- a/fs/btrfs/ctree.c
50369+++ b/fs/btrfs/ctree.c 49731+++ b/fs/btrfs/ctree.c
50370@@ -1036,9 +1036,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans, 49732@@ -1076,9 +1076,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
50371 free_extent_buffer(buf); 49733 free_extent_buffer(buf);
50372 add_root_to_dirty_list(root); 49734 add_root_to_dirty_list(root);
50373 } else { 49735 } else {
@@ -50384,10 +49746,10 @@ index 7a983f7..c73ee93 100644
50384 49746
50385 WARN_ON(trans->transid != btrfs_header_generation(parent)); 49747 WARN_ON(trans->transid != btrfs_header_generation(parent));
50386diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c 49748diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
50387index f49b62f..07834ab 100644 49749index 0f81d67..0ad55fe 100644
50388--- a/fs/btrfs/ioctl.c 49750--- a/fs/btrfs/ioctl.c
50389+++ b/fs/btrfs/ioctl.c 49751+++ b/fs/btrfs/ioctl.c
50390@@ -3077,9 +3077,12 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg) 49752@@ -3084,9 +3084,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
50391 for (i = 0; i < num_types; i++) { 49753 for (i = 0; i < num_types; i++) {
50392 struct btrfs_space_info *tmp; 49754 struct btrfs_space_info *tmp;
50393 49755
@@ -50400,7 +49762,7 @@ index f49b62f..07834ab 100644
50400 info = NULL; 49762 info = NULL;
50401 rcu_read_lock(); 49763 rcu_read_lock();
50402 list_for_each_entry_rcu(tmp, &root->fs_info->space_info, 49764 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
50403@@ -3101,10 +3104,7 @@ long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg) 49765@@ -3108,10 +3111,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
50404 memcpy(dest, &space, sizeof(space)); 49766 memcpy(dest, &space, sizeof(space));
50405 dest++; 49767 dest++;
50406 space_args.total_spaces++; 49768 space_args.total_spaces++;
@@ -50412,11 +49774,11 @@ index f49b62f..07834ab 100644
50412 up_read(&info->groups_sem); 49774 up_read(&info->groups_sem);
50413 } 49775 }
50414diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c 49776diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
50415index f6b8859..54fe8c5 100644 49777index f0857e0..e7023c5 100644
50416--- a/fs/btrfs/super.c 49778--- a/fs/btrfs/super.c
50417+++ b/fs/btrfs/super.c 49779+++ b/fs/btrfs/super.c
50418@@ -266,7 +266,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans, 49780@@ -265,7 +265,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
50419 function, line, errstr); 49781 function, line, errstr);
50420 return; 49782 return;
50421 } 49783 }
50422- ACCESS_ONCE(trans->transaction->aborted) = errno; 49784- ACCESS_ONCE(trans->transaction->aborted) = errno;
@@ -50424,6 +49786,19 @@ index f6b8859..54fe8c5 100644
50424 __btrfs_std_error(root->fs_info, function, line, errno, NULL); 49786 __btrfs_std_error(root->fs_info, function, line, errno, NULL);
50425 } 49787 }
50426 /* 49788 /*
49789diff --git a/fs/buffer.c b/fs/buffer.c
49790index d2a4d1b..df798ca 100644
49791--- a/fs/buffer.c
49792+++ b/fs/buffer.c
49793@@ -3367,7 +3367,7 @@ void __init buffer_init(void)
49794 bh_cachep = kmem_cache_create("buffer_head",
49795 sizeof(struct buffer_head), 0,
49796 (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
49797- SLAB_MEM_SPREAD),
49798+ SLAB_MEM_SPREAD|SLAB_NO_SANITIZE),
49799 NULL);
49800
49801 /*
50427diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c 49802diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
50428index 622f469..e8d2d55 100644 49803index 622f469..e8d2d55 100644
50429--- a/fs/cachefiles/bind.c 49804--- a/fs/cachefiles/bind.c
@@ -50566,10 +49941,10 @@ index eccd339..4c1d995 100644
50566 return 0; 49941 return 0;
50567 49942
50568diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c 49943diff --git a/fs/cachefiles/rdwr.c b/fs/cachefiles/rdwr.c
50569index 4809922..aab2c39 100644 49944index 317f9ee..3d24511 100644
50570--- a/fs/cachefiles/rdwr.c 49945--- a/fs/cachefiles/rdwr.c
50571+++ b/fs/cachefiles/rdwr.c 49946+++ b/fs/cachefiles/rdwr.c
50572@@ -965,7 +965,7 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page) 49947@@ -966,7 +966,7 @@ int cachefiles_write_page(struct fscache_storage *op, struct page *page)
50573 old_fs = get_fs(); 49948 old_fs = get_fs();
50574 set_fs(KERNEL_DS); 49949 set_fs(KERNEL_DS);
50575 ret = file->f_op->write( 49950 ret = file->f_op->write(
@@ -50577,9 +49952,9 @@ index 4809922..aab2c39 100644
50577+ file, (const void __force_user *) data, len, &pos); 49952+ file, (const void __force_user *) data, len, &pos);
50578 set_fs(old_fs); 49953 set_fs(old_fs);
50579 kunmap(page); 49954 kunmap(page);
50580 if (ret != len) 49955 file_end_write(file);
50581diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c 49956diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
50582index 6d797f4..0ace2e5 100644 49957index f02d82b..2632cf86 100644
50583--- a/fs/ceph/dir.c 49958--- a/fs/ceph/dir.c
50584+++ b/fs/ceph/dir.c 49959+++ b/fs/ceph/dir.c
50585@@ -243,7 +243,7 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir) 49960@@ -243,7 +243,7 @@ static int ceph_readdir(struct file *filp, void *dirent, filldir_t filldir)
@@ -50592,10 +49967,10 @@ index 6d797f4..0ace2e5 100644
50592 u32 ftype; 49967 u32 ftype;
50593 struct ceph_mds_reply_info_parsed *rinfo; 49968 struct ceph_mds_reply_info_parsed *rinfo;
50594diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c 49969diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
50595index d9ea6ed..1e6c8ac 100644 49970index d597483..747901b 100644
50596--- a/fs/cifs/cifs_debug.c 49971--- a/fs/cifs/cifs_debug.c
50597+++ b/fs/cifs/cifs_debug.c 49972+++ b/fs/cifs/cifs_debug.c
50598@@ -267,8 +267,8 @@ static ssize_t cifs_stats_proc_write(struct file *file, 49973@@ -284,8 +284,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
50599 49974
50600 if (c == '1' || c == 'y' || c == 'Y' || c == '0') { 49975 if (c == '1' || c == 'y' || c == 'Y' || c == '0') {
50601 #ifdef CONFIG_CIFS_STATS2 49976 #ifdef CONFIG_CIFS_STATS2
@@ -50606,7 +49981,7 @@ index d9ea6ed..1e6c8ac 100644
50606 #endif /* CONFIG_CIFS_STATS2 */ 49981 #endif /* CONFIG_CIFS_STATS2 */
50607 spin_lock(&cifs_tcp_ses_lock); 49982 spin_lock(&cifs_tcp_ses_lock);
50608 list_for_each(tmp1, &cifs_tcp_ses_list) { 49983 list_for_each(tmp1, &cifs_tcp_ses_list) {
50609@@ -281,7 +281,7 @@ static ssize_t cifs_stats_proc_write(struct file *file, 49984@@ -298,7 +298,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
50610 tcon = list_entry(tmp3, 49985 tcon = list_entry(tmp3,
50611 struct cifs_tcon, 49986 struct cifs_tcon,
50612 tcon_list); 49987 tcon_list);
@@ -50615,7 +49990,7 @@ index d9ea6ed..1e6c8ac 100644
50615 if (server->ops->clear_stats) 49990 if (server->ops->clear_stats)
50616 server->ops->clear_stats(tcon); 49991 server->ops->clear_stats(tcon);
50617 } 49992 }
50618@@ -313,8 +313,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v) 49993@@ -330,8 +330,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
50619 smBufAllocCount.counter, cifs_min_small); 49994 smBufAllocCount.counter, cifs_min_small);
50620 #ifdef CONFIG_CIFS_STATS2 49995 #ifdef CONFIG_CIFS_STATS2
50621 seq_printf(m, "Total Large %d Small %d Allocations\n", 49996 seq_printf(m, "Total Large %d Small %d Allocations\n",
@@ -50626,7 +50001,7 @@ index d9ea6ed..1e6c8ac 100644
50626 #endif /* CONFIG_CIFS_STATS2 */ 50001 #endif /* CONFIG_CIFS_STATS2 */
50627 50002
50628 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount)); 50003 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount));
50629@@ -343,7 +343,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v) 50004@@ -360,7 +360,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
50630 if (tcon->need_reconnect) 50005 if (tcon->need_reconnect)
50631 seq_puts(m, "\tDISCONNECTED "); 50006 seq_puts(m, "\tDISCONNECTED ");
50632 seq_printf(m, "\nSMBs: %d", 50007 seq_printf(m, "\nSMBs: %d",
@@ -50636,11 +50011,11 @@ index d9ea6ed..1e6c8ac 100644
50636 server->ops->print_stats(m, tcon); 50011 server->ops->print_stats(m, tcon);
50637 } 50012 }
50638diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c 50013diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
50639index 345fc89..b2acae5 100644 50014index 3752b9f..8db5569 100644
50640--- a/fs/cifs/cifsfs.c 50015--- a/fs/cifs/cifsfs.c
50641+++ b/fs/cifs/cifsfs.c 50016+++ b/fs/cifs/cifsfs.c
50642@@ -1033,7 +1033,7 @@ cifs_init_request_bufs(void) 50017@@ -1035,7 +1035,7 @@ cifs_init_request_bufs(void)
50643 /* cERROR(1, "CIFSMaxBufSize %d 0x%x",CIFSMaxBufSize,CIFSMaxBufSize); */ 50018 */
50644 cifs_req_cachep = kmem_cache_create("cifs_request", 50019 cifs_req_cachep = kmem_cache_create("cifs_request",
50645 CIFSMaxBufSize + max_hdr_size, 0, 50020 CIFSMaxBufSize + max_hdr_size, 0,
50646- SLAB_HWCACHE_ALIGN, NULL); 50021- SLAB_HWCACHE_ALIGN, NULL);
@@ -50648,7 +50023,7 @@ index 345fc89..b2acae5 100644
50648 if (cifs_req_cachep == NULL) 50023 if (cifs_req_cachep == NULL)
50649 return -ENOMEM; 50024 return -ENOMEM;
50650 50025
50651@@ -1060,7 +1060,7 @@ cifs_init_request_bufs(void) 50026@@ -1062,7 +1062,7 @@ cifs_init_request_bufs(void)
50652 efficient to alloc 1 per page off the slab compared to 17K (5page) 50027 efficient to alloc 1 per page off the slab compared to 17K (5page)
50653 alloc of large cifs buffers even when page debugging is on */ 50028 alloc of large cifs buffers even when page debugging is on */
50654 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq", 50029 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
@@ -50657,7 +50032,7 @@ index 345fc89..b2acae5 100644
50657 NULL); 50032 NULL);
50658 if (cifs_sm_req_cachep == NULL) { 50033 if (cifs_sm_req_cachep == NULL) {
50659 mempool_destroy(cifs_req_poolp); 50034 mempool_destroy(cifs_req_poolp);
50660@@ -1145,8 +1145,8 @@ init_cifs(void) 50035@@ -1147,8 +1147,8 @@ init_cifs(void)
50661 atomic_set(&bufAllocCount, 0); 50036 atomic_set(&bufAllocCount, 0);
50662 atomic_set(&smBufAllocCount, 0); 50037 atomic_set(&smBufAllocCount, 0);
50663 #ifdef CONFIG_CIFS_STATS2 50038 #ifdef CONFIG_CIFS_STATS2
@@ -50753,7 +50128,7 @@ index 4f07f6f..55de8ce 100644
50753 GLOBAL_EXTERN atomic_t smBufAllocCount; 50128 GLOBAL_EXTERN atomic_t smBufAllocCount;
50754 GLOBAL_EXTERN atomic_t midCount; 50129 GLOBAL_EXTERN atomic_t midCount;
50755diff --git a/fs/cifs/link.c b/fs/cifs/link.c 50130diff --git a/fs/cifs/link.c b/fs/cifs/link.c
50756index 9f6c4c4..8de307a 100644 50131index b83c3f5..6437caa 100644
50757--- a/fs/cifs/link.c 50132--- a/fs/cifs/link.c
50758+++ b/fs/cifs/link.c 50133+++ b/fs/cifs/link.c
50759@@ -616,7 +616,7 @@ symlink_exit: 50134@@ -616,7 +616,7 @@ symlink_exit:
@@ -50766,7 +50141,7 @@ index 9f6c4c4..8de307a 100644
50766 kfree(p); 50141 kfree(p);
50767 } 50142 }
50768diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c 50143diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
50769index 1b15bf8..1ce489e 100644 50144index 1bec014..f329411 100644
50770--- a/fs/cifs/misc.c 50145--- a/fs/cifs/misc.c
50771+++ b/fs/cifs/misc.c 50146+++ b/fs/cifs/misc.c
50772@@ -169,7 +169,7 @@ cifs_buf_get(void) 50147@@ -169,7 +169,7 @@ cifs_buf_get(void)
@@ -50788,10 +50163,10 @@ index 1b15bf8..1ce489e 100644
50788 50163
50789 } 50164 }
50790diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c 50165diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
50791index 47bc5a8..10decbe 100644 50166index 3efdb9d..e845a5e 100644
50792--- a/fs/cifs/smb1ops.c 50167--- a/fs/cifs/smb1ops.c
50793+++ b/fs/cifs/smb1ops.c 50168+++ b/fs/cifs/smb1ops.c
50794@@ -586,27 +586,27 @@ static void 50169@@ -591,27 +591,27 @@ static void
50795 cifs_clear_stats(struct cifs_tcon *tcon) 50170 cifs_clear_stats(struct cifs_tcon *tcon)
50796 { 50171 {
50797 #ifdef CONFIG_CIFS_STATS 50172 #ifdef CONFIG_CIFS_STATS
@@ -50840,7 +50215,7 @@ index 47bc5a8..10decbe 100644
50840 #endif 50215 #endif
50841 } 50216 }
50842 50217
50843@@ -615,36 +615,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon) 50218@@ -620,36 +620,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
50844 { 50219 {
50845 #ifdef CONFIG_CIFS_STATS 50220 #ifdef CONFIG_CIFS_STATS
50846 seq_printf(m, " Oplocks breaks: %d", 50221 seq_printf(m, " Oplocks breaks: %d",
@@ -50897,7 +50272,7 @@ index 47bc5a8..10decbe 100644
50897 } 50272 }
50898 50273
50899diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c 50274diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
50900index bceffe7..cd1ae59 100644 50275index f2e76f3..c44fac7 100644
50901--- a/fs/cifs/smb2ops.c 50276--- a/fs/cifs/smb2ops.c
50902+++ b/fs/cifs/smb2ops.c 50277+++ b/fs/cifs/smb2ops.c
50903@@ -274,8 +274,8 @@ smb2_clear_stats(struct cifs_tcon *tcon) 50278@@ -274,8 +274,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
@@ -51019,13 +50394,13 @@ index bceffe7..cd1ae59 100644
51019 } 50394 }
51020 50395
51021diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c 50396diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
51022index 41d9d07..dbb4772 100644 50397index 2b95ce2..d079d75 100644
51023--- a/fs/cifs/smb2pdu.c 50398--- a/fs/cifs/smb2pdu.c
51024+++ b/fs/cifs/smb2pdu.c 50399+++ b/fs/cifs/smb2pdu.c
51025@@ -1761,8 +1761,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, 50400@@ -1760,8 +1760,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
51026 default: 50401 default:
51027 cERROR(1, "info level %u isn't supported", 50402 cifs_dbg(VFS, "info level %u isn't supported\n",
51028 srch_inf->info_level); 50403 srch_inf->info_level);
51029- rc = -EINVAL; 50404- rc = -EINVAL;
51030- goto qdir_exit; 50405- goto qdir_exit;
51031+ return -EINVAL; 50406+ return -EINVAL;
@@ -51081,7 +50456,7 @@ index 1da168c..8bc7ff6 100644
51081 50456
51082 return hit; 50457 return hit;
51083diff --git a/fs/compat.c b/fs/compat.c 50458diff --git a/fs/compat.c b/fs/compat.c
51084index d487985..c9e04b1 100644 50459index fc3b55d..7b568ae 100644
51085--- a/fs/compat.c 50460--- a/fs/compat.c
51086+++ b/fs/compat.c 50461+++ b/fs/compat.c
51087@@ -54,7 +54,7 @@ 50462@@ -54,7 +54,7 @@
@@ -51093,7 +50468,7 @@ index d487985..c9e04b1 100644
51093 50468
51094 int compat_printk(const char *fmt, ...) 50469 int compat_printk(const char *fmt, ...)
51095 { 50470 {
51096@@ -490,7 +490,7 @@ compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p) 50471@@ -488,7 +488,7 @@ compat_sys_io_setup(unsigned nr_reqs, u32 __user *ctx32p)
51097 50472
51098 set_fs(KERNEL_DS); 50473 set_fs(KERNEL_DS);
51099 /* The __user pointer cast is valid because of the set_fs() */ 50474 /* The __user pointer cast is valid because of the set_fs() */
@@ -51102,7 +50477,7 @@ index d487985..c9e04b1 100644
51102 set_fs(oldfs); 50477 set_fs(oldfs);
51103 /* truncating is ok because it's a user address */ 50478 /* truncating is ok because it's a user address */
51104 if (!ret) 50479 if (!ret)
51105@@ -548,7 +548,7 @@ ssize_t compat_rw_copy_check_uvector(int type, 50480@@ -546,7 +546,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
51106 goto out; 50481 goto out;
51107 50482
51108 ret = -EINVAL; 50483 ret = -EINVAL;
@@ -51111,7 +50486,7 @@ index d487985..c9e04b1 100644
51111 goto out; 50486 goto out;
51112 if (nr_segs > fast_segs) { 50487 if (nr_segs > fast_segs) {
51113 ret = -ENOMEM; 50488 ret = -ENOMEM;
51114@@ -835,6 +835,7 @@ struct compat_old_linux_dirent { 50489@@ -833,6 +833,7 @@ struct compat_old_linux_dirent {
51115 50490
51116 struct compat_readdir_callback { 50491 struct compat_readdir_callback {
51117 struct compat_old_linux_dirent __user *dirent; 50492 struct compat_old_linux_dirent __user *dirent;
@@ -51119,7 +50494,7 @@ index d487985..c9e04b1 100644
51119 int result; 50494 int result;
51120 }; 50495 };
51121 50496
51122@@ -852,6 +853,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen, 50497@@ -850,6 +851,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
51123 buf->result = -EOVERFLOW; 50498 buf->result = -EOVERFLOW;
51124 return -EOVERFLOW; 50499 return -EOVERFLOW;
51125 } 50500 }
@@ -51130,7 +50505,7 @@ index d487985..c9e04b1 100644
51130 buf->result++; 50505 buf->result++;
51131 dirent = buf->dirent; 50506 dirent = buf->dirent;
51132 if (!access_ok(VERIFY_WRITE, dirent, 50507 if (!access_ok(VERIFY_WRITE, dirent,
51133@@ -882,6 +887,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd, 50508@@ -880,6 +885,7 @@ asmlinkage long compat_sys_old_readdir(unsigned int fd,
51134 50509
51135 buf.result = 0; 50510 buf.result = 0;
51136 buf.dirent = dirent; 50511 buf.dirent = dirent;
@@ -51138,7 +50513,7 @@ index d487985..c9e04b1 100644
51138 50513
51139 error = vfs_readdir(f.file, compat_fillonedir, &buf); 50514 error = vfs_readdir(f.file, compat_fillonedir, &buf);
51140 if (buf.result) 50515 if (buf.result)
51141@@ -901,6 +907,7 @@ struct compat_linux_dirent { 50516@@ -899,6 +905,7 @@ struct compat_linux_dirent {
51142 struct compat_getdents_callback { 50517 struct compat_getdents_callback {
51143 struct compat_linux_dirent __user *current_dir; 50518 struct compat_linux_dirent __user *current_dir;
51144 struct compat_linux_dirent __user *previous; 50519 struct compat_linux_dirent __user *previous;
@@ -51146,7 +50521,7 @@ index d487985..c9e04b1 100644
51146 int count; 50521 int count;
51147 int error; 50522 int error;
51148 }; 50523 };
51149@@ -922,6 +929,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen, 50524@@ -920,6 +927,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
51150 buf->error = -EOVERFLOW; 50525 buf->error = -EOVERFLOW;
51151 return -EOVERFLOW; 50526 return -EOVERFLOW;
51152 } 50527 }
@@ -51157,7 +50532,7 @@ index d487985..c9e04b1 100644
51157 dirent = buf->previous; 50532 dirent = buf->previous;
51158 if (dirent) { 50533 if (dirent) {
51159 if (__put_user(offset, &dirent->d_off)) 50534 if (__put_user(offset, &dirent->d_off))
51160@@ -967,6 +978,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd, 50535@@ -965,6 +976,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
51161 buf.previous = NULL; 50536 buf.previous = NULL;
51162 buf.count = count; 50537 buf.count = count;
51163 buf.error = 0; 50538 buf.error = 0;
@@ -51165,7 +50540,7 @@ index d487985..c9e04b1 100644
51165 50540
51166 error = vfs_readdir(f.file, compat_filldir, &buf); 50541 error = vfs_readdir(f.file, compat_filldir, &buf);
51167 if (error >= 0) 50542 if (error >= 0)
51168@@ -987,6 +999,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd, 50543@@ -985,6 +997,7 @@ asmlinkage long compat_sys_getdents(unsigned int fd,
51169 struct compat_getdents_callback64 { 50544 struct compat_getdents_callback64 {
51170 struct linux_dirent64 __user *current_dir; 50545 struct linux_dirent64 __user *current_dir;
51171 struct linux_dirent64 __user *previous; 50546 struct linux_dirent64 __user *previous;
@@ -51173,7 +50548,7 @@ index d487985..c9e04b1 100644
51173 int count; 50548 int count;
51174 int error; 50549 int error;
51175 }; 50550 };
51176@@ -1003,6 +1016,10 @@ static int compat_filldir64(void * __buf, const char * name, int namlen, loff_t 50551@@ -1001,6 +1014,10 @@ static int compat_filldir64(void * __buf, const char * name, int namlen, loff_t
51177 buf->error = -EINVAL; /* only used if we fail.. */ 50552 buf->error = -EINVAL; /* only used if we fail.. */
51178 if (reclen > buf->count) 50553 if (reclen > buf->count)
51179 return -EINVAL; 50554 return -EINVAL;
@@ -51184,7 +50559,7 @@ index d487985..c9e04b1 100644
51184 dirent = buf->previous; 50559 dirent = buf->previous;
51185 50560
51186 if (dirent) { 50561 if (dirent) {
51187@@ -1052,13 +1069,14 @@ asmlinkage long compat_sys_getdents64(unsigned int fd, 50562@@ -1050,13 +1067,14 @@ asmlinkage long compat_sys_getdents64(unsigned int fd,
51188 buf.previous = NULL; 50563 buf.previous = NULL;
51189 buf.count = count; 50564 buf.count = count;
51190 buf.error = 0; 50565 buf.error = 0;
@@ -51219,10 +50594,10 @@ index a81147e..20bf2b5 100644
51219 50594
51220 /* 50595 /*
51221diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c 50596diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
51222index 3ced75f..b28d192 100644 50597index 996cdc5..15e2f33 100644
51223--- a/fs/compat_ioctl.c 50598--- a/fs/compat_ioctl.c
51224+++ b/fs/compat_ioctl.c 50599+++ b/fs/compat_ioctl.c
51225@@ -623,7 +623,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd, 50600@@ -622,7 +622,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
51226 return -EFAULT; 50601 return -EFAULT;
51227 if (__get_user(udata, &ss32->iomem_base)) 50602 if (__get_user(udata, &ss32->iomem_base))
51228 return -EFAULT; 50603 return -EFAULT;
@@ -51231,7 +50606,7 @@ index 3ced75f..b28d192 100644
51231 if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) || 50606 if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
51232 __get_user(ss.port_high, &ss32->port_high)) 50607 __get_user(ss.port_high, &ss32->port_high))
51233 return -EFAULT; 50608 return -EFAULT;
51234@@ -704,8 +704,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd, 50609@@ -703,8 +703,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
51235 for (i = 0; i < nmsgs; i++) { 50610 for (i = 0; i < nmsgs; i++) {
51236 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16))) 50611 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
51237 return -EFAULT; 50612 return -EFAULT;
@@ -51242,7 +50617,7 @@ index 3ced75f..b28d192 100644
51242 return -EFAULT; 50617 return -EFAULT;
51243 } 50618 }
51244 return sys_ioctl(fd, cmd, (unsigned long)tdata); 50619 return sys_ioctl(fd, cmd, (unsigned long)tdata);
51245@@ -798,7 +798,7 @@ static int compat_ioctl_preallocate(struct file *file, 50620@@ -797,7 +797,7 @@ static int compat_ioctl_preallocate(struct file *file,
51246 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) || 50621 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) ||
51247 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) || 50622 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
51248 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) || 50623 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
@@ -51251,7 +50626,7 @@ index 3ced75f..b28d192 100644
51251 return -EFAULT; 50626 return -EFAULT;
51252 50627
51253 return ioctl_preallocate(file, p); 50628 return ioctl_preallocate(file, p);
51254@@ -1620,8 +1620,8 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd, 50629@@ -1619,8 +1619,8 @@ asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
51255 static int __init init_sys32_ioctl_cmp(const void *p, const void *q) 50630 static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
51256 { 50631 {
51257 unsigned int a, b; 50632 unsigned int a, b;
@@ -51291,7 +50666,7 @@ index 7aabc6a..34c1197 100644
51291 /* 50666 /*
51292 * We'll have a dentry and an inode for 50667 * We'll have a dentry and an inode for
51293diff --git a/fs/coredump.c b/fs/coredump.c 50668diff --git a/fs/coredump.c b/fs/coredump.c
51294index c647965..a77bff3 100644 50669index dafafba..10b3b27 100644
51295--- a/fs/coredump.c 50670--- a/fs/coredump.c
51296+++ b/fs/coredump.c 50671+++ b/fs/coredump.c
51297@@ -52,7 +52,7 @@ struct core_name { 50672@@ -52,7 +52,7 @@ struct core_name {
@@ -51321,40 +50696,43 @@ index c647965..a77bff3 100644
51321 cn->corename = kmalloc(cn->size, GFP_KERNEL); 50696 cn->corename = kmalloc(cn->size, GFP_KERNEL);
51322 cn->used = 0; 50697 cn->used = 0;
51323 50698
51324@@ -414,17 +414,17 @@ static void wait_for_dump_helpers(struct file *file) 50699@@ -435,8 +435,8 @@ static void wait_for_dump_helpers(struct file *file)
51325 pipe = file_inode(file)->i_pipe; 50700 struct pipe_inode_info *pipe = file->private_data;
51326 50701
51327 pipe_lock(pipe); 50702 pipe_lock(pipe);
51328- pipe->readers++; 50703- pipe->readers++;
51329- pipe->writers--; 50704- pipe->writers--;
51330+ atomic_inc(&pipe->readers); 50705+ atomic_inc(&pipe->readers);
51331+ atomic_dec(&pipe->writers); 50706+ atomic_dec(&pipe->writers);
50707 wake_up_interruptible_sync(&pipe->wait);
50708 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
50709 pipe_unlock(pipe);
50710@@ -445,11 +445,11 @@ static void wait_for_dump_helpers(struct file *file)
50711 * We actually want wait_event_freezable() but then we need
50712 * to clear TIF_SIGPENDING and improve dump_interrupted().
50713 */
50714- wait_event_interruptible(pipe->wait, pipe->readers == 1);
50715+ wait_event_interruptible(pipe->wait, atomic_read(&pipe->readers) == 1);
51332 50716
51333- while ((pipe->readers > 1) && (!signal_pending(current))) { 50717 pipe_lock(pipe);
51334+ while ((atomic_read(&pipe->readers) > 1) && (!signal_pending(current))) {
51335 wake_up_interruptible_sync(&pipe->wait);
51336 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
51337 pipe_wait(pipe);
51338 }
51339
51340- pipe->readers--; 50718- pipe->readers--;
51341- pipe->writers++; 50719- pipe->writers++;
51342+ atomic_dec(&pipe->readers); 50720+ atomic_dec(&pipe->readers);
51343+ atomic_inc(&pipe->writers); 50721+ atomic_inc(&pipe->writers);
51344 pipe_unlock(pipe); 50722 pipe_unlock(pipe);
51345
51346 } 50723 }
51347@@ -471,7 +471,8 @@ void do_coredump(siginfo_t *siginfo) 50724
51348 int ispipe; 50725@@ -496,7 +496,8 @@ void do_coredump(siginfo_t *siginfo)
51349 struct files_struct *displaced; 50726 struct files_struct *displaced;
51350 bool need_nonrelative = false; 50727 bool need_nonrelative = false;
50728 bool core_dumped = false;
51351- static atomic_t core_dump_count = ATOMIC_INIT(0); 50729- static atomic_t core_dump_count = ATOMIC_INIT(0);
51352+ static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0); 50730+ static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0);
51353+ long signr = siginfo->si_signo; 50731+ long signr = siginfo->si_signo;
51354 struct coredump_params cprm = { 50732 struct coredump_params cprm = {
51355 .siginfo = siginfo, 50733 .siginfo = siginfo,
51356 .regs = signal_pt_regs(), 50734 .regs = signal_pt_regs(),
51357@@ -484,7 +485,10 @@ void do_coredump(siginfo_t *siginfo) 50735@@ -509,7 +510,10 @@ void do_coredump(siginfo_t *siginfo)
51358 .mm_flags = mm->flags, 50736 .mm_flags = mm->flags,
51359 }; 50737 };
51360 50738
@@ -51366,7 +50744,7 @@ index c647965..a77bff3 100644
51366 50744
51367 binfmt = mm->binfmt; 50745 binfmt = mm->binfmt;
51368 if (!binfmt || !binfmt->core_dump) 50746 if (!binfmt || !binfmt->core_dump)
51369@@ -508,7 +512,7 @@ void do_coredump(siginfo_t *siginfo) 50747@@ -533,7 +537,7 @@ void do_coredump(siginfo_t *siginfo)
51370 need_nonrelative = true; 50748 need_nonrelative = true;
51371 } 50749 }
51372 50750
@@ -51375,7 +50753,7 @@ index c647965..a77bff3 100644
51375 if (retval < 0) 50753 if (retval < 0)
51376 goto fail_creds; 50754 goto fail_creds;
51377 50755
51378@@ -556,7 +560,7 @@ void do_coredump(siginfo_t *siginfo) 50756@@ -576,7 +580,7 @@ void do_coredump(siginfo_t *siginfo)
51379 } 50757 }
51380 cprm.limit = RLIM_INFINITY; 50758 cprm.limit = RLIM_INFINITY;
51381 50759
@@ -51384,7 +50762,7 @@ index c647965..a77bff3 100644
51384 if (core_pipe_limit && (core_pipe_limit < dump_count)) { 50762 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
51385 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n", 50763 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
51386 task_tgid_vnr(current), current->comm); 50764 task_tgid_vnr(current), current->comm);
51387@@ -583,6 +587,8 @@ void do_coredump(siginfo_t *siginfo) 50765@@ -608,6 +612,8 @@ void do_coredump(siginfo_t *siginfo)
51388 } else { 50766 } else {
51389 struct inode *inode; 50767 struct inode *inode;
51390 50768
@@ -51393,7 +50771,7 @@ index c647965..a77bff3 100644
51393 if (cprm.limit < binfmt->min_coredump) 50771 if (cprm.limit < binfmt->min_coredump)
51394 goto fail_unlock; 50772 goto fail_unlock;
51395 50773
51396@@ -640,7 +646,7 @@ close_fail: 50774@@ -666,7 +672,7 @@ close_fail:
51397 filp_close(cprm.file, NULL); 50775 filp_close(cprm.file, NULL);
51398 fail_dropcount: 50776 fail_dropcount:
51399 if (ispipe) 50777 if (ispipe)
@@ -51402,25 +50780,26 @@ index c647965..a77bff3 100644
51402 fail_unlock: 50780 fail_unlock:
51403 kfree(cn.corename); 50781 kfree(cn.corename);
51404 fail_corename: 50782 fail_corename:
51405@@ -659,7 +665,7 @@ fail: 50783@@ -687,7 +693,7 @@ int dump_write(struct file *file, const void *addr, int nr)
51406 */
51407 int dump_write(struct file *file, const void *addr, int nr)
51408 { 50784 {
51409- return access_ok(VERIFY_READ, addr, nr) && file->f_op->write(file, addr, nr, &file->f_pos) == nr; 50785 return !dump_interrupted() &&
51410+ return access_ok(VERIFY_READ, addr, nr) && file->f_op->write(file, (const char __force_user *)addr, nr, &file->f_pos) == nr; 50786 access_ok(VERIFY_READ, addr, nr) &&
50787- file->f_op->write(file, addr, nr, &file->f_pos) == nr;
50788+ file->f_op->write(file, (const char __force_user *)addr, nr, &file->f_pos) == nr;
51411 } 50789 }
51412 EXPORT_SYMBOL(dump_write); 50790 EXPORT_SYMBOL(dump_write);
51413 50791
51414diff --git a/fs/dcache.c b/fs/dcache.c 50792diff --git a/fs/dcache.c b/fs/dcache.c
51415index e689268..f36956e 100644 50793index f09b908..04b9690 100644
51416--- a/fs/dcache.c 50794--- a/fs/dcache.c
51417+++ b/fs/dcache.c 50795+++ b/fs/dcache.c
51418@@ -3100,7 +3100,7 @@ void __init vfs_caches_init(unsigned long mempages) 50796@@ -3086,7 +3086,8 @@ void __init vfs_caches_init(unsigned long mempages)
51419 mempages -= reserve; 50797 mempages -= reserve;
51420 50798
51421 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0, 50799 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
51422- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); 50800- SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
51423+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY, NULL); 50801+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY|
50802+ SLAB_NO_SANITIZE, NULL);
51424 50803
51425 dcache_init(); 50804 dcache_init();
51426 inode_init(); 50805 inode_init();
@@ -51475,21 +50854,8 @@ index e4141f2..d8263e8 100644
51475 goto out_unlock_msg_ctx; 50854 goto out_unlock_msg_ctx;
51476 i += packet_length_size; 50855 i += packet_length_size;
51477 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size)) 50856 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
51478diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
51479index 6a16053..2155147 100644
51480--- a/fs/ecryptfs/read_write.c
51481+++ b/fs/ecryptfs/read_write.c
51482@@ -240,7 +240,7 @@ int ecryptfs_read_lower(char *data, loff_t offset, size_t size,
51483 return -EIO;
51484 fs_save = get_fs();
51485 set_fs(get_ds());
51486- rc = vfs_read(lower_file, data, size, &offset);
51487+ rc = vfs_read(lower_file, (char __force_user *)data, size, &offset);
51488 set_fs(fs_save);
51489 return rc;
51490 }
51491diff --git a/fs/exec.c b/fs/exec.c 50857diff --git a/fs/exec.c b/fs/exec.c
51492index 0d5c76f..3d4585e 100644 50858index ffd7a81..d95acf6 100644
51493--- a/fs/exec.c 50859--- a/fs/exec.c
51494+++ b/fs/exec.c 50860+++ b/fs/exec.c
51495@@ -55,8 +55,20 @@ 50861@@ -55,8 +55,20 @@
@@ -51616,7 +50982,7 @@ index 0d5c76f..3d4585e 100644
51616+ 50982+
51617+#ifdef CONFIG_PAX_RANDUSTACK 50983+#ifdef CONFIG_PAX_RANDUSTACK
51618+ if (randomize_va_space) 50984+ if (randomize_va_space)
51619+ bprm->p ^= random32() & ~PAGE_MASK; 50985+ bprm->p ^= prandom_u32() & ~PAGE_MASK;
51620+#endif 50986+#endif
51621+ 50987+
51622 return 0; 50988 return 0;
@@ -51767,7 +51133,7 @@ index 0d5c76f..3d4585e 100644
51767+ 51133+
51768+#ifdef CONFIG_X86 51134+#ifdef CONFIG_X86
51769+ if (!ret) { 51135+ if (!ret) {
51770+ size = mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT)); 51136+ size = PAGE_SIZE + mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT));
51771+ ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0); 51137+ ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0);
51772+ } 51138+ }
51773+#endif 51139+#endif
@@ -51796,7 +51162,7 @@ index 0d5c76f..3d4585e 100644
51796 set_fs(old_fs); 51162 set_fs(old_fs);
51797 return result; 51163 return result;
51798 } 51164 }
51799@@ -1252,7 +1330,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm) 51165@@ -1251,7 +1329,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
51800 } 51166 }
51801 rcu_read_unlock(); 51167 rcu_read_unlock();
51802 51168
@@ -51805,7 +51171,7 @@ index 0d5c76f..3d4585e 100644
51805 bprm->unsafe |= LSM_UNSAFE_SHARE; 51171 bprm->unsafe |= LSM_UNSAFE_SHARE;
51806 } else { 51172 } else {
51807 res = -EAGAIN; 51173 res = -EAGAIN;
51808@@ -1452,6 +1530,31 @@ int search_binary_handler(struct linux_binprm *bprm) 51174@@ -1451,6 +1529,31 @@ int search_binary_handler(struct linux_binprm *bprm)
51809 51175
51810 EXPORT_SYMBOL(search_binary_handler); 51176 EXPORT_SYMBOL(search_binary_handler);
51811 51177
@@ -51837,7 +51203,7 @@ index 0d5c76f..3d4585e 100644
51837 /* 51203 /*
51838 * sys_execve() executes a new program. 51204 * sys_execve() executes a new program.
51839 */ 51205 */
51840@@ -1459,6 +1562,11 @@ static int do_execve_common(const char *filename, 51206@@ -1458,6 +1561,11 @@ static int do_execve_common(const char *filename,
51841 struct user_arg_ptr argv, 51207 struct user_arg_ptr argv,
51842 struct user_arg_ptr envp) 51208 struct user_arg_ptr envp)
51843 { 51209 {
@@ -51849,7 +51215,7 @@ index 0d5c76f..3d4585e 100644
51849 struct linux_binprm *bprm; 51215 struct linux_binprm *bprm;
51850 struct file *file; 51216 struct file *file;
51851 struct files_struct *displaced; 51217 struct files_struct *displaced;
51852@@ -1466,6 +1574,8 @@ static int do_execve_common(const char *filename, 51218@@ -1465,6 +1573,8 @@ static int do_execve_common(const char *filename,
51853 int retval; 51219 int retval;
51854 const struct cred *cred = current_cred(); 51220 const struct cred *cred = current_cred();
51855 51221
@@ -51858,7 +51224,7 @@ index 0d5c76f..3d4585e 100644
51858 /* 51224 /*
51859 * We move the actual failure in case of RLIMIT_NPROC excess from 51225 * We move the actual failure in case of RLIMIT_NPROC excess from
51860 * set*uid() to execve() because too many poorly written programs 51226 * set*uid() to execve() because too many poorly written programs
51861@@ -1506,12 +1616,22 @@ static int do_execve_common(const char *filename, 51227@@ -1505,12 +1615,22 @@ static int do_execve_common(const char *filename,
51862 if (IS_ERR(file)) 51228 if (IS_ERR(file))
51863 goto out_unmark; 51229 goto out_unmark;
51864 51230
@@ -51881,7 +51247,7 @@ index 0d5c76f..3d4585e 100644
51881 retval = bprm_mm_init(bprm); 51247 retval = bprm_mm_init(bprm);
51882 if (retval) 51248 if (retval)
51883 goto out_file; 51249 goto out_file;
51884@@ -1528,24 +1648,70 @@ static int do_execve_common(const char *filename, 51250@@ -1527,24 +1647,70 @@ static int do_execve_common(const char *filename,
51885 if (retval < 0) 51251 if (retval < 0)
51886 goto out; 51252 goto out;
51887 51253
@@ -51956,7 +51322,7 @@ index 0d5c76f..3d4585e 100644
51956 current->fs->in_exec = 0; 51322 current->fs->in_exec = 0;
51957 current->in_execve = 0; 51323 current->in_execve = 0;
51958 acct_update_integrals(current); 51324 acct_update_integrals(current);
51959@@ -1554,6 +1720,14 @@ static int do_execve_common(const char *filename, 51325@@ -1553,6 +1719,14 @@ static int do_execve_common(const char *filename,
51960 put_files_struct(displaced); 51326 put_files_struct(displaced);
51961 return retval; 51327 return retval;
51962 51328
@@ -51971,7 +51337,7 @@ index 0d5c76f..3d4585e 100644
51971 out: 51337 out:
51972 if (bprm->mm) { 51338 if (bprm->mm) {
51973 acct_arg_size(bprm, 0); 51339 acct_arg_size(bprm, 0);
51974@@ -1702,3 +1876,283 @@ asmlinkage long compat_sys_execve(const char __user * filename, 51340@@ -1701,3 +1875,285 @@ asmlinkage long compat_sys_execve(const char __user * filename,
51975 return error; 51341 return error;
51976 } 51342 }
51977 #endif 51343 #endif
@@ -52030,6 +51396,25 @@ index 0d5c76f..3d4585e 100644
52030+EXPORT_SYMBOL(pax_check_flags); 51396+EXPORT_SYMBOL(pax_check_flags);
52031+ 51397+
52032+#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) 51398+#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
51399+char *pax_get_path(const struct path *path, char *buf, int buflen)
51400+{
51401+ char *pathname = d_path(path, buf, buflen);
51402+
51403+ if (IS_ERR(pathname))
51404+ goto toolong;
51405+
51406+ pathname = mangle_path(buf, pathname, "\t\n\\");
51407+ if (!pathname)
51408+ goto toolong;
51409+
51410+ *pathname = 0;
51411+ return buf;
51412+
51413+toolong:
51414+ return "<path too long>";
51415+}
51416+EXPORT_SYMBOL(pax_get_path);
51417+
52033+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp) 51418+void pax_report_fault(struct pt_regs *regs, void *pc, void *sp)
52034+{ 51419+{
52035+ struct task_struct *tsk = current; 51420+ struct task_struct *tsk = current;
@@ -52053,36 +51438,19 @@ index 0d5c76f..3d4585e 100644
52053+ vma_fault = vma; 51438+ vma_fault = vma;
52054+ vma = vma->vm_next; 51439+ vma = vma->vm_next;
52055+ } 51440+ }
52056+ if (vma_exec) { 51441+ if (vma_exec)
52057+ path_exec = d_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE); 51442+ path_exec = pax_get_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE);
52058+ if (IS_ERR(path_exec))
52059+ path_exec = "<path too long>";
52060+ else {
52061+ path_exec = mangle_path(buffer_exec, path_exec, "\t\n\\");
52062+ if (path_exec) {
52063+ *path_exec = 0;
52064+ path_exec = buffer_exec;
52065+ } else
52066+ path_exec = "<path too long>";
52067+ }
52068+ }
52069+ if (vma_fault) { 51443+ if (vma_fault) {
52070+ start = vma_fault->vm_start; 51444+ start = vma_fault->vm_start;
52071+ end = vma_fault->vm_end; 51445+ end = vma_fault->vm_end;
52072+ offset = vma_fault->vm_pgoff << PAGE_SHIFT; 51446+ offset = vma_fault->vm_pgoff << PAGE_SHIFT;
52073+ if (vma_fault->vm_file) { 51447+ if (vma_fault->vm_file)
52074+ path_fault = d_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE); 51448+ path_fault = pax_get_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE);
52075+ if (IS_ERR(path_fault)) 51449+ else if (pc >= mm->start_brk && pc < mm->brk)
52076+ path_fault = "<path too long>"; 51450+ path_fault = "<heap>";
52077+ else { 51451+ else if (vma_fault->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
52078+ path_fault = mangle_path(buffer_fault, path_fault, "\t\n\\"); 51452+ path_fault = "<stack>";
52079+ if (path_fault) { 51453+ else
52080+ *path_fault = 0;
52081+ path_fault = buffer_fault;
52082+ } else
52083+ path_fault = "<path too long>";
52084+ }
52085+ } else
52086+ path_fault = "<anonymous mapping>"; 51454+ path_fault = "<anonymous mapping>";
52087+ } 51455+ }
52088+ up_read(&mm->mmap_sem); 51456+ up_read(&mm->mmap_sem);
@@ -52289,40 +51657,26 @@ index 22548f5..41521d8 100644
52289 return 0; 51657 return 0;
52290 } 51658 }
52291 return 1; 51659 return 1;
52292diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
52293index d512c4b..d706dbf 100644
52294--- a/fs/ext3/inode.c
52295+++ b/fs/ext3/inode.c
52296@@ -218,7 +218,8 @@ void ext3_evict_inode (struct inode *inode)
52297 */
52298 if (inode->i_nlink && ext3_should_journal_data(inode) &&
52299 EXT3_SB(inode->i_sb)->s_journal &&
52300- (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode))) {
52301+ (S_ISLNK(inode->i_mode) || S_ISREG(inode->i_mode)) &&
52302+ inode->i_ino != EXT3_JOURNAL_INO) {
52303 tid_t commit_tid = atomic_read(&ei->i_datasync_tid);
52304 journal_t *journal = EXT3_SB(inode->i_sb)->s_journal;
52305
52306diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c 51660diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
52307index 92e68b3..115d987 100644 51661index 3742e4c..69a797f 100644
52308--- a/fs/ext4/balloc.c 51662--- a/fs/ext4/balloc.c
52309+++ b/fs/ext4/balloc.c 51663+++ b/fs/ext4/balloc.c
52310@@ -505,8 +505,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi, 51664@@ -528,8 +528,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
52311 /* Hm, nope. Are (enough) root reserved clusters available? */ 51665 /* Hm, nope. Are (enough) root reserved clusters available? */
52312 if (uid_eq(sbi->s_resuid, current_fsuid()) || 51666 if (uid_eq(sbi->s_resuid, current_fsuid()) ||
52313 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) || 51667 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
52314- capable(CAP_SYS_RESOURCE) || 51668- capable(CAP_SYS_RESOURCE) ||
52315- (flags & EXT4_MB_USE_ROOT_BLOCKS)) { 51669- (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
52316+ (flags & EXT4_MB_USE_ROOT_BLOCKS) || 51670+ (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
52317+ capable_nolog(CAP_SYS_RESOURCE)) { 51671+ capable_nolog(CAP_SYS_RESOURCE)) {
52318 51672
52319 if (free_clusters >= (nclusters + dirty_clusters)) 51673 if (free_clusters >= (nclusters + dirty_clusters +
52320 return 1; 51674 resv_clusters))
52321diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h 51675diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
52322index 3b83cd6..0f34dcd 100644 51676index 5aae3d1..b5da7f8 100644
52323--- a/fs/ext4/ext4.h 51677--- a/fs/ext4/ext4.h
52324+++ b/fs/ext4/ext4.h 51678+++ b/fs/ext4/ext4.h
52325@@ -1254,19 +1254,19 @@ struct ext4_sb_info { 51679@@ -1252,19 +1252,19 @@ struct ext4_sb_info {
52326 unsigned long s_mb_last_start; 51680 unsigned long s_mb_last_start;
52327 51681
52328 /* stats for buddy allocator */ 51682 /* stats for buddy allocator */
@@ -52353,10 +51707,10 @@ index 3b83cd6..0f34dcd 100644
52353 51707
52354 /* locality groups */ 51708 /* locality groups */
52355diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c 51709diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
52356index 8b6e837..36fd6c1 100644 51710index 59c6750..a549154 100644
52357--- a/fs/ext4/mballoc.c 51711--- a/fs/ext4/mballoc.c
52358+++ b/fs/ext4/mballoc.c 51712+++ b/fs/ext4/mballoc.c
52359@@ -1754,7 +1754,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac, 51713@@ -1865,7 +1865,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
52360 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len); 51714 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
52361 51715
52362 if (EXT4_SB(sb)->s_mb_stats) 51716 if (EXT4_SB(sb)->s_mb_stats)
@@ -52365,7 +51719,7 @@ index 8b6e837..36fd6c1 100644
52365 51719
52366 break; 51720 break;
52367 } 51721 }
52368@@ -2059,7 +2059,7 @@ repeat: 51722@@ -2170,7 +2170,7 @@ repeat:
52369 ac->ac_status = AC_STATUS_CONTINUE; 51723 ac->ac_status = AC_STATUS_CONTINUE;
52370 ac->ac_flags |= EXT4_MB_HINT_FIRST; 51724 ac->ac_flags |= EXT4_MB_HINT_FIRST;
52371 cr = 3; 51725 cr = 3;
@@ -52374,7 +51728,7 @@ index 8b6e837..36fd6c1 100644
52374 goto repeat; 51728 goto repeat;
52375 } 51729 }
52376 } 51730 }
52377@@ -2567,25 +2567,25 @@ int ext4_mb_release(struct super_block *sb) 51731@@ -2678,25 +2678,25 @@ int ext4_mb_release(struct super_block *sb)
52378 if (sbi->s_mb_stats) { 51732 if (sbi->s_mb_stats) {
52379 ext4_msg(sb, KERN_INFO, 51733 ext4_msg(sb, KERN_INFO,
52380 "mballoc: %u blocks %u reqs (%u success)", 51734 "mballoc: %u blocks %u reqs (%u success)",
@@ -52410,7 +51764,7 @@ index 8b6e837..36fd6c1 100644
52410 } 51764 }
52411 51765
52412 free_percpu(sbi->s_locality_groups); 51766 free_percpu(sbi->s_locality_groups);
52413@@ -3039,16 +3039,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac) 51767@@ -3150,16 +3150,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
52414 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb); 51768 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
52415 51769
52416 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) { 51770 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
@@ -52433,7 +51787,7 @@ index 8b6e837..36fd6c1 100644
52433 } 51787 }
52434 51788
52435 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC) 51789 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
52436@@ -3448,7 +3448,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac) 51790@@ -3559,7 +3559,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
52437 trace_ext4_mb_new_inode_pa(ac, pa); 51791 trace_ext4_mb_new_inode_pa(ac, pa);
52438 51792
52439 ext4_mb_use_inode_pa(ac, pa); 51793 ext4_mb_use_inode_pa(ac, pa);
@@ -52442,7 +51796,7 @@ index 8b6e837..36fd6c1 100644
52442 51796
52443 ei = EXT4_I(ac->ac_inode); 51797 ei = EXT4_I(ac->ac_inode);
52444 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group); 51798 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
52445@@ -3508,7 +3508,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac) 51799@@ -3619,7 +3619,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
52446 trace_ext4_mb_new_group_pa(ac, pa); 51800 trace_ext4_mb_new_group_pa(ac, pa);
52447 51801
52448 ext4_mb_use_group_pa(ac, pa); 51802 ext4_mb_use_group_pa(ac, pa);
@@ -52451,7 +51805,7 @@ index 8b6e837..36fd6c1 100644
52451 51805
52452 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group); 51806 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
52453 lg = ac->ac_lg; 51807 lg = ac->ac_lg;
52454@@ -3597,7 +3597,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh, 51808@@ -3708,7 +3708,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
52455 * from the bitmap and continue. 51809 * from the bitmap and continue.
52456 */ 51810 */
52457 } 51811 }
@@ -52460,7 +51814,7 @@ index 8b6e837..36fd6c1 100644
52460 51814
52461 return err; 51815 return err;
52462 } 51816 }
52463@@ -3615,7 +3615,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b, 51817@@ -3726,7 +3726,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
52464 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit); 51818 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
52465 BUG_ON(group != e4b->bd_group && pa->pa_len != 0); 51819 BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
52466 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len); 51820 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
@@ -52470,7 +51824,7 @@ index 8b6e837..36fd6c1 100644
52470 51824
52471 return 0; 51825 return 0;
52472diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c 51826diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
52473index b3b1f7d..cff51d5 100644 51827index 214461e..3614c89 100644
52474--- a/fs/ext4/mmp.c 51828--- a/fs/ext4/mmp.c
52475+++ b/fs/ext4/mmp.c 51829+++ b/fs/ext4/mmp.c
52476@@ -113,7 +113,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh, 51830@@ -113,7 +113,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh,
@@ -52483,7 +51837,7 @@ index b3b1f7d..cff51d5 100644
52483 "MMP failure info: last update time: %llu, last update " 51837 "MMP failure info: last update time: %llu, last update "
52484 "node: %s, last update device: %s\n", 51838 "node: %s, last update device: %s\n",
52485diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c 51839diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
52486index 1cb76e8..0fe3928 100644 51840index 49d3c01..9579efd 100644
52487--- a/fs/ext4/resize.c 51841--- a/fs/ext4/resize.c
52488+++ b/fs/ext4/resize.c 51842+++ b/fs/ext4/resize.c
52489@@ -79,12 +79,20 @@ static int verify_group_input(struct super_block *sb, 51843@@ -79,12 +79,20 @@ static int verify_group_input(struct super_block *sb,
@@ -52522,10 +51876,10 @@ index 1cb76e8..0fe3928 100644
52522 else if (input->reserved_blocks > input->blocks_count / 5) 51876 else if (input->reserved_blocks > input->blocks_count / 5)
52523 ext4_warning(sb, "Reserved blocks too high (%u)", 51877 ext4_warning(sb, "Reserved blocks too high (%u)",
52524diff --git a/fs/ext4/super.c b/fs/ext4/super.c 51878diff --git a/fs/ext4/super.c b/fs/ext4/super.c
52525index febbe0e..d0cdc02 100644 51879index 6681c03..d88cd33 100644
52526--- a/fs/ext4/super.c 51880--- a/fs/ext4/super.c
52527+++ b/fs/ext4/super.c 51881+++ b/fs/ext4/super.c
52528@@ -1238,7 +1238,7 @@ static ext4_fsblk_t get_sb_block(void **data) 51882@@ -1236,7 +1236,7 @@ static ext4_fsblk_t get_sb_block(void **data)
52529 } 51883 }
52530 51884
52531 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3)) 51885 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
@@ -52534,15 +51888,15 @@ index febbe0e..d0cdc02 100644
52534 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n"; 51888 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
52535 51889
52536 #ifdef CONFIG_QUOTA 51890 #ifdef CONFIG_QUOTA
52537@@ -2380,7 +2380,7 @@ struct ext4_attr { 51891@@ -2372,7 +2372,7 @@ struct ext4_attr {
52538 ssize_t (*store)(struct ext4_attr *, struct ext4_sb_info *, 51892 ssize_t (*store)(struct ext4_attr *, struct ext4_sb_info *,
52539 const char *, size_t); 51893 const char *, size_t);
52540 int offset; 51894 int offset;
52541-}; 51895-};
52542+} __do_const; 51896+} __do_const;
52543 51897
52544 static int parse_strtoul(const char *buf, 51898 static int parse_strtoull(const char *buf,
52545 unsigned long max, unsigned long *value) 51899 unsigned long long max, unsigned long long *value)
52546diff --git a/fs/fcntl.c b/fs/fcntl.c 51900diff --git a/fs/fcntl.c b/fs/fcntl.c
52547index 6599222..e7bf0de 100644 51901index 6599222..e7bf0de 100644
52548--- a/fs/fcntl.c 51902--- a/fs/fcntl.c
@@ -52573,82 +51927,8 @@ index 999ff5c..41f4109 100644
52573 copy_to_user(ufh, handle, 51927 copy_to_user(ufh, handle,
52574 sizeof(struct file_handle) + handle_bytes)) 51928 sizeof(struct file_handle) + handle_bytes))
52575 retval = -EFAULT; 51929 retval = -EFAULT;
52576diff --git a/fs/fifo.c b/fs/fifo.c
52577index cf6f434..3d7942c 100644
52578--- a/fs/fifo.c
52579+++ b/fs/fifo.c
52580@@ -59,10 +59,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
52581 */
52582 filp->f_op = &read_pipefifo_fops;
52583 pipe->r_counter++;
52584- if (pipe->readers++ == 0)
52585+ if (atomic_inc_return(&pipe->readers) == 1)
52586 wake_up_partner(inode);
52587
52588- if (!pipe->writers) {
52589+ if (!atomic_read(&pipe->writers)) {
52590 if ((filp->f_flags & O_NONBLOCK)) {
52591 /* suppress POLLHUP until we have
52592 * seen a writer */
52593@@ -81,15 +81,15 @@ static int fifo_open(struct inode *inode, struct file *filp)
52594 * errno=ENXIO when there is no process reading the FIFO.
52595 */
52596 ret = -ENXIO;
52597- if ((filp->f_flags & O_NONBLOCK) && !pipe->readers)
52598+ if ((filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
52599 goto err;
52600
52601 filp->f_op = &write_pipefifo_fops;
52602 pipe->w_counter++;
52603- if (!pipe->writers++)
52604+ if (atomic_inc_return(&pipe->writers) == 1)
52605 wake_up_partner(inode);
52606
52607- if (!pipe->readers) {
52608+ if (!atomic_read(&pipe->readers)) {
52609 if (wait_for_partner(inode, &pipe->r_counter))
52610 goto err_wr;
52611 }
52612@@ -104,11 +104,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
52613 */
52614 filp->f_op = &rdwr_pipefifo_fops;
52615
52616- pipe->readers++;
52617- pipe->writers++;
52618+ atomic_inc(&pipe->readers);
52619+ atomic_inc(&pipe->writers);
52620 pipe->r_counter++;
52621 pipe->w_counter++;
52622- if (pipe->readers == 1 || pipe->writers == 1)
52623+ if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
52624 wake_up_partner(inode);
52625 break;
52626
52627@@ -122,19 +122,19 @@ static int fifo_open(struct inode *inode, struct file *filp)
52628 return 0;
52629
52630 err_rd:
52631- if (!--pipe->readers)
52632+ if (atomic_dec_and_test(&pipe->readers))
52633 wake_up_interruptible(&pipe->wait);
52634 ret = -ERESTARTSYS;
52635 goto err;
52636
52637 err_wr:
52638- if (!--pipe->writers)
52639+ if (atomic_dec_and_test(&pipe->writers))
52640 wake_up_interruptible(&pipe->wait);
52641 ret = -ERESTARTSYS;
52642 goto err;
52643
52644 err:
52645- if (!pipe->readers && !pipe->writers)
52646+ if (!atomic_read(&pipe->readers) && !atomic_read(&pipe->writers))
52647 free_pipe_info(inode);
52648
52649 err_nocleanup:
52650diff --git a/fs/file.c b/fs/file.c 51930diff --git a/fs/file.c b/fs/file.c
52651index 3906d95..5fe379b 100644 51931index 4a78f98..9447397 100644
52652--- a/fs/file.c 51932--- a/fs/file.c
52653+++ b/fs/file.c 51933+++ b/fs/file.c
52654@@ -16,6 +16,7 @@ 51934@@ -16,6 +16,7 @@
@@ -52659,7 +51939,7 @@ index 3906d95..5fe379b 100644
52659 #include <linux/fdtable.h> 51939 #include <linux/fdtable.h>
52660 #include <linux/bitops.h> 51940 #include <linux/bitops.h>
52661 #include <linux/interrupt.h> 51941 #include <linux/interrupt.h>
52662@@ -892,6 +893,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags) 51942@@ -828,6 +829,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
52663 if (!file) 51943 if (!file)
52664 return __close_fd(files, fd); 51944 return __close_fd(files, fd);
52665 51945
@@ -52667,7 +51947,7 @@ index 3906d95..5fe379b 100644
52667 if (fd >= rlimit(RLIMIT_NOFILE)) 51947 if (fd >= rlimit(RLIMIT_NOFILE))
52668 return -EBADF; 51948 return -EBADF;
52669 51949
52670@@ -918,6 +920,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags) 51950@@ -854,6 +856,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
52671 if (unlikely(oldfd == newfd)) 51951 if (unlikely(oldfd == newfd))
52672 return -EINVAL; 51952 return -EINVAL;
52673 51953
@@ -52675,7 +51955,7 @@ index 3906d95..5fe379b 100644
52675 if (newfd >= rlimit(RLIMIT_NOFILE)) 51955 if (newfd >= rlimit(RLIMIT_NOFILE))
52676 return -EBADF; 51956 return -EBADF;
52677 51957
52678@@ -973,6 +976,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes) 51958@@ -909,6 +912,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
52679 int f_dupfd(unsigned int from, struct file *file, unsigned flags) 51959 int f_dupfd(unsigned int from, struct file *file, unsigned flags)
52680 { 51960 {
52681 int err; 51961 int err;
@@ -52927,7 +52207,9 @@ index ee38fef..0a326d4 100644
52927 #ifdef CONFIG_FSCACHE_STATS 52207 #ifdef CONFIG_FSCACHE_STATS
52928-extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS]; 52208-extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
52929-extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS]; 52209-extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
52930- 52210+extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
52211+extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
52212
52931-extern atomic_t fscache_n_op_pend; 52213-extern atomic_t fscache_n_op_pend;
52932-extern atomic_t fscache_n_op_run; 52214-extern atomic_t fscache_n_op_run;
52933-extern atomic_t fscache_n_op_enqueue; 52215-extern atomic_t fscache_n_op_enqueue;
@@ -52936,13 +52218,26 @@ index ee38fef..0a326d4 100644
52936-extern atomic_t fscache_n_op_gc; 52218-extern atomic_t fscache_n_op_gc;
52937-extern atomic_t fscache_n_op_cancelled; 52219-extern atomic_t fscache_n_op_cancelled;
52938-extern atomic_t fscache_n_op_rejected; 52220-extern atomic_t fscache_n_op_rejected;
52939- 52221+extern atomic_unchecked_t fscache_n_op_pend;
52222+extern atomic_unchecked_t fscache_n_op_run;
52223+extern atomic_unchecked_t fscache_n_op_enqueue;
52224+extern atomic_unchecked_t fscache_n_op_deferred_release;
52225+extern atomic_unchecked_t fscache_n_op_release;
52226+extern atomic_unchecked_t fscache_n_op_gc;
52227+extern atomic_unchecked_t fscache_n_op_cancelled;
52228+extern atomic_unchecked_t fscache_n_op_rejected;
52229
52940-extern atomic_t fscache_n_attr_changed; 52230-extern atomic_t fscache_n_attr_changed;
52941-extern atomic_t fscache_n_attr_changed_ok; 52231-extern atomic_t fscache_n_attr_changed_ok;
52942-extern atomic_t fscache_n_attr_changed_nobufs; 52232-extern atomic_t fscache_n_attr_changed_nobufs;
52943-extern atomic_t fscache_n_attr_changed_nomem; 52233-extern atomic_t fscache_n_attr_changed_nomem;
52944-extern atomic_t fscache_n_attr_changed_calls; 52234-extern atomic_t fscache_n_attr_changed_calls;
52945- 52235+extern atomic_unchecked_t fscache_n_attr_changed;
52236+extern atomic_unchecked_t fscache_n_attr_changed_ok;
52237+extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
52238+extern atomic_unchecked_t fscache_n_attr_changed_nomem;
52239+extern atomic_unchecked_t fscache_n_attr_changed_calls;
52240
52946-extern atomic_t fscache_n_allocs; 52241-extern atomic_t fscache_n_allocs;
52947-extern atomic_t fscache_n_allocs_ok; 52242-extern atomic_t fscache_n_allocs_ok;
52948-extern atomic_t fscache_n_allocs_wait; 52243-extern atomic_t fscache_n_allocs_wait;
@@ -52951,7 +52246,15 @@ index ee38fef..0a326d4 100644
52951-extern atomic_t fscache_n_allocs_object_dead; 52246-extern atomic_t fscache_n_allocs_object_dead;
52952-extern atomic_t fscache_n_alloc_ops; 52247-extern atomic_t fscache_n_alloc_ops;
52953-extern atomic_t fscache_n_alloc_op_waits; 52248-extern atomic_t fscache_n_alloc_op_waits;
52954- 52249+extern atomic_unchecked_t fscache_n_allocs;
52250+extern atomic_unchecked_t fscache_n_allocs_ok;
52251+extern atomic_unchecked_t fscache_n_allocs_wait;
52252+extern atomic_unchecked_t fscache_n_allocs_nobufs;
52253+extern atomic_unchecked_t fscache_n_allocs_intr;
52254+extern atomic_unchecked_t fscache_n_allocs_object_dead;
52255+extern atomic_unchecked_t fscache_n_alloc_ops;
52256+extern atomic_unchecked_t fscache_n_alloc_op_waits;
52257
52955-extern atomic_t fscache_n_retrievals; 52258-extern atomic_t fscache_n_retrievals;
52956-extern atomic_t fscache_n_retrievals_ok; 52259-extern atomic_t fscache_n_retrievals_ok;
52957-extern atomic_t fscache_n_retrievals_wait; 52260-extern atomic_t fscache_n_retrievals_wait;
@@ -52962,91 +52265,6 @@ index ee38fef..0a326d4 100644
52962-extern atomic_t fscache_n_retrievals_object_dead; 52265-extern atomic_t fscache_n_retrievals_object_dead;
52963-extern atomic_t fscache_n_retrieval_ops; 52266-extern atomic_t fscache_n_retrieval_ops;
52964-extern atomic_t fscache_n_retrieval_op_waits; 52267-extern atomic_t fscache_n_retrieval_op_waits;
52965-
52966-extern atomic_t fscache_n_stores;
52967-extern atomic_t fscache_n_stores_ok;
52968-extern atomic_t fscache_n_stores_again;
52969-extern atomic_t fscache_n_stores_nobufs;
52970-extern atomic_t fscache_n_stores_oom;
52971-extern atomic_t fscache_n_store_ops;
52972-extern atomic_t fscache_n_store_calls;
52973-extern atomic_t fscache_n_store_pages;
52974-extern atomic_t fscache_n_store_radix_deletes;
52975-extern atomic_t fscache_n_store_pages_over_limit;
52976-
52977-extern atomic_t fscache_n_store_vmscan_not_storing;
52978-extern atomic_t fscache_n_store_vmscan_gone;
52979-extern atomic_t fscache_n_store_vmscan_busy;
52980-extern atomic_t fscache_n_store_vmscan_cancelled;
52981-extern atomic_t fscache_n_store_vmscan_wait;
52982-
52983-extern atomic_t fscache_n_marks;
52984-extern atomic_t fscache_n_uncaches;
52985-
52986-extern atomic_t fscache_n_acquires;
52987-extern atomic_t fscache_n_acquires_null;
52988-extern atomic_t fscache_n_acquires_no_cache;
52989-extern atomic_t fscache_n_acquires_ok;
52990-extern atomic_t fscache_n_acquires_nobufs;
52991-extern atomic_t fscache_n_acquires_oom;
52992-
52993-extern atomic_t fscache_n_invalidates;
52994-extern atomic_t fscache_n_invalidates_run;
52995-
52996-extern atomic_t fscache_n_updates;
52997-extern atomic_t fscache_n_updates_null;
52998-extern atomic_t fscache_n_updates_run;
52999-
53000-extern atomic_t fscache_n_relinquishes;
53001-extern atomic_t fscache_n_relinquishes_null;
53002-extern atomic_t fscache_n_relinquishes_waitcrt;
53003-extern atomic_t fscache_n_relinquishes_retire;
53004-
53005-extern atomic_t fscache_n_cookie_index;
53006-extern atomic_t fscache_n_cookie_data;
53007-extern atomic_t fscache_n_cookie_special;
53008-
53009-extern atomic_t fscache_n_object_alloc;
53010-extern atomic_t fscache_n_object_no_alloc;
53011-extern atomic_t fscache_n_object_lookups;
53012-extern atomic_t fscache_n_object_lookups_negative;
53013-extern atomic_t fscache_n_object_lookups_positive;
53014-extern atomic_t fscache_n_object_lookups_timed_out;
53015-extern atomic_t fscache_n_object_created;
53016-extern atomic_t fscache_n_object_avail;
53017-extern atomic_t fscache_n_object_dead;
53018-
53019-extern atomic_t fscache_n_checkaux_none;
53020-extern atomic_t fscache_n_checkaux_okay;
53021-extern atomic_t fscache_n_checkaux_update;
53022-extern atomic_t fscache_n_checkaux_obsolete;
53023+extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
53024+extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
53025+
53026+extern atomic_unchecked_t fscache_n_op_pend;
53027+extern atomic_unchecked_t fscache_n_op_run;
53028+extern atomic_unchecked_t fscache_n_op_enqueue;
53029+extern atomic_unchecked_t fscache_n_op_deferred_release;
53030+extern atomic_unchecked_t fscache_n_op_release;
53031+extern atomic_unchecked_t fscache_n_op_gc;
53032+extern atomic_unchecked_t fscache_n_op_cancelled;
53033+extern atomic_unchecked_t fscache_n_op_rejected;
53034+
53035+extern atomic_unchecked_t fscache_n_attr_changed;
53036+extern atomic_unchecked_t fscache_n_attr_changed_ok;
53037+extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
53038+extern atomic_unchecked_t fscache_n_attr_changed_nomem;
53039+extern atomic_unchecked_t fscache_n_attr_changed_calls;
53040+
53041+extern atomic_unchecked_t fscache_n_allocs;
53042+extern atomic_unchecked_t fscache_n_allocs_ok;
53043+extern atomic_unchecked_t fscache_n_allocs_wait;
53044+extern atomic_unchecked_t fscache_n_allocs_nobufs;
53045+extern atomic_unchecked_t fscache_n_allocs_intr;
53046+extern atomic_unchecked_t fscache_n_allocs_object_dead;
53047+extern atomic_unchecked_t fscache_n_alloc_ops;
53048+extern atomic_unchecked_t fscache_n_alloc_op_waits;
53049+
53050+extern atomic_unchecked_t fscache_n_retrievals; 52268+extern atomic_unchecked_t fscache_n_retrievals;
53051+extern atomic_unchecked_t fscache_n_retrievals_ok; 52269+extern atomic_unchecked_t fscache_n_retrievals_ok;
53052+extern atomic_unchecked_t fscache_n_retrievals_wait; 52270+extern atomic_unchecked_t fscache_n_retrievals_wait;
@@ -53057,7 +52275,17 @@ index ee38fef..0a326d4 100644
53057+extern atomic_unchecked_t fscache_n_retrievals_object_dead; 52275+extern atomic_unchecked_t fscache_n_retrievals_object_dead;
53058+extern atomic_unchecked_t fscache_n_retrieval_ops; 52276+extern atomic_unchecked_t fscache_n_retrieval_ops;
53059+extern atomic_unchecked_t fscache_n_retrieval_op_waits; 52277+extern atomic_unchecked_t fscache_n_retrieval_op_waits;
53060+ 52278
52279-extern atomic_t fscache_n_stores;
52280-extern atomic_t fscache_n_stores_ok;
52281-extern atomic_t fscache_n_stores_again;
52282-extern atomic_t fscache_n_stores_nobufs;
52283-extern atomic_t fscache_n_stores_oom;
52284-extern atomic_t fscache_n_store_ops;
52285-extern atomic_t fscache_n_store_calls;
52286-extern atomic_t fscache_n_store_pages;
52287-extern atomic_t fscache_n_store_radix_deletes;
52288-extern atomic_t fscache_n_store_pages_over_limit;
53061+extern atomic_unchecked_t fscache_n_stores; 52289+extern atomic_unchecked_t fscache_n_stores;
53062+extern atomic_unchecked_t fscache_n_stores_ok; 52290+extern atomic_unchecked_t fscache_n_stores_ok;
53063+extern atomic_unchecked_t fscache_n_stores_again; 52291+extern atomic_unchecked_t fscache_n_stores_again;
@@ -53068,39 +52296,73 @@ index ee38fef..0a326d4 100644
53068+extern atomic_unchecked_t fscache_n_store_pages; 52296+extern atomic_unchecked_t fscache_n_store_pages;
53069+extern atomic_unchecked_t fscache_n_store_radix_deletes; 52297+extern atomic_unchecked_t fscache_n_store_radix_deletes;
53070+extern atomic_unchecked_t fscache_n_store_pages_over_limit; 52298+extern atomic_unchecked_t fscache_n_store_pages_over_limit;
53071+ 52299
52300-extern atomic_t fscache_n_store_vmscan_not_storing;
52301-extern atomic_t fscache_n_store_vmscan_gone;
52302-extern atomic_t fscache_n_store_vmscan_busy;
52303-extern atomic_t fscache_n_store_vmscan_cancelled;
52304-extern atomic_t fscache_n_store_vmscan_wait;
53072+extern atomic_unchecked_t fscache_n_store_vmscan_not_storing; 52305+extern atomic_unchecked_t fscache_n_store_vmscan_not_storing;
53073+extern atomic_unchecked_t fscache_n_store_vmscan_gone; 52306+extern atomic_unchecked_t fscache_n_store_vmscan_gone;
53074+extern atomic_unchecked_t fscache_n_store_vmscan_busy; 52307+extern atomic_unchecked_t fscache_n_store_vmscan_busy;
53075+extern atomic_unchecked_t fscache_n_store_vmscan_cancelled; 52308+extern atomic_unchecked_t fscache_n_store_vmscan_cancelled;
53076+extern atomic_unchecked_t fscache_n_store_vmscan_wait; 52309+extern atomic_unchecked_t fscache_n_store_vmscan_wait;
53077+ 52310
52311-extern atomic_t fscache_n_marks;
52312-extern atomic_t fscache_n_uncaches;
53078+extern atomic_unchecked_t fscache_n_marks; 52313+extern atomic_unchecked_t fscache_n_marks;
53079+extern atomic_unchecked_t fscache_n_uncaches; 52314+extern atomic_unchecked_t fscache_n_uncaches;
53080+ 52315
52316-extern atomic_t fscache_n_acquires;
52317-extern atomic_t fscache_n_acquires_null;
52318-extern atomic_t fscache_n_acquires_no_cache;
52319-extern atomic_t fscache_n_acquires_ok;
52320-extern atomic_t fscache_n_acquires_nobufs;
52321-extern atomic_t fscache_n_acquires_oom;
53081+extern atomic_unchecked_t fscache_n_acquires; 52322+extern atomic_unchecked_t fscache_n_acquires;
53082+extern atomic_unchecked_t fscache_n_acquires_null; 52323+extern atomic_unchecked_t fscache_n_acquires_null;
53083+extern atomic_unchecked_t fscache_n_acquires_no_cache; 52324+extern atomic_unchecked_t fscache_n_acquires_no_cache;
53084+extern atomic_unchecked_t fscache_n_acquires_ok; 52325+extern atomic_unchecked_t fscache_n_acquires_ok;
53085+extern atomic_unchecked_t fscache_n_acquires_nobufs; 52326+extern atomic_unchecked_t fscache_n_acquires_nobufs;
53086+extern atomic_unchecked_t fscache_n_acquires_oom; 52327+extern atomic_unchecked_t fscache_n_acquires_oom;
53087+ 52328
52329-extern atomic_t fscache_n_invalidates;
52330-extern atomic_t fscache_n_invalidates_run;
53088+extern atomic_unchecked_t fscache_n_invalidates; 52331+extern atomic_unchecked_t fscache_n_invalidates;
53089+extern atomic_unchecked_t fscache_n_invalidates_run; 52332+extern atomic_unchecked_t fscache_n_invalidates_run;
53090+ 52333
52334-extern atomic_t fscache_n_updates;
52335-extern atomic_t fscache_n_updates_null;
52336-extern atomic_t fscache_n_updates_run;
53091+extern atomic_unchecked_t fscache_n_updates; 52337+extern atomic_unchecked_t fscache_n_updates;
53092+extern atomic_unchecked_t fscache_n_updates_null; 52338+extern atomic_unchecked_t fscache_n_updates_null;
53093+extern atomic_unchecked_t fscache_n_updates_run; 52339+extern atomic_unchecked_t fscache_n_updates_run;
53094+ 52340
52341-extern atomic_t fscache_n_relinquishes;
52342-extern atomic_t fscache_n_relinquishes_null;
52343-extern atomic_t fscache_n_relinquishes_waitcrt;
52344-extern atomic_t fscache_n_relinquishes_retire;
53095+extern atomic_unchecked_t fscache_n_relinquishes; 52345+extern atomic_unchecked_t fscache_n_relinquishes;
53096+extern atomic_unchecked_t fscache_n_relinquishes_null; 52346+extern atomic_unchecked_t fscache_n_relinquishes_null;
53097+extern atomic_unchecked_t fscache_n_relinquishes_waitcrt; 52347+extern atomic_unchecked_t fscache_n_relinquishes_waitcrt;
53098+extern atomic_unchecked_t fscache_n_relinquishes_retire; 52348+extern atomic_unchecked_t fscache_n_relinquishes_retire;
53099+ 52349
52350-extern atomic_t fscache_n_cookie_index;
52351-extern atomic_t fscache_n_cookie_data;
52352-extern atomic_t fscache_n_cookie_special;
53100+extern atomic_unchecked_t fscache_n_cookie_index; 52353+extern atomic_unchecked_t fscache_n_cookie_index;
53101+extern atomic_unchecked_t fscache_n_cookie_data; 52354+extern atomic_unchecked_t fscache_n_cookie_data;
53102+extern atomic_unchecked_t fscache_n_cookie_special; 52355+extern atomic_unchecked_t fscache_n_cookie_special;
53103+ 52356
52357-extern atomic_t fscache_n_object_alloc;
52358-extern atomic_t fscache_n_object_no_alloc;
52359-extern atomic_t fscache_n_object_lookups;
52360-extern atomic_t fscache_n_object_lookups_negative;
52361-extern atomic_t fscache_n_object_lookups_positive;
52362-extern atomic_t fscache_n_object_lookups_timed_out;
52363-extern atomic_t fscache_n_object_created;
52364-extern atomic_t fscache_n_object_avail;
52365-extern atomic_t fscache_n_object_dead;
53104+extern atomic_unchecked_t fscache_n_object_alloc; 52366+extern atomic_unchecked_t fscache_n_object_alloc;
53105+extern atomic_unchecked_t fscache_n_object_no_alloc; 52367+extern atomic_unchecked_t fscache_n_object_no_alloc;
53106+extern atomic_unchecked_t fscache_n_object_lookups; 52368+extern atomic_unchecked_t fscache_n_object_lookups;
@@ -53110,7 +52372,11 @@ index ee38fef..0a326d4 100644
53110+extern atomic_unchecked_t fscache_n_object_created; 52372+extern atomic_unchecked_t fscache_n_object_created;
53111+extern atomic_unchecked_t fscache_n_object_avail; 52373+extern atomic_unchecked_t fscache_n_object_avail;
53112+extern atomic_unchecked_t fscache_n_object_dead; 52374+extern atomic_unchecked_t fscache_n_object_dead;
53113+ 52375
52376-extern atomic_t fscache_n_checkaux_none;
52377-extern atomic_t fscache_n_checkaux_okay;
52378-extern atomic_t fscache_n_checkaux_update;
52379-extern atomic_t fscache_n_checkaux_obsolete;
53114+extern atomic_unchecked_t fscache_n_checkaux_none; 52380+extern atomic_unchecked_t fscache_n_checkaux_none;
53115+extern atomic_unchecked_t fscache_n_checkaux_okay; 52381+extern atomic_unchecked_t fscache_n_checkaux_okay;
53116+extern atomic_unchecked_t fscache_n_checkaux_update; 52382+extern atomic_unchecked_t fscache_n_checkaux_update;
@@ -53807,13 +53073,27 @@ index 40d13c7..ddf52b9 100644
53807-atomic_t fscache_n_op_gc; 53073-atomic_t fscache_n_op_gc;
53808-atomic_t fscache_n_op_cancelled; 53074-atomic_t fscache_n_op_cancelled;
53809-atomic_t fscache_n_op_rejected; 53075-atomic_t fscache_n_op_rejected;
53810- 53076+atomic_unchecked_t fscache_n_op_pend;
53077+atomic_unchecked_t fscache_n_op_run;
53078+atomic_unchecked_t fscache_n_op_enqueue;
53079+atomic_unchecked_t fscache_n_op_requeue;
53080+atomic_unchecked_t fscache_n_op_deferred_release;
53081+atomic_unchecked_t fscache_n_op_release;
53082+atomic_unchecked_t fscache_n_op_gc;
53083+atomic_unchecked_t fscache_n_op_cancelled;
53084+atomic_unchecked_t fscache_n_op_rejected;
53085
53811-atomic_t fscache_n_attr_changed; 53086-atomic_t fscache_n_attr_changed;
53812-atomic_t fscache_n_attr_changed_ok; 53087-atomic_t fscache_n_attr_changed_ok;
53813-atomic_t fscache_n_attr_changed_nobufs; 53088-atomic_t fscache_n_attr_changed_nobufs;
53814-atomic_t fscache_n_attr_changed_nomem; 53089-atomic_t fscache_n_attr_changed_nomem;
53815-atomic_t fscache_n_attr_changed_calls; 53090-atomic_t fscache_n_attr_changed_calls;
53816- 53091+atomic_unchecked_t fscache_n_attr_changed;
53092+atomic_unchecked_t fscache_n_attr_changed_ok;
53093+atomic_unchecked_t fscache_n_attr_changed_nobufs;
53094+atomic_unchecked_t fscache_n_attr_changed_nomem;
53095+atomic_unchecked_t fscache_n_attr_changed_calls;
53096
53817-atomic_t fscache_n_allocs; 53097-atomic_t fscache_n_allocs;
53818-atomic_t fscache_n_allocs_ok; 53098-atomic_t fscache_n_allocs_ok;
53819-atomic_t fscache_n_allocs_wait; 53099-atomic_t fscache_n_allocs_wait;
@@ -53822,7 +53102,15 @@ index 40d13c7..ddf52b9 100644
53822-atomic_t fscache_n_allocs_object_dead; 53102-atomic_t fscache_n_allocs_object_dead;
53823-atomic_t fscache_n_alloc_ops; 53103-atomic_t fscache_n_alloc_ops;
53824-atomic_t fscache_n_alloc_op_waits; 53104-atomic_t fscache_n_alloc_op_waits;
53825- 53105+atomic_unchecked_t fscache_n_allocs;
53106+atomic_unchecked_t fscache_n_allocs_ok;
53107+atomic_unchecked_t fscache_n_allocs_wait;
53108+atomic_unchecked_t fscache_n_allocs_nobufs;
53109+atomic_unchecked_t fscache_n_allocs_intr;
53110+atomic_unchecked_t fscache_n_allocs_object_dead;
53111+atomic_unchecked_t fscache_n_alloc_ops;
53112+atomic_unchecked_t fscache_n_alloc_op_waits;
53113
53826-atomic_t fscache_n_retrievals; 53114-atomic_t fscache_n_retrievals;
53827-atomic_t fscache_n_retrievals_ok; 53115-atomic_t fscache_n_retrievals_ok;
53828-atomic_t fscache_n_retrievals_wait; 53116-atomic_t fscache_n_retrievals_wait;
@@ -53833,89 +53121,6 @@ index 40d13c7..ddf52b9 100644
53833-atomic_t fscache_n_retrievals_object_dead; 53121-atomic_t fscache_n_retrievals_object_dead;
53834-atomic_t fscache_n_retrieval_ops; 53122-atomic_t fscache_n_retrieval_ops;
53835-atomic_t fscache_n_retrieval_op_waits; 53123-atomic_t fscache_n_retrieval_op_waits;
53836-
53837-atomic_t fscache_n_stores;
53838-atomic_t fscache_n_stores_ok;
53839-atomic_t fscache_n_stores_again;
53840-atomic_t fscache_n_stores_nobufs;
53841-atomic_t fscache_n_stores_oom;
53842-atomic_t fscache_n_store_ops;
53843-atomic_t fscache_n_store_calls;
53844-atomic_t fscache_n_store_pages;
53845-atomic_t fscache_n_store_radix_deletes;
53846-atomic_t fscache_n_store_pages_over_limit;
53847-
53848-atomic_t fscache_n_store_vmscan_not_storing;
53849-atomic_t fscache_n_store_vmscan_gone;
53850-atomic_t fscache_n_store_vmscan_busy;
53851-atomic_t fscache_n_store_vmscan_cancelled;
53852-atomic_t fscache_n_store_vmscan_wait;
53853-
53854-atomic_t fscache_n_marks;
53855-atomic_t fscache_n_uncaches;
53856-
53857-atomic_t fscache_n_acquires;
53858-atomic_t fscache_n_acquires_null;
53859-atomic_t fscache_n_acquires_no_cache;
53860-atomic_t fscache_n_acquires_ok;
53861-atomic_t fscache_n_acquires_nobufs;
53862-atomic_t fscache_n_acquires_oom;
53863-
53864-atomic_t fscache_n_invalidates;
53865-atomic_t fscache_n_invalidates_run;
53866-
53867-atomic_t fscache_n_updates;
53868-atomic_t fscache_n_updates_null;
53869-atomic_t fscache_n_updates_run;
53870-
53871-atomic_t fscache_n_relinquishes;
53872-atomic_t fscache_n_relinquishes_null;
53873-atomic_t fscache_n_relinquishes_waitcrt;
53874-atomic_t fscache_n_relinquishes_retire;
53875-
53876-atomic_t fscache_n_cookie_index;
53877-atomic_t fscache_n_cookie_data;
53878-atomic_t fscache_n_cookie_special;
53879-
53880-atomic_t fscache_n_object_alloc;
53881-atomic_t fscache_n_object_no_alloc;
53882-atomic_t fscache_n_object_lookups;
53883-atomic_t fscache_n_object_lookups_negative;
53884-atomic_t fscache_n_object_lookups_positive;
53885-atomic_t fscache_n_object_lookups_timed_out;
53886-atomic_t fscache_n_object_created;
53887-atomic_t fscache_n_object_avail;
53888-atomic_t fscache_n_object_dead;
53889-
53890-atomic_t fscache_n_checkaux_none;
53891-atomic_t fscache_n_checkaux_okay;
53892-atomic_t fscache_n_checkaux_update;
53893-atomic_t fscache_n_checkaux_obsolete;
53894+atomic_unchecked_t fscache_n_op_pend;
53895+atomic_unchecked_t fscache_n_op_run;
53896+atomic_unchecked_t fscache_n_op_enqueue;
53897+atomic_unchecked_t fscache_n_op_requeue;
53898+atomic_unchecked_t fscache_n_op_deferred_release;
53899+atomic_unchecked_t fscache_n_op_release;
53900+atomic_unchecked_t fscache_n_op_gc;
53901+atomic_unchecked_t fscache_n_op_cancelled;
53902+atomic_unchecked_t fscache_n_op_rejected;
53903+
53904+atomic_unchecked_t fscache_n_attr_changed;
53905+atomic_unchecked_t fscache_n_attr_changed_ok;
53906+atomic_unchecked_t fscache_n_attr_changed_nobufs;
53907+atomic_unchecked_t fscache_n_attr_changed_nomem;
53908+atomic_unchecked_t fscache_n_attr_changed_calls;
53909+
53910+atomic_unchecked_t fscache_n_allocs;
53911+atomic_unchecked_t fscache_n_allocs_ok;
53912+atomic_unchecked_t fscache_n_allocs_wait;
53913+atomic_unchecked_t fscache_n_allocs_nobufs;
53914+atomic_unchecked_t fscache_n_allocs_intr;
53915+atomic_unchecked_t fscache_n_allocs_object_dead;
53916+atomic_unchecked_t fscache_n_alloc_ops;
53917+atomic_unchecked_t fscache_n_alloc_op_waits;
53918+
53919+atomic_unchecked_t fscache_n_retrievals; 53124+atomic_unchecked_t fscache_n_retrievals;
53920+atomic_unchecked_t fscache_n_retrievals_ok; 53125+atomic_unchecked_t fscache_n_retrievals_ok;
53921+atomic_unchecked_t fscache_n_retrievals_wait; 53126+atomic_unchecked_t fscache_n_retrievals_wait;
@@ -53926,7 +53131,17 @@ index 40d13c7..ddf52b9 100644
53926+atomic_unchecked_t fscache_n_retrievals_object_dead; 53131+atomic_unchecked_t fscache_n_retrievals_object_dead;
53927+atomic_unchecked_t fscache_n_retrieval_ops; 53132+atomic_unchecked_t fscache_n_retrieval_ops;
53928+atomic_unchecked_t fscache_n_retrieval_op_waits; 53133+atomic_unchecked_t fscache_n_retrieval_op_waits;
53929+ 53134
53135-atomic_t fscache_n_stores;
53136-atomic_t fscache_n_stores_ok;
53137-atomic_t fscache_n_stores_again;
53138-atomic_t fscache_n_stores_nobufs;
53139-atomic_t fscache_n_stores_oom;
53140-atomic_t fscache_n_store_ops;
53141-atomic_t fscache_n_store_calls;
53142-atomic_t fscache_n_store_pages;
53143-atomic_t fscache_n_store_radix_deletes;
53144-atomic_t fscache_n_store_pages_over_limit;
53930+atomic_unchecked_t fscache_n_stores; 53145+atomic_unchecked_t fscache_n_stores;
53931+atomic_unchecked_t fscache_n_stores_ok; 53146+atomic_unchecked_t fscache_n_stores_ok;
53932+atomic_unchecked_t fscache_n_stores_again; 53147+atomic_unchecked_t fscache_n_stores_again;
@@ -53937,39 +53152,73 @@ index 40d13c7..ddf52b9 100644
53937+atomic_unchecked_t fscache_n_store_pages; 53152+atomic_unchecked_t fscache_n_store_pages;
53938+atomic_unchecked_t fscache_n_store_radix_deletes; 53153+atomic_unchecked_t fscache_n_store_radix_deletes;
53939+atomic_unchecked_t fscache_n_store_pages_over_limit; 53154+atomic_unchecked_t fscache_n_store_pages_over_limit;
53940+ 53155
53156-atomic_t fscache_n_store_vmscan_not_storing;
53157-atomic_t fscache_n_store_vmscan_gone;
53158-atomic_t fscache_n_store_vmscan_busy;
53159-atomic_t fscache_n_store_vmscan_cancelled;
53160-atomic_t fscache_n_store_vmscan_wait;
53941+atomic_unchecked_t fscache_n_store_vmscan_not_storing; 53161+atomic_unchecked_t fscache_n_store_vmscan_not_storing;
53942+atomic_unchecked_t fscache_n_store_vmscan_gone; 53162+atomic_unchecked_t fscache_n_store_vmscan_gone;
53943+atomic_unchecked_t fscache_n_store_vmscan_busy; 53163+atomic_unchecked_t fscache_n_store_vmscan_busy;
53944+atomic_unchecked_t fscache_n_store_vmscan_cancelled; 53164+atomic_unchecked_t fscache_n_store_vmscan_cancelled;
53945+atomic_unchecked_t fscache_n_store_vmscan_wait; 53165+atomic_unchecked_t fscache_n_store_vmscan_wait;
53946+ 53166
53167-atomic_t fscache_n_marks;
53168-atomic_t fscache_n_uncaches;
53947+atomic_unchecked_t fscache_n_marks; 53169+atomic_unchecked_t fscache_n_marks;
53948+atomic_unchecked_t fscache_n_uncaches; 53170+atomic_unchecked_t fscache_n_uncaches;
53949+ 53171
53172-atomic_t fscache_n_acquires;
53173-atomic_t fscache_n_acquires_null;
53174-atomic_t fscache_n_acquires_no_cache;
53175-atomic_t fscache_n_acquires_ok;
53176-atomic_t fscache_n_acquires_nobufs;
53177-atomic_t fscache_n_acquires_oom;
53950+atomic_unchecked_t fscache_n_acquires; 53178+atomic_unchecked_t fscache_n_acquires;
53951+atomic_unchecked_t fscache_n_acquires_null; 53179+atomic_unchecked_t fscache_n_acquires_null;
53952+atomic_unchecked_t fscache_n_acquires_no_cache; 53180+atomic_unchecked_t fscache_n_acquires_no_cache;
53953+atomic_unchecked_t fscache_n_acquires_ok; 53181+atomic_unchecked_t fscache_n_acquires_ok;
53954+atomic_unchecked_t fscache_n_acquires_nobufs; 53182+atomic_unchecked_t fscache_n_acquires_nobufs;
53955+atomic_unchecked_t fscache_n_acquires_oom; 53183+atomic_unchecked_t fscache_n_acquires_oom;
53956+ 53184
53185-atomic_t fscache_n_invalidates;
53186-atomic_t fscache_n_invalidates_run;
53957+atomic_unchecked_t fscache_n_invalidates; 53187+atomic_unchecked_t fscache_n_invalidates;
53958+atomic_unchecked_t fscache_n_invalidates_run; 53188+atomic_unchecked_t fscache_n_invalidates_run;
53959+ 53189
53190-atomic_t fscache_n_updates;
53191-atomic_t fscache_n_updates_null;
53192-atomic_t fscache_n_updates_run;
53960+atomic_unchecked_t fscache_n_updates; 53193+atomic_unchecked_t fscache_n_updates;
53961+atomic_unchecked_t fscache_n_updates_null; 53194+atomic_unchecked_t fscache_n_updates_null;
53962+atomic_unchecked_t fscache_n_updates_run; 53195+atomic_unchecked_t fscache_n_updates_run;
53963+ 53196
53197-atomic_t fscache_n_relinquishes;
53198-atomic_t fscache_n_relinquishes_null;
53199-atomic_t fscache_n_relinquishes_waitcrt;
53200-atomic_t fscache_n_relinquishes_retire;
53964+atomic_unchecked_t fscache_n_relinquishes; 53201+atomic_unchecked_t fscache_n_relinquishes;
53965+atomic_unchecked_t fscache_n_relinquishes_null; 53202+atomic_unchecked_t fscache_n_relinquishes_null;
53966+atomic_unchecked_t fscache_n_relinquishes_waitcrt; 53203+atomic_unchecked_t fscache_n_relinquishes_waitcrt;
53967+atomic_unchecked_t fscache_n_relinquishes_retire; 53204+atomic_unchecked_t fscache_n_relinquishes_retire;
53968+ 53205
53206-atomic_t fscache_n_cookie_index;
53207-atomic_t fscache_n_cookie_data;
53208-atomic_t fscache_n_cookie_special;
53969+atomic_unchecked_t fscache_n_cookie_index; 53209+atomic_unchecked_t fscache_n_cookie_index;
53970+atomic_unchecked_t fscache_n_cookie_data; 53210+atomic_unchecked_t fscache_n_cookie_data;
53971+atomic_unchecked_t fscache_n_cookie_special; 53211+atomic_unchecked_t fscache_n_cookie_special;
53972+ 53212
53213-atomic_t fscache_n_object_alloc;
53214-atomic_t fscache_n_object_no_alloc;
53215-atomic_t fscache_n_object_lookups;
53216-atomic_t fscache_n_object_lookups_negative;
53217-atomic_t fscache_n_object_lookups_positive;
53218-atomic_t fscache_n_object_lookups_timed_out;
53219-atomic_t fscache_n_object_created;
53220-atomic_t fscache_n_object_avail;
53221-atomic_t fscache_n_object_dead;
53973+atomic_unchecked_t fscache_n_object_alloc; 53222+atomic_unchecked_t fscache_n_object_alloc;
53974+atomic_unchecked_t fscache_n_object_no_alloc; 53223+atomic_unchecked_t fscache_n_object_no_alloc;
53975+atomic_unchecked_t fscache_n_object_lookups; 53224+atomic_unchecked_t fscache_n_object_lookups;
@@ -53979,7 +53228,11 @@ index 40d13c7..ddf52b9 100644
53979+atomic_unchecked_t fscache_n_object_created; 53228+atomic_unchecked_t fscache_n_object_created;
53980+atomic_unchecked_t fscache_n_object_avail; 53229+atomic_unchecked_t fscache_n_object_avail;
53981+atomic_unchecked_t fscache_n_object_dead; 53230+atomic_unchecked_t fscache_n_object_dead;
53982+ 53231
53232-atomic_t fscache_n_checkaux_none;
53233-atomic_t fscache_n_checkaux_okay;
53234-atomic_t fscache_n_checkaux_update;
53235-atomic_t fscache_n_checkaux_obsolete;
53983+atomic_unchecked_t fscache_n_checkaux_none; 53236+atomic_unchecked_t fscache_n_checkaux_none;
53984+atomic_unchecked_t fscache_n_checkaux_okay; 53237+atomic_unchecked_t fscache_n_checkaux_okay;
53985+atomic_unchecked_t fscache_n_checkaux_update; 53238+atomic_unchecked_t fscache_n_checkaux_update;
@@ -54186,10 +53439,10 @@ index 40d13c7..ddf52b9 100644
54186 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n", 53439 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
54187 atomic_read(&fscache_n_cop_alloc_object), 53440 atomic_read(&fscache_n_cop_alloc_object),
54188diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c 53441diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
54189index 6f96a8d..6019bb9 100644 53442index aef34b1..59bfd7b 100644
54190--- a/fs/fuse/cuse.c 53443--- a/fs/fuse/cuse.c
54191+++ b/fs/fuse/cuse.c 53444+++ b/fs/fuse/cuse.c
54192@@ -597,10 +597,12 @@ static int __init cuse_init(void) 53445@@ -600,10 +600,12 @@ static int __init cuse_init(void)
54193 INIT_LIST_HEAD(&cuse_conntbl[i]); 53446 INIT_LIST_HEAD(&cuse_conntbl[i]);
54194 53447
54195 /* inherit and extend fuse_dev_operations */ 53448 /* inherit and extend fuse_dev_operations */
@@ -54207,10 +53460,10 @@ index 6f96a8d..6019bb9 100644
54207 cuse_class = class_create(THIS_MODULE, "cuse"); 53460 cuse_class = class_create(THIS_MODULE, "cuse");
54208 if (IS_ERR(cuse_class)) 53461 if (IS_ERR(cuse_class))
54209diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c 53462diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
54210index 11dfa0c..6f64416 100644 53463index 1d55f94..088da65 100644
54211--- a/fs/fuse/dev.c 53464--- a/fs/fuse/dev.c
54212+++ b/fs/fuse/dev.c 53465+++ b/fs/fuse/dev.c
54213@@ -1294,7 +1294,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos, 53466@@ -1339,7 +1339,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
54214 ret = 0; 53467 ret = 0;
54215 pipe_lock(pipe); 53468 pipe_lock(pipe);
54216 53469
@@ -54219,77 +53472,20 @@ index 11dfa0c..6f64416 100644
54219 send_sig(SIGPIPE, current, 0); 53472 send_sig(SIGPIPE, current, 0);
54220 if (!ret) 53473 if (!ret)
54221 ret = -EPIPE; 53474 ret = -EPIPE;
53475@@ -1364,7 +1364,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
53476 page_nr++;
53477 ret += buf->len;
53478
53479- if (pipe->files)
53480+ if (atomic_read(&pipe->files))
53481 do_wakeup = 1;
53482 }
53483
54222diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c 53484diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
54223index 185c479..2a4c1b2 100644 53485index 5b12746..b481b03 100644
54224--- a/fs/fuse/dir.c 53486--- a/fs/fuse/dir.c
54225+++ b/fs/fuse/dir.c 53487+++ b/fs/fuse/dir.c
54226@@ -1225,13 +1225,29 @@ static int fuse_direntplus_link(struct file *file, 53488@@ -1437,7 +1437,7 @@ static char *read_link(struct dentry *dentry)
54227 if (name.name[1] == '.' && name.len == 2)
54228 return 0;
54229 }
54230+
54231+ if (invalid_nodeid(o->nodeid))
54232+ return -EIO;
54233+ if (!fuse_valid_type(o->attr.mode))
54234+ return -EIO;
54235+
54236 fc = get_fuse_conn(dir);
54237
54238 name.hash = full_name_hash(name.name, name.len);
54239 dentry = d_lookup(parent, &name);
54240- if (dentry && dentry->d_inode) {
54241+ if (dentry) {
54242 inode = dentry->d_inode;
54243- if (get_node_id(inode) == o->nodeid) {
54244+ if (!inode) {
54245+ d_drop(dentry);
54246+ } else if (get_node_id(inode) != o->nodeid ||
54247+ ((o->attr.mode ^ inode->i_mode) & S_IFMT)) {
54248+ err = d_invalidate(dentry);
54249+ if (err)
54250+ goto out;
54251+ } else if (is_bad_inode(inode)) {
54252+ err = -EIO;
54253+ goto out;
54254+ } else {
54255 struct fuse_inode *fi;
54256 fi = get_fuse_inode(inode);
54257 spin_lock(&fc->lock);
54258@@ -1244,9 +1260,6 @@ static int fuse_direntplus_link(struct file *file,
54259 */
54260 goto found;
54261 }
54262- err = d_invalidate(dentry);
54263- if (err)
54264- goto out;
54265 dput(dentry);
54266 dentry = NULL;
54267 }
54268@@ -1261,10 +1274,19 @@ static int fuse_direntplus_link(struct file *file,
54269 if (!inode)
54270 goto out;
54271
54272- alias = d_materialise_unique(dentry, inode);
54273- err = PTR_ERR(alias);
54274- if (IS_ERR(alias))
54275- goto out;
54276+ if (S_ISDIR(inode->i_mode)) {
54277+ mutex_lock(&fc->inst_mutex);
54278+ alias = fuse_d_add_directory(dentry, inode);
54279+ mutex_unlock(&fc->inst_mutex);
54280+ err = PTR_ERR(alias);
54281+ if (IS_ERR(alias)) {
54282+ iput(inode);
54283+ goto out;
54284+ }
54285+ } else {
54286+ alias = d_splice_alias(inode, dentry);
54287+ }
54288+
54289 if (alias) {
54290 dput(dentry);
54291 dentry = alias;
54292@@ -1415,7 +1437,7 @@ static char *read_link(struct dentry *dentry)
54293 return link; 53489 return link;
54294 } 53490 }
54295 53491
@@ -54299,10 +53495,10 @@ index 185c479..2a4c1b2 100644
54299 if (!IS_ERR(link)) 53495 if (!IS_ERR(link))
54300 free_page((unsigned long) link); 53496 free_page((unsigned long) link);
54301diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c 53497diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
54302index cc00bd1..3edb692 100644 53498index 62b484e..0f9a140 100644
54303--- a/fs/gfs2/inode.c 53499--- a/fs/gfs2/inode.c
54304+++ b/fs/gfs2/inode.c 53500+++ b/fs/gfs2/inode.c
54305@@ -1500,7 +1500,7 @@ out: 53501@@ -1441,7 +1441,7 @@ out:
54306 53502
54307 static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p) 53503 static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
54308 { 53504 {
@@ -54362,7 +53558,7 @@ index a3f868a..bb308ae 100644
54362 static int can_do_hugetlb_shm(void) 53558 static int can_do_hugetlb_shm(void)
54363 { 53559 {
54364diff --git a/fs/inode.c b/fs/inode.c 53560diff --git a/fs/inode.c b/fs/inode.c
54365index a898b3d..9b5a214 100644 53561index 00d5fc3..98ce7d7 100644
54366--- a/fs/inode.c 53562--- a/fs/inode.c
54367+++ b/fs/inode.c 53563+++ b/fs/inode.c
54368@@ -878,8 +878,8 @@ unsigned int get_next_ino(void) 53564@@ -878,8 +878,8 @@ unsigned int get_next_ino(void)
@@ -54405,10 +53601,10 @@ index a6597d6..41b30ec 100644
54405 53601
54406 /* 53602 /*
54407diff --git a/fs/jfs/super.c b/fs/jfs/super.c 53603diff --git a/fs/jfs/super.c b/fs/jfs/super.c
54408index 2003e83..40db287 100644 53604index 788e0a9..8433098 100644
54409--- a/fs/jfs/super.c 53605--- a/fs/jfs/super.c
54410+++ b/fs/jfs/super.c 53606+++ b/fs/jfs/super.c
54411@@ -856,7 +856,7 @@ static int __init init_jfs_fs(void) 53607@@ -878,7 +878,7 @@ static int __init init_jfs_fs(void)
54412 53608
54413 jfs_inode_cachep = 53609 jfs_inode_cachep =
54414 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0, 53610 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
@@ -54476,36 +53672,6 @@ index a2aa97d..10d6c41 100644
54476 if (IS_ERR(nlmsvc_task)) { 53672 if (IS_ERR(nlmsvc_task)) {
54477 error = PTR_ERR(nlmsvc_task); 53673 error = PTR_ERR(nlmsvc_task);
54478 printk(KERN_WARNING 53674 printk(KERN_WARNING
54479diff --git a/fs/lockd/svclock.c b/fs/lockd/svclock.c
54480index e703318..8ebd3f5 100644
54481--- a/fs/lockd/svclock.c
54482+++ b/fs/lockd/svclock.c
54483@@ -939,6 +939,7 @@ nlmsvc_retry_blocked(void)
54484 unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
54485 struct nlm_block *block;
54486
54487+ spin_lock(&nlm_blocked_lock);
54488 while (!list_empty(&nlm_blocked) && !kthread_should_stop()) {
54489 block = list_entry(nlm_blocked.next, struct nlm_block, b_list);
54490
54491@@ -948,6 +949,7 @@ nlmsvc_retry_blocked(void)
54492 timeout = block->b_when - jiffies;
54493 break;
54494 }
54495+ spin_unlock(&nlm_blocked_lock);
54496
54497 dprintk("nlmsvc_retry_blocked(%p, when=%ld)\n",
54498 block, block->b_when);
54499@@ -957,7 +959,9 @@ nlmsvc_retry_blocked(void)
54500 retry_deferred_block(block);
54501 } else
54502 nlmsvc_grant_blocked(block);
54503+ spin_lock(&nlm_blocked_lock);
54504 }
54505+ spin_unlock(&nlm_blocked_lock);
54506
54507 return timeout;
54508 }
54509diff --git a/fs/locks.c b/fs/locks.c 53675diff --git a/fs/locks.c b/fs/locks.c
54510index cb424a4..850e4dd 100644 53676index cb424a4..850e4dd 100644
54511--- a/fs/locks.c 53677--- a/fs/locks.c
@@ -54532,7 +53698,7 @@ index cb424a4..850e4dd 100644
54532 53698
54533 lock_flocks(); 53699 lock_flocks();
54534diff --git a/fs/namei.c b/fs/namei.c 53700diff --git a/fs/namei.c b/fs/namei.c
54535index 85e40d1..b66744e 100644 53701index 9ed9361..2b72db1 100644
54536--- a/fs/namei.c 53702--- a/fs/namei.c
54537+++ b/fs/namei.c 53703+++ b/fs/namei.c
54538@@ -319,16 +319,32 @@ int generic_permission(struct inode *inode, int mask) 53704@@ -319,16 +319,32 @@ int generic_permission(struct inode *inode, int mask)
@@ -54647,7 +53813,7 @@ index 85e40d1..b66744e 100644
54647+ } 53813+ }
54648+ 53814+
54649 if (!err && nd->flags & LOOKUP_DIRECTORY) { 53815 if (!err && nd->flags & LOOKUP_DIRECTORY) {
54650 if (!nd->inode->i_op->lookup) { 53816 if (!can_lookup(nd->inode)) {
54651 path_put(&nd->path); 53817 path_put(&nd->path);
54652@@ -2002,8 +2027,15 @@ static int filename_lookup(int dfd, struct filename *name, 53818@@ -2002,8 +2027,15 @@ static int filename_lookup(int dfd, struct filename *name,
54653 retval = path_lookupat(dfd, name->name, 53819 retval = path_lookupat(dfd, name->name,
@@ -55106,10 +54272,10 @@ index 85e40d1..b66744e 100644
55106 out: 54272 out:
55107 return len; 54273 return len;
55108diff --git a/fs/namespace.c b/fs/namespace.c 54274diff --git a/fs/namespace.c b/fs/namespace.c
55109index e945b81..fc018e2 100644 54275index 7b1ca9b..6faeccf 100644
55110--- a/fs/namespace.c 54276--- a/fs/namespace.c
55111+++ b/fs/namespace.c 54277+++ b/fs/namespace.c
55112@@ -1219,6 +1219,9 @@ static int do_umount(struct mount *mnt, int flags) 54278@@ -1265,6 +1265,9 @@ static int do_umount(struct mount *mnt, int flags)
55113 if (!(sb->s_flags & MS_RDONLY)) 54279 if (!(sb->s_flags & MS_RDONLY))
55114 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0); 54280 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
55115 up_write(&sb->s_umount); 54281 up_write(&sb->s_umount);
@@ -55119,17 +54285,17 @@ index e945b81..fc018e2 100644
55119 return retval; 54285 return retval;
55120 } 54286 }
55121 54287
55122@@ -1238,6 +1241,9 @@ static int do_umount(struct mount *mnt, int flags) 54288@@ -1283,6 +1286,9 @@ static int do_umount(struct mount *mnt, int flags)
54289 }
55123 br_write_unlock(&vfsmount_lock); 54290 br_write_unlock(&vfsmount_lock);
55124 up_write(&namespace_sem); 54291 namespace_unlock();
55125 release_mounts(&umount_list);
55126+ 54292+
55127+ gr_log_unmount(mnt->mnt_devname, retval); 54293+ gr_log_unmount(mnt->mnt_devname, retval);
55128+ 54294+
55129 return retval; 54295 return retval;
55130 } 54296 }
55131 54297
55132@@ -1257,7 +1263,7 @@ static inline bool may_mount(void) 54298@@ -1302,7 +1308,7 @@ static inline bool may_mount(void)
55133 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD 54299 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
55134 */ 54300 */
55135 54301
@@ -55138,7 +54304,7 @@ index e945b81..fc018e2 100644
55138 { 54304 {
55139 struct path path; 54305 struct path path;
55140 struct mount *mnt; 54306 struct mount *mnt;
55141@@ -1297,7 +1303,7 @@ out: 54307@@ -1342,7 +1348,7 @@ out:
55142 /* 54308 /*
55143 * The 2.0 compatible umount. No flags. 54309 * The 2.0 compatible umount. No flags.
55144 */ 54310 */
@@ -55147,7 +54313,7 @@ index e945b81..fc018e2 100644
55147 { 54313 {
55148 return sys_umount(name, 0); 54314 return sys_umount(name, 0);
55149 } 54315 }
55150@@ -2267,6 +2273,16 @@ long do_mount(const char *dev_name, const char *dir_name, 54316@@ -2313,6 +2319,16 @@ long do_mount(const char *dev_name, const char *dir_name,
55151 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT | 54317 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
55152 MS_STRICTATIME); 54318 MS_STRICTATIME);
55153 54319
@@ -55164,7 +54330,7 @@ index e945b81..fc018e2 100644
55164 if (flags & MS_REMOUNT) 54330 if (flags & MS_REMOUNT)
55165 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, 54331 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
55166 data_page); 54332 data_page);
55167@@ -2281,6 +2297,9 @@ long do_mount(const char *dev_name, const char *dir_name, 54333@@ -2327,6 +2343,9 @@ long do_mount(const char *dev_name, const char *dir_name,
55168 dev_name, data_page); 54334 dev_name, data_page);
55169 dput_out: 54335 dput_out:
55170 path_put(&path); 54336 path_put(&path);
@@ -55174,7 +54340,7 @@ index e945b81..fc018e2 100644
55174 return retval; 54340 return retval;
55175 } 54341 }
55176 54342
55177@@ -2454,8 +2473,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name) 54343@@ -2500,8 +2519,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
55178 } 54344 }
55179 EXPORT_SYMBOL(mount_subtree); 54345 EXPORT_SYMBOL(mount_subtree);
55180 54346
@@ -55185,7 +54351,7 @@ index e945b81..fc018e2 100644
55185 { 54351 {
55186 int ret; 54352 int ret;
55187 char *kernel_type; 54353 char *kernel_type;
55188@@ -2567,6 +2586,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root, 54354@@ -2614,6 +2633,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
55189 if (error) 54355 if (error)
55190 goto out2; 54356 goto out2;
55191 54357
@@ -55195,9 +54361,9 @@ index e945b81..fc018e2 100644
55195+ } 54361+ }
55196+ 54362+
55197 get_fs_root(current->fs, &root); 54363 get_fs_root(current->fs, &root);
55198 error = lock_mount(&old); 54364 old_mp = lock_mount(&old);
55199 if (error) 54365 error = PTR_ERR(old_mp);
55200@@ -2815,7 +2839,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns) 54366@@ -2864,7 +2888,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns)
55201 !nsown_capable(CAP_SYS_ADMIN)) 54367 !nsown_capable(CAP_SYS_ADMIN))
55202 return -EPERM; 54368 return -EPERM;
55203 54369
@@ -55207,10 +54373,10 @@ index e945b81..fc018e2 100644
55207 54373
55208 get_mnt_ns(mnt_ns); 54374 get_mnt_ns(mnt_ns);
55209diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c 54375diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
55210index 5088b57..eabd719 100644 54376index cff089a..4c3d57a 100644
55211--- a/fs/nfs/callback.c 54377--- a/fs/nfs/callback.c
55212+++ b/fs/nfs/callback.c 54378+++ b/fs/nfs/callback.c
55213@@ -208,7 +208,6 @@ static int nfs_callback_start_svc(int minorversion, struct rpc_xprt *xprt, 54379@@ -211,7 +211,6 @@ static int nfs_callback_start_svc(int minorversion, struct rpc_xprt *xprt,
55214 struct svc_rqst *rqstp; 54380 struct svc_rqst *rqstp;
55215 int (*callback_svc)(void *vrqstp); 54381 int (*callback_svc)(void *vrqstp);
55216 struct nfs_callback_data *cb_info = &nfs_callback_info[minorversion]; 54382 struct nfs_callback_data *cb_info = &nfs_callback_info[minorversion];
@@ -55218,7 +54384,7 @@ index 5088b57..eabd719 100644
55218 int ret; 54384 int ret;
55219 54385
55220 nfs_callback_bc_serv(minorversion, xprt, serv); 54386 nfs_callback_bc_serv(minorversion, xprt, serv);
55221@@ -232,10 +231,9 @@ static int nfs_callback_start_svc(int minorversion, struct rpc_xprt *xprt, 54387@@ -235,10 +234,9 @@ static int nfs_callback_start_svc(int minorversion, struct rpc_xprt *xprt,
55222 54388
55223 svc_sock_update_bufs(serv); 54389 svc_sock_update_bufs(serv);
55224 54390
@@ -55231,7 +54397,7 @@ index 5088b57..eabd719 100644
55231 ret = PTR_ERR(cb_info->task); 54397 ret = PTR_ERR(cb_info->task);
55232 svc_exit_thread(cb_info->rqst); 54398 svc_exit_thread(cb_info->rqst);
55233diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c 54399diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
55234index 59461c9..b17c57e 100644 54400index a35582c..ebbdcd5 100644
55235--- a/fs/nfs/callback_xdr.c 54401--- a/fs/nfs/callback_xdr.c
55236+++ b/fs/nfs/callback_xdr.c 54402+++ b/fs/nfs/callback_xdr.c
55237@@ -51,7 +51,7 @@ struct callback_op { 54403@@ -51,7 +51,7 @@ struct callback_op {
@@ -55244,10 +54410,10 @@ index 59461c9..b17c57e 100644
55244 static struct callback_op callback_ops[]; 54410 static struct callback_op callback_ops[];
55245 54411
55246diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c 54412diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
55247index 1f94167..79c4ce4 100644 54413index c1c7a9d..7afa0b8 100644
55248--- a/fs/nfs/inode.c 54414--- a/fs/nfs/inode.c
55249+++ b/fs/nfs/inode.c 54415+++ b/fs/nfs/inode.c
55250@@ -1041,16 +1041,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt 54416@@ -1043,16 +1043,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
55251 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode); 54417 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
55252 } 54418 }
55253 54419
@@ -55268,10 +54434,10 @@ index 1f94167..79c4ce4 100644
55268 54434
55269 void nfs_fattr_init(struct nfs_fattr *fattr) 54435 void nfs_fattr_init(struct nfs_fattr *fattr)
55270diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c 54436diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
55271index d41a351..7899577 100644 54437index 2c37442..9b9538b 100644
55272--- a/fs/nfs/nfs4state.c 54438--- a/fs/nfs/nfs4state.c
55273+++ b/fs/nfs/nfs4state.c 54439+++ b/fs/nfs/nfs4state.c
55274@@ -1182,7 +1182,7 @@ void nfs4_schedule_state_manager(struct nfs_client *clp) 54440@@ -1193,7 +1193,7 @@ void nfs4_schedule_state_manager(struct nfs_client *clp)
55275 snprintf(buf, sizeof(buf), "%s-manager", 54441 snprintf(buf, sizeof(buf), "%s-manager",
55276 rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_ADDR)); 54442 rpc_peeraddr2str(clp->cl_rpcclient, RPC_DISPLAY_ADDR));
55277 rcu_read_unlock(); 54443 rcu_read_unlock();
@@ -55281,10 +54447,10 @@ index d41a351..7899577 100644
55281 printk(KERN_ERR "%s: kthread_run: %ld\n", 54447 printk(KERN_ERR "%s: kthread_run: %ld\n",
55282 __func__, PTR_ERR(task)); 54448 __func__, PTR_ERR(task));
55283diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c 54449diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
55284index d401d01..10b3e62 100644 54450index 27d74a2..c4c2a73 100644
55285--- a/fs/nfsd/nfs4proc.c 54451--- a/fs/nfsd/nfs4proc.c
55286+++ b/fs/nfsd/nfs4proc.c 54452+++ b/fs/nfsd/nfs4proc.c
55287@@ -1109,7 +1109,7 @@ struct nfsd4_operation { 54453@@ -1126,7 +1126,7 @@ struct nfsd4_operation {
55288 nfsd4op_rsize op_rsize_bop; 54454 nfsd4op_rsize op_rsize_bop;
55289 stateid_getter op_get_currentstateid; 54455 stateid_getter op_get_currentstateid;
55290 stateid_setter op_set_currentstateid; 54456 stateid_setter op_set_currentstateid;
@@ -55294,10 +54460,10 @@ index d401d01..10b3e62 100644
55294 static struct nfsd4_operation nfsd4_ops[]; 54460 static struct nfsd4_operation nfsd4_ops[];
55295 54461
55296diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c 54462diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
55297index a49c11b..8cd8130 100644 54463index 582321a..0224663 100644
55298--- a/fs/nfsd/nfs4xdr.c 54464--- a/fs/nfsd/nfs4xdr.c
55299+++ b/fs/nfsd/nfs4xdr.c 54465+++ b/fs/nfsd/nfs4xdr.c
55300@@ -1457,7 +1457,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p) 54466@@ -1458,7 +1458,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
55301 54467
55302 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *); 54468 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
55303 54469
@@ -55306,7 +54472,7 @@ index a49c11b..8cd8130 100644
55306 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access, 54472 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
55307 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close, 54473 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
55308 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit, 54474 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
55309@@ -1497,7 +1497,7 @@ static nfsd4_dec nfsd4_dec_ops[] = { 54475@@ -1498,7 +1498,7 @@ static nfsd4_dec nfsd4_dec_ops[] = {
55310 [OP_RELEASE_LOCKOWNER] = (nfsd4_dec)nfsd4_decode_release_lockowner, 54476 [OP_RELEASE_LOCKOWNER] = (nfsd4_dec)nfsd4_decode_release_lockowner,
55311 }; 54477 };
55312 54478
@@ -55315,7 +54481,7 @@ index a49c11b..8cd8130 100644
55315 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access, 54481 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
55316 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close, 54482 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
55317 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit, 54483 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
55318@@ -1559,7 +1559,7 @@ static nfsd4_dec nfsd41_dec_ops[] = { 54484@@ -1560,7 +1560,7 @@ static nfsd4_dec nfsd41_dec_ops[] = {
55319 }; 54485 };
55320 54486
55321 struct nfsd4_minorversion_ops { 54487 struct nfsd4_minorversion_ops {
@@ -55325,15 +54491,16 @@ index a49c11b..8cd8130 100644
55325 }; 54491 };
55326 54492
55327diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c 54493diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
55328index ca05f6d..b88c3a7 100644 54494index e76244e..9fe8f2f1 100644
55329--- a/fs/nfsd/nfscache.c 54495--- a/fs/nfsd/nfscache.c
55330+++ b/fs/nfsd/nfscache.c 54496+++ b/fs/nfsd/nfscache.c
55331@@ -461,13 +461,16 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp) 54497@@ -526,14 +526,17 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
55332 { 54498 {
55333 struct svc_cacherep *rp = rqstp->rq_cacherep; 54499 struct svc_cacherep *rp = rqstp->rq_cacherep;
55334 struct kvec *resv = &rqstp->rq_res.head[0], *cachv; 54500 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
55335- int len; 54501- int len;
55336+ long len; 54502+ long len;
54503 size_t bufsize = 0;
55337 54504
55338 if (!rp) 54505 if (!rp)
55339 return; 54506 return;
@@ -55349,7 +54516,7 @@ index ca05f6d..b88c3a7 100644
55349 /* Don't cache excessive amounts of data and XDR failures */ 54516 /* Don't cache excessive amounts of data and XDR failures */
55350 if (!statp || len > (256 >> 2)) { 54517 if (!statp || len > (256 >> 2)) {
55351diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c 54518diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
55352index 2b2e239..c915b48 100644 54519index 84ce601..633d226 100644
55353--- a/fs/nfsd/vfs.c 54520--- a/fs/nfsd/vfs.c
55354+++ b/fs/nfsd/vfs.c 54521+++ b/fs/nfsd/vfs.c
55355@@ -939,7 +939,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file, 54522@@ -939,7 +939,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
@@ -55463,10 +54630,10 @@ index e7bc1d7..06bd4bb 100644
55463 } 54630 }
55464 54631
55465diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c 54632diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
55466index 5d84442..2c034ba 100644 54633index 6c80083..a1e6299 100644
55467--- a/fs/notify/fanotify/fanotify_user.c 54634--- a/fs/notify/fanotify/fanotify_user.c
55468+++ b/fs/notify/fanotify/fanotify_user.c 54635+++ b/fs/notify/fanotify/fanotify_user.c
55469@@ -121,6 +121,7 @@ static int fill_event_metadata(struct fsnotify_group *group, 54636@@ -122,6 +122,7 @@ static int fill_event_metadata(struct fsnotify_group *group,
55470 metadata->event_len = FAN_EVENT_METADATA_LEN; 54637 metadata->event_len = FAN_EVENT_METADATA_LEN;
55471 metadata->metadata_len = FAN_EVENT_METADATA_LEN; 54638 metadata->metadata_len = FAN_EVENT_METADATA_LEN;
55472 metadata->vers = FANOTIFY_METADATA_VERSION; 54639 metadata->vers = FANOTIFY_METADATA_VERSION;
@@ -55474,7 +54641,7 @@ index 5d84442..2c034ba 100644
55474 metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS; 54641 metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
55475 metadata->pid = pid_vnr(event->tgid); 54642 metadata->pid = pid_vnr(event->tgid);
55476 if (unlikely(event->mask & FAN_Q_OVERFLOW)) 54643 if (unlikely(event->mask & FAN_Q_OVERFLOW))
55477@@ -251,8 +252,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group, 54644@@ -252,8 +253,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
55478 54645
55479 fd = fanotify_event_metadata.fd; 54646 fd = fanotify_event_metadata.fd;
55480 ret = -EFAULT; 54647 ret = -EFAULT;
@@ -55521,10 +54688,10 @@ index aa411c3..c260a84 100644
55521 "inode 0x%lx or driver bug.", vdir->i_ino); 54688 "inode 0x%lx or driver bug.", vdir->i_ino);
55522 goto err_out; 54689 goto err_out;
55523diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c 54690diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
55524index 5b2d4f0..c6de396 100644 54691index c5670b8..01a3656 100644
55525--- a/fs/ntfs/file.c 54692--- a/fs/ntfs/file.c
55526+++ b/fs/ntfs/file.c 54693+++ b/fs/ntfs/file.c
55527@@ -2242,6 +2242,6 @@ const struct inode_operations ntfs_file_inode_ops = { 54694@@ -2241,6 +2241,6 @@ const struct inode_operations ntfs_file_inode_ops = {
55528 #endif /* NTFS_RW */ 54695 #endif /* NTFS_RW */
55529 }; 54696 };
55530 54697
@@ -55664,7 +54831,7 @@ index 01b8516..579c4df 100644
55664 /* Copy the blockcheck stats from the superblock probe */ 54831 /* Copy the blockcheck stats from the superblock probe */
55665 osb->osb_ecc_stats = *stats; 54832 osb->osb_ecc_stats = *stats;
55666diff --git a/fs/open.c b/fs/open.c 54833diff --git a/fs/open.c b/fs/open.c
55667index 6835446..eadf09f 100644 54834index 8c74100..4239c48 100644
55668--- a/fs/open.c 54835--- a/fs/open.c
55669+++ b/fs/open.c 54836+++ b/fs/open.c
55670@@ -32,6 +32,8 @@ 54837@@ -32,6 +32,8 @@
@@ -55694,7 +54861,7 @@ index 6835446..eadf09f 100644
55694 if (!error) 54861 if (!error)
55695 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file); 54862 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
55696 sb_end_write(inode->i_sb); 54863 sb_end_write(inode->i_sb);
55697@@ -388,6 +394,9 @@ retry: 54864@@ -360,6 +366,9 @@ retry:
55698 if (__mnt_is_readonly(path.mnt)) 54865 if (__mnt_is_readonly(path.mnt))
55699 res = -EROFS; 54866 res = -EROFS;
55700 54867
@@ -55704,7 +54871,7 @@ index 6835446..eadf09f 100644
55704 out_path_release: 54871 out_path_release:
55705 path_put(&path); 54872 path_put(&path);
55706 if (retry_estale(res, lookup_flags)) { 54873 if (retry_estale(res, lookup_flags)) {
55707@@ -419,6 +428,8 @@ retry: 54874@@ -391,6 +400,8 @@ retry:
55708 if (error) 54875 if (error)
55709 goto dput_and_out; 54876 goto dput_and_out;
55710 54877
@@ -55713,7 +54880,7 @@ index 6835446..eadf09f 100644
55713 set_fs_pwd(current->fs, &path); 54880 set_fs_pwd(current->fs, &path);
55714 54881
55715 dput_and_out: 54882 dput_and_out:
55716@@ -448,6 +459,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd) 54883@@ -420,6 +431,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
55717 goto out_putf; 54884 goto out_putf;
55718 54885
55719 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR); 54886 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
@@ -55727,7 +54894,7 @@ index 6835446..eadf09f 100644
55727 if (!error) 54894 if (!error)
55728 set_fs_pwd(current->fs, &f.file->f_path); 54895 set_fs_pwd(current->fs, &f.file->f_path);
55729 out_putf: 54896 out_putf:
55730@@ -477,7 +495,13 @@ retry: 54897@@ -449,7 +467,13 @@ retry:
55731 if (error) 54898 if (error)
55732 goto dput_and_out; 54899 goto dput_and_out;
55733 54900
@@ -55741,7 +54908,7 @@ index 6835446..eadf09f 100644
55741 error = 0; 54908 error = 0;
55742 dput_and_out: 54909 dput_and_out:
55743 path_put(&path); 54910 path_put(&path);
55744@@ -499,6 +523,16 @@ static int chmod_common(struct path *path, umode_t mode) 54911@@ -471,6 +495,16 @@ static int chmod_common(struct path *path, umode_t mode)
55745 if (error) 54912 if (error)
55746 return error; 54913 return error;
55747 mutex_lock(&inode->i_mutex); 54914 mutex_lock(&inode->i_mutex);
@@ -55758,7 +54925,7 @@ index 6835446..eadf09f 100644
55758 error = security_path_chmod(path, mode); 54925 error = security_path_chmod(path, mode);
55759 if (error) 54926 if (error)
55760 goto out_unlock; 54927 goto out_unlock;
55761@@ -559,6 +593,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group) 54928@@ -531,6 +565,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
55762 uid = make_kuid(current_user_ns(), user); 54929 uid = make_kuid(current_user_ns(), user);
55763 gid = make_kgid(current_user_ns(), group); 54930 gid = make_kgid(current_user_ns(), group);
55764 54931
@@ -55768,7 +54935,7 @@ index 6835446..eadf09f 100644
55768 newattrs.ia_valid = ATTR_CTIME; 54935 newattrs.ia_valid = ATTR_CTIME;
55769 if (user != (uid_t) -1) { 54936 if (user != (uid_t) -1) {
55770 if (!uid_valid(uid)) 54937 if (!uid_valid(uid))
55771@@ -974,6 +1011,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode) 54938@@ -946,6 +983,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
55772 } else { 54939 } else {
55773 fsnotify_open(f); 54940 fsnotify_open(f);
55774 fd_install(fd, f); 54941 fd_install(fd, f);
@@ -55777,10 +54944,28 @@ index 6835446..eadf09f 100644
55777 } 54944 }
55778 putname(tmp); 54945 putname(tmp);
55779diff --git a/fs/pipe.c b/fs/pipe.c 54946diff --git a/fs/pipe.c b/fs/pipe.c
55780index 2234f3f..f9083a1 100644 54947index d2c45e1..009fe1c 100644
55781--- a/fs/pipe.c 54948--- a/fs/pipe.c
55782+++ b/fs/pipe.c 54949+++ b/fs/pipe.c
55783@@ -438,9 +438,9 @@ redo: 54950@@ -56,7 +56,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
54951
54952 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
54953 {
54954- if (pipe->files)
54955+ if (atomic_read(&pipe->files))
54956 mutex_lock_nested(&pipe->mutex, subclass);
54957 }
54958
54959@@ -71,7 +71,7 @@ EXPORT_SYMBOL(pipe_lock);
54960
54961 void pipe_unlock(struct pipe_inode_info *pipe)
54962 {
54963- if (pipe->files)
54964+ if (atomic_read(&pipe->files))
54965 mutex_unlock(&pipe->mutex);
54966 }
54967 EXPORT_SYMBOL(pipe_unlock);
54968@@ -449,9 +449,9 @@ redo:
55784 } 54969 }
55785 if (bufs) /* More to do? */ 54970 if (bufs) /* More to do? */
55786 continue; 54971 continue;
@@ -55792,16 +54977,16 @@ index 2234f3f..f9083a1 100644
55792 /* syscall merging: Usually we must not sleep 54977 /* syscall merging: Usually we must not sleep
55793 * if O_NONBLOCK is set, or if we got some data. 54978 * if O_NONBLOCK is set, or if we got some data.
55794 * But if a writer sleeps in kernel space, then 54979 * But if a writer sleeps in kernel space, then
55795@@ -504,7 +504,7 @@ pipe_write(struct kiocb *iocb, const struct iovec *_iov, 54980@@ -513,7 +513,7 @@ pipe_write(struct kiocb *iocb, const struct iovec *_iov,
55796 mutex_lock(&inode->i_mutex); 54981 ret = 0;
55797 pipe = inode->i_pipe; 54982 __pipe_lock(pipe);
55798 54983
55799- if (!pipe->readers) { 54984- if (!pipe->readers) {
55800+ if (!atomic_read(&pipe->readers)) { 54985+ if (!atomic_read(&pipe->readers)) {
55801 send_sig(SIGPIPE, current, 0); 54986 send_sig(SIGPIPE, current, 0);
55802 ret = -EPIPE; 54987 ret = -EPIPE;
55803 goto out; 54988 goto out;
55804@@ -553,7 +553,7 @@ redo1: 54989@@ -562,7 +562,7 @@ redo1:
55805 for (;;) { 54990 for (;;) {
55806 int bufs; 54991 int bufs;
55807 54992
@@ -55810,7 +54995,7 @@ index 2234f3f..f9083a1 100644
55810 send_sig(SIGPIPE, current, 0); 54995 send_sig(SIGPIPE, current, 0);
55811 if (!ret) 54996 if (!ret)
55812 ret = -EPIPE; 54997 ret = -EPIPE;
55813@@ -644,9 +644,9 @@ redo2: 54998@@ -653,9 +653,9 @@ redo2:
55814 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN); 54999 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
55815 do_wakeup = 0; 55000 do_wakeup = 0;
55816 } 55001 }
@@ -55821,8 +55006,8 @@ index 2234f3f..f9083a1 100644
55821+ atomic_dec(&pipe->waiting_writers); 55006+ atomic_dec(&pipe->waiting_writers);
55822 } 55007 }
55823 out: 55008 out:
55824 mutex_unlock(&inode->i_mutex); 55009 __pipe_unlock(pipe);
55825@@ -716,7 +716,7 @@ pipe_poll(struct file *filp, poll_table *wait) 55010@@ -709,7 +709,7 @@ pipe_poll(struct file *filp, poll_table *wait)
55826 mask = 0; 55011 mask = 0;
55827 if (filp->f_mode & FMODE_READ) { 55012 if (filp->f_mode & FMODE_READ) {
55828 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0; 55013 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
@@ -55831,7 +55016,7 @@ index 2234f3f..f9083a1 100644
55831 mask |= POLLHUP; 55016 mask |= POLLHUP;
55832 } 55017 }
55833 55018
55834@@ -726,7 +726,7 @@ pipe_poll(struct file *filp, poll_table *wait) 55019@@ -719,7 +719,7 @@ pipe_poll(struct file *filp, poll_table *wait)
55835 * Most Unices do not set POLLERR for FIFOs but on Linux they 55020 * Most Unices do not set POLLERR for FIFOs but on Linux they
55836 * behave exactly like pipes for poll(). 55021 * behave exactly like pipes for poll().
55837 */ 55022 */
@@ -55840,52 +55025,30 @@ index 2234f3f..f9083a1 100644
55840 mask |= POLLERR; 55025 mask |= POLLERR;
55841 } 55026 }
55842 55027
55843@@ -740,10 +740,10 @@ pipe_release(struct inode *inode, int decr, int decw) 55028@@ -734,17 +734,17 @@ pipe_release(struct inode *inode, struct file *file)
55844
55845 mutex_lock(&inode->i_mutex);
55846 pipe = inode->i_pipe;
55847- pipe->readers -= decr;
55848- pipe->writers -= decw;
55849+ atomic_sub(decr, &pipe->readers);
55850+ atomic_sub(decw, &pipe->writers);
55851
55852- if (!pipe->readers && !pipe->writers) {
55853+ if (!atomic_read(&pipe->readers) && !atomic_read(&pipe->writers)) {
55854 free_pipe_info(inode);
55855 } else {
55856 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
55857@@ -833,7 +833,7 @@ pipe_read_open(struct inode *inode, struct file *filp)
55858 55029
55859 if (inode->i_pipe) { 55030 __pipe_lock(pipe);
55860 ret = 0; 55031 if (file->f_mode & FMODE_READ)
55861- inode->i_pipe->readers++; 55032- pipe->readers--;
55862+ atomic_inc(&inode->i_pipe->readers); 55033+ atomic_dec(&pipe->readers);
55863 } 55034 if (file->f_mode & FMODE_WRITE)
55035- pipe->writers--;
55036+ atomic_dec(&pipe->writers);
55864 55037
55865 mutex_unlock(&inode->i_mutex); 55038- if (pipe->readers || pipe->writers) {
55866@@ -850,7 +850,7 @@ pipe_write_open(struct inode *inode, struct file *filp) 55039+ if (atomic_read(&pipe->readers) || atomic_read(&pipe->writers)) {
55867 55040 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
55868 if (inode->i_pipe) { 55041 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
55869 ret = 0; 55042 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
55870- inode->i_pipe->writers++;
55871+ atomic_inc(&inode->i_pipe->writers);
55872 } 55043 }
55873 55044 spin_lock(&inode->i_lock);
55874 mutex_unlock(&inode->i_mutex); 55045- if (!--pipe->files) {
55875@@ -871,9 +871,9 @@ pipe_rdwr_open(struct inode *inode, struct file *filp) 55046+ if (atomic_dec_and_test(&pipe->files)) {
55876 if (inode->i_pipe) { 55047 inode->i_pipe = NULL;
55877 ret = 0; 55048 kill = 1;
55878 if (filp->f_mode & FMODE_READ)
55879- inode->i_pipe->readers++;
55880+ atomic_inc(&inode->i_pipe->readers);
55881 if (filp->f_mode & FMODE_WRITE)
55882- inode->i_pipe->writers++;
55883+ atomic_inc(&inode->i_pipe->writers);
55884 } 55049 }
55885 55050@@ -811,7 +811,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
55886 mutex_unlock(&inode->i_mutex); 55051 kfree(pipe);
55887@@ -965,7 +965,7 @@ void free_pipe_info(struct inode *inode)
55888 inode->i_pipe = NULL;
55889 } 55052 }
55890 55053
55891-static struct vfsmount *pipe_mnt __read_mostly; 55054-static struct vfsmount *pipe_mnt __read_mostly;
@@ -55893,16 +55056,109 @@ index 2234f3f..f9083a1 100644
55893 55056
55894 /* 55057 /*
55895 * pipefs_dname() is called from d_path(). 55058 * pipefs_dname() is called from d_path().
55896@@ -995,7 +995,8 @@ static struct inode * get_pipe_inode(void) 55059@@ -841,8 +841,9 @@ static struct inode * get_pipe_inode(void)
55897 goto fail_iput; 55060 goto fail_iput;
55898 inode->i_pipe = pipe;
55899 55061
55062 inode->i_pipe = pipe;
55063- pipe->files = 2;
55900- pipe->readers = pipe->writers = 1; 55064- pipe->readers = pipe->writers = 1;
55065+ atomic_set(&pipe->files, 2);
55901+ atomic_set(&pipe->readers, 1); 55066+ atomic_set(&pipe->readers, 1);
55902+ atomic_set(&pipe->writers, 1); 55067+ atomic_set(&pipe->writers, 1);
55903 inode->i_fop = &rdwr_pipefifo_fops; 55068 inode->i_fop = &pipefifo_fops;
55904 55069
55905 /* 55070 /*
55071@@ -1022,17 +1023,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
55072 spin_lock(&inode->i_lock);
55073 if (inode->i_pipe) {
55074 pipe = inode->i_pipe;
55075- pipe->files++;
55076+ atomic_inc(&pipe->files);
55077 spin_unlock(&inode->i_lock);
55078 } else {
55079 spin_unlock(&inode->i_lock);
55080 pipe = alloc_pipe_info();
55081 if (!pipe)
55082 return -ENOMEM;
55083- pipe->files = 1;
55084+ atomic_set(&pipe->files, 1);
55085 spin_lock(&inode->i_lock);
55086 if (unlikely(inode->i_pipe)) {
55087- inode->i_pipe->files++;
55088+ atomic_inc(&inode->i_pipe->files);
55089 spin_unlock(&inode->i_lock);
55090 free_pipe_info(pipe);
55091 pipe = inode->i_pipe;
55092@@ -1057,10 +1058,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
55093 * opened, even when there is no process writing the FIFO.
55094 */
55095 pipe->r_counter++;
55096- if (pipe->readers++ == 0)
55097+ if (atomic_inc_return(&pipe->readers) == 1)
55098 wake_up_partner(pipe);
55099
55100- if (!is_pipe && !pipe->writers) {
55101+ if (!is_pipe && !atomic_read(&pipe->writers)) {
55102 if ((filp->f_flags & O_NONBLOCK)) {
55103 /* suppress POLLHUP until we have
55104 * seen a writer */
55105@@ -1079,14 +1080,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
55106 * errno=ENXIO when there is no process reading the FIFO.
55107 */
55108 ret = -ENXIO;
55109- if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers)
55110+ if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
55111 goto err;
55112
55113 pipe->w_counter++;
55114- if (!pipe->writers++)
55115+ if (atomic_inc_return(&pipe->writers) == 1)
55116 wake_up_partner(pipe);
55117
55118- if (!is_pipe && !pipe->readers) {
55119+ if (!is_pipe && !atomic_read(&pipe->readers)) {
55120 if (wait_for_partner(pipe, &pipe->r_counter))
55121 goto err_wr;
55122 }
55123@@ -1100,11 +1101,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
55124 * the process can at least talk to itself.
55125 */
55126
55127- pipe->readers++;
55128- pipe->writers++;
55129+ atomic_inc(&pipe->readers);
55130+ atomic_inc(&pipe->writers);
55131 pipe->r_counter++;
55132 pipe->w_counter++;
55133- if (pipe->readers == 1 || pipe->writers == 1)
55134+ if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
55135 wake_up_partner(pipe);
55136 break;
55137
55138@@ -1118,20 +1119,20 @@ static int fifo_open(struct inode *inode, struct file *filp)
55139 return 0;
55140
55141 err_rd:
55142- if (!--pipe->readers)
55143+ if (atomic_dec_and_test(&pipe->readers))
55144 wake_up_interruptible(&pipe->wait);
55145 ret = -ERESTARTSYS;
55146 goto err;
55147
55148 err_wr:
55149- if (!--pipe->writers)
55150+ if (atomic_dec_and_test(&pipe->writers))
55151 wake_up_interruptible(&pipe->wait);
55152 ret = -ERESTARTSYS;
55153 goto err;
55154
55155 err:
55156 spin_lock(&inode->i_lock);
55157- if (!--pipe->files) {
55158+ if (atomic_dec_and_test(&pipe->files)) {
55159 inode->i_pipe = NULL;
55160 kill = 1;
55161 }
55906diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig 55162diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
55907index 15af622..0e9f4467 100644 55163index 15af622..0e9f4467 100644
55908--- a/fs/proc/Kconfig 55164--- a/fs/proc/Kconfig
@@ -56088,10 +55344,10 @@ index cbd0f1b..adec3f0 100644
56088 static struct pid * 55344 static struct pid *
56089 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos) 55345 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
56090diff --git a/fs/proc/base.c b/fs/proc/base.c 55346diff --git a/fs/proc/base.c b/fs/proc/base.c
56091index 69078c7..3e12a75 100644 55347index c3834da..b402b2b 100644
56092--- a/fs/proc/base.c 55348--- a/fs/proc/base.c
56093+++ b/fs/proc/base.c 55349+++ b/fs/proc/base.c
56094@@ -112,6 +112,14 @@ struct pid_entry { 55350@@ -113,6 +113,14 @@ struct pid_entry {
56095 union proc_op op; 55351 union proc_op op;
56096 }; 55352 };
56097 55353
@@ -56106,7 +55362,7 @@ index 69078c7..3e12a75 100644
56106 #define NOD(NAME, MODE, IOP, FOP, OP) { \ 55362 #define NOD(NAME, MODE, IOP, FOP, OP) { \
56107 .name = (NAME), \ 55363 .name = (NAME), \
56108 .len = sizeof(NAME) - 1, \ 55364 .len = sizeof(NAME) - 1, \
56109@@ -209,6 +217,9 @@ static int proc_pid_cmdline(struct task_struct *task, char * buffer) 55365@@ -210,6 +218,9 @@ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
56110 if (!mm->arg_end) 55366 if (!mm->arg_end)
56111 goto out_mm; /* Shh! No looking before we're done */ 55367 goto out_mm; /* Shh! No looking before we're done */
56112 55368
@@ -56116,7 +55372,7 @@ index 69078c7..3e12a75 100644
56116 len = mm->arg_end - mm->arg_start; 55372 len = mm->arg_end - mm->arg_start;
56117 55373
56118 if (len > PAGE_SIZE) 55374 if (len > PAGE_SIZE)
56119@@ -236,12 +247,28 @@ out: 55375@@ -237,12 +248,28 @@ out:
56120 return res; 55376 return res;
56121 } 55377 }
56122 55378
@@ -56145,7 +55401,7 @@ index 69078c7..3e12a75 100644
56145 do { 55401 do {
56146 nwords += 2; 55402 nwords += 2;
56147 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */ 55403 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
56148@@ -255,7 +282,7 @@ static int proc_pid_auxv(struct task_struct *task, char *buffer) 55404@@ -256,7 +283,7 @@ static int proc_pid_auxv(struct task_struct *task, char *buffer)
56149 } 55405 }
56150 55406
56151 55407
@@ -56154,7 +55410,7 @@ index 69078c7..3e12a75 100644
56154 /* 55410 /*
56155 * Provides a wchan file via kallsyms in a proper one-value-per-file format. 55411 * Provides a wchan file via kallsyms in a proper one-value-per-file format.
56156 * Returns the resolved symbol. If that fails, simply return the address. 55412 * Returns the resolved symbol. If that fails, simply return the address.
56157@@ -294,7 +321,7 @@ static void unlock_trace(struct task_struct *task) 55413@@ -295,7 +322,7 @@ static void unlock_trace(struct task_struct *task)
56158 mutex_unlock(&task->signal->cred_guard_mutex); 55414 mutex_unlock(&task->signal->cred_guard_mutex);
56159 } 55415 }
56160 55416
@@ -56163,7 +55419,7 @@ index 69078c7..3e12a75 100644
56163 55419
56164 #define MAX_STACK_TRACE_DEPTH 64 55420 #define MAX_STACK_TRACE_DEPTH 64
56165 55421
56166@@ -486,7 +513,7 @@ static int proc_pid_limits(struct task_struct *task, char *buffer) 55422@@ -518,7 +545,7 @@ static int proc_pid_limits(struct task_struct *task, char *buffer)
56167 return count; 55423 return count;
56168 } 55424 }
56169 55425
@@ -56172,7 +55428,7 @@ index 69078c7..3e12a75 100644
56172 static int proc_pid_syscall(struct task_struct *task, char *buffer) 55428 static int proc_pid_syscall(struct task_struct *task, char *buffer)
56173 { 55429 {
56174 long nr; 55430 long nr;
56175@@ -515,7 +542,7 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer) 55431@@ -547,7 +574,7 @@ static int proc_pid_syscall(struct task_struct *task, char *buffer)
56176 /************************************************************************/ 55432 /************************************************************************/
56177 55433
56178 /* permission checks */ 55434 /* permission checks */
@@ -56181,7 +55437,7 @@ index 69078c7..3e12a75 100644
56181 { 55437 {
56182 struct task_struct *task; 55438 struct task_struct *task;
56183 int allowed = 0; 55439 int allowed = 0;
56184@@ -525,7 +552,10 @@ static int proc_fd_access_allowed(struct inode *inode) 55440@@ -557,7 +584,10 @@ static int proc_fd_access_allowed(struct inode *inode)
56185 */ 55441 */
56186 task = get_proc_task(inode); 55442 task = get_proc_task(inode);
56187 if (task) { 55443 if (task) {
@@ -56193,7 +55449,7 @@ index 69078c7..3e12a75 100644
56193 put_task_struct(task); 55449 put_task_struct(task);
56194 } 55450 }
56195 return allowed; 55451 return allowed;
56196@@ -556,10 +586,35 @@ static bool has_pid_permissions(struct pid_namespace *pid, 55452@@ -588,10 +618,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
56197 struct task_struct *task, 55453 struct task_struct *task,
56198 int hide_pid_min) 55454 int hide_pid_min)
56199 { 55455 {
@@ -56229,7 +55485,7 @@ index 69078c7..3e12a75 100644
56229 return ptrace_may_access(task, PTRACE_MODE_READ); 55485 return ptrace_may_access(task, PTRACE_MODE_READ);
56230 } 55486 }
56231 55487
56232@@ -577,7 +632,11 @@ static int proc_pid_permission(struct inode *inode, int mask) 55488@@ -609,7 +664,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
56233 put_task_struct(task); 55489 put_task_struct(task);
56234 55490
56235 if (!has_perms) { 55491 if (!has_perms) {
@@ -56241,7 +55497,7 @@ index 69078c7..3e12a75 100644
56241 /* 55497 /*
56242 * Let's make getdents(), stat(), and open() 55498 * Let's make getdents(), stat(), and open()
56243 * consistent with each other. If a process 55499 * consistent with each other. If a process
56244@@ -675,6 +734,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode) 55500@@ -707,6 +766,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
56245 if (!task) 55501 if (!task)
56246 return -ESRCH; 55502 return -ESRCH;
56247 55503
@@ -56253,7 +55509,7 @@ index 69078c7..3e12a75 100644
56253 mm = mm_access(task, mode); 55509 mm = mm_access(task, mode);
56254 put_task_struct(task); 55510 put_task_struct(task);
56255 55511
56256@@ -690,6 +754,10 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode) 55512@@ -722,6 +786,10 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
56257 55513
56258 file->private_data = mm; 55514 file->private_data = mm;
56259 55515
@@ -56264,7 +55520,7 @@ index 69078c7..3e12a75 100644
56264 return 0; 55520 return 0;
56265 } 55521 }
56266 55522
56267@@ -711,6 +779,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf, 55523@@ -743,6 +811,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
56268 ssize_t copied; 55524 ssize_t copied;
56269 char *page; 55525 char *page;
56270 55526
@@ -56282,7 +55538,7 @@ index 69078c7..3e12a75 100644
56282 if (!mm) 55538 if (!mm)
56283 return 0; 55539 return 0;
56284 55540
56285@@ -723,7 +802,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf, 55541@@ -755,7 +834,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
56286 goto free; 55542 goto free;
56287 55543
56288 while (count > 0) { 55544 while (count > 0) {
@@ -56291,7 +55547,7 @@ index 69078c7..3e12a75 100644
56291 55547
56292 if (write && copy_from_user(page, buf, this_len)) { 55548 if (write && copy_from_user(page, buf, this_len)) {
56293 copied = -EFAULT; 55549 copied = -EFAULT;
56294@@ -815,6 +894,13 @@ static ssize_t environ_read(struct file *file, char __user *buf, 55550@@ -847,6 +926,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
56295 if (!mm) 55551 if (!mm)
56296 return 0; 55552 return 0;
56297 55553
@@ -56305,7 +55561,7 @@ index 69078c7..3e12a75 100644
56305 page = (char *)__get_free_page(GFP_TEMPORARY); 55561 page = (char *)__get_free_page(GFP_TEMPORARY);
56306 if (!page) 55562 if (!page)
56307 return -ENOMEM; 55563 return -ENOMEM;
56308@@ -824,7 +910,7 @@ static ssize_t environ_read(struct file *file, char __user *buf, 55564@@ -856,7 +942,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
56309 goto free; 55565 goto free;
56310 while (count > 0) { 55566 while (count > 0) {
56311 size_t this_len, max_len; 55567 size_t this_len, max_len;
@@ -56314,7 +55570,7 @@ index 69078c7..3e12a75 100644
56314 55570
56315 if (src >= (mm->env_end - mm->env_start)) 55571 if (src >= (mm->env_end - mm->env_start))
56316 break; 55572 break;
56317@@ -1430,7 +1516,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd) 55573@@ -1461,7 +1547,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
56318 int error = -EACCES; 55574 int error = -EACCES;
56319 55575
56320 /* Are we allowed to snoop on the tasks file descriptors? */ 55576 /* Are we allowed to snoop on the tasks file descriptors? */
@@ -56323,7 +55579,7 @@ index 69078c7..3e12a75 100644
56323 goto out; 55579 goto out;
56324 55580
56325 error = PROC_I(inode)->op.proc_get_link(dentry, &path); 55581 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
56326@@ -1474,8 +1560,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b 55582@@ -1505,8 +1591,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
56327 struct path path; 55583 struct path path;
56328 55584
56329 /* Are we allowed to snoop on the tasks file descriptors? */ 55585 /* Are we allowed to snoop on the tasks file descriptors? */
@@ -56344,7 +55600,7 @@ index 69078c7..3e12a75 100644
56344 55600
56345 error = PROC_I(inode)->op.proc_get_link(dentry, &path); 55601 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
56346 if (error) 55602 if (error)
56347@@ -1525,7 +1621,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t 55603@@ -1556,7 +1652,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
56348 rcu_read_lock(); 55604 rcu_read_lock();
56349 cred = __task_cred(task); 55605 cred = __task_cred(task);
56350 inode->i_uid = cred->euid; 55606 inode->i_uid = cred->euid;
@@ -56356,7 +55612,7 @@ index 69078c7..3e12a75 100644
56356 rcu_read_unlock(); 55612 rcu_read_unlock();
56357 } 55613 }
56358 security_task_to_inode(task, inode); 55614 security_task_to_inode(task, inode);
56359@@ -1561,10 +1661,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat) 55615@@ -1592,10 +1692,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
56360 return -ENOENT; 55616 return -ENOENT;
56361 } 55617 }
56362 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || 55618 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
@@ -56376,7 +55632,7 @@ index 69078c7..3e12a75 100644
56376 } 55632 }
56377 } 55633 }
56378 rcu_read_unlock(); 55634 rcu_read_unlock();
56379@@ -1602,11 +1711,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags) 55635@@ -1633,11 +1742,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
56380 55636
56381 if (task) { 55637 if (task) {
56382 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) || 55638 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
@@ -56397,7 +55653,7 @@ index 69078c7..3e12a75 100644
56397 rcu_read_unlock(); 55653 rcu_read_unlock();
56398 } else { 55654 } else {
56399 inode->i_uid = GLOBAL_ROOT_UID; 55655 inode->i_uid = GLOBAL_ROOT_UID;
56400@@ -2059,6 +2177,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir, 55656@@ -2196,6 +2314,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
56401 if (!task) 55657 if (!task)
56402 goto out_no_task; 55658 goto out_no_task;
56403 55659
@@ -56407,7 +55663,7 @@ index 69078c7..3e12a75 100644
56407 /* 55663 /*
56408 * Yes, it does not scale. And it should not. Don't add 55664 * Yes, it does not scale. And it should not. Don't add
56409 * new entries into /proc/<tgid>/ without very good reasons. 55665 * new entries into /proc/<tgid>/ without very good reasons.
56410@@ -2103,6 +2224,9 @@ static int proc_pident_readdir(struct file *filp, 55666@@ -2240,6 +2361,9 @@ static int proc_pident_readdir(struct file *filp,
56411 if (!task) 55667 if (!task)
56412 goto out_no_task; 55668 goto out_no_task;
56413 55669
@@ -56417,7 +55673,7 @@ index 69078c7..3e12a75 100644
56417 ret = 0; 55673 ret = 0;
56418 i = filp->f_pos; 55674 i = filp->f_pos;
56419 switch (i) { 55675 switch (i) {
56420@@ -2516,7 +2640,7 @@ static const struct pid_entry tgid_base_stuff[] = { 55676@@ -2653,7 +2777,7 @@ static const struct pid_entry tgid_base_stuff[] = {
56421 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations), 55677 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
56422 #endif 55678 #endif
56423 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 55679 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -56426,7 +55682,7 @@ index 69078c7..3e12a75 100644
56426 INF("syscall", S_IRUGO, proc_pid_syscall), 55682 INF("syscall", S_IRUGO, proc_pid_syscall),
56427 #endif 55683 #endif
56428 INF("cmdline", S_IRUGO, proc_pid_cmdline), 55684 INF("cmdline", S_IRUGO, proc_pid_cmdline),
56429@@ -2541,10 +2665,10 @@ static const struct pid_entry tgid_base_stuff[] = { 55685@@ -2678,10 +2802,10 @@ static const struct pid_entry tgid_base_stuff[] = {
56430 #ifdef CONFIG_SECURITY 55686 #ifdef CONFIG_SECURITY
56431 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 55687 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
56432 #endif 55688 #endif
@@ -56439,7 +55695,7 @@ index 69078c7..3e12a75 100644
56439 ONE("stack", S_IRUGO, proc_pid_stack), 55695 ONE("stack", S_IRUGO, proc_pid_stack),
56440 #endif 55696 #endif
56441 #ifdef CONFIG_SCHEDSTATS 55697 #ifdef CONFIG_SCHEDSTATS
56442@@ -2578,6 +2702,9 @@ static const struct pid_entry tgid_base_stuff[] = { 55698@@ -2715,6 +2839,9 @@ static const struct pid_entry tgid_base_stuff[] = {
56443 #ifdef CONFIG_HARDWALL 55699 #ifdef CONFIG_HARDWALL
56444 INF("hardwall", S_IRUGO, proc_pid_hardwall), 55700 INF("hardwall", S_IRUGO, proc_pid_hardwall),
56445 #endif 55701 #endif
@@ -56449,7 +55705,7 @@ index 69078c7..3e12a75 100644
56449 #ifdef CONFIG_USER_NS 55705 #ifdef CONFIG_USER_NS
56450 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations), 55706 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
56451 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations), 55707 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
56452@@ -2707,7 +2834,14 @@ static struct dentry *proc_pid_instantiate(struct inode *dir, 55708@@ -2847,7 +2974,14 @@ static struct dentry *proc_pid_instantiate(struct inode *dir,
56453 if (!inode) 55709 if (!inode)
56454 goto out; 55710 goto out;
56455 55711
@@ -56464,7 +55720,7 @@ index 69078c7..3e12a75 100644
56464 inode->i_op = &proc_tgid_base_inode_operations; 55720 inode->i_op = &proc_tgid_base_inode_operations;
56465 inode->i_fop = &proc_tgid_base_operations; 55721 inode->i_fop = &proc_tgid_base_operations;
56466 inode->i_flags|=S_IMMUTABLE; 55722 inode->i_flags|=S_IMMUTABLE;
56467@@ -2745,7 +2879,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign 55723@@ -2885,7 +3019,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
56468 if (!task) 55724 if (!task)
56469 goto out; 55725 goto out;
56470 55726
@@ -56476,7 +55732,7 @@ index 69078c7..3e12a75 100644
56476 put_task_struct(task); 55732 put_task_struct(task);
56477 out: 55733 out:
56478 return result; 55734 return result;
56479@@ -2808,6 +2946,8 @@ static int proc_pid_fill_cache(struct file *filp, void *dirent, filldir_t filldi 55735@@ -2948,6 +3086,8 @@ static int proc_pid_fill_cache(struct file *filp, void *dirent, filldir_t filldi
56480 static int fake_filldir(void *buf, const char *name, int namelen, 55736 static int fake_filldir(void *buf, const char *name, int namelen,
56481 loff_t offset, u64 ino, unsigned d_type) 55737 loff_t offset, u64 ino, unsigned d_type)
56482 { 55738 {
@@ -56485,7 +55741,7 @@ index 69078c7..3e12a75 100644
56485 return 0; 55741 return 0;
56486 } 55742 }
56487 55743
56488@@ -2859,7 +2999,7 @@ static const struct pid_entry tid_base_stuff[] = { 55744@@ -3007,7 +3147,7 @@ static const struct pid_entry tid_base_stuff[] = {
56489 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations), 55745 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
56490 #endif 55746 #endif
56491 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations), 55747 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
@@ -56494,7 +55750,7 @@ index 69078c7..3e12a75 100644
56494 INF("syscall", S_IRUGO, proc_pid_syscall), 55750 INF("syscall", S_IRUGO, proc_pid_syscall),
56495 #endif 55751 #endif
56496 INF("cmdline", S_IRUGO, proc_pid_cmdline), 55752 INF("cmdline", S_IRUGO, proc_pid_cmdline),
56497@@ -2886,10 +3026,10 @@ static const struct pid_entry tid_base_stuff[] = { 55753@@ -3034,10 +3174,10 @@ static const struct pid_entry tid_base_stuff[] = {
56498 #ifdef CONFIG_SECURITY 55754 #ifdef CONFIG_SECURITY
56499 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations), 55755 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
56500 #endif 55756 #endif
@@ -56578,13 +55834,13 @@ index d7a4a28..0201742 100644
56578 } 55834 }
56579 55835
56580diff --git a/fs/proc/inode.c b/fs/proc/inode.c 55836diff --git a/fs/proc/inode.c b/fs/proc/inode.c
56581index 869116c..820cb27 100644 55837index 073aea6..0630370 100644
56582--- a/fs/proc/inode.c 55838--- a/fs/proc/inode.c
56583+++ b/fs/proc/inode.c 55839+++ b/fs/proc/inode.c
56584@@ -22,11 +22,17 @@ 55840@@ -23,11 +23,17 @@
56585 #include <linux/seq_file.h>
56586 #include <linux/slab.h> 55841 #include <linux/slab.h>
56587 #include <linux/mount.h> 55842 #include <linux/mount.h>
55843 #include <linux/magic.h>
56588+#include <linux/grsecurity.h> 55844+#include <linux/grsecurity.h>
56589 55845
56590 #include <asm/uaccess.h> 55846 #include <asm/uaccess.h>
@@ -56599,8 +55855,8 @@ index 869116c..820cb27 100644
56599 static void proc_evict_inode(struct inode *inode) 55855 static void proc_evict_inode(struct inode *inode)
56600 { 55856 {
56601 struct proc_dir_entry *de; 55857 struct proc_dir_entry *de;
56602@@ -54,6 +60,13 @@ static void proc_evict_inode(struct inode *inode) 55858@@ -55,6 +61,13 @@ static void proc_evict_inode(struct inode *inode)
56603 ns = PROC_I(inode)->ns; 55859 ns = PROC_I(inode)->ns.ns;
56604 if (ns_ops && ns) 55860 if (ns_ops && ns)
56605 ns_ops->put(ns); 55861 ns_ops->put(ns);
56606+ 55862+
@@ -56613,7 +55869,7 @@ index 869116c..820cb27 100644
56613 } 55869 }
56614 55870
56615 static struct kmem_cache * proc_inode_cachep; 55871 static struct kmem_cache * proc_inode_cachep;
56616@@ -456,7 +469,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de) 55872@@ -385,7 +398,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
56617 if (de->mode) { 55873 if (de->mode) {
56618 inode->i_mode = de->mode; 55874 inode->i_mode = de->mode;
56619 inode->i_uid = de->uid; 55875 inode->i_uid = de->uid;
@@ -56626,24 +55882,24 @@ index 869116c..820cb27 100644
56626 if (de->size) 55882 if (de->size)
56627 inode->i_size = de->size; 55883 inode->i_size = de->size;
56628diff --git a/fs/proc/internal.h b/fs/proc/internal.h 55884diff --git a/fs/proc/internal.h b/fs/proc/internal.h
56629index 85ff3a4..a512bd8 100644 55885index d600fb0..3b495fe 100644
56630--- a/fs/proc/internal.h 55886--- a/fs/proc/internal.h
56631+++ b/fs/proc/internal.h 55887+++ b/fs/proc/internal.h
56632@@ -56,6 +56,9 @@ extern int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, 55888@@ -155,6 +155,9 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
56633 struct pid *pid, struct task_struct *task); 55889 struct pid *, struct task_struct *);
56634 extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, 55890 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
56635 struct pid *pid, struct task_struct *task); 55891 struct pid *, struct task_struct *);
56636+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR 55892+#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
56637+extern int proc_pid_ipaddr(struct task_struct *task, char *buffer); 55893+extern int proc_pid_ipaddr(struct task_struct *task, char *buffer);
56638+#endif 55894+#endif
56639 extern loff_t mem_lseek(struct file *file, loff_t offset, int orig);
56640 55895
56641 extern const struct file_operations proc_tid_children_operations; 55896 /*
55897 * base.c
56642diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c 55898diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
56643index eda6f01..006ae24 100644 55899index 0a22194..a9fc8c1 100644
56644--- a/fs/proc/kcore.c 55900--- a/fs/proc/kcore.c
56645+++ b/fs/proc/kcore.c 55901+++ b/fs/proc/kcore.c
56646@@ -481,9 +481,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) 55902@@ -484,9 +484,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
56647 * the addresses in the elf_phdr on our list. 55903 * the addresses in the elf_phdr on our list.
56648 */ 55904 */
56649 start = kc_offset_to_vaddr(*fpos - elf_buflen); 55905 start = kc_offset_to_vaddr(*fpos - elf_buflen);
@@ -56656,12 +55912,14 @@ index eda6f01..006ae24 100644
56656 while (buflen) { 55912 while (buflen) {
56657 struct kcore_list *m; 55913 struct kcore_list *m;
56658 55914
56659@@ -512,20 +513,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) 55915@@ -515,20 +516,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
56660 kfree(elf_buf); 55916 kfree(elf_buf);
56661 } else { 55917 } else {
56662 if (kern_addr_valid(start)) { 55918 if (kern_addr_valid(start)) {
56663- unsigned long n; 55919- unsigned long n;
56664- 55920+ char *elf_buf;
55921+ mm_segment_t oldfs;
55922
56665- n = copy_to_user(buffer, (char *)start, tsz); 55923- n = copy_to_user(buffer, (char *)start, tsz);
56666- /* 55924- /*
56667- * We cannot distinguish between fault on source 55925- * We cannot distinguish between fault on source
@@ -56672,9 +55930,6 @@ index eda6f01..006ae24 100644
56672- if (n) { 55930- if (n) {
56673- if (clear_user(buffer + tsz - n, 55931- if (clear_user(buffer + tsz - n,
56674- n)) 55932- n))
56675+ char *elf_buf;
56676+ mm_segment_t oldfs;
56677+
56678+ elf_buf = kmalloc(tsz, GFP_KERNEL); 55933+ elf_buf = kmalloc(tsz, GFP_KERNEL);
56679+ if (!elf_buf) 55934+ if (!elf_buf)
56680+ return -ENOMEM; 55935+ return -ENOMEM;
@@ -56692,7 +55947,7 @@ index eda6f01..006ae24 100644
56692 } else { 55947 } else {
56693 if (clear_user(buffer, tsz)) 55948 if (clear_user(buffer, tsz))
56694 return -EFAULT; 55949 return -EFAULT;
56695@@ -545,6 +549,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos) 55950@@ -548,6 +552,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
56696 55951
56697 static int open_kcore(struct inode *inode, struct file *filp) 55952 static int open_kcore(struct inode *inode, struct file *filp)
56698 { 55953 {
@@ -56703,10 +55958,10 @@ index eda6f01..006ae24 100644
56703 return -EPERM; 55958 return -EPERM;
56704 if (kcore_need_update) 55959 if (kcore_need_update)
56705diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c 55960diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
56706index 1efaaa1..834e49a 100644 55961index 5aa847a..f77c8d4 100644
56707--- a/fs/proc/meminfo.c 55962--- a/fs/proc/meminfo.c
56708+++ b/fs/proc/meminfo.c 55963+++ b/fs/proc/meminfo.c
56709@@ -158,7 +158,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v) 55964@@ -159,7 +159,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
56710 vmi.used >> 10, 55965 vmi.used >> 10,
56711 vmi.largest_chunk >> 10 55966 vmi.largest_chunk >> 10
56712 #ifdef CONFIG_MEMORY_FAILURE 55967 #ifdef CONFIG_MEMORY_FAILURE
@@ -56729,7 +55984,7 @@ index ccfd99b..1b7e255 100644
56729 55984
56730 seq_putc(m, '\n'); 55985 seq_putc(m, '\n');
56731diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c 55986diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
56732index b4ac657..0842bd2 100644 55987index 986e832..6e8e859 100644
56733--- a/fs/proc/proc_net.c 55988--- a/fs/proc/proc_net.c
56734+++ b/fs/proc/proc_net.c 55989+++ b/fs/proc/proc_net.c
56735@@ -23,6 +23,7 @@ 55990@@ -23,6 +23,7 @@
@@ -56740,7 +55995,7 @@ index b4ac657..0842bd2 100644
56740 55995
56741 #include "internal.h" 55996 #include "internal.h"
56742 55997
56743@@ -105,6 +106,17 @@ static struct net *get_proc_task_net(struct inode *dir) 55998@@ -109,6 +110,17 @@ static struct net *get_proc_task_net(struct inode *dir)
56744 struct task_struct *task; 55999 struct task_struct *task;
56745 struct nsproxy *ns; 56000 struct nsproxy *ns;
56746 struct net *net = NULL; 56001 struct net *net = NULL;
@@ -56946,10 +56201,10 @@ index ac05f33..1e6dc7e 100644
56946 kfree(ctl_table_arg); 56201 kfree(ctl_table_arg);
56947 goto out; 56202 goto out;
56948diff --git a/fs/proc/root.c b/fs/proc/root.c 56203diff --git a/fs/proc/root.c b/fs/proc/root.c
56949index 9c7fab1..ed1c8e0 100644 56204index 41a6ea9..23eaa92 100644
56950--- a/fs/proc/root.c 56205--- a/fs/proc/root.c
56951+++ b/fs/proc/root.c 56206+++ b/fs/proc/root.c
56952@@ -180,7 +180,15 @@ void __init proc_root_init(void) 56207@@ -182,7 +182,15 @@ void __init proc_root_init(void)
56953 #ifdef CONFIG_PROC_DEVICETREE 56208 #ifdef CONFIG_PROC_DEVICETREE
56954 proc_device_tree_init(); 56209 proc_device_tree_init();
56955 #endif 56210 #endif
@@ -56966,10 +56221,10 @@ index 9c7fab1..ed1c8e0 100644
56966 } 56221 }
56967 56222
56968diff --git a/fs/proc/self.c b/fs/proc/self.c 56223diff --git a/fs/proc/self.c b/fs/proc/self.c
56969index aa5cc3b..c91a5d0 100644 56224index 6b6a993..807cccc 100644
56970--- a/fs/proc/self.c 56225--- a/fs/proc/self.c
56971+++ b/fs/proc/self.c 56226+++ b/fs/proc/self.c
56972@@ -37,7 +37,7 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd) 56227@@ -39,7 +39,7 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd)
56973 static void proc_self_put_link(struct dentry *dentry, struct nameidata *nd, 56228 static void proc_self_put_link(struct dentry *dentry, struct nameidata *nd,
56974 void *cookie) 56229 void *cookie)
56975 { 56230 {
@@ -57200,10 +56455,10 @@ index 56123a6..5a2f6ec 100644
57200 pid_t tid = vm_is_stack(priv->task, vma, is_pid); 56455 pid_t tid = vm_is_stack(priv->task, vma, is_pid);
57201 56456
57202diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c 56457diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
57203index b870f74..e9048df 100644 56458index 17f7e08..e4b1529 100644
57204--- a/fs/proc/vmcore.c 56459--- a/fs/proc/vmcore.c
57205+++ b/fs/proc/vmcore.c 56460+++ b/fs/proc/vmcore.c
57206@@ -98,9 +98,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count, 56461@@ -99,9 +99,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
57207 nr_bytes = count; 56462 nr_bytes = count;
57208 56463
57209 /* If pfn is not ram, return zeros for sparse dump files */ 56464 /* If pfn is not ram, return zeros for sparse dump files */
@@ -57220,7 +56475,7 @@ index b870f74..e9048df 100644
57220 tmp = copy_oldmem_page(pfn, buf, nr_bytes, 56475 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
57221 offset, userbuf); 56476 offset, userbuf);
57222 if (tmp < 0) 56477 if (tmp < 0)
57223@@ -185,7 +189,7 @@ static ssize_t read_vmcore(struct file *file, char __user *buffer, 56478@@ -186,7 +190,7 @@ static ssize_t read_vmcore(struct file *file, char __user *buffer,
57224 if (tsz > nr_bytes) 56479 if (tsz > nr_bytes)
57225 tsz = nr_bytes; 56480 tsz = nr_bytes;
57226 56481
@@ -57274,10 +56529,10 @@ index 16e8abb..2dcf914 100644
57274 if (!msg_head) { 56529 if (!msg_head) {
57275 printk(KERN_ERR 56530 printk(KERN_ERR
57276diff --git a/fs/read_write.c b/fs/read_write.c 56531diff --git a/fs/read_write.c b/fs/read_write.c
57277index e6ddc8d..9155227 100644 56532index 2cefa41..c7e2fe0 100644
57278--- a/fs/read_write.c 56533--- a/fs/read_write.c
57279+++ b/fs/read_write.c 56534+++ b/fs/read_write.c
57280@@ -429,7 +429,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t 56535@@ -411,7 +411,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
57281 56536
57282 old_fs = get_fs(); 56537 old_fs = get_fs();
57283 set_fs(get_ds()); 56538 set_fs(get_ds());
@@ -57402,7 +56657,7 @@ index 2b7882b..1c5ef48 100644
57402 56657
57403 /* balance leaf returns 0 except if combining L R and S into 56658 /* balance leaf returns 0 except if combining L R and S into
57404diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c 56659diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
57405index 9cc0740a..46bf953 100644 56660index 33532f7..4846ade 100644
57406--- a/fs/reiserfs/procfs.c 56661--- a/fs/reiserfs/procfs.c
57407+++ b/fs/reiserfs/procfs.c 56662+++ b/fs/reiserfs/procfs.c
57408@@ -112,7 +112,7 @@ static int show_super(struct seq_file *m, struct super_block *sb) 56663@@ -112,7 +112,7 @@ static int show_super(struct seq_file *m, struct super_block *sb)
@@ -57457,7 +56712,7 @@ index 8c1c96c..a0f9b6d 100644
57457 return -EINVAL; 56712 return -EINVAL;
57458 56713
57459diff --git a/fs/seq_file.c b/fs/seq_file.c 56714diff --git a/fs/seq_file.c b/fs/seq_file.c
57460index 38bb59f..a304f9d 100644 56715index 774c1eb..b67582a 100644
57461--- a/fs/seq_file.c 56716--- a/fs/seq_file.c
57462+++ b/fs/seq_file.c 56717+++ b/fs/seq_file.c
57463@@ -10,6 +10,7 @@ 56718@@ -10,6 +10,7 @@
@@ -57524,10 +56779,10 @@ index 38bb59f..a304f9d 100644
57524 56779
57525 if (op) { 56780 if (op) {
57526diff --git a/fs/splice.c b/fs/splice.c 56781diff --git a/fs/splice.c b/fs/splice.c
57527index 29e394e..b13c247 100644 56782index d37431d..81c3044 100644
57528--- a/fs/splice.c 56783--- a/fs/splice.c
57529+++ b/fs/splice.c 56784+++ b/fs/splice.c
57530@@ -195,7 +195,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe, 56785@@ -196,7 +196,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
57531 pipe_lock(pipe); 56786 pipe_lock(pipe);
57532 56787
57533 for (;;) { 56788 for (;;) {
@@ -57536,7 +56791,16 @@ index 29e394e..b13c247 100644
57536 send_sig(SIGPIPE, current, 0); 56791 send_sig(SIGPIPE, current, 0);
57537 if (!ret) 56792 if (!ret)
57538 ret = -EPIPE; 56793 ret = -EPIPE;
57539@@ -249,9 +249,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe, 56794@@ -219,7 +219,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
56795 page_nr++;
56796 ret += buf->len;
56797
56798- if (pipe->files)
56799+ if (atomic_read(&pipe->files))
56800 do_wakeup = 1;
56801
56802 if (!--spd->nr_pages)
56803@@ -250,9 +250,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
57540 do_wakeup = 0; 56804 do_wakeup = 0;
57541 } 56805 }
57542 56806
@@ -57548,7 +56812,7 @@ index 29e394e..b13c247 100644
57548 } 56812 }
57549 56813
57550 pipe_unlock(pipe); 56814 pipe_unlock(pipe);
57551@@ -564,7 +564,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec, 56815@@ -565,7 +565,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
57552 old_fs = get_fs(); 56816 old_fs = get_fs();
57553 set_fs(get_ds()); 56817 set_fs(get_ds());
57554 /* The cast to a user pointer is valid due to the set_fs() */ 56818 /* The cast to a user pointer is valid due to the set_fs() */
@@ -57557,7 +56821,7 @@ index 29e394e..b13c247 100644
57557 set_fs(old_fs); 56821 set_fs(old_fs);
57558 56822
57559 return res; 56823 return res;
57560@@ -579,7 +579,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count, 56824@@ -580,7 +580,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
57561 old_fs = get_fs(); 56825 old_fs = get_fs();
57562 set_fs(get_ds()); 56826 set_fs(get_ds());
57563 /* The cast to a user pointer is valid due to the set_fs() */ 56827 /* The cast to a user pointer is valid due to the set_fs() */
@@ -57566,7 +56830,7 @@ index 29e394e..b13c247 100644
57566 set_fs(old_fs); 56830 set_fs(old_fs);
57567 56831
57568 return res; 56832 return res;
57569@@ -632,7 +632,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos, 56833@@ -633,7 +633,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
57570 goto err; 56834 goto err;
57571 56835
57572 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset); 56836 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
@@ -57575,7 +56839,16 @@ index 29e394e..b13c247 100644
57575 vec[i].iov_len = this_len; 56839 vec[i].iov_len = this_len;
57576 spd.pages[i] = page; 56840 spd.pages[i] = page;
57577 spd.nr_pages++; 56841 spd.nr_pages++;
57578@@ -853,10 +853,10 @@ EXPORT_SYMBOL(splice_from_pipe_feed); 56842@@ -829,7 +829,7 @@ int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_desc *sd,
56843 ops->release(pipe, buf);
56844 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
56845 pipe->nrbufs--;
56846- if (pipe->files)
56847+ if (atomic_read(&pipe->files))
56848 sd->need_wakeup = true;
56849 }
56850
56851@@ -854,10 +854,10 @@ EXPORT_SYMBOL(splice_from_pipe_feed);
57579 int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd) 56852 int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
57580 { 56853 {
57581 while (!pipe->nrbufs) { 56854 while (!pipe->nrbufs) {
@@ -57588,7 +56861,7 @@ index 29e394e..b13c247 100644
57588 return 0; 56861 return 0;
57589 56862
57590 if (sd->flags & SPLICE_F_NONBLOCK) 56863 if (sd->flags & SPLICE_F_NONBLOCK)
57591@@ -1192,7 +1192,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd, 56864@@ -1193,7 +1193,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
57592 * out of the pipe right after the splice_to_pipe(). So set 56865 * out of the pipe right after the splice_to_pipe(). So set
57593 * PIPE_READERS appropriately. 56866 * PIPE_READERS appropriately.
57594 */ 56867 */
@@ -57597,7 +56870,7 @@ index 29e394e..b13c247 100644
57597 56870
57598 current->splice_pipe = pipe; 56871 current->splice_pipe = pipe;
57599 } 56872 }
57600@@ -1741,9 +1741,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 56873@@ -1769,9 +1769,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
57601 ret = -ERESTARTSYS; 56874 ret = -ERESTARTSYS;
57602 break; 56875 break;
57603 } 56876 }
@@ -57609,7 +56882,7 @@ index 29e394e..b13c247 100644
57609 if (flags & SPLICE_F_NONBLOCK) { 56882 if (flags & SPLICE_F_NONBLOCK) {
57610 ret = -EAGAIN; 56883 ret = -EAGAIN;
57611 break; 56884 break;
57612@@ -1775,7 +1775,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 56885@@ -1803,7 +1803,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
57613 pipe_lock(pipe); 56886 pipe_lock(pipe);
57614 56887
57615 while (pipe->nrbufs >= pipe->buffers) { 56888 while (pipe->nrbufs >= pipe->buffers) {
@@ -57618,7 +56891,7 @@ index 29e394e..b13c247 100644
57618 send_sig(SIGPIPE, current, 0); 56891 send_sig(SIGPIPE, current, 0);
57619 ret = -EPIPE; 56892 ret = -EPIPE;
57620 break; 56893 break;
57621@@ -1788,9 +1788,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags) 56894@@ -1816,9 +1816,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
57622 ret = -ERESTARTSYS; 56895 ret = -ERESTARTSYS;
57623 break; 56896 break;
57624 } 56897 }
@@ -57630,7 +56903,7 @@ index 29e394e..b13c247 100644
57630 } 56903 }
57631 56904
57632 pipe_unlock(pipe); 56905 pipe_unlock(pipe);
57633@@ -1826,14 +1826,14 @@ retry: 56906@@ -1854,14 +1854,14 @@ retry:
57634 pipe_double_lock(ipipe, opipe); 56907 pipe_double_lock(ipipe, opipe);
57635 56908
57636 do { 56909 do {
@@ -57647,7 +56920,7 @@ index 29e394e..b13c247 100644
57647 break; 56920 break;
57648 56921
57649 /* 56922 /*
57650@@ -1930,7 +1930,7 @@ static int link_pipe(struct pipe_inode_info *ipipe, 56923@@ -1958,7 +1958,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
57651 pipe_double_lock(ipipe, opipe); 56924 pipe_double_lock(ipipe, opipe);
57652 56925
57653 do { 56926 do {
@@ -57656,7 +56929,7 @@ index 29e394e..b13c247 100644
57656 send_sig(SIGPIPE, current, 0); 56929 send_sig(SIGPIPE, current, 0);
57657 if (!ret) 56930 if (!ret)
57658 ret = -EPIPE; 56931 ret = -EPIPE;
57659@@ -1975,7 +1975,7 @@ static int link_pipe(struct pipe_inode_info *ipipe, 56932@@ -2003,7 +2003,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
57660 * return EAGAIN if we have the potential of some data in the 56933 * return EAGAIN if we have the potential of some data in the
57661 * future, otherwise just return 0 56934 * future, otherwise just return 0
57662 */ 56935 */
@@ -57781,7 +57054,7 @@ index 15c68f9..36a8b3e 100644
57781 if (!bb->vm_ops) 57054 if (!bb->vm_ops)
57782 return -EINVAL; 57055 return -EINVAL;
57783diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c 57056diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
57784index 6f31590..3c87c8a 100644 57057index e8e0e71..79c28ac5 100644
57785--- a/fs/sysfs/dir.c 57058--- a/fs/sysfs/dir.c
57786+++ b/fs/sysfs/dir.c 57059+++ b/fs/sysfs/dir.c
57787@@ -40,7 +40,7 @@ static DEFINE_IDA(sysfs_ino_ida); 57060@@ -40,7 +40,7 @@ static DEFINE_IDA(sysfs_ino_ida);
@@ -57793,7 +57066,7 @@ index 6f31590..3c87c8a 100644
57793 { 57066 {
57794 unsigned long hash = init_name_hash(); 57067 unsigned long hash = init_name_hash();
57795 unsigned int len = strlen(name); 57068 unsigned int len = strlen(name);
57796@@ -685,6 +685,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd, 57069@@ -679,6 +679,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
57797 struct sysfs_dirent *sd; 57070 struct sysfs_dirent *sd;
57798 int rc; 57071 int rc;
57799 57072
@@ -57804,7 +57077,7 @@ index 6f31590..3c87c8a 100644
57804+ 57077+
57805+ if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) || 57078+ if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
57806+ (!strcmp(parent_name, "devices") && !strcmp(name, "system")) || 57079+ (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
57807+ (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse"))) || 57080+ (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse") || !strcmp(name, "ecryptfs"))) ||
57808+ (!strcmp(parent_name, "system") && !strcmp(name, "cpu"))) 57081+ (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
57809+ mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO; 57082+ mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
57810+#endif 57083+#endif
@@ -58068,20 +57341,20 @@ index 9fbea87..6b19972 100644
58068 struct posix_acl *acl; 57341 struct posix_acl *acl;
58069 struct posix_acl_entry *acl_e; 57342 struct posix_acl_entry *acl_e;
58070diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c 57343diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
58071index b44af92..06073da 100644 57344index 8904284..ee0e14b 100644
58072--- a/fs/xfs/xfs_bmap.c 57345--- a/fs/xfs/xfs_bmap.c
58073+++ b/fs/xfs/xfs_bmap.c 57346+++ b/fs/xfs/xfs_bmap.c
58074@@ -192,7 +192,7 @@ xfs_bmap_validate_ret( 57347@@ -765,7 +765,7 @@ xfs_bmap_validate_ret(
58075 int nmap, 57348
58076 int ret_nmap);
58077 #else 57349 #else
57350 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
58078-#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) 57351-#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
58079+#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do {} while (0) 57352+#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do { } while (0)
58080 #endif /* DEBUG */ 57353 #endif /* DEBUG */
58081 57354
58082 STATIC int 57355 /*
58083diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c 57356diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c
58084index 1b9fc3e..e1bdde0 100644 57357index 6157424..ac98f6d 100644
58085--- a/fs/xfs/xfs_dir2_sf.c 57358--- a/fs/xfs/xfs_dir2_sf.c
58086+++ b/fs/xfs/xfs_dir2_sf.c 57359+++ b/fs/xfs/xfs_dir2_sf.c
58087@@ -851,7 +851,15 @@ xfs_dir2_sf_getdents( 57360@@ -851,7 +851,15 @@ xfs_dir2_sf_getdents(
@@ -58102,7 +57375,7 @@ index 1b9fc3e..e1bdde0 100644
58102 *offset = off & 0x7fffffff; 57375 *offset = off & 0x7fffffff;
58103 return 0; 57376 return 0;
58104diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c 57377diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
58105index d681e34..2a3f5ab 100644 57378index 5e99968..45bd327 100644
58106--- a/fs/xfs/xfs_ioctl.c 57379--- a/fs/xfs/xfs_ioctl.c
58107+++ b/fs/xfs/xfs_ioctl.c 57380+++ b/fs/xfs/xfs_ioctl.c
58108@@ -127,7 +127,7 @@ xfs_find_handle( 57381@@ -127,7 +127,7 @@ xfs_find_handle(
@@ -58129,10 +57402,10 @@ index ca9ecaa..60100c7 100644
58129 kfree(s); 57402 kfree(s);
58130diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig 57403diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
58131new file mode 100644 57404new file mode 100644
58132index 0000000..c9c4ac3 57405index 0000000..712a85d
58133--- /dev/null 57406--- /dev/null
58134+++ b/grsecurity/Kconfig 57407+++ b/grsecurity/Kconfig
58135@@ -0,0 +1,1054 @@ 57408@@ -0,0 +1,1043 @@
58136+# 57409+#
58137+# grecurity configuration 57410+# grecurity configuration
58138+# 57411+#
@@ -58843,22 +58116,11 @@ index 0000000..c9c4ac3
58843+ help 58116+ help
58844+ If you say Y here, calls to mmap() and mprotect() with explicit 58117+ If you say Y here, calls to mmap() and mprotect() with explicit
58845+ usage of PROT_WRITE and PROT_EXEC together will be logged when 58118+ usage of PROT_WRITE and PROT_EXEC together will be logged when
58846+ denied by the PAX_MPROTECT feature. If the sysctl option is 58119+ denied by the PAX_MPROTECT feature. This feature will also
58847+ enabled, a sysctl option with name "rwxmap_logging" is created. 58120+ log other problematic scenarios that can occur when PAX_MPROTECT
58848+ 58121+ is enabled on a binary, like textrels and PT_GNU_STACK. If the
58849+config GRKERNSEC_AUDIT_TEXTREL 58122+ sysctl option is enabled, a sysctl option with name "rwxmap_logging"
58850+ bool 'ELF text relocations logging (READ HELP)' 58123+ is created.
58851+ depends on PAX_MPROTECT
58852+ help
58853+ If you say Y here, text relocations will be logged with the filename
58854+ of the offending library or binary. The purpose of the feature is
58855+ to help Linux distribution developers get rid of libraries and
58856+ binaries that need text relocations which hinder the future progress
58857+ of PaX. Only Linux distribution developers should say Y here, and
58858+ never on a production machine, as this option creates an information
58859+ leak that could aid an attacker in defeating the randomization of
58860+ a single memory region. If the sysctl option is enabled, a sysctl
58861+ option with name "audit_textrel" is created.
58862+ 58124+
58863+endmenu 58125+endmenu
58864+ 58126+
@@ -59189,10 +58451,10 @@ index 0000000..c9c4ac3
59189+endmenu 58451+endmenu
59190diff --git a/grsecurity/Makefile b/grsecurity/Makefile 58452diff --git a/grsecurity/Makefile b/grsecurity/Makefile
59191new file mode 100644 58453new file mode 100644
59192index 0000000..1b9afa9 58454index 0000000..36845aa
59193--- /dev/null 58455--- /dev/null
59194+++ b/grsecurity/Makefile 58456+++ b/grsecurity/Makefile
59195@@ -0,0 +1,38 @@ 58457@@ -0,0 +1,42 @@
59196+# grsecurity's ACL system was originally written in 2001 by Michael Dalton 58458+# grsecurity's ACL system was originally written in 2001 by Michael Dalton
59197+# during 2001-2009 it has been completely redesigned by Brad Spengler 58459+# during 2001-2009 it has been completely redesigned by Brad Spengler
59198+# into an RBAC system 58460+# into an RBAC system
@@ -59210,6 +58472,10 @@ index 0000000..1b9afa9
59210+obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \ 58472+obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \
59211+ gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \ 58473+ gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \
59212+ gracl_learn.o grsec_log.o 58474+ gracl_learn.o grsec_log.o
58475+ifdef CONFIG_COMPAT
58476+obj-$(CONFIG_GRKERNSEC) += gracl_compat.o
58477+endif
58478+
59213+obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o 58479+obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o
59214+ 58480+
59215+ifdef CONFIG_NET 58481+ifdef CONFIG_NET
@@ -59233,10 +58499,10 @@ index 0000000..1b9afa9
59233+endif 58499+endif
59234diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c 58500diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
59235new file mode 100644 58501new file mode 100644
59236index 0000000..0d5c602 58502index 0000000..6907918
59237--- /dev/null 58503--- /dev/null
59238+++ b/grsecurity/gracl.c 58504+++ b/grsecurity/gracl.c
59239@@ -0,0 +1,4073 @@ 58505@@ -0,0 +1,4178 @@
59240+#include <linux/kernel.h> 58506+#include <linux/kernel.h>
59241+#include <linux/module.h> 58507+#include <linux/module.h>
59242+#include <linux/sched.h> 58508+#include <linux/sched.h>
@@ -59339,6 +58605,144 @@ index 0000000..0d5c602
59339+extern void gr_remove_uid(uid_t uid); 58605+extern void gr_remove_uid(uid_t uid);
59340+extern int gr_find_uid(uid_t uid); 58606+extern int gr_find_uid(uid_t uid);
59341+ 58607+
58608+static int copy_acl_object_label_normal(struct acl_object_label *obj, const struct acl_object_label *userp)
58609+{
58610+ if (copy_from_user(obj, userp, sizeof(struct acl_object_label)))
58611+ return -EFAULT;
58612+
58613+ return 0;
58614+}
58615+
58616+static int copy_acl_ip_label_normal(struct acl_ip_label *ip, const struct acl_ip_label *userp)
58617+{
58618+ if (copy_from_user(ip, userp, sizeof(struct acl_ip_label)))
58619+ return -EFAULT;
58620+
58621+ return 0;
58622+}
58623+
58624+static int copy_acl_subject_label_normal(struct acl_subject_label *subj, const struct acl_subject_label *userp)
58625+{
58626+ if (copy_from_user(subj, userp, sizeof(struct acl_subject_label)))
58627+ return -EFAULT;
58628+
58629+ return 0;
58630+}
58631+
58632+static int copy_acl_role_label_normal(struct acl_role_label *role, const struct acl_role_label *userp)
58633+{
58634+ if (copy_from_user(role, userp, sizeof(struct acl_role_label)))
58635+ return -EFAULT;
58636+
58637+ return 0;
58638+}
58639+
58640+static int copy_role_allowed_ip_normal(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
58641+{
58642+ if (copy_from_user(roleip, userp, sizeof(struct role_allowed_ip)))
58643+ return -EFAULT;
58644+
58645+ return 0;
58646+}
58647+
58648+static int copy_sprole_pw_normal(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
58649+{
58650+ if (copy_from_user(pw, userp + idx, sizeof(struct sprole_pw)))
58651+ return -EFAULT;
58652+
58653+ return 0;
58654+}
58655+
58656+static int copy_gr_hash_struct_normal(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
58657+{
58658+ if (copy_from_user(hash, userp, sizeof(struct gr_hash_struct)))
58659+ return -EFAULT;
58660+
58661+ return 0;
58662+}
58663+
58664+static int copy_role_transition_normal(struct role_transition *trans, const struct role_transition *userp)
58665+{
58666+ if (copy_from_user(trans, userp, sizeof(struct role_transition)))
58667+ return -EFAULT;
58668+
58669+ return 0;
58670+}
58671+
58672+int copy_pointer_from_array_normal(void *ptr, unsigned long idx, const void *userp)
58673+{
58674+ if (copy_from_user(ptr, userp + (idx * sizeof(void *)), sizeof(void *)))
58675+ return -EFAULT;
58676+
58677+ return 0;
58678+}
58679+
58680+static int copy_gr_arg_wrapper_normal(const char __user *buf, struct gr_arg_wrapper *uwrap)
58681+{
58682+ if (copy_from_user(uwrap, buf, sizeof (struct gr_arg_wrapper)))
58683+ return -EFAULT;
58684+
58685+ if ((uwrap->version != GRSECURITY_VERSION) || (uwrap->size != sizeof(struct gr_arg)))
58686+ return -EINVAL;
58687+
58688+ return 0;
58689+}
58690+
58691+static int copy_gr_arg_normal(const struct gr_arg __user *buf, struct gr_arg *arg)
58692+{
58693+ if (copy_from_user(arg, buf, sizeof (struct gr_arg)))
58694+ return -EFAULT;
58695+
58696+ return 0;
58697+}
58698+
58699+static size_t get_gr_arg_wrapper_size_normal(void)
58700+{
58701+ return sizeof(struct gr_arg_wrapper);
58702+}
58703+
58704+#ifdef CONFIG_COMPAT
58705+extern int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap);
58706+extern int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg);
58707+extern int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp);
58708+extern int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp);
58709+extern int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp);
58710+extern int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp);
58711+extern int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp);
58712+extern int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp);
58713+extern int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp);
58714+extern int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp);
58715+extern int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp);
58716+extern size_t get_gr_arg_wrapper_size_compat(void);
58717+
58718+int (* copy_gr_arg_wrapper)(const char *buf, struct gr_arg_wrapper *uwrap) __read_only;
58719+int (* copy_gr_arg)(const struct gr_arg *buf, struct gr_arg *arg) __read_only;
58720+int (* copy_acl_object_label)(struct acl_object_label *obj, const struct acl_object_label *userp) __read_only;
58721+int (* copy_acl_subject_label)(struct acl_subject_label *subj, const struct acl_subject_label *userp) __read_only;
58722+int (* copy_acl_role_label)(struct acl_role_label *role, const struct acl_role_label *userp) __read_only;
58723+int (* copy_acl_ip_label)(struct acl_ip_label *ip, const struct acl_ip_label *userp) __read_only;
58724+int (* copy_pointer_from_array)(void *ptr, unsigned long idx, const void *userp) __read_only;
58725+int (* copy_sprole_pw)(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp) __read_only;
58726+int (* copy_gr_hash_struct)(struct gr_hash_struct *hash, const struct gr_hash_struct *userp) __read_only;
58727+int (* copy_role_transition)(struct role_transition *trans, const struct role_transition *userp) __read_only;
58728+int (* copy_role_allowed_ip)(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp) __read_only;
58729+size_t (* get_gr_arg_wrapper_size)(void) __read_only;
58730+
58731+#else
58732+#define copy_gr_arg_wrapper copy_gr_arg_wrapper_normal
58733+#define copy_gr_arg copy_gr_arg_normal
58734+#define copy_gr_hash_struct copy_gr_hash_struct_normal
58735+#define copy_acl_object_label copy_acl_object_label_normal
58736+#define copy_acl_subject_label copy_acl_subject_label_normal
58737+#define copy_acl_role_label copy_acl_role_label_normal
58738+#define copy_acl_ip_label copy_acl_ip_label_normal
58739+#define copy_pointer_from_array copy_pointer_from_array_normal
58740+#define copy_sprole_pw copy_sprole_pw_normal
58741+#define copy_role_transition copy_role_transition_normal
58742+#define copy_role_allowed_ip copy_role_allowed_ip_normal
58743+#define get_gr_arg_wrapper_size get_gr_arg_wrapper_size_normal
58744+#endif
58745+
59342+__inline__ int 58746+__inline__ int
59343+gr_acl_is_enabled(void) 58747+gr_acl_is_enabled(void)
59344+{ 58748+{
@@ -60282,33 +59686,34 @@ index 0000000..0d5c602
60282+ return; 59686+ return;
60283+} 59687+}
60284+ 59688+
60285+static __u32 59689+static struct acl_subject_label *
60286+count_user_objs(struct acl_object_label *userp) 59690+do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied);
59691+
59692+static int alloc_and_copy_string(char **name, unsigned int maxlen)
60287+{ 59693+{
60288+ struct acl_object_label o_tmp; 59694+ unsigned int len = strnlen_user(*name, maxlen);
60289+ __u32 num = 0; 59695+ char *tmp;
60290+ 59696+
60291+ while (userp) { 59697+ if (!len || len >= maxlen)
60292+ if (copy_from_user(&o_tmp, userp, 59698+ return -EINVAL;
60293+ sizeof (struct acl_object_label)))
60294+ break;
60295+ 59699+
60296+ userp = o_tmp.prev; 59700+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60297+ num++; 59701+ return -ENOMEM;
60298+ }
60299+ 59702+
60300+ return num; 59703+ if (copy_from_user(tmp, *name, len))
60301+} 59704+ return -EFAULT;
60302+ 59705+
60303+static struct acl_subject_label * 59706+ tmp[len-1] = '\0';
60304+do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied); 59707+ *name = tmp;
59708+
59709+ return 0;
59710+}
60305+ 59711+
60306+static int 59712+static int
60307+copy_user_glob(struct acl_object_label *obj) 59713+copy_user_glob(struct acl_object_label *obj)
60308+{ 59714+{
60309+ struct acl_object_label *g_tmp, **guser; 59715+ struct acl_object_label *g_tmp, **guser;
60310+ unsigned int len; 59716+ int error;
60311+ char *tmp;
60312+ 59717+
60313+ if (obj->globbed == NULL) 59718+ if (obj->globbed == NULL)
60314+ return 0; 59719+ return 0;
@@ -60320,22 +59725,12 @@ index 0000000..0d5c602
60320+ if (g_tmp == NULL) 59725+ if (g_tmp == NULL)
60321+ return -ENOMEM; 59726+ return -ENOMEM;
60322+ 59727+
60323+ if (copy_from_user(g_tmp, *guser, 59728+ if (copy_acl_object_label(g_tmp, *guser))
60324+ sizeof (struct acl_object_label)))
60325+ return -EFAULT; 59729+ return -EFAULT;
60326+ 59730+
60327+ len = strnlen_user(g_tmp->filename, PATH_MAX); 59731+ error = alloc_and_copy_string(&g_tmp->filename, PATH_MAX);
60328+ 59732+ if (error)
60329+ if (!len || len >= PATH_MAX) 59733+ return error;
60330+ return -EINVAL;
60331+
60332+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60333+ return -ENOMEM;
60334+
60335+ if (copy_from_user(tmp, g_tmp->filename, len))
60336+ return -EFAULT;
60337+ tmp[len-1] = '\0';
60338+ g_tmp->filename = tmp;
60339+ 59734+
60340+ *guser = g_tmp; 59735+ *guser = g_tmp;
60341+ guser = &(g_tmp->next); 59736+ guser = &(g_tmp->next);
@@ -60349,33 +59744,21 @@ index 0000000..0d5c602
60349+ struct acl_role_label *role) 59744+ struct acl_role_label *role)
60350+{ 59745+{
60351+ struct acl_object_label *o_tmp; 59746+ struct acl_object_label *o_tmp;
60352+ unsigned int len;
60353+ int ret; 59747+ int ret;
60354+ char *tmp;
60355+ 59748+
60356+ while (userp) { 59749+ while (userp) {
60357+ if ((o_tmp = (struct acl_object_label *) 59750+ if ((o_tmp = (struct acl_object_label *)
60358+ acl_alloc(sizeof (struct acl_object_label))) == NULL) 59751+ acl_alloc(sizeof (struct acl_object_label))) == NULL)
60359+ return -ENOMEM; 59752+ return -ENOMEM;
60360+ 59753+
60361+ if (copy_from_user(o_tmp, userp, 59754+ if (copy_acl_object_label(o_tmp, userp))
60362+ sizeof (struct acl_object_label)))
60363+ return -EFAULT; 59755+ return -EFAULT;
60364+ 59756+
60365+ userp = o_tmp->prev; 59757+ userp = o_tmp->prev;
60366+ 59758+
60367+ len = strnlen_user(o_tmp->filename, PATH_MAX); 59759+ ret = alloc_and_copy_string(&o_tmp->filename, PATH_MAX);
60368+ 59760+ if (ret)
60369+ if (!len || len >= PATH_MAX) 59761+ return ret;
60370+ return -EINVAL;
60371+
60372+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60373+ return -ENOMEM;
60374+
60375+ if (copy_from_user(tmp, o_tmp->filename, len))
60376+ return -EFAULT;
60377+ tmp[len-1] = '\0';
60378+ o_tmp->filename = tmp;
60379+ 59762+
60380+ insert_acl_obj_label(o_tmp, subj); 59763+ insert_acl_obj_label(o_tmp, subj);
60381+ if (!insert_name_entry(o_tmp->filename, o_tmp->inode, 59764+ if (!insert_name_entry(o_tmp->filename, o_tmp->inode,
@@ -60412,8 +59795,7 @@ index 0000000..0d5c602
60412+ __u32 num = 0; 59795+ __u32 num = 0;
60413+ 59796+
60414+ while (userp) { 59797+ while (userp) {
60415+ if (copy_from_user(&s_tmp, userp, 59798+ if (copy_acl_subject_label(&s_tmp, userp))
60416+ sizeof (struct acl_subject_label)))
60417+ break; 59799+ break;
60418+ 59800+
60419+ userp = s_tmp.prev; 59801+ userp = s_tmp.prev;
@@ -60436,8 +59818,7 @@ index 0000000..0d5c602
60436+ acl_alloc(sizeof (struct role_allowed_ip))) == NULL) 59818+ acl_alloc(sizeof (struct role_allowed_ip))) == NULL)
60437+ return -ENOMEM; 59819+ return -ENOMEM;
60438+ 59820+
60439+ if (copy_from_user(rtmp, ruserip, 59821+ if (copy_role_allowed_ip(rtmp, ruserip))
60440+ sizeof (struct role_allowed_ip)))
60441+ return -EFAULT; 59822+ return -EFAULT;
60442+ 59823+
60443+ ruserip = rtmp->prev; 59824+ ruserip = rtmp->prev;
@@ -60461,9 +59842,7 @@ index 0000000..0d5c602
60461+copy_user_transitions(struct acl_role_label *rolep) 59842+copy_user_transitions(struct acl_role_label *rolep)
60462+{ 59843+{
60463+ struct role_transition *rusertp, *rtmp = NULL, *rlast; 59844+ struct role_transition *rusertp, *rtmp = NULL, *rlast;
60464+ 59845+ int error;
60465+ unsigned int len;
60466+ char *tmp;
60467+ 59846+
60468+ rusertp = rolep->transitions; 59847+ rusertp = rolep->transitions;
60469+ 59848+
@@ -60474,24 +59853,14 @@ index 0000000..0d5c602
60474+ acl_alloc(sizeof (struct role_transition))) == NULL) 59853+ acl_alloc(sizeof (struct role_transition))) == NULL)
60475+ return -ENOMEM; 59854+ return -ENOMEM;
60476+ 59855+
60477+ if (copy_from_user(rtmp, rusertp, 59856+ if (copy_role_transition(rtmp, rusertp))
60478+ sizeof (struct role_transition)))
60479+ return -EFAULT; 59857+ return -EFAULT;
60480+ 59858+
60481+ rusertp = rtmp->prev; 59859+ rusertp = rtmp->prev;
60482+ 59860+
60483+ len = strnlen_user(rtmp->rolename, GR_SPROLE_LEN); 59861+ error = alloc_and_copy_string(&rtmp->rolename, GR_SPROLE_LEN);
60484+ 59862+ if (error)
60485+ if (!len || len >= GR_SPROLE_LEN) 59863+ return error;
60486+ return -EINVAL;
60487+
60488+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60489+ return -ENOMEM;
60490+
60491+ if (copy_from_user(tmp, rtmp->rolename, len))
60492+ return -EFAULT;
60493+ tmp[len-1] = '\0';
60494+ rtmp->rolename = tmp;
60495+ 59864+
60496+ if (!rlast) { 59865+ if (!rlast) {
60497+ rtmp->prev = NULL; 59866+ rtmp->prev = NULL;
@@ -60508,12 +59877,26 @@ index 0000000..0d5c602
60508+ return 0; 59877+ return 0;
60509+} 59878+}
60510+ 59879+
59880+static __u32 count_user_objs(const struct acl_object_label __user *userp)
59881+{
59882+ struct acl_object_label o_tmp;
59883+ __u32 num = 0;
59884+
59885+ while (userp) {
59886+ if (copy_acl_object_label(&o_tmp, userp))
59887+ break;
59888+
59889+ userp = o_tmp.prev;
59890+ num++;
59891+ }
59892+
59893+ return num;
59894+}
59895+
60511+static struct acl_subject_label * 59896+static struct acl_subject_label *
60512+do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied) 59897+do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied)
60513+{ 59898+{
60514+ struct acl_subject_label *s_tmp = NULL, *s_tmp2; 59899+ struct acl_subject_label *s_tmp = NULL, *s_tmp2;
60515+ unsigned int len;
60516+ char *tmp;
60517+ __u32 num_objs; 59900+ __u32 num_objs;
60518+ struct acl_ip_label **i_tmp, *i_utmp2; 59901+ struct acl_ip_label **i_tmp, *i_utmp2;
60519+ struct gr_hash_struct ghash; 59902+ struct gr_hash_struct ghash;
@@ -60547,27 +59930,17 @@ index 0000000..0d5c602
60547+ subjmap->kernel = s_tmp; 59930+ subjmap->kernel = s_tmp;
60548+ insert_subj_map_entry(subjmap); 59931+ insert_subj_map_entry(subjmap);
60549+ 59932+
60550+ if (copy_from_user(s_tmp, userp, 59933+ if (copy_acl_subject_label(s_tmp, userp))
60551+ sizeof (struct acl_subject_label)))
60552+ return ERR_PTR(-EFAULT); 59934+ return ERR_PTR(-EFAULT);
60553+ 59935+
60554+ len = strnlen_user(s_tmp->filename, PATH_MAX); 59936+ err = alloc_and_copy_string(&s_tmp->filename, PATH_MAX);
60555+ 59937+ if (err)
60556+ if (!len || len >= PATH_MAX) 59938+ return ERR_PTR(err);
60557+ return ERR_PTR(-EINVAL);
60558+
60559+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60560+ return ERR_PTR(-ENOMEM);
60561+
60562+ if (copy_from_user(tmp, s_tmp->filename, len))
60563+ return ERR_PTR(-EFAULT);
60564+ tmp[len-1] = '\0';
60565+ s_tmp->filename = tmp;
60566+ 59939+
60567+ if (!strcmp(s_tmp->filename, "/")) 59940+ if (!strcmp(s_tmp->filename, "/"))
60568+ role->root_label = s_tmp; 59941+ role->root_label = s_tmp;
60569+ 59942+
60570+ if (copy_from_user(&ghash, s_tmp->hash, sizeof(struct gr_hash_struct))) 59943+ if (copy_gr_hash_struct(&ghash, s_tmp->hash))
60571+ return ERR_PTR(-EFAULT); 59944+ return ERR_PTR(-EFAULT);
60572+ 59945+
60573+ /* copy user and group transition tables */ 59946+ /* copy user and group transition tables */
@@ -60648,28 +60021,18 @@ index 0000000..0d5c602
60648+ if (!*(i_tmp + i_num)) 60021+ if (!*(i_tmp + i_num))
60649+ return ERR_PTR(-ENOMEM); 60022+ return ERR_PTR(-ENOMEM);
60650+ 60023+
60651+ if (copy_from_user 60024+ if (copy_pointer_from_array(&i_utmp2, i_num, s_tmp->ips))
60652+ (&i_utmp2, s_tmp->ips + i_num,
60653+ sizeof (struct acl_ip_label *)))
60654+ return ERR_PTR(-EFAULT); 60025+ return ERR_PTR(-EFAULT);
60655+ 60026+
60656+ if (copy_from_user 60027+ if (copy_acl_ip_label(*(i_tmp + i_num), i_utmp2))
60657+ (*(i_tmp + i_num), i_utmp2,
60658+ sizeof (struct acl_ip_label)))
60659+ return ERR_PTR(-EFAULT); 60028+ return ERR_PTR(-EFAULT);
60660+ 60029+
60661+ if ((*(i_tmp + i_num))->iface == NULL) 60030+ if ((*(i_tmp + i_num))->iface == NULL)
60662+ continue; 60031+ continue;
60663+ 60032+
60664+ len = strnlen_user((*(i_tmp + i_num))->iface, IFNAMSIZ); 60033+ err = alloc_and_copy_string(&(*(i_tmp + i_num))->iface, IFNAMSIZ);
60665+ if (!len || len >= IFNAMSIZ) 60034+ if (err)
60666+ return ERR_PTR(-EINVAL); 60035+ return ERR_PTR(err);
60667+ tmp = acl_alloc(len);
60668+ if (tmp == NULL)
60669+ return ERR_PTR(-ENOMEM);
60670+ if (copy_from_user(tmp, (*(i_tmp + i_num))->iface, len))
60671+ return ERR_PTR(-EFAULT);
60672+ (*(i_tmp + i_num))->iface = tmp;
60673+ } 60036+ }
60674+ 60037+
60675+ s_tmp->ips = i_tmp; 60038+ s_tmp->ips = i_tmp;
@@ -60690,8 +60053,7 @@ index 0000000..0d5c602
60690+ int err; 60053+ int err;
60691+ 60054+
60692+ while (userp) { 60055+ while (userp) {
60693+ if (copy_from_user(&s_pre, userp, 60056+ if (copy_acl_subject_label(&s_pre, userp))
60694+ sizeof (struct acl_subject_label)))
60695+ return -EFAULT; 60057+ return -EFAULT;
60696+ 60058+
60697+ ret = do_copy_user_subj(userp, role, NULL); 60059+ ret = do_copy_user_subj(userp, role, NULL);
@@ -60717,8 +60079,6 @@ index 0000000..0d5c602
60717+ struct gr_hash_struct *ghash; 60079+ struct gr_hash_struct *ghash;
60718+ uid_t *domainlist; 60080+ uid_t *domainlist;
60719+ unsigned int r_num; 60081+ unsigned int r_num;
60720+ unsigned int len;
60721+ char *tmp;
60722+ int err = 0; 60082+ int err = 0;
60723+ __u16 i; 60083+ __u16 i;
60724+ __u32 num_subjs; 60084+ __u32 num_subjs;
@@ -60739,26 +60099,17 @@ index 0000000..0d5c602
60739+ sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw)); 60099+ sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
60740+ if (!sptmp) 60100+ if (!sptmp)
60741+ return -ENOMEM; 60101+ return -ENOMEM;
60742+ if (copy_from_user(sptmp, arg->sprole_pws + i, 60102+ if (copy_sprole_pw(sptmp, i, arg->sprole_pws))
60743+ sizeof (struct sprole_pw)))
60744+ return -EFAULT; 60103+ return -EFAULT;
60745+ 60104+
60746+ len = strnlen_user(sptmp->rolename, GR_SPROLE_LEN); 60105+ err = alloc_and_copy_string((char **)&sptmp->rolename, GR_SPROLE_LEN);
60747+ 60106+ if (err)
60748+ if (!len || len >= GR_SPROLE_LEN) 60107+ return err;
60749+ return -EINVAL;
60750+
60751+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60752+ return -ENOMEM;
60753+
60754+ if (copy_from_user(tmp, sptmp->rolename, len))
60755+ return -EFAULT;
60756+ 60108+
60757+ tmp[len-1] = '\0';
60758+#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG 60109+#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
60759+ printk(KERN_ALERT "Copying special role %s\n", tmp); 60110+ printk(KERN_ALERT "Copying special role %s\n", sptmp->rolename);
60760+#endif 60111+#endif
60761+ sptmp->rolename = tmp; 60112+
60762+ acl_special_roles[i] = sptmp; 60113+ acl_special_roles[i] = sptmp;
60763+ } 60114+ }
60764+ 60115+
@@ -60770,27 +60121,15 @@ index 0000000..0d5c602
60770+ if (!r_tmp) 60121+ if (!r_tmp)
60771+ return -ENOMEM; 60122+ return -ENOMEM;
60772+ 60123+
60773+ if (copy_from_user(&r_utmp2, r_utmp + r_num, 60124+ if (copy_pointer_from_array(&r_utmp2, r_num, r_utmp))
60774+ sizeof (struct acl_role_label *)))
60775+ return -EFAULT;
60776+
60777+ if (copy_from_user(r_tmp, r_utmp2,
60778+ sizeof (struct acl_role_label)))
60779+ return -EFAULT; 60125+ return -EFAULT;
60780+ 60126+
60781+ len = strnlen_user(r_tmp->rolename, GR_SPROLE_LEN); 60127+ if (copy_acl_role_label(r_tmp, r_utmp2))
60782+
60783+ if (!len || len >= PATH_MAX)
60784+ return -EINVAL;
60785+
60786+ if ((tmp = (char *) acl_alloc(len)) == NULL)
60787+ return -ENOMEM;
60788+
60789+ if (copy_from_user(tmp, r_tmp->rolename, len))
60790+ return -EFAULT; 60128+ return -EFAULT;
60791+ 60129+
60792+ tmp[len-1] = '\0'; 60130+ err = alloc_and_copy_string(&r_tmp->rolename, GR_SPROLE_LEN);
60793+ r_tmp->rolename = tmp; 60131+ if (err)
60132+ return err;
60794+ 60133+
60795+ if (!strcmp(r_tmp->rolename, "default") 60134+ if (!strcmp(r_tmp->rolename, "default")
60796+ && (r_tmp->roletype & GR_ROLE_DEFAULT)) { 60135+ && (r_tmp->roletype & GR_ROLE_DEFAULT)) {
@@ -60802,7 +60141,7 @@ index 0000000..0d5c602
60802+ if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL) 60141+ if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
60803+ return -ENOMEM; 60142+ return -ENOMEM;
60804+ 60143+
60805+ if (copy_from_user(ghash, r_tmp->hash, sizeof(struct gr_hash_struct))) 60144+ if (copy_gr_hash_struct(ghash, r_tmp->hash))
60806+ return -EFAULT; 60145+ return -EFAULT;
60807+ 60146+
60808+ r_tmp->hash = ghash; 60147+ r_tmp->hash = ghash;
@@ -62411,13 +61750,14 @@ index 0000000..0d5c602
62411+} 61750+}
62412+ 61751+
62413+ssize_t 61752+ssize_t
62414+write_grsec_handler(struct file *file, const char * buf, size_t count, loff_t *ppos) 61753+write_grsec_handler(struct file *file, const char __user * buf, size_t count, loff_t *ppos)
62415+{ 61754+{
62416+ struct gr_arg_wrapper uwrap; 61755+ struct gr_arg_wrapper uwrap;
62417+ unsigned char *sprole_salt = NULL; 61756+ unsigned char *sprole_salt = NULL;
62418+ unsigned char *sprole_sum = NULL; 61757+ unsigned char *sprole_sum = NULL;
62419+ int error = sizeof (struct gr_arg_wrapper); 61758+ int error = 0;
62420+ int error2 = 0; 61759+ int error2 = 0;
61760+ size_t req_count;
62421+ 61761+
62422+ mutex_lock(&gr_dev_mutex); 61762+ mutex_lock(&gr_dev_mutex);
62423+ 61763+
@@ -62426,8 +61766,42 @@ index 0000000..0d5c602
62426+ goto out; 61766+ goto out;
62427+ } 61767+ }
62428+ 61768+
62429+ if (count != sizeof (struct gr_arg_wrapper)) { 61769+#ifdef CONFIG_COMPAT
62430+ gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)sizeof(struct gr_arg_wrapper)); 61770+ pax_open_kernel();
61771+ if (is_compat_task()) {
61772+ copy_gr_arg_wrapper = &copy_gr_arg_wrapper_compat;
61773+ copy_gr_arg = &copy_gr_arg_compat;
61774+ copy_acl_object_label = &copy_acl_object_label_compat;
61775+ copy_acl_subject_label = &copy_acl_subject_label_compat;
61776+ copy_acl_role_label = &copy_acl_role_label_compat;
61777+ copy_acl_ip_label = &copy_acl_ip_label_compat;
61778+ copy_role_allowed_ip = &copy_role_allowed_ip_compat;
61779+ copy_role_transition = &copy_role_transition_compat;
61780+ copy_sprole_pw = &copy_sprole_pw_compat;
61781+ copy_gr_hash_struct = &copy_gr_hash_struct_compat;
61782+ copy_pointer_from_array = &copy_pointer_from_array_compat;
61783+ get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_compat;
61784+ } else {
61785+ copy_gr_arg_wrapper = &copy_gr_arg_wrapper_normal;
61786+ copy_gr_arg = &copy_gr_arg_normal;
61787+ copy_acl_object_label = &copy_acl_object_label_normal;
61788+ copy_acl_subject_label = &copy_acl_subject_label_normal;
61789+ copy_acl_role_label = &copy_acl_role_label_normal;
61790+ copy_acl_ip_label = &copy_acl_ip_label_normal;
61791+ copy_role_allowed_ip = &copy_role_allowed_ip_normal;
61792+ copy_role_transition = &copy_role_transition_normal;
61793+ copy_sprole_pw = &copy_sprole_pw_normal;
61794+ copy_gr_hash_struct = &copy_gr_hash_struct_normal;
61795+ copy_pointer_from_array = &copy_pointer_from_array_normal;
61796+ get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_normal;
61797+ }
61798+ pax_close_kernel();
61799+#endif
61800+
61801+ req_count = get_gr_arg_wrapper_size();
61802+
61803+ if (count != req_count) {
61804+ gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)req_count);
62431+ error = -EINVAL; 61805+ error = -EINVAL;
62432+ goto out; 61806+ goto out;
62433+ } 61807+ }
@@ -62438,20 +61812,13 @@ index 0000000..0d5c602
62438+ gr_auth_attempts = 0; 61812+ gr_auth_attempts = 0;
62439+ } 61813+ }
62440+ 61814+
62441+ if (copy_from_user(&uwrap, buf, sizeof (struct gr_arg_wrapper))) { 61815+ error = copy_gr_arg_wrapper(buf, &uwrap);
62442+ error = -EFAULT; 61816+ if (error)
62443+ goto out; 61817+ goto out;
62444+ }
62445+ 61818+
62446+ if ((uwrap.version != GRSECURITY_VERSION) || (uwrap.size != sizeof(struct gr_arg))) { 61819+ error = copy_gr_arg(uwrap.arg, gr_usermode);
62447+ error = -EINVAL; 61820+ if (error)
62448+ goto out; 61821+ goto out;
62449+ }
62450+
62451+ if (copy_from_user(gr_usermode, uwrap.arg, sizeof (struct gr_arg))) {
62452+ error = -EFAULT;
62453+ goto out;
62454+ }
62455+ 61822+
62456+ if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM && 61823+ if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM &&
62457+ gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES && 61824+ gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
@@ -62644,6 +62011,10 @@ index 0000000..0d5c602
62644+ 62011+
62645+ out: 62012+ out:
62646+ mutex_unlock(&gr_dev_mutex); 62013+ mutex_unlock(&gr_dev_mutex);
62014+
62015+ if (!error)
62016+ error = req_count;
62017+
62647+ return error; 62018+ return error;
62648+} 62019+}
62649+ 62020+
@@ -63537,6 +62908,281 @@ index 0000000..bdd51ea
63537+ return gr_task_acl_is_capable_nolog(current, cap); 62908+ return gr_task_acl_is_capable_nolog(current, cap);
63538+} 62909+}
63539+ 62910+
62911diff --git a/grsecurity/gracl_compat.c b/grsecurity/gracl_compat.c
62912new file mode 100644
62913index 0000000..a43dd06
62914--- /dev/null
62915+++ b/grsecurity/gracl_compat.c
62916@@ -0,0 +1,269 @@
62917+#include <linux/kernel.h>
62918+#include <linux/gracl.h>
62919+#include <linux/compat.h>
62920+#include <linux/gracl_compat.h>
62921+
62922+#include <asm/uaccess.h>
62923+
62924+int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap)
62925+{
62926+ struct gr_arg_wrapper_compat uwrapcompat;
62927+
62928+ if (copy_from_user(&uwrapcompat, buf, sizeof(uwrapcompat)))
62929+ return -EFAULT;
62930+
62931+ if ((uwrapcompat.version != GRSECURITY_VERSION) ||
62932+ (uwrapcompat.size != sizeof(struct gr_arg_compat)))
62933+ return -EINVAL;
62934+
62935+ uwrap->arg = compat_ptr(uwrapcompat.arg);
62936+ uwrap->version = uwrapcompat.version;
62937+ uwrap->size = sizeof(struct gr_arg);
62938+
62939+ return 0;
62940+}
62941+
62942+int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg)
62943+{
62944+ struct gr_arg_compat argcompat;
62945+
62946+ if (copy_from_user(&argcompat, buf, sizeof(argcompat)))
62947+ return -EFAULT;
62948+
62949+ arg->role_db.r_table = compat_ptr(argcompat.role_db.r_table);
62950+ arg->role_db.num_pointers = argcompat.role_db.num_pointers;
62951+ arg->role_db.num_roles = argcompat.role_db.num_roles;
62952+ arg->role_db.num_domain_children = argcompat.role_db.num_domain_children;
62953+ arg->role_db.num_subjects = argcompat.role_db.num_subjects;
62954+ arg->role_db.num_objects = argcompat.role_db.num_objects;
62955+
62956+ memcpy(&arg->pw, &argcompat.pw, sizeof(arg->pw));
62957+ memcpy(&arg->salt, &argcompat.salt, sizeof(arg->salt));
62958+ memcpy(&arg->sum, &argcompat.sum, sizeof(arg->sum));
62959+ memcpy(&arg->sp_role, &argcompat.sp_role, sizeof(arg->sp_role));
62960+ arg->sprole_pws = compat_ptr(argcompat.sprole_pws);
62961+ arg->segv_device = argcompat.segv_device;
62962+ arg->segv_inode = argcompat.segv_inode;
62963+ arg->segv_uid = argcompat.segv_uid;
62964+ arg->num_sprole_pws = argcompat.num_sprole_pws;
62965+ arg->mode = argcompat.mode;
62966+
62967+ return 0;
62968+}
62969+
62970+int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp)
62971+{
62972+ struct acl_object_label_compat objcompat;
62973+
62974+ if (copy_from_user(&objcompat, userp, sizeof(objcompat)))
62975+ return -EFAULT;
62976+
62977+ obj->filename = compat_ptr(objcompat.filename);
62978+ obj->inode = objcompat.inode;
62979+ obj->device = objcompat.device;
62980+ obj->mode = objcompat.mode;
62981+
62982+ obj->nested = compat_ptr(objcompat.nested);
62983+ obj->globbed = compat_ptr(objcompat.globbed);
62984+
62985+ obj->prev = compat_ptr(objcompat.prev);
62986+ obj->next = compat_ptr(objcompat.next);
62987+
62988+ return 0;
62989+}
62990+
62991+int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp)
62992+{
62993+ unsigned int i;
62994+ struct acl_subject_label_compat subjcompat;
62995+
62996+ if (copy_from_user(&subjcompat, userp, sizeof(subjcompat)))
62997+ return -EFAULT;
62998+
62999+ subj->filename = compat_ptr(subjcompat.filename);
63000+ subj->inode = subjcompat.inode;
63001+ subj->device = subjcompat.device;
63002+ subj->mode = subjcompat.mode;
63003+ subj->cap_mask = subjcompat.cap_mask;
63004+ subj->cap_lower = subjcompat.cap_lower;
63005+ subj->cap_invert_audit = subjcompat.cap_invert_audit;
63006+
63007+ for (i = 0; i < GR_NLIMITS; i++) {
63008+ if (subjcompat.res[i].rlim_cur == COMPAT_RLIM_INFINITY)
63009+ subj->res[i].rlim_cur = RLIM_INFINITY;
63010+ else
63011+ subj->res[i].rlim_cur = subjcompat.res[i].rlim_cur;
63012+ if (subjcompat.res[i].rlim_max == COMPAT_RLIM_INFINITY)
63013+ subj->res[i].rlim_max = RLIM_INFINITY;
63014+ else
63015+ subj->res[i].rlim_max = subjcompat.res[i].rlim_max;
63016+ }
63017+ subj->resmask = subjcompat.resmask;
63018+
63019+ subj->user_trans_type = subjcompat.user_trans_type;
63020+ subj->group_trans_type = subjcompat.group_trans_type;
63021+ subj->user_transitions = compat_ptr(subjcompat.user_transitions);
63022+ subj->group_transitions = compat_ptr(subjcompat.group_transitions);
63023+ subj->user_trans_num = subjcompat.user_trans_num;
63024+ subj->group_trans_num = subjcompat.group_trans_num;
63025+
63026+ memcpy(&subj->sock_families, &subjcompat.sock_families, sizeof(subj->sock_families));
63027+ memcpy(&subj->ip_proto, &subjcompat.ip_proto, sizeof(subj->ip_proto));
63028+ subj->ip_type = subjcompat.ip_type;
63029+ subj->ips = compat_ptr(subjcompat.ips);
63030+ subj->ip_num = subjcompat.ip_num;
63031+ subj->inaddr_any_override = subjcompat.inaddr_any_override;
63032+
63033+ subj->crashes = subjcompat.crashes;
63034+ subj->expires = subjcompat.expires;
63035+
63036+ subj->parent_subject = compat_ptr(subjcompat.parent_subject);
63037+ subj->hash = compat_ptr(subjcompat.hash);
63038+ subj->prev = compat_ptr(subjcompat.prev);
63039+ subj->next = compat_ptr(subjcompat.next);
63040+
63041+ subj->obj_hash = compat_ptr(subjcompat.obj_hash);
63042+ subj->obj_hash_size = subjcompat.obj_hash_size;
63043+ subj->pax_flags = subjcompat.pax_flags;
63044+
63045+ return 0;
63046+}
63047+
63048+int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp)
63049+{
63050+ struct acl_role_label_compat rolecompat;
63051+
63052+ if (copy_from_user(&rolecompat, userp, sizeof(rolecompat)))
63053+ return -EFAULT;
63054+
63055+ role->rolename = compat_ptr(rolecompat.rolename);
63056+ role->uidgid = rolecompat.uidgid;
63057+ role->roletype = rolecompat.roletype;
63058+
63059+ role->auth_attempts = rolecompat.auth_attempts;
63060+ role->expires = rolecompat.expires;
63061+
63062+ role->root_label = compat_ptr(rolecompat.root_label);
63063+ role->hash = compat_ptr(rolecompat.hash);
63064+
63065+ role->prev = compat_ptr(rolecompat.prev);
63066+ role->next = compat_ptr(rolecompat.next);
63067+
63068+ role->transitions = compat_ptr(rolecompat.transitions);
63069+ role->allowed_ips = compat_ptr(rolecompat.allowed_ips);
63070+ role->domain_children = compat_ptr(rolecompat.domain_children);
63071+ role->domain_child_num = rolecompat.domain_child_num;
63072+
63073+ role->umask = rolecompat.umask;
63074+
63075+ role->subj_hash = compat_ptr(rolecompat.subj_hash);
63076+ role->subj_hash_size = rolecompat.subj_hash_size;
63077+
63078+ return 0;
63079+}
63080+
63081+int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
63082+{
63083+ struct role_allowed_ip_compat roleip_compat;
63084+
63085+ if (copy_from_user(&roleip_compat, userp, sizeof(roleip_compat)))
63086+ return -EFAULT;
63087+
63088+ roleip->addr = roleip_compat.addr;
63089+ roleip->netmask = roleip_compat.netmask;
63090+
63091+ roleip->prev = compat_ptr(roleip_compat.prev);
63092+ roleip->next = compat_ptr(roleip_compat.next);
63093+
63094+ return 0;
63095+}
63096+
63097+int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp)
63098+{
63099+ struct role_transition_compat trans_compat;
63100+
63101+ if (copy_from_user(&trans_compat, userp, sizeof(trans_compat)))
63102+ return -EFAULT;
63103+
63104+ trans->rolename = compat_ptr(trans_compat.rolename);
63105+
63106+ trans->prev = compat_ptr(trans_compat.prev);
63107+ trans->next = compat_ptr(trans_compat.next);
63108+
63109+ return 0;
63110+
63111+}
63112+
63113+int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
63114+{
63115+ struct gr_hash_struct_compat hash_compat;
63116+
63117+ if (copy_from_user(&hash_compat, userp, sizeof(hash_compat)))
63118+ return -EFAULT;
63119+
63120+ hash->table = compat_ptr(hash_compat.table);
63121+ hash->nametable = compat_ptr(hash_compat.nametable);
63122+ hash->first = compat_ptr(hash_compat.first);
63123+
63124+ hash->table_size = hash_compat.table_size;
63125+ hash->used_size = hash_compat.used_size;
63126+
63127+ hash->type = hash_compat.type;
63128+
63129+ return 0;
63130+}
63131+
63132+int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp)
63133+{
63134+ compat_uptr_t ptrcompat;
63135+
63136+ if (copy_from_user(&ptrcompat, userp + (idx * sizeof(ptrcompat)), sizeof(ptrcompat)))
63137+ return -EFAULT;
63138+
63139+ *(void **)ptr = compat_ptr(ptrcompat);
63140+
63141+ return 0;
63142+}
63143+
63144+int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp)
63145+{
63146+ struct acl_ip_label_compat ip_compat;
63147+
63148+ if (copy_from_user(&ip_compat, userp, sizeof(ip_compat)))
63149+ return -EFAULT;
63150+
63151+ ip->iface = compat_ptr(ip_compat.iface);
63152+ ip->addr = ip_compat.addr;
63153+ ip->netmask = ip_compat.netmask;
63154+ ip->low = ip_compat.low;
63155+ ip->high = ip_compat.high;
63156+ ip->mode = ip_compat.mode;
63157+ ip->type = ip_compat.type;
63158+
63159+ memcpy(&ip->proto, &ip_compat.proto, sizeof(ip->proto));
63160+
63161+ ip->prev = compat_ptr(ip_compat.prev);
63162+ ip->next = compat_ptr(ip_compat.next);
63163+
63164+ return 0;
63165+}
63166+
63167+int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
63168+{
63169+ struct sprole_pw_compat pw_compat;
63170+
63171+ if (copy_from_user(&pw_compat, (const void *)userp + (sizeof(pw_compat) * idx), sizeof(pw_compat)))
63172+ return -EFAULT;
63173+
63174+ pw->rolename = compat_ptr(pw_compat.rolename);
63175+ memcpy(&pw->salt, pw_compat.salt, sizeof(pw->salt));
63176+ memcpy(&pw->sum, pw_compat.sum, sizeof(pw->sum));
63177+
63178+ return 0;
63179+}
63180+
63181+size_t get_gr_arg_wrapper_size_compat(void)
63182+{
63183+ return sizeof(struct gr_arg_wrapper_compat);
63184+}
63185+
63540diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c 63186diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
63541new file mode 100644 63187new file mode 100644
63542index 0000000..a340c17 63188index 0000000..a340c17
@@ -66106,10 +65752,10 @@ index 0000000..8ca18bf
66106+} 65752+}
66107diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c 65753diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
66108new file mode 100644 65754new file mode 100644
66109index 0000000..a862e9f 65755index 0000000..ab2d875
66110--- /dev/null 65756--- /dev/null
66111+++ b/grsecurity/grsec_init.c 65757+++ b/grsecurity/grsec_init.c
66112@@ -0,0 +1,283 @@ 65758@@ -0,0 +1,279 @@
66113+#include <linux/kernel.h> 65759+#include <linux/kernel.h>
66114+#include <linux/sched.h> 65760+#include <linux/sched.h>
66115+#include <linux/mm.h> 65761+#include <linux/mm.h>
@@ -66133,7 +65779,6 @@ index 0000000..a862e9f
66133+int grsec_enable_forkfail; 65779+int grsec_enable_forkfail;
66134+int grsec_enable_audit_ptrace; 65780+int grsec_enable_audit_ptrace;
66135+int grsec_enable_time; 65781+int grsec_enable_time;
66136+int grsec_enable_audit_textrel;
66137+int grsec_enable_group; 65782+int grsec_enable_group;
66138+kgid_t grsec_audit_gid; 65783+kgid_t grsec_audit_gid;
66139+int grsec_enable_chdir; 65784+int grsec_enable_chdir;
@@ -66265,9 +65910,6 @@ index 0000000..a862e9f
66265+ grsec_lock = 1; 65910+ grsec_lock = 1;
66266+#endif 65911+#endif
66267+ 65912+
66268+#ifdef CONFIG_GRKERNSEC_AUDIT_TEXTREL
66269+ grsec_enable_audit_textrel = 1;
66270+#endif
66271+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG 65913+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
66272+ grsec_enable_log_rwxmaps = 1; 65914+ grsec_enable_log_rwxmaps = 1;
66273+#endif 65915+#endif
@@ -66459,15 +66101,16 @@ index 0000000..5e05e20
66459+} 66101+}
66460diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c 66102diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c
66461new file mode 100644 66103new file mode 100644
66462index 0000000..7c06085 66104index 0000000..dbe0a6b
66463--- /dev/null 66105--- /dev/null
66464+++ b/grsecurity/grsec_log.c 66106+++ b/grsecurity/grsec_log.c
66465@@ -0,0 +1,326 @@ 66107@@ -0,0 +1,341 @@
66466+#include <linux/kernel.h> 66108+#include <linux/kernel.h>
66467+#include <linux/sched.h> 66109+#include <linux/sched.h>
66468+#include <linux/file.h> 66110+#include <linux/file.h>
66469+#include <linux/tty.h> 66111+#include <linux/tty.h>
66470+#include <linux/fs.h> 66112+#include <linux/fs.h>
66113+#include <linux/mm.h>
66471+#include <linux/grinternal.h> 66114+#include <linux/grinternal.h>
66472+ 66115+
66473+#ifdef CONFIG_TREE_PREEMPT_RCU 66116+#ifdef CONFIG_TREE_PREEMPT_RCU
@@ -66614,6 +66257,7 @@ index 0000000..7c06085
66614+ struct vfsmount *mnt = NULL; 66257+ struct vfsmount *mnt = NULL;
66615+ struct file *file = NULL; 66258+ struct file *file = NULL;
66616+ struct task_struct *task = NULL; 66259+ struct task_struct *task = NULL;
66260+ struct vm_area_struct *vma = NULL;
66617+ const struct cred *cred, *pcred; 66261+ const struct cred *cred, *pcred;
66618+ va_list ap; 66262+ va_list ap;
66619+ 66263+
@@ -66753,6 +66397,19 @@ index 0000000..7c06085
66753+ file = va_arg(ap, struct file *); 66397+ file = va_arg(ap, struct file *);
66754+ gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>"); 66398+ gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");
66755+ break; 66399+ break;
66400+ case GR_RWXMAPVMA:
66401+ vma = va_arg(ap, struct vm_area_struct *);
66402+ if (vma->vm_file)
66403+ str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);
66404+ else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
66405+ str1 = "<stack>";
66406+ else if (vma->vm_start <= current->mm->brk &&
66407+ vma->vm_end >= current->mm->start_brk)
66408+ str1 = "<heap>";
66409+ else
66410+ str1 = "<anonymous mapping>";
66411+ gr_log_middle_varargs(audit, msg, str1);
66412+ break;
66756+ case GR_PSACCT: 66413+ case GR_PSACCT:
66757+ { 66414+ {
66758+ unsigned int wday, cday; 66415+ unsigned int wday, cday;
@@ -66905,10 +66562,10 @@ index 0000000..2131422
66905+} 66562+}
66906diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c 66563diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c
66907new file mode 100644 66564new file mode 100644
66908index 0000000..a3b12a0 66565index 0000000..6ee9d50
66909--- /dev/null 66566--- /dev/null
66910+++ b/grsecurity/grsec_pax.c 66567+++ b/grsecurity/grsec_pax.c
66911@@ -0,0 +1,36 @@ 66568@@ -0,0 +1,45 @@
66912+#include <linux/kernel.h> 66569+#include <linux/kernel.h>
66913+#include <linux/sched.h> 66570+#include <linux/sched.h>
66914+#include <linux/mm.h> 66571+#include <linux/mm.h>
@@ -66919,9 +66576,18 @@ index 0000000..a3b12a0
66919+void 66576+void
66920+gr_log_textrel(struct vm_area_struct * vma) 66577+gr_log_textrel(struct vm_area_struct * vma)
66921+{ 66578+{
66922+#ifdef CONFIG_GRKERNSEC_AUDIT_TEXTREL 66579+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
66923+ if (grsec_enable_audit_textrel) 66580+ if (grsec_enable_log_rwxmaps)
66924+ gr_log_textrel_ulong_ulong(GR_DO_AUDIT, GR_TEXTREL_AUDIT_MSG, vma->vm_file, vma->vm_start, vma->vm_pgoff); 66581+ gr_log_textrel_ulong_ulong(GR_DONT_AUDIT, GR_TEXTREL_AUDIT_MSG, vma->vm_file, vma->vm_start, vma->vm_pgoff);
66582+#endif
66583+ return;
66584+}
66585+
66586+void gr_log_ptgnustack(struct file *file)
66587+{
66588+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
66589+ if (grsec_enable_log_rwxmaps)
66590+ gr_log_rwxmap(GR_DONT_AUDIT, GR_PTGNUSTACK_MSG, file);
66925+#endif 66591+#endif
66926+ return; 66592+ return;
66927+} 66593+}
@@ -66937,11 +66603,11 @@ index 0000000..a3b12a0
66937+} 66603+}
66938+ 66604+
66939+void 66605+void
66940+gr_log_rwxmprotect(struct file *file) 66606+gr_log_rwxmprotect(struct vm_area_struct *vma)
66941+{ 66607+{
66942+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG 66608+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
66943+ if (grsec_enable_log_rwxmaps) 66609+ if (grsec_enable_log_rwxmaps)
66944+ gr_log_rwxmap(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, file); 66610+ gr_log_rwxmap_vma(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, vma);
66945+#endif 66611+#endif
66946+ return; 66612+ return;
66947+} 66613+}
@@ -67485,10 +67151,10 @@ index 0000000..4030d57
67485+} 67151+}
67486diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c 67152diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
67487new file mode 100644 67153new file mode 100644
67488index 0000000..f55ef0f 67154index 0000000..7624d1c
67489--- /dev/null 67155--- /dev/null
67490+++ b/grsecurity/grsec_sysctl.c 67156+++ b/grsecurity/grsec_sysctl.c
67491@@ -0,0 +1,469 @@ 67157@@ -0,0 +1,460 @@
67492+#include <linux/kernel.h> 67158+#include <linux/kernel.h>
67493+#include <linux/sched.h> 67159+#include <linux/sched.h>
67494+#include <linux/sysctl.h> 67160+#include <linux/sysctl.h>
@@ -67882,15 +67548,6 @@ index 0000000..f55ef0f
67882+ .proc_handler = &proc_dointvec, 67548+ .proc_handler = &proc_dointvec,
67883+ }, 67549+ },
67884+#endif 67550+#endif
67885+#ifdef CONFIG_GRKERNSEC_AUDIT_TEXTREL
67886+ {
67887+ .procname = "audit_textrel",
67888+ .data = &grsec_enable_audit_textrel,
67889+ .maxlen = sizeof(int),
67890+ .mode = 0600,
67891+ .proc_handler = &proc_dointvec,
67892+ },
67893+#endif
67894+#ifdef CONFIG_GRKERNSEC_DMESG 67551+#ifdef CONFIG_GRKERNSEC_DMESG
67895+ { 67552+ {
67896+ .procname = "dmesg", 67553+ .procname = "dmesg",
@@ -68714,10 +68371,10 @@ index a59ff51..2594a70 100644
68714 68371
68715 #endif /* !__ASSEMBLY__ */ 68372 #endif /* !__ASSEMBLY__ */
68716diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h 68373diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
68717index afa12c7..99d4da0 100644 68374index eb58d2d..df131bf 100644
68718--- a/include/asm-generic/vmlinux.lds.h 68375--- a/include/asm-generic/vmlinux.lds.h
68719+++ b/include/asm-generic/vmlinux.lds.h 68376+++ b/include/asm-generic/vmlinux.lds.h
68720@@ -245,6 +245,7 @@ 68377@@ -239,6 +239,7 @@
68721 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \ 68378 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
68722 VMLINUX_SYMBOL(__start_rodata) = .; \ 68379 VMLINUX_SYMBOL(__start_rodata) = .; \
68723 *(.rodata) *(.rodata.*) \ 68380 *(.rodata) *(.rodata.*) \
@@ -68725,7 +68382,7 @@ index afa12c7..99d4da0 100644
68725 *(__vermagic) /* Kernel version magic */ \ 68382 *(__vermagic) /* Kernel version magic */ \
68726 . = ALIGN(8); \ 68383 . = ALIGN(8); \
68727 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \ 68384 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
68728@@ -755,17 +756,18 @@ 68385@@ -749,17 +750,18 @@
68729 * section in the linker script will go there too. @phdr should have 68386 * section in the linker script will go there too. @phdr should have
68730 * a leading colon. 68387 * a leading colon.
68731 * 68388 *
@@ -68762,7 +68419,7 @@ index 418d270..bfd2794 100644
68762 struct crypto_instance { 68419 struct crypto_instance {
68763 struct crypto_alg alg; 68420 struct crypto_alg alg;
68764diff --git a/include/drm/drmP.h b/include/drm/drmP.h 68421diff --git a/include/drm/drmP.h b/include/drm/drmP.h
68765index f1ce786..086a7a5 100644 68422index 63d17ee..716de2b 100644
68766--- a/include/drm/drmP.h 68423--- a/include/drm/drmP.h
68767+++ b/include/drm/drmP.h 68424+++ b/include/drm/drmP.h
68768@@ -72,6 +72,7 @@ 68425@@ -72,6 +72,7 @@
@@ -68788,19 +68445,20 @@ index f1ce786..086a7a5 100644
68788 unsigned long arg); 68445 unsigned long arg);
68789 68446
68790 #define DRM_IOCTL_NR(n) _IOC_NR(n) 68447 #define DRM_IOCTL_NR(n) _IOC_NR(n)
68791@@ -314,9 +317,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd, 68448@@ -314,10 +317,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
68792 struct drm_ioctl_desc { 68449 struct drm_ioctl_desc {
68793 unsigned int cmd; 68450 unsigned int cmd;
68794 int flags; 68451 int flags;
68795- drm_ioctl_t *func; 68452- drm_ioctl_t *func;
68796+ drm_ioctl_t func; 68453+ drm_ioctl_t func;
68797 unsigned int cmd_drv; 68454 unsigned int cmd_drv;
68455 const char *name;
68798-}; 68456-};
68799+} __do_const; 68457+} __do_const;
68800 68458
68801 /** 68459 /**
68802 * Creates a driver or general drm_ioctl_desc array entry for the given 68460 * Creates a driver or general drm_ioctl_desc array entry for the given
68803@@ -1014,7 +1017,7 @@ struct drm_info_list { 68461@@ -1015,7 +1018,7 @@ struct drm_info_list {
68804 int (*show)(struct seq_file*, void*); /** show callback */ 68462 int (*show)(struct seq_file*, void*); /** show callback */
68805 u32 driver_features; /**< Required driver features for this entry */ 68463 u32 driver_features; /**< Required driver features for this entry */
68806 void *data; 68464 void *data;
@@ -68809,7 +68467,7 @@ index f1ce786..086a7a5 100644
68809 68467
68810 /** 68468 /**
68811 * debugfs node structure. This structure represents a debugfs file. 68469 * debugfs node structure. This structure represents a debugfs file.
68812@@ -1087,7 +1090,7 @@ struct drm_device { 68470@@ -1088,7 +1091,7 @@ struct drm_device {
68813 68471
68814 /** \name Usage Counters */ 68472 /** \name Usage Counters */
68815 /*@{ */ 68473 /*@{ */
@@ -68818,7 +68476,7 @@ index f1ce786..086a7a5 100644
68818 atomic_t ioctl_count; /**< Outstanding IOCTLs pending */ 68476 atomic_t ioctl_count; /**< Outstanding IOCTLs pending */
68819 atomic_t vma_count; /**< Outstanding vma areas open */ 68477 atomic_t vma_count; /**< Outstanding vma areas open */
68820 int buf_use; /**< Buffers in use -- cannot alloc */ 68478 int buf_use; /**< Buffers in use -- cannot alloc */
68821@@ -1098,7 +1101,7 @@ struct drm_device { 68479@@ -1099,7 +1102,7 @@ struct drm_device {
68822 /*@{ */ 68480 /*@{ */
68823 unsigned long counters; 68481 unsigned long counters;
68824 enum drm_stat_type types[15]; 68482 enum drm_stat_type types[15];
@@ -68889,14 +68547,15 @@ index c1da539..1dcec55 100644
68889 struct atmphy_ops { 68547 struct atmphy_ops {
68890 int (*start)(struct atm_dev *dev); 68548 int (*start)(struct atm_dev *dev);
68891diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h 68549diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
68892index c3a0914..ec5d48a 100644 68550index 70cf138..0418ee2 100644
68893--- a/include/linux/binfmts.h 68551--- a/include/linux/binfmts.h
68894+++ b/include/linux/binfmts.h 68552+++ b/include/linux/binfmts.h
68895@@ -73,8 +73,9 @@ struct linux_binfmt { 68553@@ -73,8 +73,10 @@ struct linux_binfmt {
68896 int (*load_binary)(struct linux_binprm *); 68554 int (*load_binary)(struct linux_binprm *);
68897 int (*load_shlib)(struct file *); 68555 int (*load_shlib)(struct file *);
68898 int (*core_dump)(struct coredump_params *cprm); 68556 int (*core_dump)(struct coredump_params *cprm);
68899+ void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags); 68557+ void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags);
68558+ void (*handle_mmap)(struct file *);
68900 unsigned long min_coredump; /* minimal dump size */ 68559 unsigned long min_coredump; /* minimal dump size */
68901-}; 68560-};
68902+} __do_const; 68561+} __do_const;
@@ -68904,10 +68563,10 @@ index c3a0914..ec5d48a 100644
68904 extern void __register_binfmt(struct linux_binfmt *fmt, int insert); 68563 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
68905 68564
68906diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h 68565diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
68907index 33f358f..7f2c27f 100644 68566index 2fdb4a4..54aad7e 100644
68908--- a/include/linux/blkdev.h 68567--- a/include/linux/blkdev.h
68909+++ b/include/linux/blkdev.h 68568+++ b/include/linux/blkdev.h
68910@@ -1499,7 +1499,7 @@ struct block_device_operations { 68569@@ -1526,7 +1526,7 @@ struct block_device_operations {
68911 /* this callback is with swap_lock and sometimes page table lock held */ 68570 /* this callback is with swap_lock and sometimes page table lock held */
68912 void (*swap_slot_free_notify) (struct block_device *, unsigned long); 68571 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
68913 struct module *owner; 68572 struct module *owner;
@@ -68975,7 +68634,7 @@ index 8609d57..86e4d79 100644
68975 int (*generic_packet) (struct cdrom_device_info *, 68634 int (*generic_packet) (struct cdrom_device_info *,
68976 struct packet_command *); 68635 struct packet_command *);
68977diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h 68636diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
68978index 42e55de..1cd0e66 100644 68637index 4ce9056..86caac6 100644
68979--- a/include/linux/cleancache.h 68638--- a/include/linux/cleancache.h
68980+++ b/include/linux/cleancache.h 68639+++ b/include/linux/cleancache.h
68981@@ -31,7 +31,7 @@ struct cleancache_ops { 68640@@ -31,7 +31,7 @@ struct cleancache_ops {
@@ -68985,40 +68644,44 @@ index 42e55de..1cd0e66 100644
68985-}; 68644-};
68986+} __no_const; 68645+} __no_const;
68987 68646
68988 extern struct cleancache_ops 68647 extern struct cleancache_ops *
68989 cleancache_register_ops(struct cleancache_ops *ops); 68648 cleancache_register_ops(struct cleancache_ops *ops);
68649diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
68650index 1186098..f87e53d 100644
68651--- a/include/linux/clk-provider.h
68652+++ b/include/linux/clk-provider.h
68653@@ -132,6 +132,7 @@ struct clk_ops {
68654 unsigned long);
68655 void (*init)(struct clk_hw *hw);
68656 };
68657+typedef struct clk_ops __no_const clk_ops_no_const;
68658
68659 /**
68660 * struct clk_init_data - holds init data that's common to all clocks and is
68990diff --git a/include/linux/compat.h b/include/linux/compat.h 68661diff --git a/include/linux/compat.h b/include/linux/compat.h
68991index 377cd8c..2479845 100644 68662index 7f0c1dd..b5729c6 100644
68992--- a/include/linux/compat.h 68663--- a/include/linux/compat.h
68993+++ b/include/linux/compat.h 68664+++ b/include/linux/compat.h
68994@@ -332,14 +332,14 @@ long compat_sys_msgsnd(int first, int second, int third, void __user *uptr); 68665@@ -312,7 +312,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
68995 long compat_sys_msgrcv(int first, int second, int msgtyp, int third, 68666 compat_size_t __user *len_ptr);
68996 int version, void __user *uptr); 68667
68997 long compat_sys_shmat(int first, int second, compat_uptr_t third, int version, 68668 asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
68998- void __user *uptr); 68669-asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
68999+ void __user *uptr) __intentional_overflow(0); 68670+asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
69000 #else 68671 asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
69001 long compat_sys_semctl(int semid, int semnum, int cmd, int arg); 68672 asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
69002 long compat_sys_msgsnd(int msqid, struct compat_msgbuf __user *msgp,
69003 compat_ssize_t msgsz, int msgflg); 68673 compat_ssize_t msgsz, int msgflg);
69004 long compat_sys_msgrcv(int msqid, struct compat_msgbuf __user *msgp, 68674@@ -419,7 +419,7 @@ extern int compat_ptrace_request(struct task_struct *child,
69005 compat_ssize_t msgsz, long msgtyp, int msgflg);
69006-long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
69007+long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
69008 #endif
69009 long compat_sys_msgctl(int first, int second, void __user *uptr);
69010 long compat_sys_shmctl(int first, int second, void __user *uptr);
69011@@ -442,7 +442,7 @@ extern int compat_ptrace_request(struct task_struct *child,
69012 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, 68675 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
69013 compat_ulong_t addr, compat_ulong_t data); 68676 compat_ulong_t addr, compat_ulong_t data);
69014 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, 68677 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
69015- compat_long_t addr, compat_long_t data); 68678- compat_long_t addr, compat_long_t data);
69016+ compat_ulong_t addr, compat_ulong_t data); 68679+ compat_ulong_t addr, compat_ulong_t data);
69017 68680
68681 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, size_t);
69018 /* 68682 /*
69019 * epoll (fs/eventpoll.c) compat bits follow ...
69020diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h 68683diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
69021index 68b162d..660f5f0 100644 68684index 842de22..7f3a41f 100644
69022--- a/include/linux/compiler-gcc4.h 68685--- a/include/linux/compiler-gcc4.h
69023+++ b/include/linux/compiler-gcc4.h 68686+++ b/include/linux/compiler-gcc4.h
69024@@ -39,9 +39,29 @@ 68687@@ -39,9 +39,29 @@
@@ -69052,7 +68715,7 @@ index 68b162d..660f5f0 100644
69052 * Mark a position in code as unreachable. This can be used to 68715 * Mark a position in code as unreachable. This can be used to
69053 * suppress control flow warnings after asm blocks that transfer 68716 * suppress control flow warnings after asm blocks that transfer
69054diff --git a/include/linux/compiler.h b/include/linux/compiler.h 68717diff --git a/include/linux/compiler.h b/include/linux/compiler.h
69055index 10b8f23..5e0b083 100644 68718index 92669cd..1771a15 100644
69056--- a/include/linux/compiler.h 68719--- a/include/linux/compiler.h
69057+++ b/include/linux/compiler.h 68720+++ b/include/linux/compiler.h
69058@@ -5,11 +5,14 @@ 68721@@ -5,11 +5,14 @@
@@ -69170,7 +68833,7 @@ index 10b8f23..5e0b083 100644
69170 /* Simple shorthand for a section definition */ 68833 /* Simple shorthand for a section definition */
69171 #ifndef __section 68834 #ifndef __section
69172 # define __section(S) __attribute__ ((__section__(#S))) 68835 # define __section(S) __attribute__ ((__section__(#S)))
69173@@ -349,6 +407,7 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); 68836@@ -349,7 +407,8 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
69174 * use is to mediate communication between process-level code and irq/NMI 68837 * use is to mediate communication between process-level code and irq/NMI
69175 * handlers, all running on the same CPU. 68838 * handlers, all running on the same CPU.
69176 */ 68839 */
@@ -69178,7 +68841,8 @@ index 10b8f23..5e0b083 100644
69178+#define ACCESS_ONCE(x) (*(volatile const typeof(x) *)&(x)) 68841+#define ACCESS_ONCE(x) (*(volatile const typeof(x) *)&(x))
69179+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x)) 68842+#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
69180 68843
69181 #endif /* __LINUX_COMPILER_H */ 68844 /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
68845 #ifdef CONFIG_KPROBES
69182diff --git a/include/linux/completion.h b/include/linux/completion.h 68846diff --git a/include/linux/completion.h b/include/linux/completion.h
69183index 33f0280..35c6568 100644 68847index 33f0280..35c6568 100644
69184--- a/include/linux/completion.h 68848--- a/include/linux/completion.h
@@ -69216,7 +68880,7 @@ index 34025df..d94bbbc 100644
69216 /* 68880 /*
69217 * Users often need to create attribute structures for their configurable 68881 * Users often need to create attribute structures for their configurable
69218diff --git a/include/linux/cpu.h b/include/linux/cpu.h 68882diff --git a/include/linux/cpu.h b/include/linux/cpu.h
69219index 714e792..e6130d9 100644 68883index 9f3c7e8..a18c7b6 100644
69220--- a/include/linux/cpu.h 68884--- a/include/linux/cpu.h
69221+++ b/include/linux/cpu.h 68885+++ b/include/linux/cpu.h
69222@@ -115,7 +115,7 @@ enum { 68886@@ -115,7 +115,7 @@ enum {
@@ -69229,10 +68893,10 @@ index 714e792..e6130d9 100644
69229 register_cpu_notifier(&fn##_nb); \ 68893 register_cpu_notifier(&fn##_nb); \
69230 } 68894 }
69231diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h 68895diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
69232index a22944c..4e695fe 100644 68896index 037d36a..ca5fe6e 100644
69233--- a/include/linux/cpufreq.h 68897--- a/include/linux/cpufreq.h
69234+++ b/include/linux/cpufreq.h 68898+++ b/include/linux/cpufreq.h
69235@@ -252,7 +252,7 @@ struct cpufreq_driver { 68899@@ -262,7 +262,7 @@ struct cpufreq_driver {
69236 int (*suspend) (struct cpufreq_policy *policy); 68900 int (*suspend) (struct cpufreq_policy *policy);
69237 int (*resume) (struct cpufreq_policy *policy); 68901 int (*resume) (struct cpufreq_policy *policy);
69238 struct freq_attr **attr; 68902 struct freq_attr **attr;
@@ -69241,7 +68905,7 @@ index a22944c..4e695fe 100644
69241 68905
69242 /* flags */ 68906 /* flags */
69243 68907
69244@@ -311,6 +311,7 @@ struct global_attr { 68908@@ -321,6 +321,7 @@ struct global_attr {
69245 ssize_t (*store)(struct kobject *a, struct attribute *b, 68909 ssize_t (*store)(struct kobject *a, struct attribute *b,
69246 const char *c, size_t count); 68910 const char *c, size_t count);
69247 }; 68911 };
@@ -69250,7 +68914,7 @@ index a22944c..4e695fe 100644
69250 #define define_one_global_ro(_name) \ 68914 #define define_one_global_ro(_name) \
69251 static struct global_attr _name = \ 68915 static struct global_attr _name = \
69252diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h 68916diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
69253index 480c14d..552896f 100644 68917index 8f04062..900239a 100644
69254--- a/include/linux/cpuidle.h 68918--- a/include/linux/cpuidle.h
69255+++ b/include/linux/cpuidle.h 68919+++ b/include/linux/cpuidle.h
69256@@ -52,7 +52,8 @@ struct cpuidle_state { 68920@@ -52,7 +52,8 @@ struct cpuidle_state {
@@ -69263,7 +68927,7 @@ index 480c14d..552896f 100644
69263 68927
69264 /* Idle State Flags */ 68928 /* Idle State Flags */
69265 #define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */ 68929 #define CPUIDLE_FLAG_TIME_VALID (0x01) /* is residency time measurable? */
69266@@ -194,7 +195,7 @@ struct cpuidle_governor { 68930@@ -191,7 +192,7 @@ struct cpuidle_governor {
69267 void (*reflect) (struct cpuidle_device *dev, int index); 68931 void (*reflect) (struct cpuidle_device *dev, int index);
69268 68932
69269 struct module *owner; 68933 struct module *owner;
@@ -69273,7 +68937,7 @@ index 480c14d..552896f 100644
69273 #ifdef CONFIG_CPU_IDLE 68937 #ifdef CONFIG_CPU_IDLE
69274 68938
69275diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h 68939diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
69276index 0325602..5e9feff 100644 68940index d08e4d2..95fad61 100644
69277--- a/include/linux/cpumask.h 68941--- a/include/linux/cpumask.h
69278+++ b/include/linux/cpumask.h 68942+++ b/include/linux/cpumask.h
69279@@ -118,17 +118,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp) 68943@@ -118,17 +118,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
@@ -69368,7 +69032,7 @@ index b92eadf..b4ecdc1 100644
69368 #define crt_ablkcipher crt_u.ablkcipher 69032 #define crt_ablkcipher crt_u.ablkcipher
69369 #define crt_aead crt_u.aead 69033 #define crt_aead crt_u.aead
69370diff --git a/include/linux/ctype.h b/include/linux/ctype.h 69034diff --git a/include/linux/ctype.h b/include/linux/ctype.h
69371index 8acfe31..6ffccd63 100644 69035index 653589e..4ef254a 100644
69372--- a/include/linux/ctype.h 69036--- a/include/linux/ctype.h
69373+++ b/include/linux/ctype.h 69037+++ b/include/linux/ctype.h
69374@@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c) 69038@@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c)
@@ -69407,10 +69071,10 @@ index fe8c447..bdc1f33 100644
69407 /** 69071 /**
69408 * struct devfreq - Device devfreq structure 69072 * struct devfreq - Device devfreq structure
69409diff --git a/include/linux/device.h b/include/linux/device.h 69073diff --git a/include/linux/device.h b/include/linux/device.h
69410index 9d6464e..8a5cc92 100644 69074index c0a1261..dba7569 100644
69411--- a/include/linux/device.h 69075--- a/include/linux/device.h
69412+++ b/include/linux/device.h 69076+++ b/include/linux/device.h
69413@@ -295,7 +295,7 @@ struct subsys_interface { 69077@@ -290,7 +290,7 @@ struct subsys_interface {
69414 struct list_head node; 69078 struct list_head node;
69415 int (*add_dev)(struct device *dev, struct subsys_interface *sif); 69079 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
69416 int (*remove_dev)(struct device *dev, struct subsys_interface *sif); 69080 int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
@@ -69419,7 +69083,7 @@ index 9d6464e..8a5cc92 100644
69419 69083
69420 int subsys_interface_register(struct subsys_interface *sif); 69084 int subsys_interface_register(struct subsys_interface *sif);
69421 void subsys_interface_unregister(struct subsys_interface *sif); 69085 void subsys_interface_unregister(struct subsys_interface *sif);
69422@@ -475,7 +475,7 @@ struct device_type { 69086@@ -473,7 +473,7 @@ struct device_type {
69423 void (*release)(struct device *dev); 69087 void (*release)(struct device *dev);
69424 69088
69425 const struct dev_pm_ops *pm; 69089 const struct dev_pm_ops *pm;
@@ -69428,7 +69092,7 @@ index 9d6464e..8a5cc92 100644
69428 69092
69429 /* interface for exporting device attributes */ 69093 /* interface for exporting device attributes */
69430 struct device_attribute { 69094 struct device_attribute {
69431@@ -485,11 +485,12 @@ struct device_attribute { 69095@@ -483,11 +483,12 @@ struct device_attribute {
69432 ssize_t (*store)(struct device *dev, struct device_attribute *attr, 69096 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
69433 const char *buf, size_t count); 69097 const char *buf, size_t count);
69434 }; 69098 };
@@ -69456,10 +69120,10 @@ index 94af418..b1ca7a2 100644
69456 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1)) 69120 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
69457 69121
69458diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h 69122diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
69459index 91ac8da..a841318 100644 69123index 96d3e4a..dc36433 100644
69460--- a/include/linux/dmaengine.h 69124--- a/include/linux/dmaengine.h
69461+++ b/include/linux/dmaengine.h 69125+++ b/include/linux/dmaengine.h
69462@@ -1034,9 +1034,9 @@ struct dma_pinned_list { 69126@@ -1035,9 +1035,9 @@ struct dma_pinned_list {
69463 struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len); 69127 struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
69464 void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list); 69128 void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
69465 69129
@@ -69471,34 +69135,11 @@ index 91ac8da..a841318 100644
69471 struct dma_pinned_list *pinned_list, struct page *page, 69135 struct dma_pinned_list *pinned_list, struct page *page,
69472 unsigned int offset, size_t len); 69136 unsigned int offset, size_t len);
69473 69137
69474diff --git a/include/linux/edac.h b/include/linux/edac.h
69475index 0b76327..5c6d7fb 100644
69476--- a/include/linux/edac.h
69477+++ b/include/linux/edac.h
69478@@ -622,7 +622,7 @@ struct edac_raw_error_desc {
69479 */
69480 struct mem_ctl_info {
69481 struct device dev;
69482- struct bus_type bus;
69483+ struct bus_type *bus;
69484
69485 struct list_head link; /* for global list of mem_ctl_info structs */
69486
69487@@ -742,4 +742,9 @@ struct mem_ctl_info {
69488 #endif
69489 };
69490
69491+/*
69492+ * Maximum number of memory controllers in the coherent fabric.
69493+ */
69494+#define EDAC_MAX_MCS 16
69495+
69496 #endif
69497diff --git a/include/linux/efi.h b/include/linux/efi.h 69138diff --git a/include/linux/efi.h b/include/linux/efi.h
69498index 3d7df3d..301f024 100644 69139index 2bc0ad7..3f7b006 100644
69499--- a/include/linux/efi.h 69140--- a/include/linux/efi.h
69500+++ b/include/linux/efi.h 69141+++ b/include/linux/efi.h
69501@@ -740,6 +740,7 @@ struct efivar_operations { 69142@@ -745,6 +745,7 @@ struct efivar_operations {
69502 efi_set_variable_t *set_variable; 69143 efi_set_variable_t *set_variable;
69503 efi_query_variable_store_t *query_variable_store; 69144 efi_query_variable_store_t *query_variable_store;
69504 }; 69145 };
@@ -69559,7 +69200,7 @@ index fcb51c8..bdafcf6 100644
69559 69200
69560 /** 69201 /**
69561diff --git a/include/linux/fb.h b/include/linux/fb.h 69202diff --git a/include/linux/fb.h b/include/linux/fb.h
69562index 58b9860..58e5516 100644 69203index d49c60f..2834fbe 100644
69563--- a/include/linux/fb.h 69204--- a/include/linux/fb.h
69564+++ b/include/linux/fb.h 69205+++ b/include/linux/fb.h
69565@@ -304,7 +304,7 @@ struct fb_ops { 69206@@ -304,7 +304,7 @@ struct fb_ops {
@@ -69572,7 +69213,7 @@ index 58b9860..58e5516 100644
69572 #ifdef CONFIG_FB_TILEBLITTING 69213 #ifdef CONFIG_FB_TILEBLITTING
69573 #define FB_TILE_CURSOR_NONE 0 69214 #define FB_TILE_CURSOR_NONE 0
69574diff --git a/include/linux/filter.h b/include/linux/filter.h 69215diff --git a/include/linux/filter.h b/include/linux/filter.h
69575index c45eabc..baa0be5 100644 69216index f65f5a6..2f4f93a 100644
69576--- a/include/linux/filter.h 69217--- a/include/linux/filter.h
69577+++ b/include/linux/filter.h 69218+++ b/include/linux/filter.h
69578@@ -20,6 +20,7 @@ struct compat_sock_fprog { 69219@@ -20,6 +20,7 @@ struct compat_sock_fprog {
@@ -69594,7 +69235,7 @@ index c45eabc..baa0be5 100644
69594 struct sock_filter insns[0]; 69235 struct sock_filter insns[0];
69595 }; 69236 };
69596diff --git a/include/linux/frontswap.h b/include/linux/frontswap.h 69237diff --git a/include/linux/frontswap.h b/include/linux/frontswap.h
69597index 3044254..9767f41 100644 69238index 8293262..2b3b8bd 100644
69598--- a/include/linux/frontswap.h 69239--- a/include/linux/frontswap.h
69599+++ b/include/linux/frontswap.h 69240+++ b/include/linux/frontswap.h
69600@@ -11,7 +11,7 @@ struct frontswap_ops { 69241@@ -11,7 +11,7 @@ struct frontswap_ops {
@@ -69605,12 +69246,12 @@ index 3044254..9767f41 100644
69605+} __no_const; 69246+} __no_const;
69606 69247
69607 extern bool frontswap_enabled; 69248 extern bool frontswap_enabled;
69608 extern struct frontswap_ops 69249 extern struct frontswap_ops *
69609diff --git a/include/linux/fs.h b/include/linux/fs.h 69250diff --git a/include/linux/fs.h b/include/linux/fs.h
69610index 2c28271..8d3d74c 100644 69251index 65c2be2..4c53f6e 100644
69611--- a/include/linux/fs.h 69252--- a/include/linux/fs.h
69612+++ b/include/linux/fs.h 69253+++ b/include/linux/fs.h
69613@@ -1541,7 +1541,8 @@ struct file_operations { 69254@@ -1543,7 +1543,8 @@ struct file_operations {
69614 long (*fallocate)(struct file *file, int mode, loff_t offset, 69255 long (*fallocate)(struct file *file, int mode, loff_t offset,
69615 loff_t len); 69256 loff_t len);
69616 int (*show_fdinfo)(struct seq_file *m, struct file *f); 69257 int (*show_fdinfo)(struct seq_file *m, struct file *f);
@@ -69620,7 +69261,7 @@ index 2c28271..8d3d74c 100644
69620 69261
69621 struct inode_operations { 69262 struct inode_operations {
69622 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); 69263 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
69623@@ -2672,4 +2673,14 @@ static inline void inode_has_no_xattr(struct inode *inode) 69264@@ -2688,4 +2689,14 @@ static inline void inode_has_no_xattr(struct inode *inode)
69624 inode->i_flags |= S_NOSEC; 69265 inode->i_flags |= S_NOSEC;
69625 } 69266 }
69626 69267
@@ -69716,19 +69357,6 @@ index a78680a..87bd73e 100644
69716 } 69357 }
69717 69358
69718 /* 69359 /*
69719diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
69720index 13a54d0..c6ce2a7 100644
69721--- a/include/linux/ftrace_event.h
69722+++ b/include/linux/ftrace_event.h
69723@@ -274,7 +274,7 @@ extern int trace_define_field(struct ftrace_event_call *call, const char *type,
69724 extern int trace_add_event_call(struct ftrace_event_call *call);
69725 extern void trace_remove_event_call(struct ftrace_event_call *call);
69726
69727-#define is_signed_type(type) (((type)(-1)) < (type)0)
69728+#define is_signed_type(type) (((type)(-1)) < (type)1)
69729
69730 int trace_set_clr_event(const char *system, const char *event, int set);
69731
69732diff --git a/include/linux/genhd.h b/include/linux/genhd.h 69360diff --git a/include/linux/genhd.h b/include/linux/genhd.h
69733index 9f3c275..911b591 100644 69361index 9f3c275..911b591 100644
69734--- a/include/linux/genhd.h 69362--- a/include/linux/genhd.h
@@ -70124,6 +69752,168 @@ index 0000000..ebe6d72
70124+ 69752+
70125+#endif 69753+#endif
70126+ 69754+
69755diff --git a/include/linux/gracl_compat.h b/include/linux/gracl_compat.h
69756new file mode 100644
69757index 0000000..33ebd1f
69758--- /dev/null
69759+++ b/include/linux/gracl_compat.h
69760@@ -0,0 +1,156 @@
69761+#ifndef GR_ACL_COMPAT_H
69762+#define GR_ACL_COMPAT_H
69763+
69764+#include <linux/resource.h>
69765+#include <asm/resource.h>
69766+
69767+struct sprole_pw_compat {
69768+ compat_uptr_t rolename;
69769+ unsigned char salt[GR_SALT_LEN];
69770+ unsigned char sum[GR_SHA_LEN];
69771+};
69772+
69773+struct gr_hash_struct_compat {
69774+ compat_uptr_t table;
69775+ compat_uptr_t nametable;
69776+ compat_uptr_t first;
69777+ __u32 table_size;
69778+ __u32 used_size;
69779+ int type;
69780+};
69781+
69782+struct acl_subject_label_compat {
69783+ compat_uptr_t filename;
69784+ compat_ino_t inode;
69785+ __u32 device;
69786+ __u32 mode;
69787+ kernel_cap_t cap_mask;
69788+ kernel_cap_t cap_lower;
69789+ kernel_cap_t cap_invert_audit;
69790+
69791+ struct compat_rlimit res[GR_NLIMITS];
69792+ __u32 resmask;
69793+
69794+ __u8 user_trans_type;
69795+ __u8 group_trans_type;
69796+ compat_uptr_t user_transitions;
69797+ compat_uptr_t group_transitions;
69798+ __u16 user_trans_num;
69799+ __u16 group_trans_num;
69800+
69801+ __u32 sock_families[2];
69802+ __u32 ip_proto[8];
69803+ __u32 ip_type;
69804+ compat_uptr_t ips;
69805+ __u32 ip_num;
69806+ __u32 inaddr_any_override;
69807+
69808+ __u32 crashes;
69809+ compat_ulong_t expires;
69810+
69811+ compat_uptr_t parent_subject;
69812+ compat_uptr_t hash;
69813+ compat_uptr_t prev;
69814+ compat_uptr_t next;
69815+
69816+ compat_uptr_t obj_hash;
69817+ __u32 obj_hash_size;
69818+ __u16 pax_flags;
69819+};
69820+
69821+struct role_allowed_ip_compat {
69822+ __u32 addr;
69823+ __u32 netmask;
69824+
69825+ compat_uptr_t prev;
69826+ compat_uptr_t next;
69827+};
69828+
69829+struct role_transition_compat {
69830+ compat_uptr_t rolename;
69831+
69832+ compat_uptr_t prev;
69833+ compat_uptr_t next;
69834+};
69835+
69836+struct acl_role_label_compat {
69837+ compat_uptr_t rolename;
69838+ uid_t uidgid;
69839+ __u16 roletype;
69840+
69841+ __u16 auth_attempts;
69842+ compat_ulong_t expires;
69843+
69844+ compat_uptr_t root_label;
69845+ compat_uptr_t hash;
69846+
69847+ compat_uptr_t prev;
69848+ compat_uptr_t next;
69849+
69850+ compat_uptr_t transitions;
69851+ compat_uptr_t allowed_ips;
69852+ compat_uptr_t domain_children;
69853+ __u16 domain_child_num;
69854+
69855+ umode_t umask;
69856+
69857+ compat_uptr_t subj_hash;
69858+ __u32 subj_hash_size;
69859+};
69860+
69861+struct user_acl_role_db_compat {
69862+ compat_uptr_t r_table;
69863+ __u32 num_pointers;
69864+ __u32 num_roles;
69865+ __u32 num_domain_children;
69866+ __u32 num_subjects;
69867+ __u32 num_objects;
69868+};
69869+
69870+struct acl_object_label_compat {
69871+ compat_uptr_t filename;
69872+ compat_ino_t inode;
69873+ __u32 device;
69874+ __u32 mode;
69875+
69876+ compat_uptr_t nested;
69877+ compat_uptr_t globbed;
69878+
69879+ compat_uptr_t prev;
69880+ compat_uptr_t next;
69881+};
69882+
69883+struct acl_ip_label_compat {
69884+ compat_uptr_t iface;
69885+ __u32 addr;
69886+ __u32 netmask;
69887+ __u16 low, high;
69888+ __u8 mode;
69889+ __u32 type;
69890+ __u32 proto[8];
69891+
69892+ compat_uptr_t prev;
69893+ compat_uptr_t next;
69894+};
69895+
69896+struct gr_arg_compat {
69897+ struct user_acl_role_db_compat role_db;
69898+ unsigned char pw[GR_PW_LEN];
69899+ unsigned char salt[GR_SALT_LEN];
69900+ unsigned char sum[GR_SHA_LEN];
69901+ unsigned char sp_role[GR_SPROLE_LEN];
69902+ compat_uptr_t sprole_pws;
69903+ __u32 segv_device;
69904+ compat_ino_t segv_inode;
69905+ uid_t segv_uid;
69906+ __u16 num_sprole_pws;
69907+ __u16 mode;
69908+};
69909+
69910+struct gr_arg_wrapper_compat {
69911+ compat_uptr_t arg;
69912+ __u32 version;
69913+ __u32 size;
69914+};
69915+
69916+#endif
70127diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h 69917diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h
70128new file mode 100644 69918new file mode 100644
70129index 0000000..323ecf2 69919index 0000000..323ecf2
@@ -70287,10 +70077,10 @@ index 0000000..be66033
70287+#endif 70077+#endif
70288diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h 70078diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
70289new file mode 100644 70079new file mode 100644
70290index 0000000..12994b5 70080index 0000000..fd8598b
70291--- /dev/null 70081--- /dev/null
70292+++ b/include/linux/grinternal.h 70082+++ b/include/linux/grinternal.h
70293@@ -0,0 +1,227 @@ 70083@@ -0,0 +1,228 @@
70294+#ifndef __GRINTERNAL_H 70084+#ifndef __GRINTERNAL_H
70295+#define __GRINTERNAL_H 70085+#define __GRINTERNAL_H
70296+ 70086+
@@ -70366,7 +70156,6 @@ index 0000000..12994b5
70366+extern kgid_t grsec_socket_server_gid; 70156+extern kgid_t grsec_socket_server_gid;
70367+extern kgid_t grsec_audit_gid; 70157+extern kgid_t grsec_audit_gid;
70368+extern int grsec_enable_group; 70158+extern int grsec_enable_group;
70369+extern int grsec_enable_audit_textrel;
70370+extern int grsec_enable_log_rwxmaps; 70159+extern int grsec_enable_log_rwxmaps;
70371+extern int grsec_enable_mount; 70160+extern int grsec_enable_mount;
70372+extern int grsec_enable_chdir; 70161+extern int grsec_enable_chdir;
@@ -70474,7 +70263,8 @@ index 0000000..12994b5
70474+ GR_CRASH1, 70263+ GR_CRASH1,
70475+ GR_CRASH2, 70264+ GR_CRASH2,
70476+ GR_PSACCT, 70265+ GR_PSACCT,
70477+ GR_RWXMAP 70266+ GR_RWXMAP,
70267+ GR_RWXMAPVMA
70478+}; 70268+};
70479+ 70269+
70480+#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str) 70270+#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str)
@@ -70512,6 +70302,7 @@ index 0000000..12994b5
70512+#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1) 70302+#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1)
70513+#define gr_log_procacct(audit, msg, task, num1, num2, num3, num4, num5, num6, num7, num8, num9) gr_log_varargs(audit, msg, GR_PSACCT, task, num1, num2, num3, num4, num5, num6, num7, num8, num9) 70303+#define gr_log_procacct(audit, msg, task, num1, num2, num3, num4, num5, num6, num7, num8, num9) gr_log_varargs(audit, msg, GR_PSACCT, task, num1, num2, num3, num4, num5, num6, num7, num8, num9)
70514+#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str) 70304+#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str)
70305+#define gr_log_rwxmap_vma(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAPVMA, str)
70515+ 70306+
70516+void gr_log_varargs(int audit, const char *msg, int argtypes, ...); 70307+void gr_log_varargs(int audit, const char *msg, int argtypes, ...);
70517+ 70308+
@@ -70520,10 +70311,10 @@ index 0000000..12994b5
70520+#endif 70311+#endif
70521diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h 70312diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
70522new file mode 100644 70313new file mode 100644
70523index 0000000..2f159b5 70314index 0000000..a4396b5
70524--- /dev/null 70315--- /dev/null
70525+++ b/include/linux/grmsg.h 70316+++ b/include/linux/grmsg.h
70526@@ -0,0 +1,112 @@ 70317@@ -0,0 +1,113 @@
70527+#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u" 70318+#define DEFAULTSECMSG "%.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u, parent %.256s[%.16s:%d] uid/euid:%u/%u gid/egid:%u/%u"
70528+#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u" 70319+#define GR_ACL_PROCACCT_MSG "%.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u run time:[%ud %uh %um %us] cpu time:[%ud %uh %um %us] %s with exit code %ld, parent %.256s[%.16s:%d] IP:%pI4 TTY:%.64s uid/euid:%u/%u gid/egid:%u/%u"
70529+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by " 70320+#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
@@ -70627,7 +70418,8 @@ index 0000000..2f159b5
70627+#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for " 70418+#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for "
70628+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by " 70419+#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
70629+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by " 70420+#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
70630+#define GR_TEXTREL_AUDIT_MSG "text relocation in %s, VMA:0x%08lx 0x%08lx by " 70421+#define GR_TEXTREL_AUDIT_MSG "denied text relocation in %.950s, VMA:0x%08lx 0x%08lx by "
70422+#define GR_PTGNUSTACK_MSG "denied marking stack executable as requested by PT_GNU_STACK marking in %.950s by "
70631+#define GR_VM86_MSG "denied use of vm86 by " 70423+#define GR_VM86_MSG "denied use of vm86 by "
70632+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by " 70424+#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
70633+#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by " 70425+#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
@@ -70638,10 +70430,10 @@ index 0000000..2f159b5
70638+#define GR_BRUTE_SUID_MSG "bruteforce prevention initiated due to crash of %.950s against uid %u, banning suid/sgid execs for %u minutes. Please investigate the crash report for " 70430+#define GR_BRUTE_SUID_MSG "bruteforce prevention initiated due to crash of %.950s against uid %u, banning suid/sgid execs for %u minutes. Please investigate the crash report for "
70639diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h 70431diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
70640new file mode 100644 70432new file mode 100644
70641index 0000000..d957f6d 70433index 0000000..3676b0b
70642--- /dev/null 70434--- /dev/null
70643+++ b/include/linux/grsecurity.h 70435+++ b/include/linux/grsecurity.h
70644@@ -0,0 +1,241 @@ 70436@@ -0,0 +1,242 @@
70645+#ifndef GR_SECURITY_H 70437+#ifndef GR_SECURITY_H
70646+#define GR_SECURITY_H 70438+#define GR_SECURITY_H
70647+#include <linux/fs.h> 70439+#include <linux/fs.h>
@@ -70719,8 +70511,9 @@ index 0000000..d957f6d
70719+void gr_log_unmount(const char *devname, const int retval); 70511+void gr_log_unmount(const char *devname, const int retval);
70720+void gr_log_mount(const char *from, const char *to, const int retval); 70512+void gr_log_mount(const char *from, const char *to, const int retval);
70721+void gr_log_textrel(struct vm_area_struct *vma); 70513+void gr_log_textrel(struct vm_area_struct *vma);
70514+void gr_log_ptgnustack(struct file *file);
70722+void gr_log_rwxmmap(struct file *file); 70515+void gr_log_rwxmmap(struct file *file);
70723+void gr_log_rwxmprotect(struct file *file); 70516+void gr_log_rwxmprotect(struct vm_area_struct *vma);
70724+ 70517+
70725+int gr_handle_follow_link(const struct inode *parent, 70518+int gr_handle_follow_link(const struct inode *parent,
70726+ const struct inode *inode, 70519+ const struct inode *inode,
@@ -70955,17 +70748,17 @@ index 1c7b89a..7f52502 100644
70955 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr) 70748 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
70956 70749
70957diff --git a/include/linux/i2c.h b/include/linux/i2c.h 70750diff --git a/include/linux/i2c.h b/include/linux/i2c.h
70958index d0c4db7..61b3577 100644 70751index e988fa9..ff9f17e 100644
70959--- a/include/linux/i2c.h 70752--- a/include/linux/i2c.h
70960+++ b/include/linux/i2c.h 70753+++ b/include/linux/i2c.h
70961@@ -369,6 +369,7 @@ struct i2c_algorithm { 70754@@ -366,6 +366,7 @@ struct i2c_algorithm {
70962 /* To determine what the adapter supports */ 70755 /* To determine what the adapter supports */
70963 u32 (*functionality) (struct i2c_adapter *); 70756 u32 (*functionality) (struct i2c_adapter *);
70964 }; 70757 };
70965+typedef struct i2c_algorithm __no_const i2c_algorithm_no_const; 70758+typedef struct i2c_algorithm __no_const i2c_algorithm_no_const;
70966 70759
70967 /* 70760 /**
70968 * i2c_adapter is the structure used to identify a physical i2c bus along 70761 * struct i2c_bus_recovery_info - I2C bus recovery information
70969diff --git a/include/linux/i2o.h b/include/linux/i2o.h 70762diff --git a/include/linux/i2o.h b/include/linux/i2o.h
70970index d23c3c2..eb63c81 100644 70763index d23c3c2..eb63c81 100644
70971--- a/include/linux/i2o.h 70764--- a/include/linux/i2o.h
@@ -70992,21 +70785,6 @@ index aff7ad8..3942bbd 100644
70992 70785
70993 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp); 70786 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
70994 extern void unregister_pppox_proto(int proto_num); 70787 extern void unregister_pppox_proto(int proto_num);
70995diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
70996index 218a3b6..ee586cb 100644
70997--- a/include/linux/if_vlan.h
70998+++ b/include/linux/if_vlan.h
70999@@ -79,9 +79,8 @@ static inline int is_vlan_dev(struct net_device *dev)
71000 }
71001
71002 #define vlan_tx_tag_present(__skb) ((__skb)->vlan_tci & VLAN_TAG_PRESENT)
71003-#define vlan_tx_nonzero_tag_present(__skb) \
71004- (vlan_tx_tag_present(__skb) && ((__skb)->vlan_tci & VLAN_VID_MASK))
71005 #define vlan_tx_tag_get(__skb) ((__skb)->vlan_tci & ~VLAN_TAG_PRESENT)
71006+#define vlan_tx_tag_get_id(__skb) ((__skb)->vlan_tci & VLAN_VID_MASK)
71007
71008 #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
71009
71010diff --git a/include/linux/init.h b/include/linux/init.h 70788diff --git a/include/linux/init.h b/include/linux/init.h
71011index 8618147..0821126 100644 70789index 8618147..0821126 100644
71012--- a/include/linux/init.h 70790--- a/include/linux/init.h
@@ -71122,7 +70900,7 @@ index 5fa5afe..ac55b25 100644
71122 extern void __raise_softirq_irqoff(unsigned int nr); 70900 extern void __raise_softirq_irqoff(unsigned int nr);
71123 70901
71124diff --git a/include/linux/iommu.h b/include/linux/iommu.h 70902diff --git a/include/linux/iommu.h b/include/linux/iommu.h
71125index ba3b8a9..7e14ed8 100644 70903index 3aeb730..2177f39 100644
71126--- a/include/linux/iommu.h 70904--- a/include/linux/iommu.h
71127+++ b/include/linux/iommu.h 70905+++ b/include/linux/iommu.h
71128@@ -113,7 +113,7 @@ struct iommu_ops { 70906@@ -113,7 +113,7 @@ struct iommu_ops {
@@ -71135,7 +70913,7 @@ index ba3b8a9..7e14ed8 100644
71135 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */ 70913 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */
71136 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */ 70914 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */
71137diff --git a/include/linux/ioport.h b/include/linux/ioport.h 70915diff --git a/include/linux/ioport.h b/include/linux/ioport.h
71138index 85ac9b9b..e5759ab 100644 70916index 89b7c24..382af74 100644
71139--- a/include/linux/ioport.h 70917--- a/include/linux/ioport.h
71140+++ b/include/linux/ioport.h 70918+++ b/include/linux/ioport.h
71141@@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start); 70919@@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
@@ -71162,7 +70940,7 @@ index bc4e066..50468a9 100644
71162 /* 70940 /*
71163 * irq_chip specific flags 70941 * irq_chip specific flags
71164diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h 70942diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
71165index 3fd8e42..a73e966 100644 70943index 3e203eb..3fe68d0 100644
71166--- a/include/linux/irqchip/arm-gic.h 70944--- a/include/linux/irqchip/arm-gic.h
71167+++ b/include/linux/irqchip/arm-gic.h 70945+++ b/include/linux/irqchip/arm-gic.h
71168@@ -59,9 +59,11 @@ 70946@@ -59,9 +59,11 @@
@@ -71255,7 +71033,7 @@ index c6e091b..a940adf 100644
71255 extern struct kgdb_arch arch_kgdb_ops; 71033 extern struct kgdb_arch arch_kgdb_ops;
71256 71034
71257diff --git a/include/linux/kmod.h b/include/linux/kmod.h 71035diff --git a/include/linux/kmod.h b/include/linux/kmod.h
71258index 5398d58..5883a34 100644 71036index 0555cc6..b16a7a4 100644
71259--- a/include/linux/kmod.h 71037--- a/include/linux/kmod.h
71260+++ b/include/linux/kmod.h 71038+++ b/include/linux/kmod.h
71261@@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */ 71039@@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
@@ -71302,10 +71080,10 @@ index f66b065..c2c29b4 100644
71302 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops); 71080 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
71303 int kobj_ns_type_registered(enum kobj_ns_type type); 71081 int kobj_ns_type_registered(enum kobj_ns_type type);
71304diff --git a/include/linux/kref.h b/include/linux/kref.h 71082diff --git a/include/linux/kref.h b/include/linux/kref.h
71305index 7419c02..aa2f02d 100644 71083index 484604d..0f6c5b6 100644
71306--- a/include/linux/kref.h 71084--- a/include/linux/kref.h
71307+++ b/include/linux/kref.h 71085+++ b/include/linux/kref.h
71308@@ -65,7 +65,7 @@ static inline void kref_get(struct kref *kref) 71086@@ -68,7 +68,7 @@ static inline void kref_get(struct kref *kref)
71309 static inline int kref_sub(struct kref *kref, unsigned int count, 71087 static inline int kref_sub(struct kref *kref, unsigned int count,
71310 void (*release)(struct kref *kref)) 71088 void (*release)(struct kref *kref))
71311 { 71089 {
@@ -71315,19 +71093,19 @@ index 7419c02..aa2f02d 100644
71315 if (atomic_sub_and_test((int) count, &kref->refcount)) { 71093 if (atomic_sub_and_test((int) count, &kref->refcount)) {
71316 release(kref); 71094 release(kref);
71317diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h 71095diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
71318index c139582..0b5b102 100644 71096index 8db53cf..c21121d 100644
71319--- a/include/linux/kvm_host.h 71097--- a/include/linux/kvm_host.h
71320+++ b/include/linux/kvm_host.h 71098+++ b/include/linux/kvm_host.h
71321@@ -424,7 +424,7 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vcpu); 71099@@ -444,7 +444,7 @@ static inline void kvm_irqfd_exit(void)
71322 int __must_check vcpu_load(struct kvm_vcpu *vcpu); 71100 {
71323 void vcpu_put(struct kvm_vcpu *vcpu); 71101 }
71324 71102 #endif
71325-int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 71103-int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
71326+int kvm_init(const void *opaque, unsigned vcpu_size, unsigned vcpu_align, 71104+int kvm_init(const void *opaque, unsigned vcpu_size, unsigned vcpu_align,
71327 struct module *module); 71105 struct module *module);
71328 void kvm_exit(void); 71106 void kvm_exit(void);
71329 71107
71330@@ -582,7 +582,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu, 71108@@ -616,7 +616,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
71331 struct kvm_guest_debug *dbg); 71109 struct kvm_guest_debug *dbg);
71332 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run); 71110 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
71333 71111
@@ -71350,7 +71128,7 @@ index eae7a05..2cdd875 100644
71350 struct ata_port_info { 71128 struct ata_port_info {
71351 unsigned long flags; 71129 unsigned long flags;
71352diff --git a/include/linux/list.h b/include/linux/list.h 71130diff --git a/include/linux/list.h b/include/linux/list.h
71353index 6a1f8df..eaec1ff 100644 71131index b83e565..baa6c1d 100644
71354--- a/include/linux/list.h 71132--- a/include/linux/list.h
71355+++ b/include/linux/list.h 71133+++ b/include/linux/list.h
71356@@ -112,6 +112,19 @@ extern void __list_del_entry(struct list_head *entry); 71134@@ -112,6 +112,19 @@ extern void __list_del_entry(struct list_head *entry);
@@ -71383,10 +71161,10 @@ index 6a1f8df..eaec1ff 100644
71383 * list_move - delete from one list and add as another's head 71161 * list_move - delete from one list and add as another's head
71384 * @list: the entry to move 71162 * @list: the entry to move
71385diff --git a/include/linux/math64.h b/include/linux/math64.h 71163diff --git a/include/linux/math64.h b/include/linux/math64.h
71386index b8ba855..0148090 100644 71164index 2913b86..4209244 100644
71387--- a/include/linux/math64.h 71165--- a/include/linux/math64.h
71388+++ b/include/linux/math64.h 71166+++ b/include/linux/math64.h
71389@@ -14,7 +14,7 @@ 71167@@ -15,7 +15,7 @@
71390 * This is commonly provided by 32bit archs to provide an optimized 64bit 71168 * This is commonly provided by 32bit archs to provide an optimized 64bit
71391 * divide. 71169 * divide.
71392 */ 71170 */
@@ -71395,8 +71173,8 @@ index b8ba855..0148090 100644
71395 { 71173 {
71396 *remainder = dividend % divisor; 71174 *remainder = dividend % divisor;
71397 return dividend / divisor; 71175 return dividend / divisor;
71398@@ -50,7 +50,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor) 71176@@ -52,7 +52,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
71399 #define div64_long(x,y) div_s64((x),(y)) 71177 #define div64_ul(x, y) div_u64((x), (y))
71400 71178
71401 #ifndef div_u64_rem 71179 #ifndef div_u64_rem
71402-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder) 71180-static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
@@ -71404,7 +71182,7 @@ index b8ba855..0148090 100644
71404 { 71182 {
71405 *remainder = do_div(dividend, divisor); 71183 *remainder = do_div(dividend, divisor);
71406 return dividend; 71184 return dividend;
71407@@ -79,7 +79,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor); 71185@@ -81,7 +81,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor);
71408 * divide. 71186 * divide.
71409 */ 71187 */
71410 #ifndef div_u64 71188 #ifndef div_u64
@@ -71414,10 +71192,10 @@ index b8ba855..0148090 100644
71414 u32 remainder; 71192 u32 remainder;
71415 return div_u64_rem(dividend, divisor, &remainder); 71193 return div_u64_rem(dividend, divisor, &remainder);
71416diff --git a/include/linux/mm.h b/include/linux/mm.h 71194diff --git a/include/linux/mm.h b/include/linux/mm.h
71417index e2091b8..3c7b38c 100644 71195index e0c8528..bcf0c29 100644
71418--- a/include/linux/mm.h 71196--- a/include/linux/mm.h
71419+++ b/include/linux/mm.h 71197+++ b/include/linux/mm.h
71420@@ -101,6 +101,11 @@ extern unsigned int kobjsize(const void *objp); 71198@@ -104,6 +104,11 @@ extern unsigned int kobjsize(const void *objp);
71421 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ 71199 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
71422 #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ 71200 #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
71423 #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */ 71201 #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */
@@ -71429,7 +71207,7 @@ index e2091b8..3c7b38c 100644
71429 #define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */ 71207 #define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */
71430 71208
71431 #define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */ 71209 #define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */
71432@@ -202,8 +207,8 @@ struct vm_operations_struct { 71210@@ -205,8 +210,8 @@ struct vm_operations_struct {
71433 /* called by access_process_vm when get_user_pages() fails, typically 71211 /* called by access_process_vm when get_user_pages() fails, typically
71434 * for use by special VMAs that can switch between memory and hardware 71212 * for use by special VMAs that can switch between memory and hardware
71435 */ 71213 */
@@ -71440,7 +71218,7 @@ index e2091b8..3c7b38c 100644
71440 #ifdef CONFIG_NUMA 71218 #ifdef CONFIG_NUMA
71441 /* 71219 /*
71442 * set_policy() op must add a reference to any non-NULL @new mempolicy 71220 * set_policy() op must add a reference to any non-NULL @new mempolicy
71443@@ -233,6 +238,7 @@ struct vm_operations_struct { 71221@@ -236,6 +241,7 @@ struct vm_operations_struct {
71444 int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr, 71222 int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr,
71445 unsigned long size, pgoff_t pgoff); 71223 unsigned long size, pgoff_t pgoff);
71446 }; 71224 };
@@ -71448,7 +71226,7 @@ index e2091b8..3c7b38c 100644
71448 71226
71449 struct mmu_gather; 71227 struct mmu_gather;
71450 struct inode; 71228 struct inode;
71451@@ -970,8 +976,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address, 71229@@ -980,8 +986,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
71452 unsigned long *pfn); 71230 unsigned long *pfn);
71453 int follow_phys(struct vm_area_struct *vma, unsigned long address, 71231 int follow_phys(struct vm_area_struct *vma, unsigned long address,
71454 unsigned int flags, unsigned long *prot, resource_size_t *phys); 71232 unsigned int flags, unsigned long *prot, resource_size_t *phys);
@@ -71459,7 +71237,7 @@ index e2091b8..3c7b38c 100644
71459 71237
71460 static inline void unmap_shared_mapping_range(struct address_space *mapping, 71238 static inline void unmap_shared_mapping_range(struct address_space *mapping,
71461 loff_t const holebegin, loff_t const holelen) 71239 loff_t const holebegin, loff_t const holelen)
71462@@ -1010,9 +1016,9 @@ static inline int fixup_user_fault(struct task_struct *tsk, 71240@@ -1020,9 +1026,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
71463 } 71241 }
71464 #endif 71242 #endif
71465 71243
@@ -71472,7 +71250,7 @@ index e2091b8..3c7b38c 100644
71472 71250
71473 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, 71251 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
71474 unsigned long start, unsigned long nr_pages, 71252 unsigned long start, unsigned long nr_pages,
71475@@ -1043,34 +1049,6 @@ int set_page_dirty(struct page *page); 71253@@ -1053,34 +1059,6 @@ int set_page_dirty(struct page *page);
71476 int set_page_dirty_lock(struct page *page); 71254 int set_page_dirty_lock(struct page *page);
71477 int clear_page_dirty_for_io(struct page *page); 71255 int clear_page_dirty_for_io(struct page *page);
71478 71256
@@ -71507,7 +71285,7 @@ index e2091b8..3c7b38c 100644
71507 extern pid_t 71285 extern pid_t
71508 vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group); 71286 vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group);
71509 71287
71510@@ -1173,6 +1151,15 @@ static inline void sync_mm_rss(struct mm_struct *mm) 71288@@ -1180,6 +1158,15 @@ static inline void sync_mm_rss(struct mm_struct *mm)
71511 } 71289 }
71512 #endif 71290 #endif
71513 71291
@@ -71523,7 +71301,7 @@ index e2091b8..3c7b38c 100644
71523 int vma_wants_writenotify(struct vm_area_struct *vma); 71301 int vma_wants_writenotify(struct vm_area_struct *vma);
71524 71302
71525 extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr, 71303 extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
71526@@ -1191,8 +1178,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, 71304@@ -1198,8 +1185,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
71527 { 71305 {
71528 return 0; 71306 return 0;
71529 } 71307 }
@@ -71539,7 +71317,7 @@ index e2091b8..3c7b38c 100644
71539 #endif 71317 #endif
71540 71318
71541 #ifdef __PAGETABLE_PMD_FOLDED 71319 #ifdef __PAGETABLE_PMD_FOLDED
71542@@ -1201,8 +1195,15 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud, 71320@@ -1208,8 +1202,15 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
71543 { 71321 {
71544 return 0; 71322 return 0;
71545 } 71323 }
@@ -71555,7 +71333,7 @@ index e2091b8..3c7b38c 100644
71555 #endif 71333 #endif
71556 71334
71557 int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, 71335 int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
71558@@ -1220,11 +1221,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a 71336@@ -1227,11 +1228,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
71559 NULL: pud_offset(pgd, address); 71337 NULL: pud_offset(pgd, address);
71560 } 71338 }
71561 71339
@@ -71579,7 +71357,7 @@ index e2091b8..3c7b38c 100644
71579 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */ 71357 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
71580 71358
71581 #if USE_SPLIT_PTLOCKS 71359 #if USE_SPLIT_PTLOCKS
71582@@ -1455,6 +1468,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 71360@@ -1517,6 +1530,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
71583 unsigned long len, unsigned long prot, unsigned long flags, 71361 unsigned long len, unsigned long prot, unsigned long flags,
71584 unsigned long pgoff, unsigned long *populate); 71362 unsigned long pgoff, unsigned long *populate);
71585 extern int do_munmap(struct mm_struct *, unsigned long, size_t); 71363 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
@@ -71587,7 +71365,7 @@ index e2091b8..3c7b38c 100644
71587 71365
71588 #ifdef CONFIG_MMU 71366 #ifdef CONFIG_MMU
71589 extern int __mm_populate(unsigned long addr, unsigned long len, 71367 extern int __mm_populate(unsigned long addr, unsigned long len,
71590@@ -1483,10 +1497,11 @@ struct vm_unmapped_area_info { 71368@@ -1545,10 +1559,11 @@ struct vm_unmapped_area_info {
71591 unsigned long high_limit; 71369 unsigned long high_limit;
71592 unsigned long align_mask; 71370 unsigned long align_mask;
71593 unsigned long align_offset; 71371 unsigned long align_offset;
@@ -71601,7 +71379,7 @@ index e2091b8..3c7b38c 100644
71601 71379
71602 /* 71380 /*
71603 * Search for an unmapped address range. 71381 * Search for an unmapped address range.
71604@@ -1498,7 +1513,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info); 71382@@ -1560,7 +1575,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
71605 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask) 71383 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
71606 */ 71384 */
71607 static inline unsigned long 71385 static inline unsigned long
@@ -71610,7 +71388,7 @@ index e2091b8..3c7b38c 100644
71610 { 71388 {
71611 if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN)) 71389 if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN))
71612 return unmapped_area(info); 71390 return unmapped_area(info);
71613@@ -1561,6 +1576,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add 71391@@ -1623,6 +1638,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
71614 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, 71392 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
71615 struct vm_area_struct **pprev); 71393 struct vm_area_struct **pprev);
71616 71394
@@ -71621,7 +71399,7 @@ index e2091b8..3c7b38c 100644
71621 /* Look up the first VMA which intersects the interval start_addr..end_addr-1, 71399 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
71622 NULL if none. Assume start_addr < end_addr. */ 71400 NULL if none. Assume start_addr < end_addr. */
71623 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) 71401 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
71624@@ -1589,15 +1608,6 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, 71402@@ -1651,15 +1670,6 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
71625 return vma; 71403 return vma;
71626 } 71404 }
71627 71405
@@ -71637,7 +71415,7 @@ index e2091b8..3c7b38c 100644
71637 #ifdef CONFIG_ARCH_USES_NUMA_PROT_NONE 71415 #ifdef CONFIG_ARCH_USES_NUMA_PROT_NONE
71638 unsigned long change_prot_numa(struct vm_area_struct *vma, 71416 unsigned long change_prot_numa(struct vm_area_struct *vma,
71639 unsigned long start, unsigned long end); 71417 unsigned long start, unsigned long end);
71640@@ -1649,6 +1659,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long); 71418@@ -1711,6 +1721,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
71641 static inline void vm_stat_account(struct mm_struct *mm, 71419 static inline void vm_stat_account(struct mm_struct *mm,
71642 unsigned long flags, struct file *file, long pages) 71420 unsigned long flags, struct file *file, long pages)
71643 { 71421 {
@@ -71649,7 +71427,7 @@ index e2091b8..3c7b38c 100644
71649 mm->total_vm += pages; 71427 mm->total_vm += pages;
71650 } 71428 }
71651 #endif /* CONFIG_PROC_FS */ 71429 #endif /* CONFIG_PROC_FS */
71652@@ -1725,7 +1740,7 @@ extern int unpoison_memory(unsigned long pfn); 71430@@ -1791,7 +1806,7 @@ extern int unpoison_memory(unsigned long pfn);
71653 extern int sysctl_memory_failure_early_kill; 71431 extern int sysctl_memory_failure_early_kill;
71654 extern int sysctl_memory_failure_recovery; 71432 extern int sysctl_memory_failure_recovery;
71655 extern void shake_page(struct page *p, int access); 71433 extern void shake_page(struct page *p, int access);
@@ -71658,9 +71436,9 @@ index e2091b8..3c7b38c 100644
71658 extern int soft_offline_page(struct page *page, int flags); 71436 extern int soft_offline_page(struct page *page, int flags);
71659 71437
71660 extern void dump_page(struct page *page); 71438 extern void dump_page(struct page *page);
71661@@ -1756,5 +1771,11 @@ static inline unsigned int debug_guardpage_minorder(void) { return 0; } 71439@@ -1828,5 +1843,11 @@ void __init setup_nr_node_ids(void);
71662 static inline bool page_is_guard(struct page *page) { return false; } 71440 static inline void setup_nr_node_ids(void) {}
71663 #endif /* CONFIG_DEBUG_PAGEALLOC */ 71441 #endif
71664 71442
71665+#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT 71443+#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
71666+extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot); 71444+extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
@@ -71731,7 +71509,7 @@ index c5d5278..f0b68c8 100644
71731 } 71509 }
71732 71510
71733diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h 71511diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
71734index c74092e..b663967 100644 71512index 5c76737..61f518e 100644
71735--- a/include/linux/mmzone.h 71513--- a/include/linux/mmzone.h
71736+++ b/include/linux/mmzone.h 71514+++ b/include/linux/mmzone.h
71737@@ -396,7 +396,7 @@ struct zone { 71515@@ -396,7 +396,7 @@ struct zone {
@@ -71744,10 +71522,10 @@ index c74092e..b663967 100644
71744 /* 71522 /*
71745 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on 71523 * The target ratio of ACTIVE_ANON to INACTIVE_ANON pages on
71746diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h 71524diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
71747index 779cf7c..e6768240 100644 71525index b508016..237cfe5 100644
71748--- a/include/linux/mod_devicetable.h 71526--- a/include/linux/mod_devicetable.h
71749+++ b/include/linux/mod_devicetable.h 71527+++ b/include/linux/mod_devicetable.h
71750@@ -12,7 +12,7 @@ 71528@@ -13,7 +13,7 @@
71751 typedef unsigned long kernel_ulong_t; 71529 typedef unsigned long kernel_ulong_t;
71752 #endif 71530 #endif
71753 71531
@@ -71756,7 +71534,7 @@ index 779cf7c..e6768240 100644
71756 71534
71757 struct pci_device_id { 71535 struct pci_device_id {
71758 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/ 71536 __u32 vendor, device; /* Vendor and device ID or PCI_ANY_ID*/
71759@@ -138,7 +138,7 @@ struct usb_device_id { 71537@@ -139,7 +139,7 @@ struct usb_device_id {
71760 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200 71538 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
71761 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400 71539 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
71762 71540
@@ -71765,7 +71543,7 @@ index 779cf7c..e6768240 100644
71765 #define HID_BUS_ANY 0xffff 71543 #define HID_BUS_ANY 0xffff
71766 #define HID_GROUP_ANY 0x0000 71544 #define HID_GROUP_ANY 0x0000
71767 71545
71768@@ -464,7 +464,7 @@ struct dmi_system_id { 71546@@ -465,7 +465,7 @@ struct dmi_system_id {
71769 const char *ident; 71547 const char *ident;
71770 struct dmi_strmatch matches[4]; 71548 struct dmi_strmatch matches[4];
71771 void *driver_data; 71549 void *driver_data;
@@ -71775,7 +71553,7 @@ index 779cf7c..e6768240 100644
71775 * struct dmi_device_id appears during expansion of 71553 * struct dmi_device_id appears during expansion of
71776 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it 71554 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
71777diff --git a/include/linux/module.h b/include/linux/module.h 71555diff --git a/include/linux/module.h b/include/linux/module.h
71778index ead1b57..81a3b6c 100644 71556index 46f1ea0..a34ca37 100644
71779--- a/include/linux/module.h 71557--- a/include/linux/module.h
71780+++ b/include/linux/module.h 71558+++ b/include/linux/module.h
71781@@ -17,9 +17,11 @@ 71559@@ -17,9 +17,11 @@
@@ -71997,7 +71775,7 @@ index 5a5ff57..5ae5070 100644
71997 return nd->saved_names[nd->depth]; 71775 return nd->saved_names[nd->depth];
71998 } 71776 }
71999diff --git a/include/linux/net.h b/include/linux/net.h 71777diff --git a/include/linux/net.h b/include/linux/net.h
72000index aa16731..514b875 100644 71778index 99c9f0c..e1cf296 100644
72001--- a/include/linux/net.h 71779--- a/include/linux/net.h
72002+++ b/include/linux/net.h 71780+++ b/include/linux/net.h
72003@@ -183,7 +183,7 @@ struct net_proto_family { 71781@@ -183,7 +183,7 @@ struct net_proto_family {
@@ -72010,10 +71788,10 @@ index aa16731..514b875 100644
72010 struct iovec; 71788 struct iovec;
72011 struct kvec; 71789 struct kvec;
72012diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h 71790diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
72013index 6151e90..2e0afb0 100644 71791index 96e4c21..9cc8278 100644
72014--- a/include/linux/netdevice.h 71792--- a/include/linux/netdevice.h
72015+++ b/include/linux/netdevice.h 71793+++ b/include/linux/netdevice.h
72016@@ -1028,6 +1028,7 @@ struct net_device_ops { 71794@@ -1026,6 +1026,7 @@ struct net_device_ops {
72017 int (*ndo_change_carrier)(struct net_device *dev, 71795 int (*ndo_change_carrier)(struct net_device *dev,
72018 bool new_carrier); 71796 bool new_carrier);
72019 }; 71797 };
@@ -72031,7 +71809,7 @@ index 6151e90..2e0afb0 100644
72031 */ 71809 */
72032 71810
72033diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h 71811diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
72034index ee14284..bc65d63 100644 71812index 0060fde..481c6ae 100644
72035--- a/include/linux/netfilter.h 71813--- a/include/linux/netfilter.h
72036+++ b/include/linux/netfilter.h 71814+++ b/include/linux/netfilter.h
72037@@ -82,7 +82,7 @@ struct nf_sockopt_ops { 71815@@ -82,7 +82,7 @@ struct nf_sockopt_ops {
@@ -72044,10 +71822,10 @@ index ee14284..bc65d63 100644
72044 /* Function to register/unregister hook points. */ 71822 /* Function to register/unregister hook points. */
72045 int nf_register_hook(struct nf_hook_ops *reg); 71823 int nf_register_hook(struct nf_hook_ops *reg);
72046diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h 71824diff --git a/include/linux/netfilter/ipset/ip_set.h b/include/linux/netfilter/ipset/ip_set.h
72047index 7958e84..ed74d7a 100644 71825index d80e275..c3510b8 100644
72048--- a/include/linux/netfilter/ipset/ip_set.h 71826--- a/include/linux/netfilter/ipset/ip_set.h
72049+++ b/include/linux/netfilter/ipset/ip_set.h 71827+++ b/include/linux/netfilter/ipset/ip_set.h
72050@@ -98,7 +98,7 @@ struct ip_set_type_variant { 71828@@ -124,7 +124,7 @@ struct ip_set_type_variant {
72051 /* Return true if "b" set is the same as "a" 71829 /* Return true if "b" set is the same as "a"
72052 * according to the create set parameters */ 71830 * according to the create set parameters */
72053 bool (*same_set)(const struct ip_set *a, const struct ip_set *b); 71831 bool (*same_set)(const struct ip_set *a, const struct ip_set *b);
@@ -72057,7 +71835,7 @@ index 7958e84..ed74d7a 100644
72057 /* The core set type structure */ 71835 /* The core set type structure */
72058 struct ip_set_type { 71836 struct ip_set_type {
72059diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h 71837diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
72060index ecbb8e4..8a1c4e1 100644 71838index cadb740..d7c37c0 100644
72061--- a/include/linux/netfilter/nfnetlink.h 71839--- a/include/linux/netfilter/nfnetlink.h
72062+++ b/include/linux/netfilter/nfnetlink.h 71840+++ b/include/linux/netfilter/nfnetlink.h
72063@@ -16,7 +16,7 @@ struct nfnl_callback { 71841@@ -16,7 +16,7 @@ struct nfnl_callback {
@@ -72098,11 +71876,11 @@ index 5dc635f..35f5e11 100644
72098 /* this value hold the maximum octet of charset */ 71876 /* this value hold the maximum octet of charset */
72099 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */ 71877 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
72100diff --git a/include/linux/notifier.h b/include/linux/notifier.h 71878diff --git a/include/linux/notifier.h b/include/linux/notifier.h
72101index d65746e..62e72c2 100644 71879index d14a4c3..a078786 100644
72102--- a/include/linux/notifier.h 71880--- a/include/linux/notifier.h
72103+++ b/include/linux/notifier.h 71881+++ b/include/linux/notifier.h
72104@@ -51,7 +51,8 @@ struct notifier_block { 71882@@ -54,7 +54,8 @@ struct notifier_block {
72105 int (*notifier_call)(struct notifier_block *, unsigned long, void *); 71883 notifier_fn_t notifier_call;
72106 struct notifier_block __rcu *next; 71884 struct notifier_block __rcu *next;
72107 int priority; 71885 int priority;
72108-}; 71886-};
@@ -72128,7 +71906,7 @@ index a4c5624..79d6d88 100644
72128 /** create a directory */ 71906 /** create a directory */
72129 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root, 71907 struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
72130diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h 71908diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
72131index 45fc162..01a4068 100644 71909index 8db71dc..a76bf2c 100644
72132--- a/include/linux/pci_hotplug.h 71910--- a/include/linux/pci_hotplug.h
72133+++ b/include/linux/pci_hotplug.h 71911+++ b/include/linux/pci_hotplug.h
72134@@ -80,7 +80,8 @@ struct hotplug_slot_ops { 71912@@ -80,7 +80,8 @@ struct hotplug_slot_ops {
@@ -72142,10 +71920,10 @@ index 45fc162..01a4068 100644
72142 /** 71920 /**
72143 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot 71921 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
72144diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h 71922diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
72145index 2f522a3..494e45f 100644 71923index c5b6dbf..b124155 100644
72146--- a/include/linux/perf_event.h 71924--- a/include/linux/perf_event.h
72147+++ b/include/linux/perf_event.h 71925+++ b/include/linux/perf_event.h
72148@@ -333,8 +333,8 @@ struct perf_event { 71926@@ -318,8 +318,8 @@ struct perf_event {
72149 71927
72150 enum perf_event_active_state state; 71928 enum perf_event_active_state state;
72151 unsigned int attach_state; 71929 unsigned int attach_state;
@@ -72156,7 +71934,7 @@ index 2f522a3..494e45f 100644
72156 71934
72157 /* 71935 /*
72158 * These are the total time in nanoseconds that the event 71936 * These are the total time in nanoseconds that the event
72159@@ -385,8 +385,8 @@ struct perf_event { 71937@@ -370,8 +370,8 @@ struct perf_event {
72160 * These accumulate total time (in nanoseconds) that children 71938 * These accumulate total time (in nanoseconds) that children
72161 * events have been enabled and running, respectively. 71939 * events have been enabled and running, respectively.
72162 */ 71940 */
@@ -72167,7 +71945,7 @@ index 2f522a3..494e45f 100644
72167 71945
72168 /* 71946 /*
72169 * Protect attach/detach and child_list: 71947 * Protect attach/detach and child_list:
72170@@ -703,7 +703,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64 71948@@ -692,7 +692,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
72171 entry->ip[entry->nr++] = ip; 71949 entry->ip[entry->nr++] = ip;
72172 } 71950 }
72173 71951
@@ -72176,7 +71954,7 @@ index 2f522a3..494e45f 100644
72176 extern int sysctl_perf_event_mlock; 71954 extern int sysctl_perf_event_mlock;
72177 extern int sysctl_perf_event_sample_rate; 71955 extern int sysctl_perf_event_sample_rate;
72178 71956
72179@@ -711,19 +711,24 @@ extern int perf_proc_update_handler(struct ctl_table *table, int write, 71957@@ -700,19 +700,24 @@ extern int perf_proc_update_handler(struct ctl_table *table, int write,
72180 void __user *buffer, size_t *lenp, 71958 void __user *buffer, size_t *lenp,
72181 loff_t *ppos); 71959 loff_t *ppos);
72182 71960
@@ -72204,7 +71982,7 @@ index 2f522a3..494e45f 100644
72204 } 71982 }
72205 71983
72206 extern void perf_event_init(void); 71984 extern void perf_event_init(void);
72207@@ -811,7 +816,7 @@ static inline void perf_restore_debug_store(void) { } 71985@@ -806,7 +811,7 @@ static inline void perf_restore_debug_store(void) { }
72208 */ 71986 */
72209 #define perf_cpu_notifier(fn) \ 71987 #define perf_cpu_notifier(fn) \
72210 do { \ 71988 do { \
@@ -72213,28 +71991,30 @@ index 2f522a3..494e45f 100644
72213 { .notifier_call = fn, .priority = CPU_PRI_PERF }; \ 71991 { .notifier_call = fn, .priority = CPU_PRI_PERF }; \
72214 unsigned long cpu = smp_processor_id(); \ 71992 unsigned long cpu = smp_processor_id(); \
72215 unsigned long flags; \ 71993 unsigned long flags; \
72216@@ -830,7 +835,7 @@ do { \ 71994@@ -826,7 +831,7 @@ struct perf_pmu_events_attr {
72217 struct perf_pmu_events_attr {
72218 struct device_attribute attr; 71995 struct device_attribute attr;
72219 u64 id; 71996 u64 id;
71997 const char *event_str;
72220-}; 71998-};
72221+} __do_const; 71999+} __do_const;
72222 72000
72223 #define PMU_EVENT_ATTR(_name, _var, _id, _show) \ 72001 #define PMU_EVENT_ATTR(_name, _var, _id, _show) \
72224 static struct perf_pmu_events_attr _var = { \ 72002 static struct perf_pmu_events_attr _var = { \
72225diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h 72003diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
72226index ad1a427..6419649 100644 72004index b8809fe..ae4ccd0 100644
72227--- a/include/linux/pipe_fs_i.h 72005--- a/include/linux/pipe_fs_i.h
72228+++ b/include/linux/pipe_fs_i.h 72006+++ b/include/linux/pipe_fs_i.h
72229@@ -45,9 +45,9 @@ struct pipe_buffer { 72007@@ -47,10 +47,10 @@ struct pipe_inode_info {
72230 struct pipe_inode_info { 72008 struct mutex mutex;
72231 wait_queue_head_t wait; 72009 wait_queue_head_t wait;
72232 unsigned int nrbufs, curbuf, buffers; 72010 unsigned int nrbufs, curbuf, buffers;
72233- unsigned int readers; 72011- unsigned int readers;
72234- unsigned int writers; 72012- unsigned int writers;
72013- unsigned int files;
72235- unsigned int waiting_writers; 72014- unsigned int waiting_writers;
72236+ atomic_t readers; 72015+ atomic_t readers;
72237+ atomic_t writers; 72016+ atomic_t writers;
72017+ atomic_t files;
72238+ atomic_t waiting_writers; 72018+ atomic_t waiting_writers;
72239 unsigned int r_counter; 72019 unsigned int r_counter;
72240 unsigned int w_counter; 72020 unsigned int w_counter;
@@ -72252,10 +72032,10 @@ index 5f28cae..3d23723 100644
72252 72032
72253 extern void s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd); 72033 extern void s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd);
72254 72034
72255diff --git a/include/linux/platform_data/usb-exynos.h b/include/linux/platform_data/usb-exynos.h 72035diff --git a/include/linux/platform_data/usb-ohci-exynos.h b/include/linux/platform_data/usb-ohci-exynos.h
72256index c256c59..8ea94c7 100644 72036index c256c59..8ea94c7 100644
72257--- a/include/linux/platform_data/usb-exynos.h 72037--- a/include/linux/platform_data/usb-ohci-exynos.h
72258+++ b/include/linux/platform_data/usb-exynos.h 72038+++ b/include/linux/platform_data/usb-ohci-exynos.h
72259@@ -14,7 +14,7 @@ 72039@@ -14,7 +14,7 @@
72260 struct exynos4_ohci_platdata { 72040 struct exynos4_ohci_platdata {
72261 int (*phy_init)(struct platform_device *pdev, int type); 72041 int (*phy_init)(struct platform_device *pdev, int type);
@@ -72346,19 +72126,19 @@ index 4ea1d37..80f4b33 100644
72346 /* 72126 /*
72347 * The return value from decompress routine is the length of the 72127 * The return value from decompress routine is the length of the
72348diff --git a/include/linux/printk.h b/include/linux/printk.h 72128diff --git a/include/linux/printk.h b/include/linux/printk.h
72349index 822171f..12b30e8 100644 72129index 22c7052..ad3fa0a 100644
72350--- a/include/linux/printk.h 72130--- a/include/linux/printk.h
72351+++ b/include/linux/printk.h 72131+++ b/include/linux/printk.h
72352@@ -98,6 +98,8 @@ int no_printk(const char *fmt, ...) 72132@@ -106,6 +106,8 @@ static inline __printf(1, 2) __cold
72353 extern asmlinkage __printf(1, 2) 72133 void early_printk(const char *s, ...) { }
72354 void early_printk(const char *fmt, ...); 72134 #endif
72355 72135
72356+extern int kptr_restrict; 72136+extern int kptr_restrict;
72357+ 72137+
72358 #ifdef CONFIG_PRINTK 72138 #ifdef CONFIG_PRINTK
72359 asmlinkage __printf(5, 0) 72139 asmlinkage __printf(5, 0)
72360 int vprintk_emit(int facility, int level, 72140 int vprintk_emit(int facility, int level,
72361@@ -132,7 +134,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies, 72141@@ -140,7 +142,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
72362 72142
72363 extern int printk_delay_msec; 72143 extern int printk_delay_msec;
72364 extern int dmesg_restrict; 72144 extern int dmesg_restrict;
@@ -72367,10 +72147,10 @@ index 822171f..12b30e8 100644
72367 extern void wake_up_klogd(void); 72147 extern void wake_up_klogd(void);
72368 72148
72369diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h 72149diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
72370index 94dfb2a..88b9d3b 100644 72150index 608e60a..c26f864 100644
72371--- a/include/linux/proc_fs.h 72151--- a/include/linux/proc_fs.h
72372+++ b/include/linux/proc_fs.h 72152+++ b/include/linux/proc_fs.h
72373@@ -165,6 +165,18 @@ static inline struct proc_dir_entry *proc_create(const char *name, umode_t mode, 72153@@ -34,6 +34,19 @@ static inline struct proc_dir_entry *proc_create(
72374 return proc_create_data(name, mode, parent, proc_fops, NULL); 72154 return proc_create_data(name, mode, parent, proc_fops, NULL);
72375 } 72155 }
72376 72156
@@ -72386,23 +72166,28 @@ index 94dfb2a..88b9d3b 100644
72386+#endif 72166+#endif
72387+} 72167+}
72388+ 72168+
72389 static inline struct proc_dir_entry *create_proc_read_entry(const char *name, 72169+
72390 umode_t mode, struct proc_dir_entry *base, 72170 extern void proc_set_size(struct proc_dir_entry *, loff_t);
72391 read_proc_t *read_proc, void * data) 72171 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
72392@@ -266,7 +278,7 @@ struct proc_ns_operations { 72172 extern void *PDE_DATA(const struct inode *);
72173diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
72174index 34a1e10..03a6d03 100644
72175--- a/include/linux/proc_ns.h
72176+++ b/include/linux/proc_ns.h
72177@@ -14,7 +14,7 @@ struct proc_ns_operations {
72393 void (*put)(void *ns); 72178 void (*put)(void *ns);
72394 int (*install)(struct nsproxy *nsproxy, void *ns); 72179 int (*install)(struct nsproxy *nsproxy, void *ns);
72395 unsigned int (*inum)(void *ns); 72180 unsigned int (*inum)(void *ns);
72396-}; 72181-};
72397+} __do_const; 72182+} __do_const;
72398 extern const struct proc_ns_operations netns_operations; 72183
72399 extern const struct proc_ns_operations utsns_operations; 72184 struct proc_ns {
72400 extern const struct proc_ns_operations ipcns_operations; 72185 void *ns;
72401diff --git a/include/linux/random.h b/include/linux/random.h 72186diff --git a/include/linux/random.h b/include/linux/random.h
72402index 347ce55..880f97c 100644 72187index 3b9377d..61b506a 100644
72403--- a/include/linux/random.h 72188--- a/include/linux/random.h
72404+++ b/include/linux/random.h 72189+++ b/include/linux/random.h
72405@@ -39,6 +39,11 @@ void prandom_seed(u32 seed); 72190@@ -32,6 +32,11 @@ void prandom_seed(u32 seed);
72406 u32 prandom_u32_state(struct rnd_state *); 72191 u32 prandom_u32_state(struct rnd_state *);
72407 void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes); 72192 void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes);
72408 72193
@@ -72415,7 +72200,7 @@ index 347ce55..880f97c 100644
72415 * Handle minimum values for seeds 72200 * Handle minimum values for seeds
72416 */ 72201 */
72417diff --git a/include/linux/rculist.h b/include/linux/rculist.h 72202diff --git a/include/linux/rculist.h b/include/linux/rculist.h
72418index 8089e35..3a0d59a 100644 72203index f4b1001..8ddb2b6 100644
72419--- a/include/linux/rculist.h 72204--- a/include/linux/rculist.h
72420+++ b/include/linux/rculist.h 72205+++ b/include/linux/rculist.h
72421@@ -44,6 +44,9 @@ extern void __list_add_rcu(struct list_head *new, 72206@@ -44,6 +44,9 @@ extern void __list_add_rcu(struct list_head *new,
@@ -72516,10 +72301,10 @@ index 8e0c9fe..ac4d221 100644
72516 /** 72301 /**
72517 * struct user_regset_view - available regsets 72302 * struct user_regset_view - available regsets
72518diff --git a/include/linux/relay.h b/include/linux/relay.h 72303diff --git a/include/linux/relay.h b/include/linux/relay.h
72519index 91cacc3..b55ff74 100644 72304index d7c8359..818daf5 100644
72520--- a/include/linux/relay.h 72305--- a/include/linux/relay.h
72521+++ b/include/linux/relay.h 72306+++ b/include/linux/relay.h
72522@@ -160,7 +160,7 @@ struct rchan_callbacks 72307@@ -157,7 +157,7 @@ struct rchan_callbacks
72523 * The callback should return 0 if successful, negative if not. 72308 * The callback should return 0 if successful, negative if not.
72524 */ 72309 */
72525 int (*remove_buf_file)(struct dentry *dentry); 72310 int (*remove_buf_file)(struct dentry *dentry);
@@ -72529,10 +72314,10 @@ index 91cacc3..b55ff74 100644
72529 /* 72314 /*
72530 * CONFIG_RELAY kernel API, kernel/relay.c 72315 * CONFIG_RELAY kernel API, kernel/relay.c
72531diff --git a/include/linux/rio.h b/include/linux/rio.h 72316diff --git a/include/linux/rio.h b/include/linux/rio.h
72532index a3e7842..d973ca6 100644 72317index 18e0993..8ab5b21 100644
72533--- a/include/linux/rio.h 72318--- a/include/linux/rio.h
72534+++ b/include/linux/rio.h 72319+++ b/include/linux/rio.h
72535@@ -339,7 +339,7 @@ struct rio_ops { 72320@@ -345,7 +345,7 @@ struct rio_ops {
72536 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart, 72321 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart,
72537 u64 rstart, u32 size, u32 flags); 72322 u64 rstart, u32 size, u32 flags);
72538 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart); 72323 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
@@ -72557,7 +72342,7 @@ index 6dacb93..6174423 100644
72557 static inline void anon_vma_merge(struct vm_area_struct *vma, 72342 static inline void anon_vma_merge(struct vm_area_struct *vma,
72558 struct vm_area_struct *next) 72343 struct vm_area_struct *next)
72559diff --git a/include/linux/sched.h b/include/linux/sched.h 72344diff --git a/include/linux/sched.h b/include/linux/sched.h
72560index be4e742..01f1387 100644 72345index 178a8d9..450bf11 100644
72561--- a/include/linux/sched.h 72346--- a/include/linux/sched.h
72562+++ b/include/linux/sched.h 72347+++ b/include/linux/sched.h
72563@@ -62,6 +62,7 @@ struct bio_list; 72348@@ -62,6 +62,7 @@ struct bio_list;
@@ -72568,7 +72353,7 @@ index be4e742..01f1387 100644
72568 72353
72569 /* 72354 /*
72570 * List of flags we want to share for kernel threads, 72355 * List of flags we want to share for kernel threads,
72571@@ -315,7 +316,7 @@ extern char __sched_text_start[], __sched_text_end[]; 72356@@ -303,7 +304,7 @@ extern char __sched_text_start[], __sched_text_end[];
72572 extern int in_sched_functions(unsigned long addr); 72357 extern int in_sched_functions(unsigned long addr);
72573 72358
72574 #define MAX_SCHEDULE_TIMEOUT LONG_MAX 72359 #define MAX_SCHEDULE_TIMEOUT LONG_MAX
@@ -72577,8 +72362,8 @@ index be4e742..01f1387 100644
72577 extern signed long schedule_timeout_interruptible(signed long timeout); 72362 extern signed long schedule_timeout_interruptible(signed long timeout);
72578 extern signed long schedule_timeout_killable(signed long timeout); 72363 extern signed long schedule_timeout_killable(signed long timeout);
72579 extern signed long schedule_timeout_uninterruptible(signed long timeout); 72364 extern signed long schedule_timeout_uninterruptible(signed long timeout);
72580@@ -329,6 +330,18 @@ struct user_namespace; 72365@@ -314,6 +315,19 @@ struct nsproxy;
72581 #include <linux/aio.h> 72366 struct user_namespace;
72582 72367
72583 #ifdef CONFIG_MMU 72368 #ifdef CONFIG_MMU
72584+ 72369+
@@ -72593,10 +72378,11 @@ index be4e742..01f1387 100644
72593+ 72378+
72594+extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset); 72379+extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset);
72595+extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset); 72380+extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset);
72381+
72596 extern void arch_pick_mmap_layout(struct mm_struct *mm); 72382 extern void arch_pick_mmap_layout(struct mm_struct *mm);
72597 extern unsigned long 72383 extern unsigned long
72598 arch_get_unmapped_area(struct file *, unsigned long, unsigned long, 72384 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
72599@@ -605,6 +618,17 @@ struct signal_struct { 72385@@ -591,6 +605,17 @@ struct signal_struct {
72600 #ifdef CONFIG_TASKSTATS 72386 #ifdef CONFIG_TASKSTATS
72601 struct taskstats *stats; 72387 struct taskstats *stats;
72602 #endif 72388 #endif
@@ -72613,8 +72399,8 @@ index be4e742..01f1387 100644
72613+ 72399+
72614 #ifdef CONFIG_AUDIT 72400 #ifdef CONFIG_AUDIT
72615 unsigned audit_tty; 72401 unsigned audit_tty;
72616 struct tty_audit_buf *tty_audit_buf; 72402 unsigned audit_tty_log_passwd;
72617@@ -683,6 +707,14 @@ struct user_struct { 72403@@ -671,6 +696,14 @@ struct user_struct {
72618 struct key *session_keyring; /* UID's default session keyring */ 72404 struct key *session_keyring; /* UID's default session keyring */
72619 #endif 72405 #endif
72620 72406
@@ -72629,16 +72415,7 @@ index be4e742..01f1387 100644
72629 /* Hash table maintenance information */ 72415 /* Hash table maintenance information */
72630 struct hlist_node uidhash_node; 72416 struct hlist_node uidhash_node;
72631 kuid_t uid; 72417 kuid_t uid;
72632@@ -1082,7 +1114,7 @@ struct sched_class { 72418@@ -1158,8 +1191,8 @@ struct task_struct {
72633 #ifdef CONFIG_FAIR_GROUP_SCHED
72634 void (*task_move_group) (struct task_struct *p, int on_rq);
72635 #endif
72636-};
72637+} __do_const;
72638
72639 struct load_weight {
72640 unsigned long weight, inv_weight;
72641@@ -1323,8 +1355,8 @@ struct task_struct {
72642 struct list_head thread_group; 72419 struct list_head thread_group;
72643 72420
72644 struct completion *vfork_done; /* for vfork() */ 72421 struct completion *vfork_done; /* for vfork() */
@@ -72649,7 +72426,7 @@ index be4e742..01f1387 100644
72649 72426
72650 cputime_t utime, stime, utimescaled, stimescaled; 72427 cputime_t utime, stime, utimescaled, stimescaled;
72651 cputime_t gtime; 72428 cputime_t gtime;
72652@@ -1349,11 +1381,6 @@ struct task_struct { 72429@@ -1184,11 +1217,6 @@ struct task_struct {
72653 struct task_cputime cputime_expires; 72430 struct task_cputime cputime_expires;
72654 struct list_head cpu_timers[3]; 72431 struct list_head cpu_timers[3];
72655 72432
@@ -72661,7 +72438,7 @@ index be4e742..01f1387 100644
72661 char comm[TASK_COMM_LEN]; /* executable name excluding path 72438 char comm[TASK_COMM_LEN]; /* executable name excluding path
72662 - access with [gs]et_task_comm (which lock 72439 - access with [gs]et_task_comm (which lock
72663 it with task_lock()) 72440 it with task_lock())
72664@@ -1370,6 +1397,10 @@ struct task_struct { 72441@@ -1205,6 +1233,10 @@ struct task_struct {
72665 #endif 72442 #endif
72666 /* CPU-specific state of this task */ 72443 /* CPU-specific state of this task */
72667 struct thread_struct thread; 72444 struct thread_struct thread;
@@ -72672,7 +72449,7 @@ index be4e742..01f1387 100644
72672 /* filesystem information */ 72449 /* filesystem information */
72673 struct fs_struct *fs; 72450 struct fs_struct *fs;
72674 /* open file information */ 72451 /* open file information */
72675@@ -1443,6 +1474,10 @@ struct task_struct { 72452@@ -1278,6 +1310,10 @@ struct task_struct {
72676 gfp_t lockdep_reclaim_gfp; 72453 gfp_t lockdep_reclaim_gfp;
72677 #endif 72454 #endif
72678 72455
@@ -72683,7 +72460,7 @@ index be4e742..01f1387 100644
72683 /* journalling filesystem info */ 72460 /* journalling filesystem info */
72684 void *journal_info; 72461 void *journal_info;
72685 72462
72686@@ -1481,6 +1516,10 @@ struct task_struct { 72463@@ -1316,6 +1352,10 @@ struct task_struct {
72687 /* cg_list protected by css_set_lock and tsk->alloc_lock */ 72464 /* cg_list protected by css_set_lock and tsk->alloc_lock */
72688 struct list_head cg_list; 72465 struct list_head cg_list;
72689 #endif 72466 #endif
@@ -72694,9 +72471,9 @@ index be4e742..01f1387 100644
72694 #ifdef CONFIG_FUTEX 72471 #ifdef CONFIG_FUTEX
72695 struct robust_list_head __user *robust_list; 72472 struct robust_list_head __user *robust_list;
72696 #ifdef CONFIG_COMPAT 72473 #ifdef CONFIG_COMPAT
72697@@ -1577,8 +1616,74 @@ struct task_struct { 72474@@ -1416,8 +1456,76 @@ struct task_struct {
72698 #ifdef CONFIG_UPROBES 72475 unsigned int sequential_io;
72699 struct uprobe_task *utask; 72476 unsigned int sequential_io_avg;
72700 #endif 72477 #endif
72701+ 72478+
72702+#ifdef CONFIG_GRKERNSEC 72479+#ifdef CONFIG_GRKERNSEC
@@ -72762,6 +72539,8 @@ index be4e742..01f1387 100644
72762+extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm); 72539+extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
72763+#endif 72540+#endif
72764+ 72541+
72542+struct path;
72543+extern char *pax_get_path(const struct path *path, char *buf, int buflen);
72765+extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp); 72544+extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
72766+extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp); 72545+extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
72767+extern void pax_report_refcount_overflow(struct pt_regs *regs); 72546+extern void pax_report_refcount_overflow(struct pt_regs *regs);
@@ -72769,7 +72548,7 @@ index be4e742..01f1387 100644
72769 /* Future-safe accessor for struct task_struct's cpus_allowed. */ 72548 /* Future-safe accessor for struct task_struct's cpus_allowed. */
72770 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed) 72549 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
72771 72550
72772@@ -1637,7 +1742,7 @@ struct pid_namespace; 72551@@ -1476,7 +1584,7 @@ struct pid_namespace;
72773 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, 72552 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
72774 struct pid_namespace *ns); 72553 struct pid_namespace *ns);
72775 72554
@@ -72778,7 +72557,7 @@ index be4e742..01f1387 100644
72778 { 72557 {
72779 return tsk->pid; 72558 return tsk->pid;
72780 } 72559 }
72781@@ -2073,7 +2178,9 @@ void yield(void); 72560@@ -1919,7 +2027,9 @@ void yield(void);
72782 extern struct exec_domain default_exec_domain; 72561 extern struct exec_domain default_exec_domain;
72783 72562
72784 union thread_union { 72563 union thread_union {
@@ -72788,7 +72567,7 @@ index be4e742..01f1387 100644
72788 unsigned long stack[THREAD_SIZE/sizeof(long)]; 72567 unsigned long stack[THREAD_SIZE/sizeof(long)];
72789 }; 72568 };
72790 72569
72791@@ -2106,6 +2213,7 @@ extern struct pid_namespace init_pid_ns; 72570@@ -1952,6 +2062,7 @@ extern struct pid_namespace init_pid_ns;
72792 */ 72571 */
72793 72572
72794 extern struct task_struct *find_task_by_vpid(pid_t nr); 72573 extern struct task_struct *find_task_by_vpid(pid_t nr);
@@ -72796,7 +72575,7 @@ index be4e742..01f1387 100644
72796 extern struct task_struct *find_task_by_pid_ns(pid_t nr, 72575 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
72797 struct pid_namespace *ns); 72576 struct pid_namespace *ns);
72798 72577
72799@@ -2272,7 +2380,7 @@ extern void __cleanup_sighand(struct sighand_struct *); 72578@@ -2118,7 +2229,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
72800 extern void exit_itimers(struct signal_struct *); 72579 extern void exit_itimers(struct signal_struct *);
72801 extern void flush_itimer_signals(void); 72580 extern void flush_itimer_signals(void);
72802 72581
@@ -72805,7 +72584,7 @@ index be4e742..01f1387 100644
72805 72584
72806 extern int allow_signal(int); 72585 extern int allow_signal(int);
72807 extern int disallow_signal(int); 72586 extern int disallow_signal(int);
72808@@ -2463,9 +2571,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p) 72587@@ -2309,9 +2420,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
72809 72588
72810 #endif 72589 #endif
72811 72590
@@ -72830,7 +72609,7 @@ index bf8086b..962b035 100644
72830 extern unsigned int sysctl_sched_latency; 72609 extern unsigned int sysctl_sched_latency;
72831 extern unsigned int sysctl_sched_min_granularity; 72610 extern unsigned int sysctl_sched_min_granularity;
72832diff --git a/include/linux/security.h b/include/linux/security.h 72611diff --git a/include/linux/security.h b/include/linux/security.h
72833index 032c366..2c1c2dc2 100644 72612index 4686491..2bd210e 100644
72834--- a/include/linux/security.h 72613--- a/include/linux/security.h
72835+++ b/include/linux/security.h 72614+++ b/include/linux/security.h
72836@@ -26,6 +26,7 @@ 72615@@ -26,6 +26,7 @@
@@ -72842,7 +72621,7 @@ index 032c366..2c1c2dc2 100644
72842 struct linux_binprm; 72621 struct linux_binprm;
72843 struct cred; 72622 struct cred;
72844diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h 72623diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
72845index 68a04a3..866e6a1 100644 72624index 2da29ac..aac448ec 100644
72846--- a/include/linux/seq_file.h 72625--- a/include/linux/seq_file.h
72847+++ b/include/linux/seq_file.h 72626+++ b/include/linux/seq_file.h
72848@@ -26,6 +26,9 @@ struct seq_file { 72627@@ -26,6 +26,9 @@ struct seq_file {
@@ -72879,10 +72658,10 @@ index 429c199..4d42e38 100644
72879 72658
72880 /* shm_mode upper byte flags */ 72659 /* shm_mode upper byte flags */
72881diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h 72660diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
72882index 1f2803c..4858a3d 100644 72661index dec1748..112c1f9 100644
72883--- a/include/linux/skbuff.h 72662--- a/include/linux/skbuff.h
72884+++ b/include/linux/skbuff.h 72663+++ b/include/linux/skbuff.h
72885@@ -599,7 +599,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from, 72664@@ -640,7 +640,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
72886 extern struct sk_buff *__alloc_skb(unsigned int size, 72665 extern struct sk_buff *__alloc_skb(unsigned int size,
72887 gfp_t priority, int flags, int node); 72666 gfp_t priority, int flags, int node);
72888 extern struct sk_buff *build_skb(void *data, unsigned int frag_size); 72667 extern struct sk_buff *build_skb(void *data, unsigned int frag_size);
@@ -72891,7 +72670,7 @@ index 1f2803c..4858a3d 100644
72891 gfp_t priority) 72670 gfp_t priority)
72892 { 72671 {
72893 return __alloc_skb(size, priority, 0, NUMA_NO_NODE); 72672 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
72894@@ -709,7 +709,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb) 72673@@ -756,7 +756,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
72895 */ 72674 */
72896 static inline int skb_queue_empty(const struct sk_buff_head *list) 72675 static inline int skb_queue_empty(const struct sk_buff_head *list)
72897 { 72676 {
@@ -72900,7 +72679,7 @@ index 1f2803c..4858a3d 100644
72900 } 72679 }
72901 72680
72902 /** 72681 /**
72903@@ -722,7 +722,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list) 72682@@ -769,7 +769,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
72904 static inline bool skb_queue_is_last(const struct sk_buff_head *list, 72683 static inline bool skb_queue_is_last(const struct sk_buff_head *list,
72905 const struct sk_buff *skb) 72684 const struct sk_buff *skb)
72906 { 72685 {
@@ -72909,7 +72688,7 @@ index 1f2803c..4858a3d 100644
72909 } 72688 }
72910 72689
72911 /** 72690 /**
72912@@ -735,7 +735,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list, 72691@@ -782,7 +782,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
72913 static inline bool skb_queue_is_first(const struct sk_buff_head *list, 72692 static inline bool skb_queue_is_first(const struct sk_buff_head *list,
72914 const struct sk_buff *skb) 72693 const struct sk_buff *skb)
72915 { 72694 {
@@ -72918,7 +72697,7 @@ index 1f2803c..4858a3d 100644
72918 } 72697 }
72919 72698
72920 /** 72699 /**
72921@@ -1756,7 +1756,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len) 72700@@ -1848,7 +1848,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
72922 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) 72701 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
72923 */ 72702 */
72924 #ifndef NET_SKB_PAD 72703 #ifndef NET_SKB_PAD
@@ -72927,7 +72706,7 @@ index 1f2803c..4858a3d 100644
72927 #endif 72706 #endif
72928 72707
72929 extern int ___pskb_trim(struct sk_buff *skb, unsigned int len); 72708 extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
72930@@ -2351,7 +2351,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, 72709@@ -2443,7 +2443,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
72931 int noblock, int *err); 72710 int noblock, int *err);
72932 extern unsigned int datagram_poll(struct file *file, struct socket *sock, 72711 extern unsigned int datagram_poll(struct file *file, struct socket *sock,
72933 struct poll_table_struct *wait); 72712 struct poll_table_struct *wait);
@@ -72936,7 +72715,7 @@ index 1f2803c..4858a3d 100644
72936 int offset, struct iovec *to, 72715 int offset, struct iovec *to,
72937 int size); 72716 int size);
72938 extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb, 72717 extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
72939@@ -2641,6 +2641,9 @@ static inline void nf_reset(struct sk_buff *skb) 72718@@ -2733,6 +2733,9 @@ static inline void nf_reset(struct sk_buff *skb)
72940 nf_bridge_put(skb->nf_bridge); 72719 nf_bridge_put(skb->nf_bridge);
72941 skb->nf_bridge = NULL; 72720 skb->nf_bridge = NULL;
72942 #endif 72721 #endif
@@ -72947,10 +72726,10 @@ index 1f2803c..4858a3d 100644
72947 72726
72948 static inline void nf_reset_trace(struct sk_buff *skb) 72727 static inline void nf_reset_trace(struct sk_buff *skb)
72949diff --git a/include/linux/slab.h b/include/linux/slab.h 72728diff --git a/include/linux/slab.h b/include/linux/slab.h
72950index 5d168d7..720bff3 100644 72729index 0c62175..f016ac1 100644
72951--- a/include/linux/slab.h 72730--- a/include/linux/slab.h
72952+++ b/include/linux/slab.h 72731+++ b/include/linux/slab.h
72953@@ -12,13 +12,20 @@ 72732@@ -12,15 +12,29 @@
72954 #include <linux/gfp.h> 72733 #include <linux/gfp.h>
72955 #include <linux/types.h> 72734 #include <linux/types.h>
72956 #include <linux/workqueue.h> 72735 #include <linux/workqueue.h>
@@ -72971,8 +72750,17 @@ index 5d168d7..720bff3 100644
72971+ 72750+
72972 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */ 72751 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
72973 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */ 72752 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
72753+
72754+#ifdef CONFIG_PAX_MEMORY_SANITIZE
72755+#define SLAB_NO_SANITIZE 0x00001000UL /* PaX: Do not sanitize objs on free */
72756+#else
72757+#define SLAB_NO_SANITIZE 0x00000000UL
72758+#endif
72759+
72974 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */ 72760 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
72975@@ -89,10 +96,13 @@ 72761 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
72762 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
72763@@ -89,10 +103,13 @@
72976 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can. 72764 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
72977 * Both make kfree a no-op. 72765 * Both make kfree a no-op.
72978 */ 72766 */
@@ -72987,9 +72775,18 @@ index 5d168d7..720bff3 100644
72987- (unsigned long)ZERO_SIZE_PTR) 72775- (unsigned long)ZERO_SIZE_PTR)
72988+#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1) 72776+#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1)
72989 72777
72778
72779 struct mem_cgroup;
72780@@ -132,6 +149,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
72781 void kfree(const void *);
72782 void kzfree(const void *);
72783 size_t ksize(const void *);
72784+const char *check_heap_object(const void *ptr, unsigned long n);
72785+bool is_usercopy_object(const void *ptr);
72786
72990 /* 72787 /*
72991 * Common fields provided in kmem_cache by all slab allocators 72788 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
72992@@ -112,7 +122,7 @@ struct kmem_cache { 72789@@ -164,7 +183,7 @@ struct kmem_cache {
72993 unsigned int align; /* Alignment as calculated */ 72790 unsigned int align; /* Alignment as calculated */
72994 unsigned long flags; /* Active flags on the slab */ 72791 unsigned long flags; /* Active flags on the slab */
72995 const char *name; /* Slab name for sysfs */ 72792 const char *name; /* Slab name for sysfs */
@@ -72998,16 +72795,27 @@ index 5d168d7..720bff3 100644
72998 void (*ctor)(void *); /* Called on object slot creation */ 72795 void (*ctor)(void *); /* Called on object slot creation */
72999 struct list_head list; /* List of all slab caches on the system */ 72796 struct list_head list; /* List of all slab caches on the system */
73000 }; 72797 };
73001@@ -232,6 +242,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t); 72798@@ -226,6 +245,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
73002 void kfree(const void *); 72799 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
73003 void kzfree(const void *); 72800 #endif
73004 size_t ksize(const void *);
73005+const char *check_heap_object(const void *ptr, unsigned long n);
73006+bool is_usercopy_object(const void *ptr);
73007 72801
72802+#ifdef CONFIG_PAX_USERCOPY_SLABS
72803+extern struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
72804+#endif
72805+
73008 /* 72806 /*
73009 * Allocator specific definitions. These are mainly used to establish optimized 72807 * Figure out which kmalloc slab an allocation of a certain size
73010@@ -311,6 +323,7 @@ size_t ksize(const void *); 72808 * belongs to.
72809@@ -234,7 +257,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
72810 * 2 = 120 .. 192 bytes
72811 * n = 2^(n-1) .. 2^n -1
72812 */
72813-static __always_inline int kmalloc_index(size_t size)
72814+static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
72815 {
72816 if (!size)
72817 return 0;
72818@@ -406,6 +429,7 @@ void print_slabinfo_header(struct seq_file *m);
73011 * for general use, and so are not documented here. For a full list of 72819 * for general use, and so are not documented here. For a full list of
73012 * potential flags, always refer to linux/gfp.h. 72820 * potential flags, always refer to linux/gfp.h.
73013 */ 72821 */
@@ -73015,7 +72823,7 @@ index 5d168d7..720bff3 100644
73015 static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags) 72823 static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
73016 { 72824 {
73017 if (size != 0 && n > SIZE_MAX / size) 72825 if (size != 0 && n > SIZE_MAX / size)
73018@@ -370,7 +383,7 @@ static inline void *kmem_cache_alloc_node(struct kmem_cache *cachep, 72826@@ -465,7 +489,7 @@ static inline void *kmem_cache_alloc_node(struct kmem_cache *cachep,
73019 #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ 72827 #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
73020 (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ 72828 (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \
73021 (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) 72829 (defined(CONFIG_SLOB) && defined(CONFIG_TRACING))
@@ -73024,7 +72832,7 @@ index 5d168d7..720bff3 100644
73024 #define kmalloc_track_caller(size, flags) \ 72832 #define kmalloc_track_caller(size, flags) \
73025 __kmalloc_track_caller(size, flags, _RET_IP_) 72833 __kmalloc_track_caller(size, flags, _RET_IP_)
73026 #else 72834 #else
73027@@ -390,7 +403,7 @@ extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long); 72835@@ -485,7 +509,7 @@ extern void *__kmalloc_track_caller(size_t, gfp_t, unsigned long);
73028 #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \ 72836 #if defined(CONFIG_DEBUG_SLAB) || defined(CONFIG_SLUB) || \
73029 (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \ 72837 (defined(CONFIG_SLAB) && defined(CONFIG_TRACING)) || \
73030 (defined(CONFIG_SLOB) && defined(CONFIG_TRACING)) 72838 (defined(CONFIG_SLOB) && defined(CONFIG_TRACING))
@@ -73034,10 +72842,10 @@ index 5d168d7..720bff3 100644
73034 __kmalloc_node_track_caller(size, flags, node, \ 72842 __kmalloc_node_track_caller(size, flags, node, \
73035 _RET_IP_) 72843 _RET_IP_)
73036diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h 72844diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
73037index 8bb6e0e..8eb0dbe 100644 72845index cd40158..4e2f7af 100644
73038--- a/include/linux/slab_def.h 72846--- a/include/linux/slab_def.h
73039+++ b/include/linux/slab_def.h 72847+++ b/include/linux/slab_def.h
73040@@ -52,7 +52,7 @@ struct kmem_cache { 72848@@ -50,7 +50,7 @@ struct kmem_cache {
73041 /* 4) cache creation/removal */ 72849 /* 4) cache creation/removal */
73042 const char *name; 72850 const char *name;
73043 struct list_head list; 72851 struct list_head list;
@@ -73046,7 +72854,7 @@ index 8bb6e0e..8eb0dbe 100644
73046 int object_size; 72854 int object_size;
73047 int align; 72855 int align;
73048 72856
73049@@ -68,10 +68,10 @@ struct kmem_cache { 72857@@ -66,10 +66,14 @@ struct kmem_cache {
73050 unsigned long node_allocs; 72858 unsigned long node_allocs;
73051 unsigned long node_frees; 72859 unsigned long node_frees;
73052 unsigned long node_overflow; 72860 unsigned long node_overflow;
@@ -73058,20 +72866,15 @@ index 8bb6e0e..8eb0dbe 100644
73058+ atomic_unchecked_t allocmiss; 72866+ atomic_unchecked_t allocmiss;
73059+ atomic_unchecked_t freehit; 72867+ atomic_unchecked_t freehit;
73060+ atomic_unchecked_t freemiss; 72868+ atomic_unchecked_t freemiss;
72869+#ifdef CONFIG_PAX_MEMORY_SANITIZE
72870+ atomic_unchecked_t sanitized;
72871+ atomic_unchecked_t not_sanitized;
72872+#endif
73061 72873
73062 /* 72874 /*
73063 * If debugging is enabled, then the allocator can add additional 72875 * If debugging is enabled, then the allocator can add additional
73064@@ -111,11 +111,16 @@ struct cache_sizes { 72876@@ -103,7 +107,7 @@ struct kmem_cache {
73065 #ifdef CONFIG_ZONE_DMA
73066 struct kmem_cache *cs_dmacachep;
73067 #endif
73068+
73069+#ifdef CONFIG_PAX_USERCOPY_SLABS
73070+ struct kmem_cache *cs_usercopycachep;
73071+#endif
73072+
73073 }; 72877 };
73074 extern struct cache_sizes malloc_sizes[];
73075 72878
73076 void *kmem_cache_alloc(struct kmem_cache *, gfp_t); 72879 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
73077-void *__kmalloc(size_t size, gfp_t flags); 72880-void *__kmalloc(size_t size, gfp_t flags);
@@ -73079,21 +72882,21 @@ index 8bb6e0e..8eb0dbe 100644
73079 72882
73080 #ifdef CONFIG_TRACING 72883 #ifdef CONFIG_TRACING
73081 extern void *kmem_cache_alloc_trace(struct kmem_cache *, gfp_t, size_t); 72884 extern void *kmem_cache_alloc_trace(struct kmem_cache *, gfp_t, size_t);
73082@@ -152,6 +157,13 @@ found: 72885@@ -136,6 +140,13 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
73083 cachep = malloc_sizes[i].cs_dmacachep; 72886 cachep = kmalloc_dma_caches[i];
73084 else 72887 else
73085 #endif 72888 #endif
73086+ 72889+
73087+#ifdef CONFIG_PAX_USERCOPY_SLABS 72890+#ifdef CONFIG_PAX_USERCOPY_SLABS
73088+ if (flags & GFP_USERCOPY) 72891+ if (flags & GFP_USERCOPY)
73089+ cachep = malloc_sizes[i].cs_usercopycachep; 72892+ cachep = kmalloc_usercopy_caches[i];
73090+ else 72893+ else
73091+#endif 72894+#endif
73092+ 72895+
73093 cachep = malloc_sizes[i].cs_cachep; 72896 cachep = kmalloc_caches[i];
73094 72897
73095 ret = kmem_cache_alloc_trace(cachep, flags, size); 72898 ret = kmem_cache_alloc_trace(cachep, flags, size);
73096@@ -162,7 +174,7 @@ found: 72899@@ -146,7 +157,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
73097 } 72900 }
73098 72901
73099 #ifdef CONFIG_NUMA 72902 #ifdef CONFIG_NUMA
@@ -73102,18 +72905,18 @@ index 8bb6e0e..8eb0dbe 100644
73102 extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node); 72905 extern void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
73103 72906
73104 #ifdef CONFIG_TRACING 72907 #ifdef CONFIG_TRACING
73105@@ -205,6 +217,13 @@ found: 72908@@ -185,6 +196,13 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
73106 cachep = malloc_sizes[i].cs_dmacachep; 72909 cachep = kmalloc_dma_caches[i];
73107 else 72910 else
73108 #endif 72911 #endif
73109+ 72912+
73110+#ifdef CONFIG_PAX_USERCOPY_SLABS 72913+#ifdef CONFIG_PAX_USERCOPY_SLABS
73111+ if (flags & GFP_USERCOPY) 72914+ if (flags & GFP_USERCOPY)
73112+ cachep = malloc_sizes[i].cs_usercopycachep; 72915+ cachep = kmalloc_usercopy_caches[i];
73113+ else 72916+ else
73114+#endif 72917+#endif
73115+ 72918+
73116 cachep = malloc_sizes[i].cs_cachep; 72919 cachep = kmalloc_caches[i];
73117 72920
73118 return kmem_cache_alloc_node_trace(cachep, flags, node, size); 72921 return kmem_cache_alloc_node_trace(cachep, flags, node, size);
73119diff --git a/include/linux/slob_def.h b/include/linux/slob_def.h 72922diff --git a/include/linux/slob_def.h b/include/linux/slob_def.h
@@ -73139,10 +72942,10 @@ index f28e14a..7831211 100644
73139 return kmalloc(size, flags); 72942 return kmalloc(size, flags);
73140 } 72943 }
73141diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h 72944diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
73142index 9db4825..ed42fb5 100644 72945index 027276f..092bfe8 100644
73143--- a/include/linux/slub_def.h 72946--- a/include/linux/slub_def.h
73144+++ b/include/linux/slub_def.h 72947+++ b/include/linux/slub_def.h
73145@@ -91,7 +91,7 @@ struct kmem_cache { 72948@@ -80,7 +80,7 @@ struct kmem_cache {
73146 struct kmem_cache_order_objects max; 72949 struct kmem_cache_order_objects max;
73147 struct kmem_cache_order_objects min; 72950 struct kmem_cache_order_objects min;
73148 gfp_t allocflags; /* gfp flags to use on each alloc */ 72951 gfp_t allocflags; /* gfp flags to use on each alloc */
@@ -73151,17 +72954,8 @@ index 9db4825..ed42fb5 100644
73151 void (*ctor)(void *); 72954 void (*ctor)(void *);
73152 int inuse; /* Offset to metadata */ 72955 int inuse; /* Offset to metadata */
73153 int align; /* Alignment */ 72956 int align; /* Alignment */
73154@@ -156,7 +156,7 @@ extern struct kmem_cache *kmalloc_caches[SLUB_PAGE_SHIFT]; 72957@@ -105,7 +105,7 @@ struct kmem_cache {
73155 * Sorry that the following has to be that ugly but some versions of GCC 72958 };
73156 * have trouble with constant propagation and loops.
73157 */
73158-static __always_inline int kmalloc_index(size_t size)
73159+static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
73160 {
73161 if (!size)
73162 return 0;
73163@@ -221,7 +221,7 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
73164 }
73165 72959
73166 void *kmem_cache_alloc(struct kmem_cache *, gfp_t); 72960 void *kmem_cache_alloc(struct kmem_cache *, gfp_t);
73167-void *__kmalloc(size_t size, gfp_t flags); 72961-void *__kmalloc(size_t size, gfp_t flags);
@@ -73169,7 +72963,7 @@ index 9db4825..ed42fb5 100644
73169 72963
73170 static __always_inline void * 72964 static __always_inline void *
73171 kmalloc_order(size_t size, gfp_t flags, unsigned int order) 72965 kmalloc_order(size_t size, gfp_t flags, unsigned int order)
73172@@ -265,7 +265,7 @@ kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order) 72966@@ -149,7 +149,7 @@ kmalloc_order_trace(size_t size, gfp_t flags, unsigned int order)
73173 } 72967 }
73174 #endif 72968 #endif
73175 72969
@@ -73178,7 +72972,7 @@ index 9db4825..ed42fb5 100644
73178 { 72972 {
73179 unsigned int order = get_order(size); 72973 unsigned int order = get_order(size);
73180 return kmalloc_order_trace(size, flags, order); 72974 return kmalloc_order_trace(size, flags, order);
73181@@ -290,7 +290,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags) 72975@@ -175,7 +175,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
73182 } 72976 }
73183 72977
73184 #ifdef CONFIG_NUMA 72978 #ifdef CONFIG_NUMA
@@ -73188,10 +72982,10 @@ index 9db4825..ed42fb5 100644
73188 72982
73189 #ifdef CONFIG_TRACING 72983 #ifdef CONFIG_TRACING
73190diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h 72984diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
73191index e8d702e..0a56eb4 100644 72985index 54f91d3..be2c379 100644
73192--- a/include/linux/sock_diag.h 72986--- a/include/linux/sock_diag.h
73193+++ b/include/linux/sock_diag.h 72987+++ b/include/linux/sock_diag.h
73194@@ -10,7 +10,7 @@ struct sock; 72988@@ -11,7 +11,7 @@ struct sock;
73195 struct sock_diag_handler { 72989 struct sock_diag_handler {
73196 __u8 family; 72990 __u8 family;
73197 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh); 72991 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
@@ -73248,7 +73042,7 @@ index 07d8e53..dc934c9 100644
73248 73042
73249 #endif /* _LINUX_SUNRPC_ADDR_H */ 73043 #endif /* _LINUX_SUNRPC_ADDR_H */
73250diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h 73044diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
73251index 2cf4ffa..470d140 100644 73045index bfe11be..12bc8c4 100644
73252--- a/include/linux/sunrpc/clnt.h 73046--- a/include/linux/sunrpc/clnt.h
73253+++ b/include/linux/sunrpc/clnt.h 73047+++ b/include/linux/sunrpc/clnt.h
73254@@ -96,7 +96,7 @@ struct rpc_procinfo { 73048@@ -96,7 +96,7 @@ struct rpc_procinfo {
@@ -73330,10 +73124,25 @@ index a5ffd32..0935dea 100644
73330 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, 73124 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
73331 unsigned long offset, size_t size, 73125 unsigned long offset, size_t size,
73332diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h 73126diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
73333index 313a8e0..6b273a9 100644 73127index 4147d70..d356a10 100644
73334--- a/include/linux/syscalls.h 73128--- a/include/linux/syscalls.h
73335+++ b/include/linux/syscalls.h 73129+++ b/include/linux/syscalls.h
73336@@ -418,11 +418,11 @@ asmlinkage long sys_sync(void); 73130@@ -97,8 +97,12 @@ struct sigaltstack;
73131 #define __MAP(n,...) __MAP##n(__VA_ARGS__)
73132
73133 #define __SC_DECL(t, a) t a
73134-#define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL))
73135-#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a
73136+#define __TYPE_IS_SL(t) (__same_type((t)0, 0L))
73137+#define __TYPE_IS_UL(t) (__same_type((t)0, 0UL))
73138+#define __TYPE_IS_SLL(t) (__same_type((t)0, 0LL))
73139+#define __TYPE_IS_ULL(t) (__same_type((t)0, 0ULL))
73140+#define __TYPE_IS_LL(t) (__TYPE_IS_SLL(t) || __TYPE_IS_ULL(t))
73141+#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), __builtin_choose_expr(__TYPE_IS_ULL(t), 0ULL, 0LL), __builtin_choose_expr(__TYPE_IS_UL(t), 0UL, 0L))) a
73142 #define __SC_CAST(t, a) (t) a
73143 #define __SC_ARGS(t, a) a
73144 #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long))
73145@@ -362,11 +366,11 @@ asmlinkage long sys_sync(void);
73337 asmlinkage long sys_fsync(unsigned int fd); 73146 asmlinkage long sys_fsync(unsigned int fd);
73338 asmlinkage long sys_fdatasync(unsigned int fd); 73147 asmlinkage long sys_fdatasync(unsigned int fd);
73339 asmlinkage long sys_bdflush(int func, long data); 73148 asmlinkage long sys_bdflush(int func, long data);
@@ -73349,7 +73158,7 @@ index 313a8e0..6b273a9 100644
73349 asmlinkage long sys_truncate(const char __user *path, long length); 73158 asmlinkage long sys_truncate(const char __user *path, long length);
73350 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length); 73159 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
73351 asmlinkage long sys_stat(const char __user *filename, 73160 asmlinkage long sys_stat(const char __user *filename,
73352@@ -634,7 +634,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *); 73161@@ -578,7 +582,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
73353 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *); 73162 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
73354 asmlinkage long sys_send(int, void __user *, size_t, unsigned); 73163 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
73355 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, 73164 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
@@ -73479,7 +73288,7 @@ index e7e0473..7989295 100644
73479 73288
73480 #endif /* _LINUX_THREAD_INFO_H */ 73289 #endif /* _LINUX_THREAD_INFO_H */
73481diff --git a/include/linux/tty.h b/include/linux/tty.h 73290diff --git a/include/linux/tty.h b/include/linux/tty.h
73482index c75d886..04cb148 100644 73291index 8780bd2..d1ae08b 100644
73483--- a/include/linux/tty.h 73292--- a/include/linux/tty.h
73484+++ b/include/linux/tty.h 73293+++ b/include/linux/tty.h
73485@@ -194,7 +194,7 @@ struct tty_port { 73294@@ -194,7 +194,7 @@ struct tty_port {
@@ -73491,7 +73300,7 @@ index c75d886..04cb148 100644
73491 wait_queue_head_t open_wait; /* Open waiters */ 73300 wait_queue_head_t open_wait; /* Open waiters */
73492 wait_queue_head_t close_wait; /* Close waiters */ 73301 wait_queue_head_t close_wait; /* Close waiters */
73493 wait_queue_head_t delta_msr_wait; /* Modem status change */ 73302 wait_queue_head_t delta_msr_wait; /* Modem status change */
73494@@ -515,7 +515,7 @@ extern int tty_port_open(struct tty_port *port, 73303@@ -550,7 +550,7 @@ extern int tty_port_open(struct tty_port *port,
73495 struct tty_struct *tty, struct file *filp); 73304 struct tty_struct *tty, struct file *filp);
73496 static inline int tty_port_users(struct tty_port *port) 73305 static inline int tty_port_users(struct tty_port *port)
73497 { 73306 {
@@ -73514,13 +73323,13 @@ index 756a609..b302dd6 100644
73514 struct tty_driver { 73323 struct tty_driver {
73515 int magic; /* magic number for this structure */ 73324 int magic; /* magic number for this structure */
73516diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h 73325diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
73517index 455a0d7..bf97ff5 100644 73326index 58390c7..95e214c 100644
73518--- a/include/linux/tty_ldisc.h 73327--- a/include/linux/tty_ldisc.h
73519+++ b/include/linux/tty_ldisc.h 73328+++ b/include/linux/tty_ldisc.h
73520@@ -146,7 +146,7 @@ struct tty_ldisc_ops { 73329@@ -146,7 +146,7 @@ struct tty_ldisc_ops {
73521 73330
73522 struct module *owner; 73331 struct module *owner;
73523 73332
73524- int refcount; 73333- int refcount;
73525+ atomic_t refcount; 73334+ atomic_t refcount;
73526 }; 73335 };
@@ -73642,10 +73451,10 @@ index 99c1b4d..562e6f3 100644
73642 73451
73643 static inline void put_unaligned_le16(u16 val, void *p) 73452 static inline void put_unaligned_le16(u16 val, void *p)
73644diff --git a/include/linux/usb.h b/include/linux/usb.h 73453diff --git a/include/linux/usb.h b/include/linux/usb.h
73645index 4d22d0f..8d0e8f8 100644 73454index a0bee5a..5533a52 100644
73646--- a/include/linux/usb.h 73455--- a/include/linux/usb.h
73647+++ b/include/linux/usb.h 73456+++ b/include/linux/usb.h
73648@@ -554,7 +554,7 @@ struct usb_device { 73457@@ -552,7 +552,7 @@ struct usb_device {
73649 int maxchild; 73458 int maxchild;
73650 73459
73651 u32 quirks; 73460 u32 quirks;
@@ -73654,7 +73463,7 @@ index 4d22d0f..8d0e8f8 100644
73654 73463
73655 unsigned long active_duration; 73464 unsigned long active_duration;
73656 73465
73657@@ -1604,7 +1604,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in, 73466@@ -1607,7 +1607,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in,
73658 73467
73659 extern int usb_control_msg(struct usb_device *dev, unsigned int pipe, 73468 extern int usb_control_msg(struct usb_device *dev, unsigned int pipe,
73660 __u8 request, __u8 requesttype, __u16 value, __u16 index, 73469 __u8 request, __u8 requesttype, __u16 value, __u16 index,
@@ -73664,7 +73473,7 @@ index 4d22d0f..8d0e8f8 100644
73664 void *data, int len, int *actual_length, int timeout); 73473 void *data, int len, int *actual_length, int timeout);
73665 extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe, 73474 extern int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
73666diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h 73475diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
73667index c5d36c6..108f4f9 100644 73476index e452ba6..78f8e80 100644
73668--- a/include/linux/usb/renesas_usbhs.h 73477--- a/include/linux/usb/renesas_usbhs.h
73669+++ b/include/linux/usb/renesas_usbhs.h 73478+++ b/include/linux/usb/renesas_usbhs.h
73670@@ -39,7 +39,7 @@ enum { 73479@@ -39,7 +39,7 @@ enum {
@@ -73718,10 +73527,10 @@ index 6f8fbcf..8259001 100644
73718+ MODULE_GRSEC 73527+ MODULE_GRSEC
73719 73528
73720diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h 73529diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
73721index 6071e91..4c73b47 100644 73530index 7d5773a..541c01c 100644
73722--- a/include/linux/vmalloc.h 73531--- a/include/linux/vmalloc.h
73723+++ b/include/linux/vmalloc.h 73532+++ b/include/linux/vmalloc.h
73724@@ -14,6 +14,11 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */ 73533@@ -16,6 +16,11 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
73725 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 73534 #define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
73726 #define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */ 73535 #define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */
73727 #define VM_UNLIST 0x00000020 /* vm_struct is not listed in vmlist */ 73536 #define VM_UNLIST 0x00000020 /* vm_struct is not listed in vmlist */
@@ -73733,7 +73542,7 @@ index 6071e91..4c73b47 100644
73733 /* bits [20..32] reserved for arch specific ioremap internals */ 73542 /* bits [20..32] reserved for arch specific ioremap internals */
73734 73543
73735 /* 73544 /*
73736@@ -62,7 +67,7 @@ extern void *vmalloc_32_user(unsigned long size); 73545@@ -75,7 +80,7 @@ extern void *vmalloc_32_user(unsigned long size);
73737 extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot); 73546 extern void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot);
73738 extern void *__vmalloc_node_range(unsigned long size, unsigned long align, 73547 extern void *__vmalloc_node_range(unsigned long size, unsigned long align,
73739 unsigned long start, unsigned long end, gfp_t gfp_mask, 73548 unsigned long start, unsigned long end, gfp_t gfp_mask,
@@ -73742,7 +73551,7 @@ index 6071e91..4c73b47 100644
73742 extern void vfree(const void *addr); 73551 extern void vfree(const void *addr);
73743 73552
73744 extern void *vmap(struct page **pages, unsigned int count, 73553 extern void *vmap(struct page **pages, unsigned int count,
73745@@ -124,8 +129,8 @@ extern struct vm_struct *alloc_vm_area(size_t size, pte_t **ptes); 73554@@ -137,8 +142,8 @@ extern struct vm_struct *alloc_vm_area(size_t size, pte_t **ptes);
73746 extern void free_vm_area(struct vm_struct *area); 73555 extern void free_vm_area(struct vm_struct *area);
73747 73556
73748 /* for /dev/kmem */ 73557 /* for /dev/kmem */
@@ -73754,10 +73563,10 @@ index 6071e91..4c73b47 100644
73754 /* 73563 /*
73755 * Internals. Dont't use.. 73564 * Internals. Dont't use..
73756diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h 73565diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
73757index 5fd71a7..e5ef9a9 100644 73566index c586679..f06b389 100644
73758--- a/include/linux/vmstat.h 73567--- a/include/linux/vmstat.h
73759+++ b/include/linux/vmstat.h 73568+++ b/include/linux/vmstat.h
73760@@ -95,18 +95,18 @@ static inline void vm_events_fold_cpu(int cpu) 73569@@ -90,18 +90,18 @@ static inline void vm_events_fold_cpu(int cpu)
73761 /* 73570 /*
73762 * Zone based page accounting with per cpu differentials. 73571 * Zone based page accounting with per cpu differentials.
73763 */ 73572 */
@@ -73780,7 +73589,7 @@ index 5fd71a7..e5ef9a9 100644
73780 #ifdef CONFIG_SMP 73589 #ifdef CONFIG_SMP
73781 if (x < 0) 73590 if (x < 0)
73782 x = 0; 73591 x = 0;
73783@@ -117,7 +117,7 @@ static inline unsigned long global_page_state(enum zone_stat_item item) 73592@@ -112,7 +112,7 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
73784 static inline unsigned long zone_page_state(struct zone *zone, 73593 static inline unsigned long zone_page_state(struct zone *zone,
73785 enum zone_stat_item item) 73594 enum zone_stat_item item)
73786 { 73595 {
@@ -73789,7 +73598,7 @@ index 5fd71a7..e5ef9a9 100644
73789 #ifdef CONFIG_SMP 73598 #ifdef CONFIG_SMP
73790 if (x < 0) 73599 if (x < 0)
73791 x = 0; 73600 x = 0;
73792@@ -134,7 +134,7 @@ static inline unsigned long zone_page_state(struct zone *zone, 73601@@ -129,7 +129,7 @@ static inline unsigned long zone_page_state(struct zone *zone,
73793 static inline unsigned long zone_page_state_snapshot(struct zone *zone, 73602 static inline unsigned long zone_page_state_snapshot(struct zone *zone,
73794 enum zone_stat_item item) 73603 enum zone_stat_item item)
73795 { 73604 {
@@ -73798,7 +73607,7 @@ index 5fd71a7..e5ef9a9 100644
73798 73607
73799 #ifdef CONFIG_SMP 73608 #ifdef CONFIG_SMP
73800 int cpu; 73609 int cpu;
73801@@ -226,8 +226,8 @@ static inline void __mod_zone_page_state(struct zone *zone, 73610@@ -221,8 +221,8 @@ static inline void __mod_zone_page_state(struct zone *zone,
73802 73611
73803 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item) 73612 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
73804 { 73613 {
@@ -73809,7 +73618,7 @@ index 5fd71a7..e5ef9a9 100644
73809 } 73618 }
73810 73619
73811 static inline void __inc_zone_page_state(struct page *page, 73620 static inline void __inc_zone_page_state(struct page *page,
73812@@ -238,8 +238,8 @@ static inline void __inc_zone_page_state(struct page *page, 73621@@ -233,8 +233,8 @@ static inline void __inc_zone_page_state(struct page *page,
73813 73622
73814 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item) 73623 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
73815 { 73624 {
@@ -73877,18 +73686,6 @@ index 95d1c91..6798cca 100644
73877 73686
73878 /* 73687 /*
73879 * Newer version of video_device, handled by videodev2.c 73688 * Newer version of video_device, handled by videodev2.c
73880diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
73881index 4118ad1..cb7e25f 100644
73882--- a/include/media/v4l2-ioctl.h
73883+++ b/include/media/v4l2-ioctl.h
73884@@ -284,7 +284,6 @@ struct v4l2_ioctl_ops {
73885 bool valid_prio, int cmd, void *arg);
73886 };
73887
73888-
73889 /* v4l debugging and diagnostics */
73890
73891 /* Debug bitmask flags to be used on V4L2 */
73892diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h 73689diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
73893index adcbb20..62c2559 100644 73690index adcbb20..62c2559 100644
73894--- a/include/net/9p/transport.h 73691--- a/include/net/9p/transport.h
@@ -73902,22 +73699,8 @@ index adcbb20..62c2559 100644
73902 73699
73903 void v9fs_register_trans(struct p9_trans_module *m); 73700 void v9fs_register_trans(struct p9_trans_module *m);
73904 void v9fs_unregister_trans(struct p9_trans_module *m); 73701 void v9fs_unregister_trans(struct p9_trans_module *m);
73905diff --git a/include/net/addrconf.h b/include/net/addrconf.h
73906index 84a6440..dbc6db7 100644
73907--- a/include/net/addrconf.h
73908+++ b/include/net/addrconf.h
73909@@ -86,6 +86,9 @@ extern int ipv6_dev_get_saddr(struct net *net,
73910 const struct in6_addr *daddr,
73911 unsigned int srcprefs,
73912 struct in6_addr *saddr);
73913+extern int __ipv6_get_lladdr(struct inet6_dev *idev,
73914+ struct in6_addr *addr,
73915+ unsigned char banned_flags);
73916 extern int ipv6_get_lladdr(struct net_device *dev,
73917 struct in6_addr *addr,
73918 unsigned char banned_flags);
73919diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h 73702diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
73920index cdd3302..76f8ede 100644 73703index fb94cf1..7c0c987 100644
73921--- a/include/net/bluetooth/l2cap.h 73704--- a/include/net/bluetooth/l2cap.h
73922+++ b/include/net/bluetooth/l2cap.h 73705+++ b/include/net/bluetooth/l2cap.h
73923@@ -551,7 +551,7 @@ struct l2cap_ops { 73706@@ -551,7 +551,7 @@ struct l2cap_ops {
@@ -73930,7 +73713,7 @@ index cdd3302..76f8ede 100644
73930 struct l2cap_conn { 73713 struct l2cap_conn {
73931 struct hci_conn *hcon; 73714 struct hci_conn *hcon;
73932diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h 73715diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
73933index 9e5425b..8136ffc 100644 73716index f2ae33d..c457cf0 100644
73934--- a/include/net/caif/cfctrl.h 73717--- a/include/net/caif/cfctrl.h
73935+++ b/include/net/caif/cfctrl.h 73718+++ b/include/net/caif/cfctrl.h
73936@@ -52,7 +52,7 @@ struct cfctrl_rsp { 73719@@ -52,7 +52,7 @@ struct cfctrl_rsp {
@@ -73966,10 +73749,10 @@ index 628e11b..4c475df 100644
73966 73749
73967 #endif 73750 #endif
73968diff --git a/include/net/genetlink.h b/include/net/genetlink.h 73751diff --git a/include/net/genetlink.h b/include/net/genetlink.h
73969index bdfbe68..4402ebe 100644 73752index 93024a4..eeb6b6e 100644
73970--- a/include/net/genetlink.h 73753--- a/include/net/genetlink.h
73971+++ b/include/net/genetlink.h 73754+++ b/include/net/genetlink.h
73972@@ -118,7 +118,7 @@ struct genl_ops { 73755@@ -119,7 +119,7 @@ struct genl_ops {
73973 struct netlink_callback *cb); 73756 struct netlink_callback *cb);
73974 int (*done)(struct netlink_callback *cb); 73757 int (*done)(struct netlink_callback *cb);
73975 struct list_head ops_list; 73758 struct list_head ops_list;
@@ -73992,7 +73775,7 @@ index 734d9b5..48a9a4b 100644
73992 return; 73775 return;
73993 } 73776 }
73994diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h 73777diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
73995index 1832927..ce39aea 100644 73778index de2c785..0588a6b 100644
73996--- a/include/net/inet_connection_sock.h 73779--- a/include/net/inet_connection_sock.h
73997+++ b/include/net/inet_connection_sock.h 73780+++ b/include/net/inet_connection_sock.h
73998@@ -62,7 +62,7 @@ struct inet_connection_sock_af_ops { 73781@@ -62,7 +62,7 @@ struct inet_connection_sock_af_ops {
@@ -74060,10 +73843,10 @@ index e49db91..76a81de 100644
74060 fib_info_update_nh_saddr((net), &FIB_RES_NH(res))) 73843 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
74061 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw) 73844 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
74062diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h 73845diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
74063index fce8e6b..3ca4916 100644 73846index 4c062cc..3562c31 100644
74064--- a/include/net/ip_vs.h 73847--- a/include/net/ip_vs.h
74065+++ b/include/net/ip_vs.h 73848+++ b/include/net/ip_vs.h
74066@@ -599,7 +599,7 @@ struct ip_vs_conn { 73849@@ -612,7 +612,7 @@ struct ip_vs_conn {
74067 struct ip_vs_conn *control; /* Master control connection */ 73850 struct ip_vs_conn *control; /* Master control connection */
74068 atomic_t n_control; /* Number of controlled ones */ 73851 atomic_t n_control; /* Number of controlled ones */
74069 struct ip_vs_dest *dest; /* real server */ 73852 struct ip_vs_dest *dest; /* real server */
@@ -74072,7 +73855,7 @@ index fce8e6b..3ca4916 100644
74072 73855
74073 /* packet transmitter for different forwarding methods. If it 73856 /* packet transmitter for different forwarding methods. If it
74074 mangles the packet, it must return NF_DROP or better NF_STOLEN, 73857 mangles the packet, it must return NF_DROP or better NF_STOLEN,
74075@@ -737,7 +737,7 @@ struct ip_vs_dest { 73858@@ -761,7 +761,7 @@ struct ip_vs_dest {
74076 __be16 port; /* port number of the server */ 73859 __be16 port; /* port number of the server */
74077 union nf_inet_addr addr; /* IP address of the server */ 73860 union nf_inet_addr addr; /* IP address of the server */
74078 volatile unsigned int flags; /* dest status flags */ 73861 volatile unsigned int flags; /* dest status flags */
@@ -74081,7 +73864,7 @@ index fce8e6b..3ca4916 100644
74081 atomic_t weight; /* server weight */ 73864 atomic_t weight; /* server weight */
74082 73865
74083 atomic_t refcnt; /* reference counter */ 73866 atomic_t refcnt; /* reference counter */
74084@@ -981,11 +981,11 @@ struct netns_ipvs { 73867@@ -1013,11 +1013,11 @@ struct netns_ipvs {
74085 /* ip_vs_lblc */ 73868 /* ip_vs_lblc */
74086 int sysctl_lblc_expiration; 73869 int sysctl_lblc_expiration;
74087 struct ctl_table_header *lblc_ctl_header; 73870 struct ctl_table_header *lblc_ctl_header;
@@ -74188,10 +73971,10 @@ index 567c681..cd73ac0 100644
74188 struct llc_sap_state { 73971 struct llc_sap_state {
74189 u8 curr_state; 73972 u8 curr_state;
74190diff --git a/include/net/mac80211.h b/include/net/mac80211.h 73973diff --git a/include/net/mac80211.h b/include/net/mac80211.h
74191index f7eba13..91ed983 100644 73974index 885898a..cdace34 100644
74192--- a/include/net/mac80211.h 73975--- a/include/net/mac80211.h
74193+++ b/include/net/mac80211.h 73976+++ b/include/net/mac80211.h
74194@@ -4119,7 +4119,7 @@ struct rate_control_ops { 73977@@ -4205,7 +4205,7 @@ struct rate_control_ops {
74195 void (*add_sta_debugfs)(void *priv, void *priv_sta, 73978 void (*add_sta_debugfs)(void *priv, void *priv_sta,
74196 struct dentry *dir); 73979 struct dentry *dir);
74197 void (*remove_sta_debugfs)(void *priv, void *priv_sta); 73980 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
@@ -74214,10 +73997,10 @@ index 7e748ad..5c6229b 100644
74214 struct pneigh_entry { 73997 struct pneigh_entry {
74215 struct pneigh_entry *next; 73998 struct pneigh_entry *next;
74216diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h 73999diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
74217index de644bc..dfbcc4c 100644 74000index b176978..ea169f4 100644
74218--- a/include/net/net_namespace.h 74001--- a/include/net/net_namespace.h
74219+++ b/include/net/net_namespace.h 74002+++ b/include/net/net_namespace.h
74220@@ -115,7 +115,7 @@ struct net { 74003@@ -117,7 +117,7 @@ struct net {
74221 #endif 74004 #endif
74222 struct netns_ipvs *ipvs; 74005 struct netns_ipvs *ipvs;
74223 struct sock *diag_nlsk; 74006 struct sock *diag_nlsk;
@@ -74226,7 +74009,7 @@ index de644bc..dfbcc4c 100644
74226 }; 74009 };
74227 74010
74228 /* 74011 /*
74229@@ -272,7 +272,11 @@ static inline struct net *read_pnet(struct net * const *pnet) 74012@@ -274,7 +274,11 @@ static inline struct net *read_pnet(struct net * const *pnet)
74230 #define __net_init __init 74013 #define __net_init __init
74231 #define __net_exit __exit_refok 74014 #define __net_exit __exit_refok
74232 #define __net_initdata __initdata 74015 #define __net_initdata __initdata
@@ -74238,7 +74021,7 @@ index de644bc..dfbcc4c 100644
74238 #endif 74021 #endif
74239 74022
74240 struct pernet_operations { 74023 struct pernet_operations {
74241@@ -282,7 +286,7 @@ struct pernet_operations { 74024@@ -284,7 +288,7 @@ struct pernet_operations {
74242 void (*exit_batch)(struct list_head *net_exit_list); 74025 void (*exit_batch)(struct list_head *net_exit_list);
74243 int *id; 74026 int *id;
74244 size_t size; 74027 size_t size;
@@ -74247,7 +74030,7 @@ index de644bc..dfbcc4c 100644
74247 74030
74248 /* 74031 /*
74249 * Use these carefully. If you implement a network device and it 74032 * Use these carefully. If you implement a network device and it
74250@@ -330,12 +334,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header) 74033@@ -332,12 +336,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
74251 74034
74252 static inline int rt_genid(struct net *net) 74035 static inline int rt_genid(struct net *net)
74253 { 74036 {
@@ -74327,6 +74110,19 @@ index 2ba9de8..47bd6c7 100644
74327 74110
74328 #ifdef CONFIG_IP_MROUTE 74111 #ifdef CONFIG_IP_MROUTE
74329 #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES 74112 #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
74113diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
74114index 005e2c2..023d340 100644
74115--- a/include/net/netns/ipv6.h
74116+++ b/include/net/netns/ipv6.h
74117@@ -71,7 +71,7 @@ struct netns_ipv6 {
74118 struct fib_rules_ops *mr6_rules_ops;
74119 #endif
74120 #endif
74121- atomic_t dev_addr_genid;
74122+ atomic_unchecked_t dev_addr_genid;
74123 };
74124
74125 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
74330diff --git a/include/net/protocol.h b/include/net/protocol.h 74126diff --git a/include/net/protocol.h b/include/net/protocol.h
74331index 047c047..b9dad15 100644 74127index 047c047..b9dad15 100644
74332--- a/include/net/protocol.h 74128--- a/include/net/protocol.h
@@ -74350,7 +74146,7 @@ index 047c047..b9dad15 100644
74350 #define INET6_PROTO_NOPOLICY 0x1 74146 #define INET6_PROTO_NOPOLICY 0x1
74351 #define INET6_PROTO_FINAL 0x2 74147 #define INET6_PROTO_FINAL 0x2
74352diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h 74148diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
74353index 5a15fab..d799ea7 100644 74149index 7026648..584cc8c 100644
74354--- a/include/net/rtnetlink.h 74150--- a/include/net/rtnetlink.h
74355+++ b/include/net/rtnetlink.h 74151+++ b/include/net/rtnetlink.h
74356@@ -81,7 +81,7 @@ struct rtnl_link_ops { 74152@@ -81,7 +81,7 @@ struct rtnl_link_ops {
@@ -74363,7 +74159,7 @@ index 5a15fab..d799ea7 100644
74363 extern int __rtnl_link_register(struct rtnl_link_ops *ops); 74159 extern int __rtnl_link_register(struct rtnl_link_ops *ops);
74364 extern void __rtnl_link_unregister(struct rtnl_link_ops *ops); 74160 extern void __rtnl_link_unregister(struct rtnl_link_ops *ops);
74365diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h 74161diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
74366index df85a0c..19ac300 100644 74162index cd89510..d67810f 100644
74367--- a/include/net/sctp/sctp.h 74163--- a/include/net/sctp/sctp.h
74368+++ b/include/net/sctp/sctp.h 74164+++ b/include/net/sctp/sctp.h
74369@@ -330,9 +330,9 @@ do { \ 74165@@ -330,9 +330,9 @@ do { \
@@ -74402,10 +74198,10 @@ index 2a82d13..62a31c2 100644
74402 74198
74403 /* Get the size of a DATA chunk payload. */ 74199 /* Get the size of a DATA chunk payload. */
74404diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h 74200diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
74405index 0e0f9d2..cd05ebb 100644 74201index 1bd4c41..9250b5b 100644
74406--- a/include/net/sctp/structs.h 74202--- a/include/net/sctp/structs.h
74407+++ b/include/net/sctp/structs.h 74203+++ b/include/net/sctp/structs.h
74408@@ -517,7 +517,7 @@ struct sctp_pf { 74204@@ -516,7 +516,7 @@ struct sctp_pf {
74409 struct sctp_association *asoc); 74205 struct sctp_association *asoc);
74410 void (*addr_v4map) (struct sctp_sock *, union sctp_addr *); 74206 void (*addr_v4map) (struct sctp_sock *, union sctp_addr *);
74411 struct sctp_af *af; 74207 struct sctp_af *af;
@@ -74414,20 +74210,8 @@ index 0e0f9d2..cd05ebb 100644
74414 74210
74415 74211
74416 /* Structure to track chunk fragments that have been acked, but peer 74212 /* Structure to track chunk fragments that have been acked, but peer
74417diff --git a/include/net/secure_seq.h b/include/net/secure_seq.h
74418index c2e542b..6ca975b 100644
74419--- a/include/net/secure_seq.h
74420+++ b/include/net/secure_seq.h
74421@@ -3,6 +3,7 @@
74422
74423 #include <linux/types.h>
74424
74425+extern void net_secret_init(void);
74426 extern __u32 secure_ip_id(__be32 daddr);
74427 extern __u32 secure_ipv6_id(const __be32 daddr[4]);
74428 extern u32 secure_ipv4_port_ephemeral(__be32 saddr, __be32 daddr, __be16 dport);
74429diff --git a/include/net/sock.h b/include/net/sock.h 74213diff --git a/include/net/sock.h b/include/net/sock.h
74430index 0be480a..586232f 100644 74214index 66772cf..25bc45b 100644
74431--- a/include/net/sock.h 74215--- a/include/net/sock.h
74432+++ b/include/net/sock.h 74216+++ b/include/net/sock.h
74433@@ -325,7 +325,7 @@ struct sock { 74217@@ -325,7 +325,7 @@ struct sock {
@@ -74439,7 +74223,7 @@ index 0be480a..586232f 100644
74439 int sk_rcvbuf; 74223 int sk_rcvbuf;
74440 74224
74441 struct sk_filter __rcu *sk_filter; 74225 struct sk_filter __rcu *sk_filter;
74442@@ -1796,7 +1796,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags) 74226@@ -1797,7 +1797,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
74443 } 74227 }
74444 74228
74445 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb, 74229 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
@@ -74448,7 +74232,7 @@ index 0be480a..586232f 100644
74448 int copy, int offset) 74232 int copy, int offset)
74449 { 74233 {
74450 if (skb->ip_summed == CHECKSUM_NONE) { 74234 if (skb->ip_summed == CHECKSUM_NONE) {
74451@@ -2055,7 +2055,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk) 74235@@ -2056,7 +2056,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
74452 } 74236 }
74453 } 74237 }
74454 74238
@@ -74458,10 +74242,10 @@ index 0be480a..586232f 100644
74458 /** 74242 /**
74459 * sk_page_frag - return an appropriate page_frag 74243 * sk_page_frag - return an appropriate page_frag
74460diff --git a/include/net/tcp.h b/include/net/tcp.h 74244diff --git a/include/net/tcp.h b/include/net/tcp.h
74461index a345480..3c65cf4 100644 74245index 5bba80f..8520a82 100644
74462--- a/include/net/tcp.h 74246--- a/include/net/tcp.h
74463+++ b/include/net/tcp.h 74247+++ b/include/net/tcp.h
74464@@ -529,7 +529,7 @@ extern void tcp_retransmit_timer(struct sock *sk); 74248@@ -524,7 +524,7 @@ extern void tcp_retransmit_timer(struct sock *sk);
74465 extern void tcp_xmit_retransmit_queue(struct sock *); 74249 extern void tcp_xmit_retransmit_queue(struct sock *);
74466 extern void tcp_simple_retransmit(struct sock *); 74250 extern void tcp_simple_retransmit(struct sock *);
74467 extern int tcp_trim_head(struct sock *, struct sk_buff *, u32); 74251 extern int tcp_trim_head(struct sock *, struct sk_buff *, u32);
@@ -74470,7 +74254,7 @@ index a345480..3c65cf4 100644
74470 74254
74471 extern void tcp_send_probe0(struct sock *); 74255 extern void tcp_send_probe0(struct sock *);
74472 extern void tcp_send_partial(struct sock *); 74256 extern void tcp_send_partial(struct sock *);
74473@@ -700,8 +700,8 @@ struct tcp_skb_cb { 74257@@ -697,8 +697,8 @@ struct tcp_skb_cb {
74474 struct inet6_skb_parm h6; 74258 struct inet6_skb_parm h6;
74475 #endif 74259 #endif
74476 } header; /* For incoming frames */ 74260 } header; /* For incoming frames */
@@ -74481,7 +74265,7 @@ index a345480..3c65cf4 100644
74481 __u32 when; /* used to compute rtt's */ 74265 __u32 when; /* used to compute rtt's */
74482 __u8 tcp_flags; /* TCP header flags. (tcp[13]) */ 74266 __u8 tcp_flags; /* TCP header flags. (tcp[13]) */
74483 74267
74484@@ -715,7 +715,7 @@ struct tcp_skb_cb { 74268@@ -712,7 +712,7 @@ struct tcp_skb_cb {
74485 74269
74486 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */ 74270 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
74487 /* 1 byte hole */ 74271 /* 1 byte hole */
@@ -74490,23 +74274,11 @@ index a345480..3c65cf4 100644
74490 }; 74274 };
74491 74275
74492 #define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0])) 74276 #define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0]))
74493diff --git a/include/net/udp.h b/include/net/udp.h
74494index 065f379..ad99eed 100644
74495--- a/include/net/udp.h
74496+++ b/include/net/udp.h
74497@@ -181,6 +181,7 @@ extern int udp_get_port(struct sock *sk, unsigned short snum,
74498 extern void udp_err(struct sk_buff *, u32);
74499 extern int udp_sendmsg(struct kiocb *iocb, struct sock *sk,
74500 struct msghdr *msg, size_t len);
74501+extern int udp_push_pending_frames(struct sock *sk);
74502 extern void udp_flush_pending_frames(struct sock *sk);
74503 extern int udp_rcv(struct sk_buff *skb);
74504 extern int udp_ioctl(struct sock *sk, int cmd, unsigned long arg);
74505diff --git a/include/net/xfrm.h b/include/net/xfrm.h 74277diff --git a/include/net/xfrm.h b/include/net/xfrm.h
74506index 24c8886..e6fb816 100644 74278index 94ce082..62b278d 100644
74507--- a/include/net/xfrm.h 74279--- a/include/net/xfrm.h
74508+++ b/include/net/xfrm.h 74280+++ b/include/net/xfrm.h
74509@@ -304,7 +304,7 @@ struct xfrm_policy_afinfo { 74281@@ -305,7 +305,7 @@ struct xfrm_policy_afinfo {
74510 struct net_device *dev, 74282 struct net_device *dev,
74511 const struct flowi *fl); 74283 const struct flowi *fl);
74512 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig); 74284 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
@@ -74515,7 +74287,7 @@ index 24c8886..e6fb816 100644
74515 74287
74516 extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo); 74288 extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
74517 extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo); 74289 extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
74518@@ -340,7 +340,7 @@ struct xfrm_state_afinfo { 74290@@ -341,7 +341,7 @@ struct xfrm_state_afinfo {
74519 struct sk_buff *skb); 74291 struct sk_buff *skb);
74520 int (*transport_finish)(struct sk_buff *skb, 74292 int (*transport_finish)(struct sk_buff *skb,
74521 int async); 74293 int async);
@@ -74524,7 +74296,7 @@ index 24c8886..e6fb816 100644
74524 74296
74525 extern int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo); 74297 extern int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
74526 extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo); 74298 extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
74527@@ -423,7 +423,7 @@ struct xfrm_mode { 74299@@ -424,7 +424,7 @@ struct xfrm_mode {
74528 struct module *owner; 74300 struct module *owner;
74529 unsigned int encap; 74301 unsigned int encap;
74530 int flags; 74302 int flags;
@@ -74533,7 +74305,7 @@ index 24c8886..e6fb816 100644
74533 74305
74534 /* Flags for xfrm_mode. */ 74306 /* Flags for xfrm_mode. */
74535 enum { 74307 enum {
74536@@ -520,7 +520,7 @@ struct xfrm_policy { 74308@@ -521,7 +521,7 @@ struct xfrm_policy {
74537 struct timer_list timer; 74309 struct timer_list timer;
74538 74310
74539 struct flow_cache_object flo; 74311 struct flow_cache_object flo;
@@ -74577,7 +74349,7 @@ index e1379b4..67eafbe 100644
74577 u8 qfull; 74349 u8 qfull;
74578 enum fc_lport_state state; 74350 enum fc_lport_state state;
74579diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h 74351diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
74580index a7f9cba..b1f44d0 100644 74352index cc64587..608f523 100644
74581--- a/include/scsi/scsi_device.h 74353--- a/include/scsi/scsi_device.h
74582+++ b/include/scsi/scsi_device.h 74354+++ b/include/scsi/scsi_device.h
74583@@ -171,9 +171,9 @@ struct scsi_device { 74355@@ -171,9 +171,9 @@ struct scsi_device {
@@ -74608,10 +74380,10 @@ index b797e8f..8e2c3aa 100644
74608 74380
74609 /** 74381 /**
74610diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h 74382diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
74611index ff6c741..393815f 100644 74383index 9031a26..750d592 100644
74612--- a/include/sound/compress_driver.h 74384--- a/include/sound/compress_driver.h
74613+++ b/include/sound/compress_driver.h 74385+++ b/include/sound/compress_driver.h
74614@@ -130,7 +130,7 @@ struct snd_compr_ops { 74386@@ -128,7 +128,7 @@ struct snd_compr_ops {
74615 struct snd_compr_caps *caps); 74387 struct snd_compr_caps *caps);
74616 int (*get_codec_caps) (struct snd_compr_stream *stream, 74388 int (*get_codec_caps) (struct snd_compr_stream *stream,
74617 struct snd_compr_codec_caps *codec); 74389 struct snd_compr_codec_caps *codec);
@@ -74621,10 +74393,10 @@ index ff6c741..393815f 100644
74621 /** 74393 /**
74622 * struct snd_compr: Compressed device 74394 * struct snd_compr: Compressed device
74623diff --git a/include/sound/soc.h b/include/sound/soc.h 74395diff --git a/include/sound/soc.h b/include/sound/soc.h
74624index a6a059c..2243336 100644 74396index 85c1522..f44bad1 100644
74625--- a/include/sound/soc.h 74397--- a/include/sound/soc.h
74626+++ b/include/sound/soc.h 74398+++ b/include/sound/soc.h
74627@@ -771,7 +771,7 @@ struct snd_soc_codec_driver { 74399@@ -781,7 +781,7 @@ struct snd_soc_codec_driver {
74628 /* probe ordering - for components with runtime dependencies */ 74400 /* probe ordering - for components with runtime dependencies */
74629 int probe_order; 74401 int probe_order;
74630 int remove_order; 74402 int remove_order;
@@ -74633,7 +74405,7 @@ index a6a059c..2243336 100644
74633 74405
74634 /* SoC platform interface */ 74406 /* SoC platform interface */
74635 struct snd_soc_platform_driver { 74407 struct snd_soc_platform_driver {
74636@@ -817,7 +817,7 @@ struct snd_soc_platform_driver { 74408@@ -827,7 +827,7 @@ struct snd_soc_platform_driver {
74637 unsigned int (*read)(struct snd_soc_platform *, unsigned int); 74409 unsigned int (*read)(struct snd_soc_platform *, unsigned int);
74638 int (*write)(struct snd_soc_platform *, unsigned int, unsigned int); 74410 int (*write)(struct snd_soc_platform *, unsigned int, unsigned int);
74639 int (*bespoke_trigger)(struct snd_pcm_substream *, int); 74411 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
@@ -74643,10 +74415,10 @@ index a6a059c..2243336 100644
74643 struct snd_soc_platform { 74415 struct snd_soc_platform {
74644 const char *name; 74416 const char *name;
74645diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h 74417diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
74646index f8640f3..b72d113 100644 74418index 4ea4f98..a63629b 100644
74647--- a/include/target/target_core_base.h 74419--- a/include/target/target_core_base.h
74648+++ b/include/target/target_core_base.h 74420+++ b/include/target/target_core_base.h
74649@@ -658,7 +658,7 @@ struct se_device { 74421@@ -653,7 +653,7 @@ struct se_device {
74650 spinlock_t stats_lock; 74422 spinlock_t stats_lock;
74651 /* Active commands on this virtual SE device */ 74423 /* Active commands on this virtual SE device */
74652 atomic_t simple_cmds; 74424 atomic_t simple_cmds;
@@ -74826,7 +74598,7 @@ index d876736..ccce5c0 100644
74826 #define __cpu_to_le64s(x) do { (void)(x); } while (0) 74598 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
74827 #define __le64_to_cpus(x) do { (void)(x); } while (0) 74599 #define __le64_to_cpus(x) do { (void)(x); } while (0)
74828diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h 74600diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
74829index 8072d35..e77aeb8 100644 74601index ef6103b..d4e65dd 100644
74830--- a/include/uapi/linux/elf.h 74602--- a/include/uapi/linux/elf.h
74831+++ b/include/uapi/linux/elf.h 74603+++ b/include/uapi/linux/elf.h
74832@@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword; 74604@@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword;
@@ -74885,24 +74657,6 @@ index 8072d35..e77aeb8 100644
74885 #define ELFMAG0 0x7f /* EI_MAG */ 74657 #define ELFMAG0 0x7f /* EI_MAG */
74886 #define ELFMAG1 'E' 74658 #define ELFMAG1 'E'
74887 #define ELFMAG2 'L' 74659 #define ELFMAG2 'L'
74888diff --git a/include/uapi/linux/if_pppox.h b/include/uapi/linux/if_pppox.h
74889index 0b46fd5..e36a4ae 100644
74890--- a/include/uapi/linux/if_pppox.h
74891+++ b/include/uapi/linux/if_pppox.h
74892@@ -135,11 +135,11 @@ struct pppoe_tag {
74893
74894 struct pppoe_hdr {
74895 #if defined(__LITTLE_ENDIAN_BITFIELD)
74896- __u8 ver : 4;
74897 __u8 type : 4;
74898+ __u8 ver : 4;
74899 #elif defined(__BIG_ENDIAN_BITFIELD)
74900- __u8 type : 4;
74901 __u8 ver : 4;
74902+ __u8 type : 4;
74903 #else
74904 #error "Please fix <asm/byteorder.h>"
74905 #endif
74906diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h 74660diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h
74907index aa169c4..6a2771d 100644 74661index aa169c4..6a2771d 100644
74908--- a/include/uapi/linux/personality.h 74662--- a/include/uapi/linux/personality.h
@@ -75023,10 +74777,10 @@ index 1a91850..28573f8 100644
75023 void *pmi_pal; 74777 void *pmi_pal;
75024 u8 *vbe_state_orig; /* 74778 u8 *vbe_state_orig; /*
75025diff --git a/init/Kconfig b/init/Kconfig 74779diff --git a/init/Kconfig b/init/Kconfig
75026index 5341d72..153f24f 100644 74780index 2d9b831..ae4c8ac 100644
75027--- a/init/Kconfig 74781--- a/init/Kconfig
75028+++ b/init/Kconfig 74782+++ b/init/Kconfig
75029@@ -984,6 +984,7 @@ endif # CGROUPS 74783@@ -1029,6 +1029,7 @@ endif # CGROUPS
75030 74784
75031 config CHECKPOINT_RESTORE 74785 config CHECKPOINT_RESTORE
75032 bool "Checkpoint/restore support" if EXPERT 74786 bool "Checkpoint/restore support" if EXPERT
@@ -75034,7 +74788,7 @@ index 5341d72..153f24f 100644
75034 default n 74788 default n
75035 help 74789 help
75036 Enables additional kernel features in a sake of checkpoint/restore. 74790 Enables additional kernel features in a sake of checkpoint/restore.
75037@@ -1471,7 +1472,7 @@ config SLUB_DEBUG 74791@@ -1516,7 +1517,7 @@ config SLUB_DEBUG
75038 74792
75039 config COMPAT_BRK 74793 config COMPAT_BRK
75040 bool "Disable heap randomization" 74794 bool "Disable heap randomization"
@@ -75043,7 +74797,7 @@ index 5341d72..153f24f 100644
75043 help 74797 help
75044 Randomizing heap placement makes heap exploits harder, but it 74798 Randomizing heap placement makes heap exploits harder, but it
75045 also breaks ancient binaries (including anything libc5 based). 74799 also breaks ancient binaries (including anything libc5 based).
75046@@ -1734,7 +1735,7 @@ config INIT_ALL_POSSIBLE 74800@@ -1779,7 +1780,7 @@ config INIT_ALL_POSSIBLE
75047 config STOP_MACHINE 74801 config STOP_MACHINE
75048 bool 74802 bool
75049 default y 74803 default y
@@ -75148,7 +74902,7 @@ index f5b978a..69dbfe8 100644
75148 if (!S_ISBLK(stat.st_mode)) 74902 if (!S_ISBLK(stat.st_mode))
75149 return 0; 74903 return 0;
75150diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c 74904diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
75151index a32ec1c..60a6659 100644 74905index 3e0878e..8a9d7a0 100644
75152--- a/init/do_mounts_initrd.c 74906--- a/init/do_mounts_initrd.c
75153+++ b/init/do_mounts_initrd.c 74907+++ b/init/do_mounts_initrd.c
75154@@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new) 74908@@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
@@ -75169,7 +74923,7 @@ index a32ec1c..60a6659 100644
75169 sys_setsid(); 74923 sys_setsid();
75170 return 0; 74924 return 0;
75171 } 74925 }
75172@@ -58,8 +58,8 @@ static void __init handle_initrd(void) 74926@@ -59,8 +59,8 @@ static void __init handle_initrd(void)
75173 create_dev("/dev/root.old", Root_RAM0); 74927 create_dev("/dev/root.old", Root_RAM0);
75174 /* mount initrd on rootfs' /root */ 74928 /* mount initrd on rootfs' /root */
75175 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY); 74929 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
@@ -75180,7 +74934,7 @@ index a32ec1c..60a6659 100644
75180 74934
75181 /* try loading default modules from initrd */ 74935 /* try loading default modules from initrd */
75182 load_default_modules(); 74936 load_default_modules();
75183@@ -76,31 +76,31 @@ static void __init handle_initrd(void) 74937@@ -80,31 +80,31 @@ static void __init handle_initrd(void)
75184 current->flags &= ~PF_FREEZER_SKIP; 74938 current->flags &= ~PF_FREEZER_SKIP;
75185 74939
75186 /* move initrd to rootfs' /old */ 74940 /* move initrd to rootfs' /old */
@@ -75219,7 +74973,7 @@ index a32ec1c..60a6659 100644
75219 printk(KERN_NOTICE "Trying to free ramdisk memory ... "); 74973 printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
75220 if (fd < 0) { 74974 if (fd < 0) {
75221 error = fd; 74975 error = fd;
75222@@ -123,11 +123,11 @@ int __init initrd_load(void) 74976@@ -127,11 +127,11 @@ int __init initrd_load(void)
75223 * mounted in the normal path. 74977 * mounted in the normal path.
75224 */ 74978 */
75225 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) { 74979 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
@@ -75400,10 +75154,10 @@ index a67ef9d..2d17ed9 100644
75400 #ifdef CONFIG_BLK_DEV_RAM 75154 #ifdef CONFIG_BLK_DEV_RAM
75401 int fd; 75155 int fd;
75402diff --git a/init/main.c b/init/main.c 75156diff --git a/init/main.c b/init/main.c
75403index 63534a1..85feae2 100644 75157index 9484f4b..4c01430 100644
75404--- a/init/main.c 75158--- a/init/main.c
75405+++ b/init/main.c 75159+++ b/init/main.c
75406@@ -98,6 +98,8 @@ static inline void mark_rodata_ro(void) { } 75160@@ -100,6 +100,8 @@ static inline void mark_rodata_ro(void) { }
75407 extern void tc_init(void); 75161 extern void tc_init(void);
75408 #endif 75162 #endif
75409 75163
@@ -75412,7 +75166,7 @@ index 63534a1..85feae2 100644
75412 /* 75166 /*
75413 * Debug helper: via this flag we know that we are in 'early bootup code' 75167 * Debug helper: via this flag we know that we are in 'early bootup code'
75414 * where only the boot processor is running with IRQ disabled. This means 75168 * where only the boot processor is running with IRQ disabled. This means
75415@@ -151,6 +153,64 @@ static int __init set_reset_devices(char *str) 75169@@ -153,6 +155,64 @@ static int __init set_reset_devices(char *str)
75416 75170
75417 __setup("reset_devices", set_reset_devices); 75171 __setup("reset_devices", set_reset_devices);
75418 75172
@@ -75477,7 +75231,16 @@ index 63534a1..85feae2 100644
75477 static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, }; 75231 static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
75478 const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, }; 75232 const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
75479 static const char *panic_later, *panic_param; 75233 static const char *panic_later, *panic_param;
75480@@ -683,6 +743,7 @@ int __init_or_module do_one_initcall(initcall_t fn) 75234@@ -655,8 +715,6 @@ static void __init do_ctors(void)
75235 bool initcall_debug;
75236 core_param(initcall_debug, initcall_debug, bool, 0644);
75237
75238-static char msgbuf[64];
75239-
75240 static int __init_or_module do_one_initcall_debug(initcall_t fn)
75241 {
75242 ktime_t calltime, delta, rettime;
75243@@ -679,23 +737,22 @@ int __init_or_module do_one_initcall(initcall_t fn)
75481 { 75244 {
75482 int count = preempt_count(); 75245 int count = preempt_count();
75483 int ret; 75246 int ret;
@@ -75485,11 +75248,13 @@ index 63534a1..85feae2 100644
75485 75248
75486 if (initcall_debug) 75249 if (initcall_debug)
75487 ret = do_one_initcall_debug(fn); 75250 ret = do_one_initcall_debug(fn);
75488@@ -695,15 +756,15 @@ int __init_or_module do_one_initcall(initcall_t fn) 75251 else
75489 sprintf(msgbuf, "error code %d ", ret); 75252 ret = fn();
75490 75253
75254- msgbuf[0] = 0;
75255-
75491 if (preempt_count() != count) { 75256 if (preempt_count() != count) {
75492- strlcat(msgbuf, "preemption imbalance ", sizeof(msgbuf)); 75257- sprintf(msgbuf, "preemption imbalance ");
75493+ msg1 = " preemption imbalance"; 75258+ msg1 = " preemption imbalance";
75494 preempt_count() = count; 75259 preempt_count() = count;
75495 } 75260 }
@@ -75498,14 +75263,12 @@ index 63534a1..85feae2 100644
75498+ msg2 = " disabled interrupts"; 75263+ msg2 = " disabled interrupts";
75499 local_irq_enable(); 75264 local_irq_enable();
75500 } 75265 }
75501- if (msgbuf[0]) { 75266- WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
75502- printk("initcall %pF returned with %s\n", fn, msgbuf); 75267+ WARN(*msg1 || *msg2, "initcall %pF returned with%s%s\n", fn, msg1, msg2);
75503+ if (msgbuf[0] || *msg1 || *msg2) {
75504+ printk("initcall %pF returned with %s%s%s\n", fn, msgbuf, msg1, msg2);
75505 }
75506 75268
75507 return ret; 75269 return ret;
75508@@ -757,8 +818,14 @@ static void __init do_initcall_level(int level) 75270 }
75271@@ -748,8 +805,14 @@ static void __init do_initcall_level(int level)
75509 level, level, 75272 level, level,
75510 &repair_env_string); 75273 &repair_env_string);
75511 75274
@@ -75521,7 +75284,7 @@ index 63534a1..85feae2 100644
75521 } 75284 }
75522 75285
75523 static void __init do_initcalls(void) 75286 static void __init do_initcalls(void)
75524@@ -792,8 +859,14 @@ static void __init do_pre_smp_initcalls(void) 75287@@ -783,8 +846,14 @@ static void __init do_pre_smp_initcalls(void)
75525 { 75288 {
75526 initcall_t *fn; 75289 initcall_t *fn;
75527 75290
@@ -75537,7 +75300,7 @@ index 63534a1..85feae2 100644
75537 } 75300 }
75538 75301
75539 /* 75302 /*
75540@@ -811,8 +884,8 @@ static int run_init_process(const char *init_filename) 75303@@ -802,8 +871,8 @@ static int run_init_process(const char *init_filename)
75541 { 75304 {
75542 argv_init[0] = init_filename; 75305 argv_init[0] = init_filename;
75543 return do_execve(init_filename, 75306 return do_execve(init_filename,
@@ -75548,16 +75311,16 @@ index 63534a1..85feae2 100644
75548 } 75311 }
75549 75312
75550 static noinline void __init kernel_init_freeable(void); 75313 static noinline void __init kernel_init_freeable(void);
75551@@ -890,7 +963,7 @@ static noinline void __init kernel_init_freeable(void) 75314@@ -880,7 +949,7 @@ static noinline void __init kernel_init_freeable(void)
75552 do_basic_setup(); 75315 do_basic_setup();
75553 75316
75554 /* Open the /dev/console on the rootfs, this should never fail */ 75317 /* Open the /dev/console on the rootfs, this should never fail */
75555- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0) 75318- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
75556+ if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0) 75319+ if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0)
75557 printk(KERN_WARNING "Warning: unable to open an initial console.\n"); 75320 pr_err("Warning: unable to open an initial console.\n");
75558 75321
75559 (void) sys_dup(0); 75322 (void) sys_dup(0);
75560@@ -903,11 +976,13 @@ static noinline void __init kernel_init_freeable(void) 75323@@ -893,11 +962,13 @@ static noinline void __init kernel_init_freeable(void)
75561 if (!ramdisk_execute_command) 75324 if (!ramdisk_execute_command)
75562 ramdisk_execute_command = "/init"; 75325 ramdisk_execute_command = "/init";
75563 75326
@@ -75647,10 +75410,10 @@ index e4e47f6..a85e0ad 100644
75647 if (u->mq_bytes + mq_bytes < u->mq_bytes || 75410 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
75648 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) { 75411 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
75649diff --git a/ipc/msg.c b/ipc/msg.c 75412diff --git a/ipc/msg.c b/ipc/msg.c
75650index fede1d0..9778e0f8 100644 75413index d0c6d96..69a893c 100644
75651--- a/ipc/msg.c 75414--- a/ipc/msg.c
75652+++ b/ipc/msg.c 75415+++ b/ipc/msg.c
75653@@ -309,18 +309,19 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) 75416@@ -296,18 +296,19 @@ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg)
75654 return security_msg_queue_associate(msq, msgflg); 75417 return security_msg_queue_associate(msq, msgflg);
75655 } 75418 }
75656 75419
@@ -75676,10 +75439,10 @@ index fede1d0..9778e0f8 100644
75676 msg_params.flg = msgflg; 75439 msg_params.flg = msgflg;
75677 75440
75678diff --git a/ipc/sem.c b/ipc/sem.c 75441diff --git a/ipc/sem.c b/ipc/sem.c
75679index 58d31f1..cce7a55 100644 75442index 70480a3..f4e8262 100644
75680--- a/ipc/sem.c 75443--- a/ipc/sem.c
75681+++ b/ipc/sem.c 75444+++ b/ipc/sem.c
75682@@ -364,10 +364,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp, 75445@@ -460,10 +460,15 @@ static inline int sem_more_checks(struct kern_ipc_perm *ipcp,
75683 return 0; 75446 return 0;
75684 } 75447 }
75685 75448
@@ -75696,7 +75459,7 @@ index 58d31f1..cce7a55 100644
75696 struct ipc_params sem_params; 75459 struct ipc_params sem_params;
75697 75460
75698 ns = current->nsproxy->ipc_ns; 75461 ns = current->nsproxy->ipc_ns;
75699@@ -375,10 +380,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg) 75462@@ -471,10 +476,6 @@ SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
75700 if (nsems < 0 || nsems > ns->sc_semmsl) 75463 if (nsems < 0 || nsems > ns->sc_semmsl)
75701 return -EINVAL; 75464 return -EINVAL;
75702 75465
@@ -75802,10 +75565,10 @@ index 7e199fa..180a1ca 100644
75802 shm_unlock(shp); 75565 shm_unlock(shp);
75803 75566
75804diff --git a/kernel/acct.c b/kernel/acct.c 75567diff --git a/kernel/acct.c b/kernel/acct.c
75805index b9bd7f0..1762b4a 100644 75568index 8d6e145..33e0b1e 100644
75806--- a/kernel/acct.c 75569--- a/kernel/acct.c
75807+++ b/kernel/acct.c 75570+++ b/kernel/acct.c
75808@@ -550,7 +550,7 @@ static void do_acct_process(struct bsd_acct_struct *acct, 75571@@ -556,7 +556,7 @@ static void do_acct_process(struct bsd_acct_struct *acct,
75809 */ 75572 */
75810 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur; 75573 flim = current->signal->rlim[RLIMIT_FSIZE].rlim_cur;
75811 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY; 75574 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = RLIM_INFINITY;
@@ -75815,10 +75578,10 @@ index b9bd7f0..1762b4a 100644
75815 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim; 75578 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
75816 set_fs(fs); 75579 set_fs(fs);
75817diff --git a/kernel/audit.c b/kernel/audit.c 75580diff --git a/kernel/audit.c b/kernel/audit.c
75818index 8a667f10..7375e3f 100644 75581index 91e53d0..d9e3ec4 100644
75819--- a/kernel/audit.c 75582--- a/kernel/audit.c
75820+++ b/kernel/audit.c 75583+++ b/kernel/audit.c
75821@@ -116,7 +116,7 @@ u32 audit_sig_sid = 0; 75584@@ -118,7 +118,7 @@ u32 audit_sig_sid = 0;
75822 3) suppressed due to audit_rate_limit 75585 3) suppressed due to audit_rate_limit
75823 4) suppressed due to audit_backlog_limit 75586 4) suppressed due to audit_backlog_limit
75824 */ 75587 */
@@ -75827,7 +75590,7 @@ index 8a667f10..7375e3f 100644
75827 75590
75828 /* The netlink socket. */ 75591 /* The netlink socket. */
75829 static struct sock *audit_sock; 75592 static struct sock *audit_sock;
75830@@ -238,7 +238,7 @@ void audit_log_lost(const char *message) 75593@@ -240,7 +240,7 @@ void audit_log_lost(const char *message)
75831 unsigned long now; 75594 unsigned long now;
75832 int print; 75595 int print;
75833 75596
@@ -75836,7 +75599,7 @@ index 8a667f10..7375e3f 100644
75836 75599
75837 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit); 75600 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
75838 75601
75839@@ -257,7 +257,7 @@ void audit_log_lost(const char *message) 75602@@ -259,7 +259,7 @@ void audit_log_lost(const char *message)
75840 printk(KERN_WARNING 75603 printk(KERN_WARNING
75841 "audit: audit_lost=%d audit_rate_limit=%d " 75604 "audit: audit_lost=%d audit_rate_limit=%d "
75842 "audit_backlog_limit=%d\n", 75605 "audit_backlog_limit=%d\n",
@@ -75845,7 +75608,7 @@ index 8a667f10..7375e3f 100644
75845 audit_rate_limit, 75608 audit_rate_limit,
75846 audit_backlog_limit); 75609 audit_backlog_limit);
75847 audit_panic(message); 75610 audit_panic(message);
75848@@ -681,7 +681,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) 75611@@ -664,7 +664,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
75849 status_set.pid = audit_pid; 75612 status_set.pid = audit_pid;
75850 status_set.rate_limit = audit_rate_limit; 75613 status_set.rate_limit = audit_rate_limit;
75851 status_set.backlog_limit = audit_backlog_limit; 75614 status_set.backlog_limit = audit_backlog_limit;
@@ -75854,11 +75617,24 @@ index 8a667f10..7375e3f 100644
75854 status_set.backlog = skb_queue_len(&audit_skb_queue); 75617 status_set.backlog = skb_queue_len(&audit_skb_queue);
75855 audit_send_reply(NETLINK_CB(skb).portid, seq, AUDIT_GET, 0, 0, 75618 audit_send_reply(NETLINK_CB(skb).portid, seq, AUDIT_GET, 0, 0,
75856 &status_set, sizeof(status_set)); 75619 &status_set, sizeof(status_set));
75620diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c
75621index 6bd4a90..0ee9eff 100644
75622--- a/kernel/auditfilter.c
75623+++ b/kernel/auditfilter.c
75624@@ -423,7 +423,7 @@ static struct audit_entry *audit_data_to_entry(struct audit_rule_data *data,
75625 f->lsm_rule = NULL;
75626
75627 /* Support legacy tests for a valid loginuid */
75628- if ((f->type == AUDIT_LOGINUID) && (f->val == 4294967295)) {
75629+ if ((f->type == AUDIT_LOGINUID) && (f->val == 4294967295U)) {
75630 f->type = AUDIT_LOGINUID_SET;
75631 f->val = 0;
75632 }
75857diff --git a/kernel/auditsc.c b/kernel/auditsc.c 75633diff --git a/kernel/auditsc.c b/kernel/auditsc.c
75858index c4b72b0..8654c4e 100644 75634index 3c8a601..3a416f6 100644
75859--- a/kernel/auditsc.c 75635--- a/kernel/auditsc.c
75860+++ b/kernel/auditsc.c 75636+++ b/kernel/auditsc.c
75861@@ -2295,7 +2295,7 @@ int auditsc_get_stamp(struct audit_context *ctx, 75637@@ -1956,7 +1956,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
75862 } 75638 }
75863 75639
75864 /* global counter which is incremented every time something logs in */ 75640 /* global counter which is incremented every time something logs in */
@@ -75867,7 +75643,7 @@ index c4b72b0..8654c4e 100644
75867 75643
75868 /** 75644 /**
75869 * audit_set_loginuid - set current task's audit_context loginuid 75645 * audit_set_loginuid - set current task's audit_context loginuid
75870@@ -2319,7 +2319,7 @@ int audit_set_loginuid(kuid_t loginuid) 75646@@ -1980,7 +1980,7 @@ int audit_set_loginuid(kuid_t loginuid)
75871 return -EPERM; 75647 return -EPERM;
75872 #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */ 75648 #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
75873 75649
@@ -75973,10 +75749,10 @@ index f6c2ce5..982c0f9 100644
75973+ return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid); 75749+ return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid);
75974+} 75750+}
75975diff --git a/kernel/cgroup.c b/kernel/cgroup.c 75751diff --git a/kernel/cgroup.c b/kernel/cgroup.c
75976index 526f4ba..19cca33 100644 75752index c6e77ef..af531a0 100644
75977--- a/kernel/cgroup.c 75753--- a/kernel/cgroup.c
75978+++ b/kernel/cgroup.c 75754+++ b/kernel/cgroup.c
75979@@ -5580,7 +5580,7 @@ static int cgroup_css_links_read(struct cgroup *cont, 75755@@ -5391,7 +5391,7 @@ static int cgroup_css_links_read(struct cgroup *cont,
75980 struct css_set *cg = link->cg; 75756 struct css_set *cg = link->cg;
75981 struct task_struct *task; 75757 struct task_struct *task;
75982 int count = 0; 75758 int count = 0;
@@ -75986,7 +75762,7 @@ index 526f4ba..19cca33 100644
75986 if (count++ > MAX_TASKS_SHOWN_PER_CSS) { 75762 if (count++ > MAX_TASKS_SHOWN_PER_CSS) {
75987 seq_puts(seq, " ...\n"); 75763 seq_puts(seq, " ...\n");
75988diff --git a/kernel/compat.c b/kernel/compat.c 75764diff --git a/kernel/compat.c b/kernel/compat.c
75989index 19971d8..02fe2df 100644 75765index 0a09e48..f44f3f0 100644
75990--- a/kernel/compat.c 75766--- a/kernel/compat.c
75991+++ b/kernel/compat.c 75767+++ b/kernel/compat.c
75992@@ -13,6 +13,7 @@ 75768@@ -13,6 +13,7 @@
@@ -76033,16 +75809,7 @@ index 19971d8..02fe2df 100644
76033 set_fs(old_fs); 75809 set_fs(old_fs);
76034 75810
76035 if (!ret) { 75811 if (!ret) {
76036@@ -523,7 +524,7 @@ asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru) 75812@@ -533,8 +534,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
76037 mm_segment_t old_fs = get_fs();
76038
76039 set_fs(KERNEL_DS);
76040- ret = sys_getrusage(who, (struct rusage __user *) &r);
76041+ ret = sys_getrusage(who, (struct rusage __force_user *) &r);
76042 set_fs(old_fs);
76043
76044 if (ret)
76045@@ -552,8 +553,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
76046 set_fs (KERNEL_DS); 75813 set_fs (KERNEL_DS);
76047 ret = sys_wait4(pid, 75814 ret = sys_wait4(pid,
76048 (stat_addr ? 75815 (stat_addr ?
@@ -76053,7 +75820,7 @@ index 19971d8..02fe2df 100644
76053 set_fs (old_fs); 75820 set_fs (old_fs);
76054 75821
76055 if (ret > 0) { 75822 if (ret > 0) {
76056@@ -579,8 +580,8 @@ COMPAT_SYSCALL_DEFINE5(waitid, 75823@@ -560,8 +561,8 @@ COMPAT_SYSCALL_DEFINE5(waitid,
76057 memset(&info, 0, sizeof(info)); 75824 memset(&info, 0, sizeof(info));
76058 75825
76059 set_fs(KERNEL_DS); 75826 set_fs(KERNEL_DS);
@@ -76064,7 +75831,7 @@ index 19971d8..02fe2df 100644
76064 set_fs(old_fs); 75831 set_fs(old_fs);
76065 75832
76066 if ((ret < 0) || (info.si_signo == 0)) 75833 if ((ret < 0) || (info.si_signo == 0))
76067@@ -714,8 +715,8 @@ long compat_sys_timer_settime(timer_t timer_id, int flags, 75834@@ -695,8 +696,8 @@ long compat_sys_timer_settime(timer_t timer_id, int flags,
76068 oldfs = get_fs(); 75835 oldfs = get_fs();
76069 set_fs(KERNEL_DS); 75836 set_fs(KERNEL_DS);
76070 err = sys_timer_settime(timer_id, flags, 75837 err = sys_timer_settime(timer_id, flags,
@@ -76075,7 +75842,7 @@ index 19971d8..02fe2df 100644
76075 set_fs(oldfs); 75842 set_fs(oldfs);
76076 if (!err && old && put_compat_itimerspec(old, &oldts)) 75843 if (!err && old && put_compat_itimerspec(old, &oldts))
76077 return -EFAULT; 75844 return -EFAULT;
76078@@ -732,7 +733,7 @@ long compat_sys_timer_gettime(timer_t timer_id, 75845@@ -713,7 +714,7 @@ long compat_sys_timer_gettime(timer_t timer_id,
76079 oldfs = get_fs(); 75846 oldfs = get_fs();
76080 set_fs(KERNEL_DS); 75847 set_fs(KERNEL_DS);
76081 err = sys_timer_gettime(timer_id, 75848 err = sys_timer_gettime(timer_id,
@@ -76084,7 +75851,7 @@ index 19971d8..02fe2df 100644
76084 set_fs(oldfs); 75851 set_fs(oldfs);
76085 if (!err && put_compat_itimerspec(setting, &ts)) 75852 if (!err && put_compat_itimerspec(setting, &ts))
76086 return -EFAULT; 75853 return -EFAULT;
76087@@ -751,7 +752,7 @@ long compat_sys_clock_settime(clockid_t which_clock, 75854@@ -732,7 +733,7 @@ long compat_sys_clock_settime(clockid_t which_clock,
76088 oldfs = get_fs(); 75855 oldfs = get_fs();
76089 set_fs(KERNEL_DS); 75856 set_fs(KERNEL_DS);
76090 err = sys_clock_settime(which_clock, 75857 err = sys_clock_settime(which_clock,
@@ -76093,7 +75860,7 @@ index 19971d8..02fe2df 100644
76093 set_fs(oldfs); 75860 set_fs(oldfs);
76094 return err; 75861 return err;
76095 } 75862 }
76096@@ -766,7 +767,7 @@ long compat_sys_clock_gettime(clockid_t which_clock, 75863@@ -747,7 +748,7 @@ long compat_sys_clock_gettime(clockid_t which_clock,
76097 oldfs = get_fs(); 75864 oldfs = get_fs();
76098 set_fs(KERNEL_DS); 75865 set_fs(KERNEL_DS);
76099 err = sys_clock_gettime(which_clock, 75866 err = sys_clock_gettime(which_clock,
@@ -76102,7 +75869,7 @@ index 19971d8..02fe2df 100644
76102 set_fs(oldfs); 75869 set_fs(oldfs);
76103 if (!err && put_compat_timespec(&ts, tp)) 75870 if (!err && put_compat_timespec(&ts, tp))
76104 return -EFAULT; 75871 return -EFAULT;
76105@@ -786,7 +787,7 @@ long compat_sys_clock_adjtime(clockid_t which_clock, 75872@@ -767,7 +768,7 @@ long compat_sys_clock_adjtime(clockid_t which_clock,
76106 75873
76107 oldfs = get_fs(); 75874 oldfs = get_fs();
76108 set_fs(KERNEL_DS); 75875 set_fs(KERNEL_DS);
@@ -76111,7 +75878,7 @@ index 19971d8..02fe2df 100644
76111 set_fs(oldfs); 75878 set_fs(oldfs);
76112 75879
76113 err = compat_put_timex(utp, &txc); 75880 err = compat_put_timex(utp, &txc);
76114@@ -806,7 +807,7 @@ long compat_sys_clock_getres(clockid_t which_clock, 75881@@ -787,7 +788,7 @@ long compat_sys_clock_getres(clockid_t which_clock,
76115 oldfs = get_fs(); 75882 oldfs = get_fs();
76116 set_fs(KERNEL_DS); 75883 set_fs(KERNEL_DS);
76117 err = sys_clock_getres(which_clock, 75884 err = sys_clock_getres(which_clock,
@@ -76120,7 +75887,7 @@ index 19971d8..02fe2df 100644
76120 set_fs(oldfs); 75887 set_fs(oldfs);
76121 if (!err && tp && put_compat_timespec(&ts, tp)) 75888 if (!err && tp && put_compat_timespec(&ts, tp))
76122 return -EFAULT; 75889 return -EFAULT;
76123@@ -818,9 +819,9 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart) 75890@@ -799,9 +800,9 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
76124 long err; 75891 long err;
76125 mm_segment_t oldfs; 75892 mm_segment_t oldfs;
76126 struct timespec tu; 75893 struct timespec tu;
@@ -76132,7 +75899,7 @@ index 19971d8..02fe2df 100644
76132 oldfs = get_fs(); 75899 oldfs = get_fs();
76133 set_fs(KERNEL_DS); 75900 set_fs(KERNEL_DS);
76134 err = clock_nanosleep_restart(restart); 75901 err = clock_nanosleep_restart(restart);
76135@@ -852,8 +853,8 @@ long compat_sys_clock_nanosleep(clockid_t which_clock, int flags, 75902@@ -833,8 +834,8 @@ long compat_sys_clock_nanosleep(clockid_t which_clock, int flags,
76136 oldfs = get_fs(); 75903 oldfs = get_fs();
76137 set_fs(KERNEL_DS); 75904 set_fs(KERNEL_DS);
76138 err = sys_clock_nanosleep(which_clock, flags, 75905 err = sys_clock_nanosleep(which_clock, flags,
@@ -76144,7 +75911,7 @@ index 19971d8..02fe2df 100644
76144 75911
76145 if ((err == -ERESTART_RESTARTBLOCK) && rmtp && 75912 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
76146diff --git a/kernel/configs.c b/kernel/configs.c 75913diff --git a/kernel/configs.c b/kernel/configs.c
76147index 42e8fa0..9e7406b 100644 75914index c18b1f1..b9a0132 100644
76148--- a/kernel/configs.c 75915--- a/kernel/configs.c
76149+++ b/kernel/configs.c 75916+++ b/kernel/configs.c
76150@@ -74,8 +74,19 @@ static int __init ikconfig_init(void) 75917@@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
@@ -76310,7 +76077,7 @@ index e0573a4..3874e41 100644
76310 76077
76311 /** 76078 /**
76312diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c 76079diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
76313index c26278f..e323fb8 100644 76080index 0506d44..2c20034 100644
76314--- a/kernel/debug/debug_core.c 76081--- a/kernel/debug/debug_core.c
76315+++ b/kernel/debug/debug_core.c 76082+++ b/kernel/debug/debug_core.c
76316@@ -123,7 +123,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock); 76083@@ -123,7 +123,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
@@ -76396,10 +76163,10 @@ index 00eb8f7..d7e3244 100644
76396 #ifdef CONFIG_MODULE_UNLOAD 76163 #ifdef CONFIG_MODULE_UNLOAD
76397 { 76164 {
76398diff --git a/kernel/events/core.c b/kernel/events/core.c 76165diff --git a/kernel/events/core.c b/kernel/events/core.c
76399index f8ddcfb..77c06ec 100644 76166index e76e495..cbfe63a 100644
76400--- a/kernel/events/core.c 76167--- a/kernel/events/core.c
76401+++ b/kernel/events/core.c 76168+++ b/kernel/events/core.c
76402@@ -154,8 +154,15 @@ static struct srcu_struct pmus_srcu; 76169@@ -156,8 +156,15 @@ static struct srcu_struct pmus_srcu;
76403 * 0 - disallow raw tracepoint access for unpriv 76170 * 0 - disallow raw tracepoint access for unpriv
76404 * 1 - disallow cpu events for unpriv 76171 * 1 - disallow cpu events for unpriv
76405 * 2 - disallow kernel profiling for unpriv 76172 * 2 - disallow kernel profiling for unpriv
@@ -76416,7 +76183,7 @@ index f8ddcfb..77c06ec 100644
76416 76183
76417 /* Minimum for 512 kiB + 1 user control page */ 76184 /* Minimum for 512 kiB + 1 user control page */
76418 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ 76185 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
76419@@ -182,7 +189,7 @@ int perf_proc_update_handler(struct ctl_table *table, int write, 76186@@ -184,7 +191,7 @@ int perf_proc_update_handler(struct ctl_table *table, int write,
76420 return 0; 76187 return 0;
76421 } 76188 }
76422 76189
@@ -76425,7 +76192,7 @@ index f8ddcfb..77c06ec 100644
76425 76192
76426 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx, 76193 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
76427 enum event_type_t event_type); 76194 enum event_type_t event_type);
76428@@ -2674,7 +2681,7 @@ static void __perf_event_read(void *info) 76195@@ -2747,7 +2754,7 @@ static void __perf_event_read(void *info)
76429 76196
76430 static inline u64 perf_event_count(struct perf_event *event) 76197 static inline u64 perf_event_count(struct perf_event *event)
76431 { 76198 {
@@ -76434,7 +76201,7 @@ index f8ddcfb..77c06ec 100644
76434 } 76201 }
76435 76202
76436 static u64 perf_event_read(struct perf_event *event) 76203 static u64 perf_event_read(struct perf_event *event)
76437@@ -3020,9 +3027,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running) 76204@@ -3093,9 +3100,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
76438 mutex_lock(&event->child_mutex); 76205 mutex_lock(&event->child_mutex);
76439 total += perf_event_read(event); 76206 total += perf_event_read(event);
76440 *enabled += event->total_time_enabled + 76207 *enabled += event->total_time_enabled +
@@ -76446,7 +76213,7 @@ index f8ddcfb..77c06ec 100644
76446 76213
76447 list_for_each_entry(child, &event->child_list, child_list) { 76214 list_for_each_entry(child, &event->child_list, child_list) {
76448 total += perf_event_read(child); 76215 total += perf_event_read(child);
76449@@ -3408,10 +3415,10 @@ void perf_event_update_userpage(struct perf_event *event) 76216@@ -3481,10 +3488,10 @@ void perf_event_update_userpage(struct perf_event *event)
76450 userpg->offset -= local64_read(&event->hw.prev_count); 76217 userpg->offset -= local64_read(&event->hw.prev_count);
76451 76218
76452 userpg->time_enabled = enabled + 76219 userpg->time_enabled = enabled +
@@ -76459,7 +76226,7 @@ index f8ddcfb..77c06ec 100644
76459 76226
76460 arch_perf_update_userpage(userpg, now); 76227 arch_perf_update_userpage(userpg, now);
76461 76228
76462@@ -3961,7 +3968,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size, 76229@@ -4034,7 +4041,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
76463 76230
76464 /* Data. */ 76231 /* Data. */
76465 sp = perf_user_stack_pointer(regs); 76232 sp = perf_user_stack_pointer(regs);
@@ -76468,7 +76235,7 @@ index f8ddcfb..77c06ec 100644
76468 dyn_size = dump_size - rem; 76235 dyn_size = dump_size - rem;
76469 76236
76470 perf_output_skip(handle, rem); 76237 perf_output_skip(handle, rem);
76471@@ -4049,11 +4056,11 @@ static void perf_output_read_one(struct perf_output_handle *handle, 76238@@ -4122,11 +4129,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
76472 values[n++] = perf_event_count(event); 76239 values[n++] = perf_event_count(event);
76473 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) { 76240 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
76474 values[n++] = enabled + 76241 values[n++] = enabled +
@@ -76482,7 +76249,7 @@ index f8ddcfb..77c06ec 100644
76482 } 76249 }
76483 if (read_format & PERF_FORMAT_ID) 76250 if (read_format & PERF_FORMAT_ID)
76484 values[n++] = primary_event_id(event); 76251 values[n++] = primary_event_id(event);
76485@@ -4801,12 +4808,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event) 76252@@ -4835,12 +4842,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
76486 * need to add enough zero bytes after the string to handle 76253 * need to add enough zero bytes after the string to handle
76487 * the 64bit alignment we do later. 76254 * the 64bit alignment we do later.
76488 */ 76255 */
@@ -76497,7 +76264,7 @@ index f8ddcfb..77c06ec 100644
76497 if (IS_ERR(name)) { 76264 if (IS_ERR(name)) {
76498 name = strncpy(tmp, "//toolong", sizeof(tmp)); 76265 name = strncpy(tmp, "//toolong", sizeof(tmp));
76499 goto got_name; 76266 goto got_name;
76500@@ -6242,7 +6249,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu, 76267@@ -6262,7 +6269,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
76501 event->parent = parent_event; 76268 event->parent = parent_event;
76502 76269
76503 event->ns = get_pid_ns(task_active_pid_ns(current)); 76270 event->ns = get_pid_ns(task_active_pid_ns(current));
@@ -76506,7 +76273,7 @@ index f8ddcfb..77c06ec 100644
76506 76273
76507 event->state = PERF_EVENT_STATE_INACTIVE; 76274 event->state = PERF_EVENT_STATE_INACTIVE;
76508 76275
76509@@ -6552,6 +6559,11 @@ SYSCALL_DEFINE5(perf_event_open, 76276@@ -6572,6 +6579,11 @@ SYSCALL_DEFINE5(perf_event_open,
76510 if (flags & ~PERF_FLAG_ALL) 76277 if (flags & ~PERF_FLAG_ALL)
76511 return -EINVAL; 76278 return -EINVAL;
76512 76279
@@ -76518,7 +76285,7 @@ index f8ddcfb..77c06ec 100644
76518 err = perf_copy_attr(attr_uptr, &attr); 76285 err = perf_copy_attr(attr_uptr, &attr);
76519 if (err) 76286 if (err)
76520 return err; 76287 return err;
76521@@ -6884,10 +6896,10 @@ static void sync_child_event(struct perf_event *child_event, 76288@@ -6904,10 +6916,10 @@ static void sync_child_event(struct perf_event *child_event,
76522 /* 76289 /*
76523 * Add back the child's count to the parent's count: 76290 * Add back the child's count to the parent's count:
76524 */ 76291 */
@@ -76571,7 +76338,7 @@ index ca65997..cc8cee4 100644
76571 /* Callchain handling */ 76338 /* Callchain handling */
76572 extern struct perf_callchain_entry * 76339 extern struct perf_callchain_entry *
76573diff --git a/kernel/exit.c b/kernel/exit.c 76340diff --git a/kernel/exit.c b/kernel/exit.c
76574index 60bc027..ca6d727 100644 76341index 7bb73f9..d7978ed 100644
76575--- a/kernel/exit.c 76342--- a/kernel/exit.c
76576+++ b/kernel/exit.c 76343+++ b/kernel/exit.c
76577@@ -172,6 +172,10 @@ void release_task(struct task_struct * p) 76344@@ -172,6 +172,10 @@ void release_task(struct task_struct * p)
@@ -76594,7 +76361,7 @@ index 60bc027..ca6d727 100644
76594 recalc_sigpending(); 76361 recalc_sigpending();
76595 spin_unlock_irq(&current->sighand->siglock); 76362 spin_unlock_irq(&current->sighand->siglock);
76596 return 0; 76363 return 0;
76597@@ -710,6 +714,8 @@ void do_exit(long code) 76364@@ -709,6 +713,8 @@ void do_exit(long code)
76598 struct task_struct *tsk = current; 76365 struct task_struct *tsk = current;
76599 int group_dead; 76366 int group_dead;
76600 76367
@@ -76603,7 +76370,7 @@ index 60bc027..ca6d727 100644
76603 profile_task_exit(tsk); 76370 profile_task_exit(tsk);
76604 76371
76605 WARN_ON(blk_needs_flush_plug(tsk)); 76372 WARN_ON(blk_needs_flush_plug(tsk));
76606@@ -726,7 +732,6 @@ void do_exit(long code) 76373@@ -725,7 +731,6 @@ void do_exit(long code)
76607 * mm_release()->clear_child_tid() from writing to a user-controlled 76374 * mm_release()->clear_child_tid() from writing to a user-controlled
76608 * kernel address. 76375 * kernel address.
76609 */ 76376 */
@@ -76611,7 +76378,7 @@ index 60bc027..ca6d727 100644
76611 76378
76612 ptrace_event(PTRACE_EVENT_EXIT, code); 76379 ptrace_event(PTRACE_EVENT_EXIT, code);
76613 76380
76614@@ -785,6 +790,9 @@ void do_exit(long code) 76381@@ -784,6 +789,9 @@ void do_exit(long code)
76615 tsk->exit_code = code; 76382 tsk->exit_code = code;
76616 taskstats_exit(tsk, group_dead); 76383 taskstats_exit(tsk, group_dead);
76617 76384
@@ -76631,10 +76398,10 @@ index 60bc027..ca6d727 100644
76631 { 76398 {
76632 struct signal_struct *sig = current->signal; 76399 struct signal_struct *sig = current->signal;
76633diff --git a/kernel/fork.c b/kernel/fork.c 76400diff --git a/kernel/fork.c b/kernel/fork.c
76634index 1766d32..c0e44e2 100644 76401index 987b28a..e0102b2 100644
76635--- a/kernel/fork.c 76402--- a/kernel/fork.c
76636+++ b/kernel/fork.c 76403+++ b/kernel/fork.c
76637@@ -318,7 +318,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) 76404@@ -319,7 +319,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
76638 *stackend = STACK_END_MAGIC; /* for overflow detection */ 76405 *stackend = STACK_END_MAGIC; /* for overflow detection */
76639 76406
76640 #ifdef CONFIG_CC_STACKPROTECTOR 76407 #ifdef CONFIG_CC_STACKPROTECTOR
@@ -76643,7 +76410,7 @@ index 1766d32..c0e44e2 100644
76643 #endif 76410 #endif
76644 76411
76645 /* 76412 /*
76646@@ -344,13 +344,81 @@ free_tsk: 76413@@ -345,13 +345,81 @@ free_tsk:
76647 } 76414 }
76648 76415
76649 #ifdef CONFIG_MMU 76416 #ifdef CONFIG_MMU
@@ -76727,7 +76494,7 @@ index 1766d32..c0e44e2 100644
76727 76494
76728 uprobe_start_dup_mmap(); 76495 uprobe_start_dup_mmap();
76729 down_write(&oldmm->mmap_sem); 76496 down_write(&oldmm->mmap_sem);
76730@@ -364,8 +432,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) 76497@@ -365,8 +433,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
76731 mm->locked_vm = 0; 76498 mm->locked_vm = 0;
76732 mm->mmap = NULL; 76499 mm->mmap = NULL;
76733 mm->mmap_cache = NULL; 76500 mm->mmap_cache = NULL;
@@ -76738,7 +76505,7 @@ index 1766d32..c0e44e2 100644
76738 mm->map_count = 0; 76505 mm->map_count = 0;
76739 cpumask_clear(mm_cpumask(mm)); 76506 cpumask_clear(mm_cpumask(mm));
76740 mm->mm_rb = RB_ROOT; 76507 mm->mm_rb = RB_ROOT;
76741@@ -381,57 +449,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) 76508@@ -382,57 +450,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
76742 76509
76743 prev = NULL; 76510 prev = NULL;
76744 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) { 76511 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
@@ -76800,7 +76567,7 @@ index 1766d32..c0e44e2 100644
76800 } 76567 }
76801 76568
76802 /* 76569 /*
76803@@ -463,6 +489,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) 76570@@ -464,6 +490,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
76804 if (retval) 76571 if (retval)
76805 goto out; 76572 goto out;
76806 } 76573 }
@@ -76832,7 +76599,7 @@ index 1766d32..c0e44e2 100644
76832 /* a new mm has just been created */ 76599 /* a new mm has just been created */
76833 arch_dup_mmap(oldmm, mm); 76600 arch_dup_mmap(oldmm, mm);
76834 retval = 0; 76601 retval = 0;
76835@@ -472,14 +523,6 @@ out: 76602@@ -473,14 +524,6 @@ out:
76836 up_write(&oldmm->mmap_sem); 76603 up_write(&oldmm->mmap_sem);
76837 uprobe_end_dup_mmap(); 76604 uprobe_end_dup_mmap();
76838 return retval; 76605 return retval;
@@ -76847,7 +76614,7 @@ index 1766d32..c0e44e2 100644
76847 } 76614 }
76848 76615
76849 static inline int mm_alloc_pgd(struct mm_struct *mm) 76616 static inline int mm_alloc_pgd(struct mm_struct *mm)
76850@@ -694,8 +737,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode) 76617@@ -695,8 +738,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
76851 return ERR_PTR(err); 76618 return ERR_PTR(err);
76852 76619
76853 mm = get_task_mm(task); 76620 mm = get_task_mm(task);
@@ -76858,7 +76625,7 @@ index 1766d32..c0e44e2 100644
76858 mmput(mm); 76625 mmput(mm);
76859 mm = ERR_PTR(-EACCES); 76626 mm = ERR_PTR(-EACCES);
76860 } 76627 }
76861@@ -917,13 +960,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk) 76628@@ -918,13 +961,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
76862 spin_unlock(&fs->lock); 76629 spin_unlock(&fs->lock);
76863 return -EAGAIN; 76630 return -EAGAIN;
76864 } 76631 }
@@ -76880,7 +76647,7 @@ index 1766d32..c0e44e2 100644
76880 return 0; 76647 return 0;
76881 } 76648 }
76882 76649
76883@@ -1196,6 +1246,9 @@ static struct task_struct *copy_process(unsigned long clone_flags, 76650@@ -1197,10 +1247,13 @@ static struct task_struct *copy_process(unsigned long clone_flags,
76884 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled); 76651 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
76885 #endif 76652 #endif
76886 retval = -EAGAIN; 76653 retval = -EAGAIN;
@@ -76889,8 +76656,14 @@ index 1766d32..c0e44e2 100644
76889+ 76656+
76890 if (atomic_read(&p->real_cred->user->processes) >= 76657 if (atomic_read(&p->real_cred->user->processes) >=
76891 task_rlimit(p, RLIMIT_NPROC)) { 76658 task_rlimit(p, RLIMIT_NPROC)) {
76892 if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) && 76659- if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE) &&
76893@@ -1441,6 +1494,11 @@ static struct task_struct *copy_process(unsigned long clone_flags, 76660- p->real_cred->user != INIT_USER)
76661+ if (p->real_cred->user != INIT_USER &&
76662+ !capable(CAP_SYS_RESOURCE) && !capable(CAP_SYS_ADMIN))
76663 goto bad_fork_free;
76664 }
76665 current->flags &= ~PF_NPROC_EXCEEDED;
76666@@ -1446,6 +1499,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
76894 goto bad_fork_free_pid; 76667 goto bad_fork_free_pid;
76895 } 76668 }
76896 76669
@@ -76902,7 +76675,7 @@ index 1766d32..c0e44e2 100644
76902 if (clone_flags & CLONE_THREAD) { 76675 if (clone_flags & CLONE_THREAD) {
76903 current->signal->nr_threads++; 76676 current->signal->nr_threads++;
76904 atomic_inc(&current->signal->live); 76677 atomic_inc(&current->signal->live);
76905@@ -1524,6 +1582,8 @@ bad_fork_cleanup_count: 76678@@ -1529,6 +1587,8 @@ bad_fork_cleanup_count:
76906 bad_fork_free: 76679 bad_fork_free:
76907 free_task(p); 76680 free_task(p);
76908 fork_out: 76681 fork_out:
@@ -76911,7 +76684,7 @@ index 1766d32..c0e44e2 100644
76911 return ERR_PTR(retval); 76684 return ERR_PTR(retval);
76912 } 76685 }
76913 76686
76914@@ -1574,6 +1634,23 @@ long do_fork(unsigned long clone_flags, 76687@@ -1579,6 +1639,23 @@ long do_fork(unsigned long clone_flags,
76915 return -EINVAL; 76688 return -EINVAL;
76916 } 76689 }
76917 76690
@@ -76935,7 +76708,7 @@ index 1766d32..c0e44e2 100644
76935 /* 76708 /*
76936 * Determine whether and which event to report to ptracer. When 76709 * Determine whether and which event to report to ptracer. When
76937 * called from kernel_thread or CLONE_UNTRACED is explicitly 76710 * called from kernel_thread or CLONE_UNTRACED is explicitly
76938@@ -1608,6 +1685,8 @@ long do_fork(unsigned long clone_flags, 76711@@ -1613,6 +1690,8 @@ long do_fork(unsigned long clone_flags,
76939 if (clone_flags & CLONE_PARENT_SETTID) 76712 if (clone_flags & CLONE_PARENT_SETTID)
76940 put_user(nr, parent_tidptr); 76713 put_user(nr, parent_tidptr);
76941 76714
@@ -76944,7 +76717,16 @@ index 1766d32..c0e44e2 100644
76944 if (clone_flags & CLONE_VFORK) { 76717 if (clone_flags & CLONE_VFORK) {
76945 p->vfork_done = &vfork; 76718 p->vfork_done = &vfork;
76946 init_completion(&vfork); 76719 init_completion(&vfork);
76947@@ -1761,7 +1840,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp) 76720@@ -1723,7 +1802,7 @@ void __init proc_caches_init(void)
76721 mm_cachep = kmem_cache_create("mm_struct",
76722 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
76723 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
76724- vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC);
76725+ vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC | SLAB_NO_SANITIZE);
76726 mmap_init();
76727 nsproxy_cache_init();
76728 }
76729@@ -1763,7 +1842,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
76948 return 0; 76730 return 0;
76949 76731
76950 /* don't need lock here; in the worst case we'll do useless copy */ 76732 /* don't need lock here; in the worst case we'll do useless copy */
@@ -76953,7 +76735,7 @@ index 1766d32..c0e44e2 100644
76953 return 0; 76735 return 0;
76954 76736
76955 *new_fsp = copy_fs_struct(fs); 76737 *new_fsp = copy_fs_struct(fs);
76956@@ -1873,7 +1952,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) 76738@@ -1875,7 +1954,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
76957 fs = current->fs; 76739 fs = current->fs;
76958 spin_lock(&fs->lock); 76740 spin_lock(&fs->lock);
76959 current->fs = new_fs; 76741 current->fs = new_fs;
@@ -77046,67 +76828,19 @@ index 9b22d03..6295b62 100644
77046 prev->next = info->next; 76828 prev->next = info->next;
77047 else 76829 else
77048diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c 76830diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
77049index 7ef5556..f67a983 100644 76831index 2288fbd..0f3941f 100644
77050--- a/kernel/hrtimer.c 76832--- a/kernel/hrtimer.c
77051+++ b/kernel/hrtimer.c 76833+++ b/kernel/hrtimer.c
77052@@ -709,17 +709,20 @@ static int hrtimer_switch_to_hres(void) 76834@@ -1435,7 +1435,7 @@ void hrtimer_peek_ahead_timers(void)
77053 return 1;
77054 }
77055
77056+static void clock_was_set_work(struct work_struct *work)
77057+{
77058+ clock_was_set();
77059+}
77060+
77061+static DECLARE_WORK(hrtimer_work, clock_was_set_work);
77062+
77063 /*
77064- * Called from timekeeping code to reprogramm the hrtimer interrupt
77065- * device. If called from the timer interrupt context we defer it to
77066- * softirq context.
77067+ * Called from timekeeping and resume code to reprogramm the hrtimer
77068+ * interrupt device on all cpus.
77069 */
77070 void clock_was_set_delayed(void)
77071 {
77072- struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
77073-
77074- cpu_base->clock_was_set = 1;
77075- __raise_softirq_irqoff(HRTIMER_SOFTIRQ);
77076+ schedule_work(&hrtimer_work);
77077 }
77078
77079 #else
77080@@ -768,8 +771,10 @@ void hrtimers_resume(void)
77081 WARN_ONCE(!irqs_disabled(),
77082 KERN_INFO "hrtimers_resume() called with IRQs enabled!");
77083
77084+ /* Retrigger on the local CPU */
77085 retrigger_next_event(NULL);
77086- timerfd_clock_was_set();
77087+ /* And schedule a retrigger for all others */
77088+ clock_was_set_delayed();
77089 }
77090
77091 static inline void timer_stats_hrtimer_set_start_info(struct hrtimer *timer)
77092@@ -1416,15 +1421,8 @@ void hrtimer_peek_ahead_timers(void)
77093 local_irq_restore(flags); 76835 local_irq_restore(flags);
77094 } 76836 }
77095 76837
77096-static void run_hrtimer_softirq(struct softirq_action *h) 76838-static void run_hrtimer_softirq(struct softirq_action *h)
77097+static void run_hrtimer_softirq(void) 76839+static void run_hrtimer_softirq(void)
77098 { 76840 {
77099- struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
77100-
77101- if (cpu_base->clock_was_set) {
77102- cpu_base->clock_was_set = 0;
77103- clock_was_set();
77104- }
77105-
77106 hrtimer_peek_ahead_timers(); 76841 hrtimer_peek_ahead_timers();
77107 } 76842 }
77108 76843@@ -1770,7 +1770,7 @@ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,
77109@@ -1758,7 +1756,7 @@ static int __cpuinit hrtimer_cpu_notify(struct notifier_block *self,
77110 return NOTIFY_OK; 76844 return NOTIFY_OK;
77111 } 76845 }
77112 76846
@@ -77172,7 +76906,7 @@ index 60f48fa..7f3a770 100644
77172 76906
77173 static int 76907 static int
77174diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c 76908diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
77175index 2169fee..706ccca 100644 76909index 3127ad5..159d880 100644
77176--- a/kernel/kallsyms.c 76910--- a/kernel/kallsyms.c
77177+++ b/kernel/kallsyms.c 76911+++ b/kernel/kallsyms.c
77178@@ -11,6 +11,9 @@ 76912@@ -11,6 +11,9 @@
@@ -77248,7 +76982,7 @@ index 2169fee..706ccca 100644
77248 if (all_var) 76982 if (all_var)
77249 return is_kernel(addr); 76983 return is_kernel(addr);
77250 76984
77251@@ -470,7 +509,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter) 76985@@ -480,7 +519,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter)
77252 76986
77253 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos) 76987 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
77254 { 76988 {
@@ -77256,7 +76990,7 @@ index 2169fee..706ccca 100644
77256 iter->nameoff = get_symbol_offset(new_pos); 76990 iter->nameoff = get_symbol_offset(new_pos);
77257 iter->pos = new_pos; 76991 iter->pos = new_pos;
77258 } 76992 }
77259@@ -518,6 +556,11 @@ static int s_show(struct seq_file *m, void *p) 76993@@ -528,6 +566,11 @@ static int s_show(struct seq_file *m, void *p)
77260 { 76994 {
77261 struct kallsym_iter *iter = m->private; 76995 struct kallsym_iter *iter = m->private;
77262 76996
@@ -77268,7 +77002,7 @@ index 2169fee..706ccca 100644
77268 /* Some debugging symbols have no name. Ignore them. */ 77002 /* Some debugging symbols have no name. Ignore them. */
77269 if (!iter->name[0]) 77003 if (!iter->name[0])
77270 return 0; 77004 return 0;
77271@@ -531,6 +574,7 @@ static int s_show(struct seq_file *m, void *p) 77005@@ -541,6 +584,7 @@ static int s_show(struct seq_file *m, void *p)
77272 */ 77006 */
77273 type = iter->exported ? toupper(iter->type) : 77007 type = iter->exported ? toupper(iter->type) :
77274 tolower(iter->type); 77008 tolower(iter->type);
@@ -77276,7 +77010,7 @@ index 2169fee..706ccca 100644
77276 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value, 77010 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
77277 type, iter->name, iter->module_name); 77011 type, iter->name, iter->module_name);
77278 } else 77012 } else
77279@@ -556,7 +600,7 @@ static int kallsyms_open(struct inode *inode, struct file *file) 77013@@ -566,7 +610,7 @@ static int kallsyms_open(struct inode *inode, struct file *file)
77280 struct kallsym_iter *iter; 77014 struct kallsym_iter *iter;
77281 int ret; 77015 int ret;
77282 77016
@@ -77301,10 +77035,10 @@ index e30ac0f..3528cac 100644
77301 77035
77302 /* 77036 /*
77303diff --git a/kernel/kexec.c b/kernel/kexec.c 77037diff --git a/kernel/kexec.c b/kernel/kexec.c
77304index ffd4e11..c3ff6bf 100644 77038index 59f7b55..4022f65 100644
77305--- a/kernel/kexec.c 77039--- a/kernel/kexec.c
77306+++ b/kernel/kexec.c 77040+++ b/kernel/kexec.c
77307@@ -1048,7 +1048,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry, 77041@@ -1041,7 +1041,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry,
77308 unsigned long flags) 77042 unsigned long flags)
77309 { 77043 {
77310 struct compat_kexec_segment in; 77044 struct compat_kexec_segment in;
@@ -77315,7 +77049,7 @@ index ffd4e11..c3ff6bf 100644
77315 77049
77316 /* Don't allow clients that don't understand the native 77050 /* Don't allow clients that don't understand the native
77317diff --git a/kernel/kmod.c b/kernel/kmod.c 77051diff --git a/kernel/kmod.c b/kernel/kmod.c
77318index 8985c87..f539dbe 100644 77052index 8241906..d625f2c 100644
77319--- a/kernel/kmod.c 77053--- a/kernel/kmod.c
77320+++ b/kernel/kmod.c 77054+++ b/kernel/kmod.c
77321@@ -75,7 +75,7 @@ static void free_modprobe_argv(struct subprocess_info *info) 77055@@ -75,7 +75,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
@@ -77325,9 +77059,9 @@ index 8985c87..f539dbe 100644
77325-static int call_modprobe(char *module_name, int wait) 77059-static int call_modprobe(char *module_name, int wait)
77326+static int call_modprobe(char *module_name, char *module_param, int wait) 77060+static int call_modprobe(char *module_name, char *module_param, int wait)
77327 { 77061 {
77062 struct subprocess_info *info;
77328 static char *envp[] = { 77063 static char *envp[] = {
77329 "HOME=/", 77064@@ -85,7 +85,7 @@ static int call_modprobe(char *module_name, int wait)
77330@@ -84,7 +84,7 @@ static int call_modprobe(char *module_name, int wait)
77331 NULL 77065 NULL
77332 }; 77066 };
77333 77067
@@ -77336,7 +77070,7 @@ index 8985c87..f539dbe 100644
77336 if (!argv) 77070 if (!argv)
77337 goto out; 77071 goto out;
77338 77072
77339@@ -96,7 +96,8 @@ static int call_modprobe(char *module_name, int wait) 77073@@ -97,7 +97,8 @@ static int call_modprobe(char *module_name, int wait)
77340 argv[1] = "-q"; 77074 argv[1] = "-q";
77341 argv[2] = "--"; 77075 argv[2] = "--";
77342 argv[3] = module_name; /* check free_modprobe_argv() */ 77076 argv[3] = module_name; /* check free_modprobe_argv() */
@@ -77344,9 +77078,9 @@ index 8985c87..f539dbe 100644
77344+ argv[4] = module_param; 77078+ argv[4] = module_param;
77345+ argv[5] = NULL; 77079+ argv[5] = NULL;
77346 77080
77347 return call_usermodehelper_fns(modprobe_path, argv, envp, 77081 info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL,
77348 wait | UMH_KILLABLE, NULL, free_modprobe_argv, NULL); 77082 NULL, free_modprobe_argv, NULL);
77349@@ -121,9 +122,8 @@ out: 77083@@ -129,9 +130,8 @@ out:
77350 * If module auto-loading support is disabled then this function 77084 * If module auto-loading support is disabled then this function
77351 * becomes a no-operation. 77085 * becomes a no-operation.
77352 */ 77086 */
@@ -77357,7 +77091,7 @@ index 8985c87..f539dbe 100644
77357 char module_name[MODULE_NAME_LEN]; 77091 char module_name[MODULE_NAME_LEN];
77358 unsigned int max_modprobes; 77092 unsigned int max_modprobes;
77359 int ret; 77093 int ret;
77360@@ -139,9 +139,7 @@ int __request_module(bool wait, const char *fmt, ...) 77094@@ -147,9 +147,7 @@ int __request_module(bool wait, const char *fmt, ...)
77361 */ 77095 */
77362 WARN_ON_ONCE(wait && current_is_async()); 77096 WARN_ON_ONCE(wait && current_is_async());
77363 77097
@@ -77368,7 +77102,7 @@ index 8985c87..f539dbe 100644
77368 if (ret >= MODULE_NAME_LEN) 77102 if (ret >= MODULE_NAME_LEN)
77369 return -ENAMETOOLONG; 77103 return -ENAMETOOLONG;
77370 77104
77371@@ -149,6 +147,20 @@ int __request_module(bool wait, const char *fmt, ...) 77105@@ -157,6 +155,20 @@ int __request_module(bool wait, const char *fmt, ...)
77372 if (ret) 77106 if (ret)
77373 return ret; 77107 return ret;
77374 77108
@@ -77389,7 +77123,7 @@ index 8985c87..f539dbe 100644
77389 /* If modprobe needs a service that is in a module, we get a recursive 77123 /* If modprobe needs a service that is in a module, we get a recursive
77390 * loop. Limit the number of running kmod threads to max_threads/2 or 77124 * loop. Limit the number of running kmod threads to max_threads/2 or
77391 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method 77125 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
77392@@ -177,11 +189,52 @@ int __request_module(bool wait, const char *fmt, ...) 77126@@ -185,11 +197,52 @@ int __request_module(bool wait, const char *fmt, ...)
77393 77127
77394 trace_module_request(module_name, wait, _RET_IP_); 77128 trace_module_request(module_name, wait, _RET_IP_);
77395 77129
@@ -77443,7 +77177,7 @@ index 8985c87..f539dbe 100644
77443 EXPORT_SYMBOL(__request_module); 77177 EXPORT_SYMBOL(__request_module);
77444 #endif /* CONFIG_MODULES */ 77178 #endif /* CONFIG_MODULES */
77445 77179
77446@@ -292,7 +345,7 @@ static int wait_for_helper(void *data) 77180@@ -300,7 +353,7 @@ static int wait_for_helper(void *data)
77447 * 77181 *
77448 * Thus the __user pointer cast is valid here. 77182 * Thus the __user pointer cast is valid here.
77449 */ 77183 */
@@ -77452,7 +77186,7 @@ index 8985c87..f539dbe 100644
77452 77186
77453 /* 77187 /*
77454 * If ret is 0, either ____call_usermodehelper failed and the 77188 * If ret is 0, either ____call_usermodehelper failed and the
77455@@ -649,7 +702,7 @@ EXPORT_SYMBOL(call_usermodehelper_fns); 77189@@ -651,7 +704,7 @@ EXPORT_SYMBOL(call_usermodehelper);
77456 static int proc_cap_handler(struct ctl_table *table, int write, 77190 static int proc_cap_handler(struct ctl_table *table, int write,
77457 void __user *buffer, size_t *lenp, loff_t *ppos) 77191 void __user *buffer, size_t *lenp, loff_t *ppos)
77458 { 77192 {
@@ -77462,7 +77196,7 @@ index 8985c87..f539dbe 100644
77462 kernel_cap_t new_cap; 77196 kernel_cap_t new_cap;
77463 int err, i; 77197 int err, i;
77464diff --git a/kernel/kprobes.c b/kernel/kprobes.c 77198diff --git a/kernel/kprobes.c b/kernel/kprobes.c
77465index 3fed7f0..a3f95ed 100644 77199index bddf3b2..07b90dd 100644
77466--- a/kernel/kprobes.c 77200--- a/kernel/kprobes.c
77467+++ b/kernel/kprobes.c 77201+++ b/kernel/kprobes.c
77468@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_insn_slot(struct kprobe_insn_cache *c) 77202@@ -185,7 +185,7 @@ static kprobe_opcode_t __kprobes *__get_insn_slot(struct kprobe_insn_cache *c)
@@ -77483,7 +77217,7 @@ index 3fed7f0..a3f95ed 100644
77483 kfree(kip); 77217 kfree(kip);
77484 } 77218 }
77485 return 1; 77219 return 1;
77486@@ -2073,7 +2073,7 @@ static int __init init_kprobes(void) 77220@@ -2083,7 +2083,7 @@ static int __init init_kprobes(void)
77487 { 77221 {
77488 int i, err = 0; 77222 int i, err = 0;
77489 unsigned long offset = 0, size = 0; 77223 unsigned long offset = 0, size = 0;
@@ -77492,7 +77226,7 @@ index 3fed7f0..a3f95ed 100644
77492 const char *symbol_name; 77226 const char *symbol_name;
77493 void *addr; 77227 void *addr;
77494 struct kprobe_blackpoint *kb; 77228 struct kprobe_blackpoint *kb;
77495@@ -2158,11 +2158,11 @@ static void __kprobes report_probe(struct seq_file *pi, struct kprobe *p, 77229@@ -2168,11 +2168,11 @@ static void __kprobes report_probe(struct seq_file *pi, struct kprobe *p,
77496 kprobe_type = "k"; 77230 kprobe_type = "k";
77497 77231
77498 if (sym) 77232 if (sym)
@@ -77506,7 +77240,7 @@ index 3fed7f0..a3f95ed 100644
77506 p->addr, kprobe_type, p->addr); 77240 p->addr, kprobe_type, p->addr);
77507 77241
77508 if (!pp) 77242 if (!pp)
77509@@ -2199,7 +2199,7 @@ static int __kprobes show_kprobe_addr(struct seq_file *pi, void *v) 77243@@ -2209,7 +2209,7 @@ static int __kprobes show_kprobe_addr(struct seq_file *pi, void *v)
77510 const char *sym = NULL; 77244 const char *sym = NULL;
77511 unsigned int i = *(loff_t *) v; 77245 unsigned int i = *(loff_t *) v;
77512 unsigned long offset = 0; 77246 unsigned long offset = 0;
@@ -77538,10 +77272,10 @@ index 6ada93c..dce7d5d 100644
77538 .name = "notes", 77272 .name = "notes",
77539 .mode = S_IRUGO, 77273 .mode = S_IRUGO,
77540diff --git a/kernel/lockdep.c b/kernel/lockdep.c 77274diff --git a/kernel/lockdep.c b/kernel/lockdep.c
77541index 8a0efac..56f1e2d 100644 77275index 1f3186b..bb7dbc6 100644
77542--- a/kernel/lockdep.c 77276--- a/kernel/lockdep.c
77543+++ b/kernel/lockdep.c 77277+++ b/kernel/lockdep.c
77544@@ -590,6 +590,10 @@ static int static_obj(void *obj) 77278@@ -596,6 +596,10 @@ static int static_obj(void *obj)
77545 end = (unsigned long) &_end, 77279 end = (unsigned long) &_end,
77546 addr = (unsigned long) obj; 77280 addr = (unsigned long) obj;
77547 77281
@@ -77552,7 +77286,7 @@ index 8a0efac..56f1e2d 100644
77552 /* 77286 /*
77553 * static variable? 77287 * static variable?
77554 */ 77288 */
77555@@ -730,6 +734,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force) 77289@@ -736,6 +740,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
77556 if (!static_obj(lock->key)) { 77290 if (!static_obj(lock->key)) {
77557 debug_locks_off(); 77291 debug_locks_off();
77558 printk("INFO: trying to register non-static key.\n"); 77292 printk("INFO: trying to register non-static key.\n");
@@ -77560,7 +77294,7 @@ index 8a0efac..56f1e2d 100644
77560 printk("the code is fine but needs lockdep annotation.\n"); 77294 printk("the code is fine but needs lockdep annotation.\n");
77561 printk("turning off the locking correctness validator.\n"); 77295 printk("turning off the locking correctness validator.\n");
77562 dump_stack(); 77296 dump_stack();
77563@@ -3078,7 +3083,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass, 77297@@ -3080,7 +3085,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
77564 if (!class) 77298 if (!class)
77565 return 0; 77299 return 0;
77566 } 77300 }
@@ -77619,7 +77353,7 @@ index b2c71c5..7b88d63 100644
77619 seq_printf(m, "%40s %14lu %29s %pS\n", 77353 seq_printf(m, "%40s %14lu %29s %pS\n",
77620 name, stats->contending_point[i], 77354 name, stats->contending_point[i],
77621diff --git a/kernel/module.c b/kernel/module.c 77355diff --git a/kernel/module.c b/kernel/module.c
77622index a55f61b..1561428 100644 77356index fa53db8..6f17200 100644
77623--- a/kernel/module.c 77357--- a/kernel/module.c
77624+++ b/kernel/module.c 77358+++ b/kernel/module.c
77625@@ -61,6 +61,7 @@ 77359@@ -61,6 +61,7 @@
@@ -77685,7 +77419,7 @@ index a55f61b..1561428 100644
77685 } 77419 }
77686 77420
77687 static struct module_attribute modinfo_initsize = 77421 static struct module_attribute modinfo_initsize =
77688@@ -1312,7 +1314,7 @@ resolve_symbol_wait(struct module *mod, 77422@@ -1313,7 +1315,7 @@ resolve_symbol_wait(struct module *mod,
77689 */ 77423 */
77690 #ifdef CONFIG_SYSFS 77424 #ifdef CONFIG_SYSFS
77691 77425
@@ -77694,7 +77428,7 @@ index a55f61b..1561428 100644
77694 static inline bool sect_empty(const Elf_Shdr *sect) 77428 static inline bool sect_empty(const Elf_Shdr *sect)
77695 { 77429 {
77696 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0; 77430 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
77697@@ -1452,7 +1454,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info) 77431@@ -1453,7 +1455,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
77698 { 77432 {
77699 unsigned int notes, loaded, i; 77433 unsigned int notes, loaded, i;
77700 struct module_notes_attrs *notes_attrs; 77434 struct module_notes_attrs *notes_attrs;
@@ -77703,7 +77437,7 @@ index a55f61b..1561428 100644
77703 77437
77704 /* failed to create section attributes, so can't create notes */ 77438 /* failed to create section attributes, so can't create notes */
77705 if (!mod->sect_attrs) 77439 if (!mod->sect_attrs)
77706@@ -1564,7 +1566,7 @@ static void del_usage_links(struct module *mod) 77440@@ -1565,7 +1567,7 @@ static void del_usage_links(struct module *mod)
77707 static int module_add_modinfo_attrs(struct module *mod) 77441 static int module_add_modinfo_attrs(struct module *mod)
77708 { 77442 {
77709 struct module_attribute *attr; 77443 struct module_attribute *attr;
@@ -77712,7 +77446,7 @@ index a55f61b..1561428 100644
77712 int error = 0; 77446 int error = 0;
77713 int i; 77447 int i;
77714 77448
77715@@ -1778,21 +1780,21 @@ static void set_section_ro_nx(void *base, 77449@@ -1779,21 +1781,21 @@ static void set_section_ro_nx(void *base,
77716 77450
77717 static void unset_module_core_ro_nx(struct module *mod) 77451 static void unset_module_core_ro_nx(struct module *mod)
77718 { 77452 {
@@ -77742,7 +77476,7 @@ index a55f61b..1561428 100644
77742 set_memory_rw); 77476 set_memory_rw);
77743 } 77477 }
77744 77478
77745@@ -1805,14 +1807,14 @@ void set_all_modules_text_rw(void) 77479@@ -1806,14 +1808,14 @@ void set_all_modules_text_rw(void)
77746 list_for_each_entry_rcu(mod, &modules, list) { 77480 list_for_each_entry_rcu(mod, &modules, list) {
77747 if (mod->state == MODULE_STATE_UNFORMED) 77481 if (mod->state == MODULE_STATE_UNFORMED)
77748 continue; 77482 continue;
@@ -77763,7 +77497,7 @@ index a55f61b..1561428 100644
77763 set_memory_rw); 77497 set_memory_rw);
77764 } 77498 }
77765 } 77499 }
77766@@ -1828,14 +1830,14 @@ void set_all_modules_text_ro(void) 77500@@ -1829,14 +1831,14 @@ void set_all_modules_text_ro(void)
77767 list_for_each_entry_rcu(mod, &modules, list) { 77501 list_for_each_entry_rcu(mod, &modules, list) {
77768 if (mod->state == MODULE_STATE_UNFORMED) 77502 if (mod->state == MODULE_STATE_UNFORMED)
77769 continue; 77503 continue;
@@ -77784,7 +77518,7 @@ index a55f61b..1561428 100644
77784 set_memory_ro); 77518 set_memory_ro);
77785 } 77519 }
77786 } 77520 }
77787@@ -1886,16 +1888,19 @@ static void free_module(struct module *mod) 77521@@ -1887,16 +1889,19 @@ static void free_module(struct module *mod)
77788 77522
77789 /* This may be NULL, but that's OK */ 77523 /* This may be NULL, but that's OK */
77790 unset_module_init_ro_nx(mod); 77524 unset_module_init_ro_nx(mod);
@@ -77807,7 +77541,7 @@ index a55f61b..1561428 100644
77807 77541
77808 #ifdef CONFIG_MPU 77542 #ifdef CONFIG_MPU
77809 update_protections(current->mm); 77543 update_protections(current->mm);
77810@@ -1965,9 +1970,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info) 77544@@ -1966,9 +1971,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
77811 int ret = 0; 77545 int ret = 0;
77812 const struct kernel_symbol *ksym; 77546 const struct kernel_symbol *ksym;
77813 77547
@@ -77839,7 +77573,7 @@ index a55f61b..1561428 100644
77839 switch (sym[i].st_shndx) { 77573 switch (sym[i].st_shndx) {
77840 case SHN_COMMON: 77574 case SHN_COMMON:
77841 /* We compiled with -fno-common. These are not 77575 /* We compiled with -fno-common. These are not
77842@@ -1988,7 +2015,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info) 77576@@ -1989,7 +2016,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
77843 ksym = resolve_symbol_wait(mod, info, name); 77577 ksym = resolve_symbol_wait(mod, info, name);
77844 /* Ok if resolved. */ 77578 /* Ok if resolved. */
77845 if (ksym && !IS_ERR(ksym)) { 77579 if (ksym && !IS_ERR(ksym)) {
@@ -77849,7 +77583,7 @@ index a55f61b..1561428 100644
77849 break; 77583 break;
77850 } 77584 }
77851 77585
77852@@ -2007,11 +2036,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info) 77586@@ -2008,11 +2037,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
77853 secbase = (unsigned long)mod_percpu(mod); 77587 secbase = (unsigned long)mod_percpu(mod);
77854 else 77588 else
77855 secbase = info->sechdrs[sym[i].st_shndx].sh_addr; 77589 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
@@ -77870,7 +77604,7 @@ index a55f61b..1561428 100644
77870 return ret; 77604 return ret;
77871 } 77605 }
77872 77606
77873@@ -2095,22 +2133,12 @@ static void layout_sections(struct module *mod, struct load_info *info) 77607@@ -2096,22 +2134,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
77874 || s->sh_entsize != ~0UL 77608 || s->sh_entsize != ~0UL
77875 || strstarts(sname, ".init")) 77609 || strstarts(sname, ".init"))
77876 continue; 77610 continue;
@@ -77897,7 +77631,7 @@ index a55f61b..1561428 100644
77897 } 77631 }
77898 77632
77899 pr_debug("Init section allocation order:\n"); 77633 pr_debug("Init section allocation order:\n");
77900@@ -2124,23 +2152,13 @@ static void layout_sections(struct module *mod, struct load_info *info) 77634@@ -2125,23 +2153,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
77901 || s->sh_entsize != ~0UL 77635 || s->sh_entsize != ~0UL
77902 || !strstarts(sname, ".init")) 77636 || !strstarts(sname, ".init"))
77903 continue; 77637 continue;
@@ -77926,7 +77660,7 @@ index a55f61b..1561428 100644
77926 } 77660 }
77927 } 77661 }
77928 77662
77929@@ -2313,7 +2331,7 @@ static void layout_symtab(struct module *mod, struct load_info *info) 77663@@ -2314,7 +2332,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
77930 77664
77931 /* Put symbol section at end of init part of module. */ 77665 /* Put symbol section at end of init part of module. */
77932 symsect->sh_flags |= SHF_ALLOC; 77666 symsect->sh_flags |= SHF_ALLOC;
@@ -77935,7 +77669,7 @@ index a55f61b..1561428 100644
77935 info->index.sym) | INIT_OFFSET_MASK; 77669 info->index.sym) | INIT_OFFSET_MASK;
77936 pr_debug("\t%s\n", info->secstrings + symsect->sh_name); 77670 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
77937 77671
77938@@ -2330,13 +2348,13 @@ static void layout_symtab(struct module *mod, struct load_info *info) 77672@@ -2331,13 +2349,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
77939 } 77673 }
77940 77674
77941 /* Append room for core symbols at end of core part. */ 77675 /* Append room for core symbols at end of core part. */
@@ -77953,7 +77687,7 @@ index a55f61b..1561428 100644
77953 info->index.str) | INIT_OFFSET_MASK; 77687 info->index.str) | INIT_OFFSET_MASK;
77954 pr_debug("\t%s\n", info->secstrings + strsect->sh_name); 77688 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
77955 } 77689 }
77956@@ -2354,12 +2372,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info) 77690@@ -2355,12 +2373,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
77957 /* Make sure we get permanent strtab: don't use info->strtab. */ 77691 /* Make sure we get permanent strtab: don't use info->strtab. */
77958 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr; 77692 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
77959 77693
@@ -77970,7 +77704,7 @@ index a55f61b..1561428 100644
77970 src = mod->symtab; 77704 src = mod->symtab;
77971 for (ndst = i = 0; i < mod->num_symtab; i++) { 77705 for (ndst = i = 0; i < mod->num_symtab; i++) {
77972 if (i == 0 || 77706 if (i == 0 ||
77973@@ -2371,6 +2391,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info) 77707@@ -2372,6 +2392,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
77974 } 77708 }
77975 } 77709 }
77976 mod->core_num_syms = ndst; 77710 mod->core_num_syms = ndst;
@@ -77979,7 +77713,7 @@ index a55f61b..1561428 100644
77979 } 77713 }
77980 #else 77714 #else
77981 static inline void layout_symtab(struct module *mod, struct load_info *info) 77715 static inline void layout_symtab(struct module *mod, struct load_info *info)
77982@@ -2404,17 +2426,33 @@ void * __weak module_alloc(unsigned long size) 77716@@ -2405,17 +2427,33 @@ void * __weak module_alloc(unsigned long size)
77983 return vmalloc_exec(size); 77717 return vmalloc_exec(size);
77984 } 77718 }
77985 77719
@@ -78018,7 +77752,7 @@ index a55f61b..1561428 100644
78018 mutex_unlock(&module_mutex); 77752 mutex_unlock(&module_mutex);
78019 } 77753 }
78020 return ret; 77754 return ret;
78021@@ -2690,8 +2728,14 @@ static struct module *setup_load_info(struct load_info *info, int flags) 77755@@ -2691,8 +2729,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
78022 static int check_modinfo(struct module *mod, struct load_info *info, int flags) 77756 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
78023 { 77757 {
78024 const char *modmagic = get_modinfo(info, "vermagic"); 77758 const char *modmagic = get_modinfo(info, "vermagic");
@@ -78033,7 +77767,7 @@ index a55f61b..1561428 100644
78033 if (flags & MODULE_INIT_IGNORE_VERMAGIC) 77767 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
78034 modmagic = NULL; 77768 modmagic = NULL;
78035 77769
78036@@ -2717,7 +2761,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags) 77770@@ -2718,7 +2762,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
78037 } 77771 }
78038 77772
78039 /* Set up license info based on the info section */ 77773 /* Set up license info based on the info section */
@@ -78042,7 +77776,7 @@ index a55f61b..1561428 100644
78042 77776
78043 return 0; 77777 return 0;
78044 } 77778 }
78045@@ -2811,7 +2855,7 @@ static int move_module(struct module *mod, struct load_info *info) 77779@@ -2799,7 +2843,7 @@ static int move_module(struct module *mod, struct load_info *info)
78046 void *ptr; 77780 void *ptr;
78047 77781
78048 /* Do the allocs. */ 77782 /* Do the allocs. */
@@ -78051,7 +77785,7 @@ index a55f61b..1561428 100644
78051 /* 77785 /*
78052 * The pointer to this block is stored in the module structure 77786 * The pointer to this block is stored in the module structure
78053 * which is inside the block. Just mark it as not being a 77787 * which is inside the block. Just mark it as not being a
78054@@ -2821,11 +2865,11 @@ static int move_module(struct module *mod, struct load_info *info) 77788@@ -2809,11 +2853,11 @@ static int move_module(struct module *mod, struct load_info *info)
78055 if (!ptr) 77789 if (!ptr)
78056 return -ENOMEM; 77790 return -ENOMEM;
78057 77791
@@ -78067,17 +77801,20 @@ index a55f61b..1561428 100644
78067 /* 77801 /*
78068 * The pointer to this block is stored in the module structure 77802 * The pointer to this block is stored in the module structure
78069 * which is inside the block. This block doesn't need to be 77803 * which is inside the block. This block doesn't need to be
78070@@ -2834,13 +2878,45 @@ static int move_module(struct module *mod, struct load_info *info) 77804@@ -2822,13 +2866,45 @@ static int move_module(struct module *mod, struct load_info *info)
78071 */ 77805 */
78072 kmemleak_ignore(ptr); 77806 kmemleak_ignore(ptr);
78073 if (!ptr) { 77807 if (!ptr) {
78074- module_free(mod, mod->module_core); 77808- module_free(mod, mod->module_core);
78075+ module_free(mod, mod->module_core_rw); 77809+ module_free(mod, mod->module_core_rw);
78076+ return -ENOMEM; 77810 return -ENOMEM;
78077+ } 77811 }
77812- memset(ptr, 0, mod->init_size);
77813- mod->module_init = ptr;
78078+ memset(ptr, 0, mod->init_size_rw); 77814+ memset(ptr, 0, mod->init_size_rw);
78079+ mod->module_init_rw = ptr; 77815+ mod->module_init_rw = ptr;
78080+ } else 77816 } else
77817- mod->module_init = NULL;
78081+ mod->module_init_rw = NULL; 77818+ mod->module_init_rw = NULL;
78082+ 77819+
78083+ ptr = module_alloc_update_bounds_rx(mod->core_size_rx); 77820+ ptr = module_alloc_update_bounds_rx(mod->core_size_rx);
@@ -78102,22 +77839,19 @@ index a55f61b..1561428 100644
78102+ if (mod->module_init_rw) 77839+ if (mod->module_init_rw)
78103+ module_free(mod, mod->module_init_rw); 77840+ module_free(mod, mod->module_init_rw);
78104+ module_free(mod, mod->module_core_rw); 77841+ module_free(mod, mod->module_core_rw);
78105 return -ENOMEM; 77842+ return -ENOMEM;
78106 } 77843+ }
78107- memset(ptr, 0, mod->init_size);
78108- mod->module_init = ptr;
78109+ 77844+
78110+ pax_open_kernel(); 77845+ pax_open_kernel();
78111+ memset(ptr, 0, mod->init_size_rx); 77846+ memset(ptr, 0, mod->init_size_rx);
78112+ pax_close_kernel(); 77847+ pax_close_kernel();
78113+ mod->module_init_rx = ptr; 77848+ mod->module_init_rx = ptr;
78114 } else 77849+ } else
78115- mod->module_init = NULL;
78116+ mod->module_init_rx = NULL; 77850+ mod->module_init_rx = NULL;
78117 77851
78118 /* Transfer each section which specifies SHF_ALLOC */ 77852 /* Transfer each section which specifies SHF_ALLOC */
78119 pr_debug("final section addresses:\n"); 77853 pr_debug("final section addresses:\n");
78120@@ -2851,16 +2927,45 @@ static int move_module(struct module *mod, struct load_info *info) 77854@@ -2839,16 +2915,45 @@ static int move_module(struct module *mod, struct load_info *info)
78121 if (!(shdr->sh_flags & SHF_ALLOC)) 77855 if (!(shdr->sh_flags & SHF_ALLOC))
78122 continue; 77856 continue;
78123 77857
@@ -78170,7 +77904,7 @@ index a55f61b..1561428 100644
78170 pr_debug("\t0x%lx %s\n", 77904 pr_debug("\t0x%lx %s\n",
78171 (long)shdr->sh_addr, info->secstrings + shdr->sh_name); 77905 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
78172 } 77906 }
78173@@ -2917,12 +3022,12 @@ static void flush_module_icache(const struct module *mod) 77907@@ -2905,12 +3010,12 @@ static void flush_module_icache(const struct module *mod)
78174 * Do it before processing of module parameters, so the module 77908 * Do it before processing of module parameters, so the module
78175 * can provide parameter accessor functions of its own. 77909 * can provide parameter accessor functions of its own.
78176 */ 77910 */
@@ -78189,7 +77923,7 @@ index a55f61b..1561428 100644
78189 77923
78190 set_fs(old_fs); 77924 set_fs(old_fs);
78191 } 77925 }
78192@@ -2989,8 +3094,10 @@ static int alloc_module_percpu(struct module *mod, struct load_info *info) 77926@@ -2977,8 +3082,10 @@ static int alloc_module_percpu(struct module *mod, struct load_info *info)
78193 static void module_deallocate(struct module *mod, struct load_info *info) 77927 static void module_deallocate(struct module *mod, struct load_info *info)
78194 { 77928 {
78195 percpu_modfree(mod); 77929 percpu_modfree(mod);
@@ -78202,7 +77936,7 @@ index a55f61b..1561428 100644
78202 } 77936 }
78203 77937
78204 int __weak module_finalize(const Elf_Ehdr *hdr, 77938 int __weak module_finalize(const Elf_Ehdr *hdr,
78205@@ -3003,7 +3110,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr, 77939@@ -2991,7 +3098,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
78206 static int post_relocation(struct module *mod, const struct load_info *info) 77940 static int post_relocation(struct module *mod, const struct load_info *info)
78207 { 77941 {
78208 /* Sort exception table now relocations are done. */ 77942 /* Sort exception table now relocations are done. */
@@ -78212,7 +77946,7 @@ index a55f61b..1561428 100644
78212 77946
78213 /* Copy relocated percpu area over. */ 77947 /* Copy relocated percpu area over. */
78214 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr, 77948 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
78215@@ -3057,16 +3166,16 @@ static int do_init_module(struct module *mod) 77949@@ -3045,16 +3154,16 @@ static int do_init_module(struct module *mod)
78216 MODULE_STATE_COMING, mod); 77950 MODULE_STATE_COMING, mod);
78217 77951
78218 /* Set RO and NX regions for core */ 77952 /* Set RO and NX regions for core */
@@ -78237,7 +77971,7 @@ index a55f61b..1561428 100644
78237 77971
78238 do_mod_ctors(mod); 77972 do_mod_ctors(mod);
78239 /* Start the module */ 77973 /* Start the module */
78240@@ -3128,11 +3237,12 @@ static int do_init_module(struct module *mod) 77974@@ -3116,11 +3225,12 @@ static int do_init_module(struct module *mod)
78241 mod->strtab = mod->core_strtab; 77975 mod->strtab = mod->core_strtab;
78242 #endif 77976 #endif
78243 unset_module_init_ro_nx(mod); 77977 unset_module_init_ro_nx(mod);
@@ -78255,7 +77989,7 @@ index a55f61b..1561428 100644
78255 mutex_unlock(&module_mutex); 77989 mutex_unlock(&module_mutex);
78256 wake_up_all(&module_wq); 77990 wake_up_all(&module_wq);
78257 77991
78258@@ -3264,9 +3374,38 @@ static int load_module(struct load_info *info, const char __user *uargs, 77992@@ -3252,9 +3362,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
78259 if (err) 77993 if (err)
78260 goto free_unload; 77994 goto free_unload;
78261 77995
@@ -78294,7 +78028,7 @@ index a55f61b..1561428 100644
78294 /* Fix up syms, so that st_value is a pointer to location. */ 78028 /* Fix up syms, so that st_value is a pointer to location. */
78295 err = simplify_symbols(mod, info); 78029 err = simplify_symbols(mod, info);
78296 if (err < 0) 78030 if (err < 0)
78297@@ -3282,13 +3421,6 @@ static int load_module(struct load_info *info, const char __user *uargs, 78031@@ -3270,13 +3409,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
78298 78032
78299 flush_module_icache(mod); 78033 flush_module_icache(mod);
78300 78034
@@ -78308,7 +78042,7 @@ index a55f61b..1561428 100644
78308 dynamic_debug_setup(info->debug, info->num_debug); 78042 dynamic_debug_setup(info->debug, info->num_debug);
78309 78043
78310 /* Finally it's fully formed, ready to start executing. */ 78044 /* Finally it's fully formed, ready to start executing. */
78311@@ -3323,11 +3455,10 @@ static int load_module(struct load_info *info, const char __user *uargs, 78045@@ -3311,11 +3443,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
78312 ddebug_cleanup: 78046 ddebug_cleanup:
78313 dynamic_debug_remove(info->debug); 78047 dynamic_debug_remove(info->debug);
78314 synchronize_sched(); 78048 synchronize_sched();
@@ -78321,7 +78055,7 @@ index a55f61b..1561428 100644
78321 free_unload: 78055 free_unload:
78322 module_unload_free(mod); 78056 module_unload_free(mod);
78323 unlink_mod: 78057 unlink_mod:
78324@@ -3410,10 +3541,16 @@ static const char *get_ksymbol(struct module *mod, 78058@@ -3398,10 +3529,16 @@ static const char *get_ksymbol(struct module *mod,
78325 unsigned long nextval; 78059 unsigned long nextval;
78326 78060
78327 /* At worse, next value is at end of module */ 78061 /* At worse, next value is at end of module */
@@ -78341,7 +78075,7 @@ index a55f61b..1561428 100644
78341 78075
78342 /* Scan for closest preceding symbol, and next symbol. (ELF 78076 /* Scan for closest preceding symbol, and next symbol. (ELF
78343 starts real symbols at 1). */ 78077 starts real symbols at 1). */
78344@@ -3666,7 +3803,7 @@ static int m_show(struct seq_file *m, void *p) 78078@@ -3654,7 +3791,7 @@ static int m_show(struct seq_file *m, void *p)
78345 return 0; 78079 return 0;
78346 78080
78347 seq_printf(m, "%s %u", 78081 seq_printf(m, "%s %u",
@@ -78350,7 +78084,7 @@ index a55f61b..1561428 100644
78350 print_unload_info(m, mod); 78084 print_unload_info(m, mod);
78351 78085
78352 /* Informative for users. */ 78086 /* Informative for users. */
78353@@ -3675,7 +3812,7 @@ static int m_show(struct seq_file *m, void *p) 78087@@ -3663,7 +3800,7 @@ static int m_show(struct seq_file *m, void *p)
78354 mod->state == MODULE_STATE_COMING ? "Loading": 78088 mod->state == MODULE_STATE_COMING ? "Loading":
78355 "Live"); 78089 "Live");
78356 /* Used by oprofile and other similar tools. */ 78090 /* Used by oprofile and other similar tools. */
@@ -78359,7 +78093,7 @@ index a55f61b..1561428 100644
78359 78093
78360 /* Taints info */ 78094 /* Taints info */
78361 if (mod->taints) 78095 if (mod->taints)
78362@@ -3711,7 +3848,17 @@ static const struct file_operations proc_modules_operations = { 78096@@ -3699,7 +3836,17 @@ static const struct file_operations proc_modules_operations = {
78363 78097
78364 static int __init proc_modules_init(void) 78098 static int __init proc_modules_init(void)
78365 { 78099 {
@@ -78377,7 +78111,7 @@ index a55f61b..1561428 100644
78377 return 0; 78111 return 0;
78378 } 78112 }
78379 module_init(proc_modules_init); 78113 module_init(proc_modules_init);
78380@@ -3772,14 +3919,14 @@ struct module *__module_address(unsigned long addr) 78114@@ -3760,14 +3907,14 @@ struct module *__module_address(unsigned long addr)
78381 { 78115 {
78382 struct module *mod; 78116 struct module *mod;
78383 78117
@@ -78395,7 +78129,7 @@ index a55f61b..1561428 100644
78395 return mod; 78129 return mod;
78396 } 78130 }
78397 return NULL; 78131 return NULL;
78398@@ -3814,11 +3961,20 @@ bool is_module_text_address(unsigned long addr) 78132@@ -3802,11 +3949,20 @@ bool is_module_text_address(unsigned long addr)
78399 */ 78133 */
78400 struct module *__module_text_address(unsigned long addr) 78134 struct module *__module_text_address(unsigned long addr)
78401 { 78135 {
@@ -78468,10 +78202,28 @@ index 0799fd3..d06ae3b 100644
78468 extern void debug_mutex_init(struct mutex *lock, const char *name, 78202 extern void debug_mutex_init(struct mutex *lock, const char *name,
78469 struct lock_class_key *key); 78203 struct lock_class_key *key);
78470diff --git a/kernel/mutex.c b/kernel/mutex.c 78204diff --git a/kernel/mutex.c b/kernel/mutex.c
78471index 52f2301..73f7528 100644 78205index ad53a66..f1bf8bc 100644
78472--- a/kernel/mutex.c 78206--- a/kernel/mutex.c
78473+++ b/kernel/mutex.c 78207+++ b/kernel/mutex.c
78474@@ -199,7 +199,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, 78208@@ -134,7 +134,7 @@ void mspin_lock(struct mspin_node **lock, struct mspin_node *node)
78209 node->locked = 1;
78210 return;
78211 }
78212- ACCESS_ONCE(prev->next) = node;
78213+ ACCESS_ONCE_RW(prev->next) = node;
78214 smp_wmb();
78215 /* Wait until the lock holder passes the lock down */
78216 while (!ACCESS_ONCE(node->locked))
78217@@ -155,7 +155,7 @@ static void mspin_unlock(struct mspin_node **lock, struct mspin_node *node)
78218 while (!(next = ACCESS_ONCE(node->next)))
78219 arch_mutex_cpu_relax();
78220 }
78221- ACCESS_ONCE(next->locked) = 1;
78222+ ACCESS_ONCE_RW(next->locked) = 1;
78223 smp_wmb();
78224 }
78225
78226@@ -341,7 +341,7 @@ slowpath:
78475 spin_lock_mutex(&lock->wait_lock, flags); 78227 spin_lock_mutex(&lock->wait_lock, flags);
78476 78228
78477 debug_mutex_lock_common(lock, &waiter); 78229 debug_mutex_lock_common(lock, &waiter);
@@ -78480,7 +78232,7 @@ index 52f2301..73f7528 100644
78480 78232
78481 /* add waiting tasks to the end of the waitqueue (FIFO): */ 78233 /* add waiting tasks to the end of the waitqueue (FIFO): */
78482 list_add_tail(&waiter.list, &lock->wait_list); 78234 list_add_tail(&waiter.list, &lock->wait_list);
78483@@ -228,8 +228,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, 78235@@ -371,8 +371,7 @@ slowpath:
78484 * TASK_UNINTERRUPTIBLE case.) 78236 * TASK_UNINTERRUPTIBLE case.)
78485 */ 78237 */
78486 if (unlikely(signal_pending_state(state, task))) { 78238 if (unlikely(signal_pending_state(state, task))) {
@@ -78490,7 +78242,7 @@ index 52f2301..73f7528 100644
78490 mutex_release(&lock->dep_map, 1, ip); 78242 mutex_release(&lock->dep_map, 1, ip);
78491 spin_unlock_mutex(&lock->wait_lock, flags); 78243 spin_unlock_mutex(&lock->wait_lock, flags);
78492 78244
78493@@ -248,7 +247,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, 78245@@ -391,7 +390,7 @@ slowpath:
78494 done: 78246 done:
78495 lock_acquired(&lock->dep_map, ip); 78247 lock_acquired(&lock->dep_map, ip);
78496 /* got the lock - rejoice! */ 78248 /* got the lock - rejoice! */
@@ -78556,19 +78308,19 @@ index 2d5cc4c..d9ea600 100644
78556 return -ENOENT; 78308 return -ENOENT;
78557 } 78309 }
78558diff --git a/kernel/panic.c b/kernel/panic.c 78310diff --git a/kernel/panic.c b/kernel/panic.c
78559index 7c57cc9..28f1b3f 100644 78311index 167ec09..0dda5f9 100644
78560--- a/kernel/panic.c 78312--- a/kernel/panic.c
78561+++ b/kernel/panic.c 78313+++ b/kernel/panic.c
78562@@ -403,7 +403,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller, 78314@@ -400,7 +400,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
78563 const char *board; 78315 unsigned taint, struct slowpath_args *args)
78564 78316 {
78565 printk(KERN_WARNING "------------[ cut here ]------------\n"); 78317 printk(KERN_WARNING "------------[ cut here ]------------\n");
78566- printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller); 78318- printk(KERN_WARNING "WARNING: at %s:%d %pS()\n", file, line, caller);
78567+ printk(KERN_WARNING "WARNING: at %s:%d %pA()\n", file, line, caller); 78319+ printk(KERN_WARNING "WARNING: at %s:%d %pA()\n", file, line, caller);
78568 board = dmi_get_system_info(DMI_PRODUCT_NAME); 78320
78569 if (board) 78321 if (args)
78570 printk(KERN_WARNING "Hardware name: %s\n", board); 78322 vprintk(args->fmt, args->args);
78571@@ -459,7 +459,8 @@ EXPORT_SYMBOL(warn_slowpath_null); 78323@@ -453,7 +453,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
78572 */ 78324 */
78573 void __stack_chk_fail(void) 78325 void __stack_chk_fail(void)
78574 { 78326 {
@@ -78579,7 +78331,7 @@ index 7c57cc9..28f1b3f 100644
78579 } 78331 }
78580 EXPORT_SYMBOL(__stack_chk_fail); 78332 EXPORT_SYMBOL(__stack_chk_fail);
78581diff --git a/kernel/pid.c b/kernel/pid.c 78333diff --git a/kernel/pid.c b/kernel/pid.c
78582index 047dc62..418d74b 100644 78334index 0db3e79..95b9dc2 100644
78583--- a/kernel/pid.c 78335--- a/kernel/pid.c
78584+++ b/kernel/pid.c 78336+++ b/kernel/pid.c
78585@@ -33,6 +33,7 @@ 78337@@ -33,6 +33,7 @@
@@ -78590,7 +78342,7 @@ index 047dc62..418d74b 100644
78590 #include <linux/pid_namespace.h> 78342 #include <linux/pid_namespace.h>
78591 #include <linux/init_task.h> 78343 #include <linux/init_task.h>
78592 #include <linux/syscalls.h> 78344 #include <linux/syscalls.h>
78593@@ -46,7 +47,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID; 78345@@ -47,7 +48,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID;
78594 78346
78595 int pid_max = PID_MAX_DEFAULT; 78347 int pid_max = PID_MAX_DEFAULT;
78596 78348
@@ -78599,7 +78351,7 @@ index 047dc62..418d74b 100644
78599 78351
78600 int pid_max_min = RESERVED_PIDS + 1; 78352 int pid_max_min = RESERVED_PIDS + 1;
78601 int pid_max_max = PID_MAX_LIMIT; 78353 int pid_max_max = PID_MAX_LIMIT;
78602@@ -440,10 +441,18 @@ EXPORT_SYMBOL(pid_task); 78354@@ -442,10 +443,18 @@ EXPORT_SYMBOL(pid_task);
78603 */ 78355 */
78604 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns) 78356 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
78605 { 78357 {
@@ -78619,7 +78371,7 @@ index 047dc62..418d74b 100644
78619 } 78371 }
78620 78372
78621 struct task_struct *find_task_by_vpid(pid_t vnr) 78373 struct task_struct *find_task_by_vpid(pid_t vnr)
78622@@ -451,6 +460,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr) 78374@@ -453,6 +462,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
78623 return find_task_by_pid_ns(vnr, task_active_pid_ns(current)); 78375 return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
78624 } 78376 }
78625 78377
@@ -78635,10 +78387,10 @@ index 047dc62..418d74b 100644
78635 { 78387 {
78636 struct pid *pid; 78388 struct pid *pid;
78637diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c 78389diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
78638index bea15bd..789f3d0 100644 78390index 6917e8e..9909aeb 100644
78639--- a/kernel/pid_namespace.c 78391--- a/kernel/pid_namespace.c
78640+++ b/kernel/pid_namespace.c 78392+++ b/kernel/pid_namespace.c
78641@@ -249,7 +249,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write, 78393@@ -247,7 +247,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
78642 void __user *buffer, size_t *lenp, loff_t *ppos) 78394 void __user *buffer, size_t *lenp, loff_t *ppos)
78643 { 78395 {
78644 struct pid_namespace *pid_ns = task_active_pid_ns(current); 78396 struct pid_namespace *pid_ns = task_active_pid_ns(current);
@@ -78648,10 +78400,10 @@ index bea15bd..789f3d0 100644
78648 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN)) 78400 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN))
78649 return -EPERM; 78401 return -EPERM;
78650diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c 78402diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
78651index 8fd709c..542bf4b 100644 78403index 42670e9..8719c2f 100644
78652--- a/kernel/posix-cpu-timers.c 78404--- a/kernel/posix-cpu-timers.c
78653+++ b/kernel/posix-cpu-timers.c 78405+++ b/kernel/posix-cpu-timers.c
78654@@ -1592,14 +1592,14 @@ struct k_clock clock_posix_cpu = { 78406@@ -1636,14 +1636,14 @@ struct k_clock clock_posix_cpu = {
78655 78407
78656 static __init int init_posix_cpu_timers(void) 78408 static __init int init_posix_cpu_timers(void)
78657 { 78409 {
@@ -78669,18 +78421,18 @@ index 8fd709c..542bf4b 100644
78669 .clock_get = thread_cpu_clock_get, 78421 .clock_get = thread_cpu_clock_get,
78670 .timer_create = thread_cpu_timer_create, 78422 .timer_create = thread_cpu_timer_create,
78671diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c 78423diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c
78672index 6edbb2c..334f085 100644 78424index 424c2d4..a9194f7 100644
78673--- a/kernel/posix-timers.c 78425--- a/kernel/posix-timers.c
78674+++ b/kernel/posix-timers.c 78426+++ b/kernel/posix-timers.c
78675@@ -43,6 +43,7 @@ 78427@@ -43,6 +43,7 @@
78676 #include <linux/idr.h> 78428 #include <linux/hash.h>
78677 #include <linux/posix-clock.h> 78429 #include <linux/posix-clock.h>
78678 #include <linux/posix-timers.h> 78430 #include <linux/posix-timers.h>
78679+#include <linux/grsecurity.h> 78431+#include <linux/grsecurity.h>
78680 #include <linux/syscalls.h> 78432 #include <linux/syscalls.h>
78681 #include <linux/wait.h> 78433 #include <linux/wait.h>
78682 #include <linux/workqueue.h> 78434 #include <linux/workqueue.h>
78683@@ -129,7 +130,7 @@ static DEFINE_SPINLOCK(idr_lock); 78435@@ -122,7 +123,7 @@ static DEFINE_SPINLOCK(hash_lock);
78684 * which we beg off on and pass to do_sys_settimeofday(). 78436 * which we beg off on and pass to do_sys_settimeofday().
78685 */ 78437 */
78686 78438
@@ -78689,7 +78441,7 @@ index 6edbb2c..334f085 100644
78689 78441
78690 /* 78442 /*
78691 * These ones are defined below. 78443 * These ones are defined below.
78692@@ -227,7 +228,7 @@ static int posix_get_boottime(const clockid_t which_clock, struct timespec *tp) 78444@@ -275,7 +276,7 @@ static int posix_get_tai(clockid_t which_clock, struct timespec *tp)
78693 */ 78445 */
78694 static __init int init_posix_timers(void) 78446 static __init int init_posix_timers(void)
78695 { 78447 {
@@ -78698,7 +78450,7 @@ index 6edbb2c..334f085 100644
78698 .clock_getres = hrtimer_get_res, 78450 .clock_getres = hrtimer_get_res,
78699 .clock_get = posix_clock_realtime_get, 78451 .clock_get = posix_clock_realtime_get,
78700 .clock_set = posix_clock_realtime_set, 78452 .clock_set = posix_clock_realtime_set,
78701@@ -239,7 +240,7 @@ static __init int init_posix_timers(void) 78453@@ -287,7 +288,7 @@ static __init int init_posix_timers(void)
78702 .timer_get = common_timer_get, 78454 .timer_get = common_timer_get,
78703 .timer_del = common_timer_del, 78455 .timer_del = common_timer_del,
78704 }; 78456 };
@@ -78707,7 +78459,7 @@ index 6edbb2c..334f085 100644
78707 .clock_getres = hrtimer_get_res, 78459 .clock_getres = hrtimer_get_res,
78708 .clock_get = posix_ktime_get_ts, 78460 .clock_get = posix_ktime_get_ts,
78709 .nsleep = common_nsleep, 78461 .nsleep = common_nsleep,
78710@@ -249,19 +250,19 @@ static __init int init_posix_timers(void) 78462@@ -297,19 +298,19 @@ static __init int init_posix_timers(void)
78711 .timer_get = common_timer_get, 78463 .timer_get = common_timer_get,
78712 .timer_del = common_timer_del, 78464 .timer_del = common_timer_del,
78713 }; 78465 };
@@ -78726,12 +78478,21 @@ index 6edbb2c..334f085 100644
78726 .clock_getres = posix_get_coarse_res, 78478 .clock_getres = posix_get_coarse_res,
78727 .clock_get = posix_get_monotonic_coarse, 78479 .clock_get = posix_get_monotonic_coarse,
78728 }; 78480 };
78481- struct k_clock clock_tai = {
78482+ static struct k_clock clock_tai = {
78483 .clock_getres = hrtimer_get_res,
78484 .clock_get = posix_get_tai,
78485 .nsleep = common_nsleep,
78486@@ -319,7 +320,7 @@ static __init int init_posix_timers(void)
78487 .timer_get = common_timer_get,
78488 .timer_del = common_timer_del,
78489 };
78729- struct k_clock clock_boottime = { 78490- struct k_clock clock_boottime = {
78730+ static struct k_clock clock_boottime = { 78491+ static struct k_clock clock_boottime = {
78731 .clock_getres = hrtimer_get_res, 78492 .clock_getres = hrtimer_get_res,
78732 .clock_get = posix_get_boottime, 78493 .clock_get = posix_get_boottime,
78733 .nsleep = common_nsleep, 78494 .nsleep = common_nsleep,
78734@@ -473,7 +474,7 @@ void posix_timers_register_clock(const clockid_t clock_id, 78495@@ -531,7 +532,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
78735 return; 78496 return;
78736 } 78497 }
78737 78498
@@ -78740,7 +78501,7 @@ index 6edbb2c..334f085 100644
78740 } 78501 }
78741 EXPORT_SYMBOL_GPL(posix_timers_register_clock); 78502 EXPORT_SYMBOL_GPL(posix_timers_register_clock);
78742 78503
78743@@ -519,9 +520,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id) 78504@@ -577,9 +578,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
78744 return (id & CLOCKFD_MASK) == CLOCKFD ? 78505 return (id & CLOCKFD_MASK) == CLOCKFD ?
78745 &clock_posix_dynamic : &clock_posix_cpu; 78506 &clock_posix_dynamic : &clock_posix_cpu;
78746 78507
@@ -78752,7 +78513,7 @@ index 6edbb2c..334f085 100644
78752 } 78513 }
78753 78514
78754 static int common_timer_create(struct k_itimer *new_timer) 78515 static int common_timer_create(struct k_itimer *new_timer)
78755@@ -964,6 +965,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock, 78516@@ -1011,6 +1012,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
78756 if (copy_from_user(&new_tp, tp, sizeof (*tp))) 78517 if (copy_from_user(&new_tp, tp, sizeof (*tp)))
78757 return -EFAULT; 78518 return -EFAULT;
78758 78519
@@ -78766,20 +78527,6 @@ index 6edbb2c..334f085 100644
78766 return kc->clock_set(which_clock, &new_tp); 78527 return kc->clock_set(which_clock, &new_tp);
78767 } 78528 }
78768 78529
78769diff --git a/kernel/power/autosleep.c b/kernel/power/autosleep.c
78770index c6422ff..9012ecf 100644
78771--- a/kernel/power/autosleep.c
78772+++ b/kernel/power/autosleep.c
78773@@ -32,7 +32,8 @@ static void try_to_suspend(struct work_struct *work)
78774
78775 mutex_lock(&autosleep_lock);
78776
78777- if (!pm_save_wakeup_count(initial_count)) {
78778+ if (!pm_save_wakeup_count(initial_count) ||
78779+ system_state != SYSTEM_RUNNING) {
78780 mutex_unlock(&autosleep_lock);
78781 goto out;
78782 }
78783diff --git a/kernel/power/process.c b/kernel/power/process.c 78530diff --git a/kernel/power/process.c b/kernel/power/process.c
78784index 98088e0..aaf95c0 100644 78531index 98088e0..aaf95c0 100644
78785--- a/kernel/power/process.c 78532--- a/kernel/power/process.c
@@ -78824,10 +78571,10 @@ index 98088e0..aaf95c0 100644
78824 78571
78825 if (pm_wakeup_pending()) { 78572 if (pm_wakeup_pending()) {
78826diff --git a/kernel/printk.c b/kernel/printk.c 78573diff --git a/kernel/printk.c b/kernel/printk.c
78827index 0e4eba6a..d58ebf0 100644 78574index d37d45c..ab918b3 100644
78828--- a/kernel/printk.c 78575--- a/kernel/printk.c
78829+++ b/kernel/printk.c 78576+++ b/kernel/printk.c
78830@@ -395,6 +395,11 @@ static int check_syslog_permissions(int type, bool from_file) 78577@@ -390,6 +390,11 @@ static int check_syslog_permissions(int type, bool from_file)
78831 if (from_file && type != SYSLOG_ACTION_OPEN) 78578 if (from_file && type != SYSLOG_ACTION_OPEN)
78832 return 0; 78579 return 0;
78833 78580
@@ -78840,7 +78587,7 @@ index 0e4eba6a..d58ebf0 100644
78840 if (capable(CAP_SYSLOG)) 78587 if (capable(CAP_SYSLOG))
78841 return 0; 78588 return 0;
78842diff --git a/kernel/profile.c b/kernel/profile.c 78589diff --git a/kernel/profile.c b/kernel/profile.c
78843index dc3384e..0de5b49 100644 78590index 0bf4007..6234708 100644
78844--- a/kernel/profile.c 78591--- a/kernel/profile.c
78845+++ b/kernel/profile.c 78592+++ b/kernel/profile.c
78846@@ -37,7 +37,7 @@ struct profile_hit { 78593@@ -37,7 +37,7 @@ struct profile_hit {
@@ -78901,10 +78648,10 @@ index dc3384e..0de5b49 100644
78901 } 78648 }
78902 78649
78903diff --git a/kernel/ptrace.c b/kernel/ptrace.c 78650diff --git a/kernel/ptrace.c b/kernel/ptrace.c
78904index acbd284..00bb0c9 100644 78651index 335a7ae..3bbbceb 100644
78905--- a/kernel/ptrace.c 78652--- a/kernel/ptrace.c
78906+++ b/kernel/ptrace.c 78653+++ b/kernel/ptrace.c
78907@@ -324,7 +324,7 @@ static int ptrace_attach(struct task_struct *task, long request, 78654@@ -326,7 +326,7 @@ static int ptrace_attach(struct task_struct *task, long request,
78908 if (seize) 78655 if (seize)
78909 flags |= PT_SEIZED; 78656 flags |= PT_SEIZED;
78910 rcu_read_lock(); 78657 rcu_read_lock();
@@ -78913,7 +78660,7 @@ index acbd284..00bb0c9 100644
78913 flags |= PT_PTRACE_CAP; 78660 flags |= PT_PTRACE_CAP;
78914 rcu_read_unlock(); 78661 rcu_read_unlock();
78915 task->ptrace = flags; 78662 task->ptrace = flags;
78916@@ -535,7 +535,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst 78663@@ -537,7 +537,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
78917 break; 78664 break;
78918 return -EIO; 78665 return -EIO;
78919 } 78666 }
@@ -78922,7 +78669,7 @@ index acbd284..00bb0c9 100644
78922 return -EFAULT; 78669 return -EFAULT;
78923 copied += retval; 78670 copied += retval;
78924 src += retval; 78671 src += retval;
78925@@ -726,7 +726,7 @@ int ptrace_request(struct task_struct *child, long request, 78672@@ -805,7 +805,7 @@ int ptrace_request(struct task_struct *child, long request,
78926 bool seized = child->ptrace & PT_SEIZED; 78673 bool seized = child->ptrace & PT_SEIZED;
78927 int ret = -EIO; 78674 int ret = -EIO;
78928 siginfo_t siginfo, *si; 78675 siginfo_t siginfo, *si;
@@ -78931,7 +78678,7 @@ index acbd284..00bb0c9 100644
78931 unsigned long __user *datalp = datavp; 78678 unsigned long __user *datalp = datavp;
78932 unsigned long flags; 78679 unsigned long flags;
78933 78680
78934@@ -928,14 +928,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr, 78681@@ -1011,14 +1011,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
78935 goto out; 78682 goto out;
78936 } 78683 }
78937 78684
@@ -78954,7 +78701,7 @@ index acbd284..00bb0c9 100644
78954 goto out_put_task_struct; 78701 goto out_put_task_struct;
78955 } 78702 }
78956 78703
78957@@ -963,7 +970,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr, 78704@@ -1046,7 +1053,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
78958 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0); 78705 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
78959 if (copied != sizeof(tmp)) 78706 if (copied != sizeof(tmp))
78960 return -EIO; 78707 return -EIO;
@@ -78963,7 +78710,7 @@ index acbd284..00bb0c9 100644
78963 } 78710 }
78964 78711
78965 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr, 78712 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
78966@@ -1057,7 +1064,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request, 78713@@ -1140,7 +1147,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
78967 } 78714 }
78968 78715
78969 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, 78716 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
@@ -78972,7 +78719,7 @@ index acbd284..00bb0c9 100644
78972 { 78719 {
78973 struct task_struct *child; 78720 struct task_struct *child;
78974 long ret; 78721 long ret;
78975@@ -1073,14 +1080,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, 78722@@ -1156,14 +1163,21 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
78976 goto out; 78723 goto out;
78977 } 78724 }
78978 78725
@@ -79215,10 +78962,10 @@ index e1f3a8c..42c94a2 100644
79215 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) { 78962 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
79216 per_cpu(rcu_torture_count, cpu)[i] = 0; 78963 per_cpu(rcu_torture_count, cpu)[i] = 0;
79217diff --git a/kernel/rcutree.c b/kernel/rcutree.c 78964diff --git a/kernel/rcutree.c b/kernel/rcutree.c
79218index 5b8ad82..59e1f64 100644 78965index 3538001..e379e0b 100644
79219--- a/kernel/rcutree.c 78966--- a/kernel/rcutree.c
79220+++ b/kernel/rcutree.c 78967+++ b/kernel/rcutree.c
79221@@ -353,9 +353,9 @@ static void rcu_eqs_enter_common(struct rcu_dynticks *rdtp, long long oldval, 78968@@ -358,9 +358,9 @@ static void rcu_eqs_enter_common(struct rcu_dynticks *rdtp, long long oldval,
79222 rcu_prepare_for_idle(smp_processor_id()); 78969 rcu_prepare_for_idle(smp_processor_id());
79223 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */ 78970 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
79224 smp_mb__before_atomic_inc(); /* See above. */ 78971 smp_mb__before_atomic_inc(); /* See above. */
@@ -79230,7 +78977,7 @@ index 5b8ad82..59e1f64 100644
79230 78977
79231 /* 78978 /*
79232 * It is illegal to enter an extended quiescent state while 78979 * It is illegal to enter an extended quiescent state while
79233@@ -491,10 +491,10 @@ static void rcu_eqs_exit_common(struct rcu_dynticks *rdtp, long long oldval, 78980@@ -496,10 +496,10 @@ static void rcu_eqs_exit_common(struct rcu_dynticks *rdtp, long long oldval,
79234 int user) 78981 int user)
79235 { 78982 {
79236 smp_mb__before_atomic_inc(); /* Force ordering w/previous sojourn. */ 78983 smp_mb__before_atomic_inc(); /* Force ordering w/previous sojourn. */
@@ -79243,7 +78990,7 @@ index 5b8ad82..59e1f64 100644
79243 rcu_cleanup_after_idle(smp_processor_id()); 78990 rcu_cleanup_after_idle(smp_processor_id());
79244 trace_rcu_dyntick("End", oldval, rdtp->dynticks_nesting); 78991 trace_rcu_dyntick("End", oldval, rdtp->dynticks_nesting);
79245 if (!user && !is_idle_task(current)) { 78992 if (!user && !is_idle_task(current)) {
79246@@ -633,14 +633,14 @@ void rcu_nmi_enter(void) 78993@@ -638,14 +638,14 @@ void rcu_nmi_enter(void)
79247 struct rcu_dynticks *rdtp = &__get_cpu_var(rcu_dynticks); 78994 struct rcu_dynticks *rdtp = &__get_cpu_var(rcu_dynticks);
79248 78995
79249 if (rdtp->dynticks_nmi_nesting == 0 && 78996 if (rdtp->dynticks_nmi_nesting == 0 &&
@@ -79261,7 +79008,7 @@ index 5b8ad82..59e1f64 100644
79261 } 79008 }
79262 79009
79263 /** 79010 /**
79264@@ -659,9 +659,9 @@ void rcu_nmi_exit(void) 79011@@ -664,9 +664,9 @@ void rcu_nmi_exit(void)
79265 return; 79012 return;
79266 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */ 79013 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
79267 smp_mb__before_atomic_inc(); /* See above. */ 79014 smp_mb__before_atomic_inc(); /* See above. */
@@ -79273,7 +79020,7 @@ index 5b8ad82..59e1f64 100644
79273 } 79020 }
79274 79021
79275 /** 79022 /**
79276@@ -675,7 +675,7 @@ int rcu_is_cpu_idle(void) 79023@@ -680,7 +680,7 @@ int rcu_is_cpu_idle(void)
79277 int ret; 79024 int ret;
79278 79025
79279 preempt_disable(); 79026 preempt_disable();
@@ -79282,7 +79029,7 @@ index 5b8ad82..59e1f64 100644
79282 preempt_enable(); 79029 preempt_enable();
79283 return ret; 79030 return ret;
79284 } 79031 }
79285@@ -743,7 +743,7 @@ static int rcu_is_cpu_rrupt_from_idle(void) 79032@@ -748,7 +748,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
79286 */ 79033 */
79287 static int dyntick_save_progress_counter(struct rcu_data *rdp) 79034 static int dyntick_save_progress_counter(struct rcu_data *rdp)
79288 { 79035 {
@@ -79291,7 +79038,7 @@ index 5b8ad82..59e1f64 100644
79291 return (rdp->dynticks_snap & 0x1) == 0; 79038 return (rdp->dynticks_snap & 0x1) == 0;
79292 } 79039 }
79293 79040
79294@@ -758,7 +758,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp) 79041@@ -763,7 +763,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp)
79295 unsigned int curr; 79042 unsigned int curr;
79296 unsigned int snap; 79043 unsigned int snap;
79297 79044
@@ -79300,7 +79047,28 @@ index 5b8ad82..59e1f64 100644
79300 snap = (unsigned int)rdp->dynticks_snap; 79047 snap = (unsigned int)rdp->dynticks_snap;
79301 79048
79302 /* 79049 /*
79303@@ -1698,7 +1698,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp, 79050@@ -1440,9 +1440,9 @@ static int rcu_gp_init(struct rcu_state *rsp)
79051 rdp = this_cpu_ptr(rsp->rda);
79052 rcu_preempt_check_blocked_tasks(rnp);
79053 rnp->qsmask = rnp->qsmaskinit;
79054- ACCESS_ONCE(rnp->gpnum) = rsp->gpnum;
79055+ ACCESS_ONCE_RW(rnp->gpnum) = rsp->gpnum;
79056 WARN_ON_ONCE(rnp->completed != rsp->completed);
79057- ACCESS_ONCE(rnp->completed) = rsp->completed;
79058+ ACCESS_ONCE_RW(rnp->completed) = rsp->completed;
79059 if (rnp == rdp->mynode)
79060 rcu_start_gp_per_cpu(rsp, rnp, rdp);
79061 rcu_preempt_boost_start_gp(rnp);
79062@@ -1524,7 +1524,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
79063 */
79064 rcu_for_each_node_breadth_first(rsp, rnp) {
79065 raw_spin_lock_irq(&rnp->lock);
79066- ACCESS_ONCE(rnp->completed) = rsp->gpnum;
79067+ ACCESS_ONCE_RW(rnp->completed) = rsp->gpnum;
79068 rdp = this_cpu_ptr(rsp->rda);
79069 if (rnp == rdp->mynode)
79070 __rcu_process_gp_end(rsp, rnp, rdp);
79071@@ -1855,7 +1855,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp,
79304 rsp->qlen += rdp->qlen; 79072 rsp->qlen += rdp->qlen;
79305 rdp->n_cbs_orphaned += rdp->qlen; 79073 rdp->n_cbs_orphaned += rdp->qlen;
79306 rdp->qlen_lazy = 0; 79074 rdp->qlen_lazy = 0;
@@ -79309,7 +79077,7 @@ index 5b8ad82..59e1f64 100644
79309 } 79077 }
79310 79078
79311 /* 79079 /*
79312@@ -1944,7 +1944,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp) 79080@@ -2101,7 +2101,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
79313 } 79081 }
79314 smp_mb(); /* List handling before counting for rcu_barrier(). */ 79082 smp_mb(); /* List handling before counting for rcu_barrier(). */
79315 rdp->qlen_lazy -= count_lazy; 79083 rdp->qlen_lazy -= count_lazy;
@@ -79318,7 +79086,7 @@ index 5b8ad82..59e1f64 100644
79318 rdp->n_cbs_invoked += count; 79086 rdp->n_cbs_invoked += count;
79319 79087
79320 /* Reinstate batch limit if we have worked down the excess. */ 79088 /* Reinstate batch limit if we have worked down the excess. */
79321@@ -2137,7 +2137,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) 79089@@ -2295,7 +2295,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
79322 /* 79090 /*
79323 * Do RCU core processing for the current CPU. 79091 * Do RCU core processing for the current CPU.
79324 */ 79092 */
@@ -79327,7 +79095,7 @@ index 5b8ad82..59e1f64 100644
79327 { 79095 {
79328 struct rcu_state *rsp; 79096 struct rcu_state *rsp;
79329 79097
79330@@ -2260,7 +2260,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu), 79098@@ -2419,7 +2419,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
79331 local_irq_restore(flags); 79099 local_irq_restore(flags);
79332 return; 79100 return;
79333 } 79101 }
@@ -79336,7 +79104,7 @@ index 5b8ad82..59e1f64 100644
79336 if (lazy) 79104 if (lazy)
79337 rdp->qlen_lazy++; 79105 rdp->qlen_lazy++;
79338 else 79106 else
79339@@ -2469,11 +2469,11 @@ void synchronize_sched_expedited(void) 79107@@ -2628,11 +2628,11 @@ void synchronize_sched_expedited(void)
79340 * counter wrap on a 32-bit system. Quite a few more CPUs would of 79108 * counter wrap on a 32-bit system. Quite a few more CPUs would of
79341 * course be required on a 64-bit system. 79109 * course be required on a 64-bit system.
79342 */ 79110 */
@@ -79350,7 +79118,7 @@ index 5b8ad82..59e1f64 100644
79350 return; 79118 return;
79351 } 79119 }
79352 79120
79353@@ -2481,7 +2481,7 @@ void synchronize_sched_expedited(void) 79121@@ -2640,7 +2640,7 @@ void synchronize_sched_expedited(void)
79354 * Take a ticket. Note that atomic_inc_return() implies a 79122 * Take a ticket. Note that atomic_inc_return() implies a
79355 * full memory barrier. 79123 * full memory barrier.
79356 */ 79124 */
@@ -79359,7 +79127,7 @@ index 5b8ad82..59e1f64 100644
79359 firstsnap = snap; 79127 firstsnap = snap;
79360 get_online_cpus(); 79128 get_online_cpus();
79361 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id())); 79129 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
79362@@ -2494,14 +2494,14 @@ void synchronize_sched_expedited(void) 79130@@ -2653,14 +2653,14 @@ void synchronize_sched_expedited(void)
79363 synchronize_sched_expedited_cpu_stop, 79131 synchronize_sched_expedited_cpu_stop,
79364 NULL) == -EAGAIN) { 79132 NULL) == -EAGAIN) {
79365 put_online_cpus(); 79133 put_online_cpus();
@@ -79376,7 +79144,7 @@ index 5b8ad82..59e1f64 100644
79376 return; 79144 return;
79377 } 79145 }
79378 79146
79379@@ -2510,7 +2510,7 @@ void synchronize_sched_expedited(void) 79147@@ -2669,7 +2669,7 @@ void synchronize_sched_expedited(void)
79380 udelay(trycount * num_online_cpus()); 79148 udelay(trycount * num_online_cpus());
79381 } else { 79149 } else {
79382 wait_rcu_gp(call_rcu_sched); 79150 wait_rcu_gp(call_rcu_sched);
@@ -79385,7 +79153,7 @@ index 5b8ad82..59e1f64 100644
79385 return; 79153 return;
79386 } 79154 }
79387 79155
79388@@ -2519,7 +2519,7 @@ void synchronize_sched_expedited(void) 79156@@ -2678,7 +2678,7 @@ void synchronize_sched_expedited(void)
79389 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) { 79157 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
79390 /* ensure test happens before caller kfree */ 79158 /* ensure test happens before caller kfree */
79391 smp_mb__before_atomic_inc(); /* ^^^ */ 79159 smp_mb__before_atomic_inc(); /* ^^^ */
@@ -79394,7 +79162,7 @@ index 5b8ad82..59e1f64 100644
79394 return; 79162 return;
79395 } 79163 }
79396 79164
79397@@ -2531,10 +2531,10 @@ void synchronize_sched_expedited(void) 79165@@ -2690,10 +2690,10 @@ void synchronize_sched_expedited(void)
79398 * period works for us. 79166 * period works for us.
79399 */ 79167 */
79400 get_online_cpus(); 79168 get_online_cpus();
@@ -79407,7 +79175,7 @@ index 5b8ad82..59e1f64 100644
79407 79175
79408 /* 79176 /*
79409 * Everyone up to our most recent fetch is covered by our grace 79177 * Everyone up to our most recent fetch is covered by our grace
79410@@ -2543,16 +2543,16 @@ void synchronize_sched_expedited(void) 79178@@ -2702,16 +2702,16 @@ void synchronize_sched_expedited(void)
79411 * than we did already did their update. 79179 * than we did already did their update.
79412 */ 79180 */
79413 do { 79181 do {
@@ -79427,7 +79195,7 @@ index 5b8ad82..59e1f64 100644
79427 79195
79428 put_online_cpus(); 79196 put_online_cpus();
79429 } 79197 }
79430@@ -2726,7 +2726,7 @@ static void _rcu_barrier(struct rcu_state *rsp) 79198@@ -2893,7 +2893,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
79431 * ACCESS_ONCE() to prevent the compiler from speculating 79199 * ACCESS_ONCE() to prevent the compiler from speculating
79432 * the increment to precede the early-exit check. 79200 * the increment to precede the early-exit check.
79433 */ 79201 */
@@ -79436,7 +79204,7 @@ index 5b8ad82..59e1f64 100644
79436 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 1); 79204 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 1);
79437 _rcu_barrier_trace(rsp, "Inc1", -1, rsp->n_barrier_done); 79205 _rcu_barrier_trace(rsp, "Inc1", -1, rsp->n_barrier_done);
79438 smp_mb(); /* Order ->n_barrier_done increment with below mechanism. */ 79206 smp_mb(); /* Order ->n_barrier_done increment with below mechanism. */
79439@@ -2776,7 +2776,7 @@ static void _rcu_barrier(struct rcu_state *rsp) 79207@@ -2943,7 +2943,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
79440 79208
79441 /* Increment ->n_barrier_done to prevent duplicate work. */ 79209 /* Increment ->n_barrier_done to prevent duplicate work. */
79442 smp_mb(); /* Keep increment after above mechanism. */ 79210 smp_mb(); /* Keep increment after above mechanism. */
@@ -79445,7 +79213,7 @@ index 5b8ad82..59e1f64 100644
79445 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 0); 79213 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 0);
79446 _rcu_barrier_trace(rsp, "Inc2", -1, rsp->n_barrier_done); 79214 _rcu_barrier_trace(rsp, "Inc2", -1, rsp->n_barrier_done);
79447 smp_mb(); /* Keep increment before caller's subsequent code. */ 79215 smp_mb(); /* Keep increment before caller's subsequent code. */
79448@@ -2821,10 +2821,10 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp) 79216@@ -2988,10 +2988,10 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
79449 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo); 79217 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
79450 init_callback_list(rdp); 79218 init_callback_list(rdp);
79451 rdp->qlen_lazy = 0; 79219 rdp->qlen_lazy = 0;
@@ -79458,7 +79226,7 @@ index 5b8ad82..59e1f64 100644
79458 rdp->cpu = cpu; 79226 rdp->cpu = cpu;
79459 rdp->rsp = rsp; 79227 rdp->rsp = rsp;
79460 rcu_boot_init_nocb_percpu_data(rdp); 79228 rcu_boot_init_nocb_percpu_data(rdp);
79461@@ -2857,8 +2857,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible) 79229@@ -3024,8 +3024,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
79462 rdp->blimit = blimit; 79230 rdp->blimit = blimit;
79463 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */ 79231 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
79464 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE; 79232 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
@@ -79466,10 +79234,10 @@ index 5b8ad82..59e1f64 100644
79466- (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1); 79234- (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
79467+ atomic_set_unchecked(&rdp->dynticks->dynticks, 79235+ atomic_set_unchecked(&rdp->dynticks->dynticks,
79468+ (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1); 79236+ (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
79469 rcu_prepare_for_idle_init(cpu);
79470 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */ 79237 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
79471 79238
79472@@ -2964,7 +2964,7 @@ static int __init rcu_spawn_gp_kthread(void) 79239 /* Add CPU to rcu_node bitmasks. */
79240@@ -3120,7 +3120,7 @@ static int __init rcu_spawn_gp_kthread(void)
79473 struct task_struct *t; 79241 struct task_struct *t;
79474 79242
79475 for_each_rcu_flavor(rsp) { 79243 for_each_rcu_flavor(rsp) {
@@ -79479,19 +79247,19 @@ index 5b8ad82..59e1f64 100644
79479 rnp = rcu_get_root(rsp); 79247 rnp = rcu_get_root(rsp);
79480 raw_spin_lock_irqsave(&rnp->lock, flags); 79248 raw_spin_lock_irqsave(&rnp->lock, flags);
79481diff --git a/kernel/rcutree.h b/kernel/rcutree.h 79249diff --git a/kernel/rcutree.h b/kernel/rcutree.h
79482index c896b50..c357252 100644 79250index 4df5034..5ee93f2 100644
79483--- a/kernel/rcutree.h 79251--- a/kernel/rcutree.h
79484+++ b/kernel/rcutree.h 79252+++ b/kernel/rcutree.h
79485@@ -86,7 +86,7 @@ struct rcu_dynticks { 79253@@ -87,7 +87,7 @@ struct rcu_dynticks {
79486 long long dynticks_nesting; /* Track irq/process nesting level. */ 79254 long long dynticks_nesting; /* Track irq/process nesting level. */
79487 /* Process level is worth LLONG_MAX/2. */ 79255 /* Process level is worth LLONG_MAX/2. */
79488 int dynticks_nmi_nesting; /* Track NMI nesting level. */ 79256 int dynticks_nmi_nesting; /* Track NMI nesting level. */
79489- atomic_t dynticks; /* Even value for idle, else odd. */ 79257- atomic_t dynticks; /* Even value for idle, else odd. */
79490+ atomic_unchecked_t dynticks;/* Even value for idle, else odd. */ 79258+ atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
79491 #ifdef CONFIG_RCU_FAST_NO_HZ 79259 #ifdef CONFIG_RCU_FAST_NO_HZ
79492 int dyntick_drain; /* Prepare-for-idle state variable. */ 79260 bool all_lazy; /* Are all CPU's CBs lazy? */
79493 unsigned long dyntick_holdoff; 79261 unsigned long nonlazy_posted;
79494@@ -416,17 +416,17 @@ struct rcu_state { 79262@@ -414,17 +414,17 @@ struct rcu_state {
79495 /* _rcu_barrier(). */ 79263 /* _rcu_barrier(). */
79496 /* End of fields guarded by barrier_mutex. */ 79264 /* End of fields guarded by barrier_mutex. */
79497 79265
@@ -79521,10 +79289,10 @@ index c896b50..c357252 100644
79521 unsigned long jiffies_force_qs; /* Time at which to invoke */ 79289 unsigned long jiffies_force_qs; /* Time at which to invoke */
79522 /* force_quiescent_state(). */ 79290 /* force_quiescent_state(). */
79523diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h 79291diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
79524index c1cc7e1..f62e436 100644 79292index 3db5a37..b395fb35 100644
79525--- a/kernel/rcutree_plugin.h 79293--- a/kernel/rcutree_plugin.h
79526+++ b/kernel/rcutree_plugin.h 79294+++ b/kernel/rcutree_plugin.h
79527@@ -892,7 +892,7 @@ void synchronize_rcu_expedited(void) 79295@@ -903,7 +903,7 @@ void synchronize_rcu_expedited(void)
79528 79296
79529 /* Clean up and exit. */ 79297 /* Clean up and exit. */
79530 smp_mb(); /* ensure expedited GP seen before counter increment. */ 79298 smp_mb(); /* ensure expedited GP seen before counter increment. */
@@ -79533,7 +79301,7 @@ index c1cc7e1..f62e436 100644
79533 unlock_mb_ret: 79301 unlock_mb_ret:
79534 mutex_unlock(&sync_rcu_preempt_exp_mutex); 79302 mutex_unlock(&sync_rcu_preempt_exp_mutex);
79535 mb_ret: 79303 mb_ret:
79536@@ -1440,7 +1440,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu) 79304@@ -1451,7 +1451,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
79537 free_cpumask_var(cm); 79305 free_cpumask_var(cm);
79538 } 79306 }
79539 79307
@@ -79542,16 +79310,16 @@ index c1cc7e1..f62e436 100644
79542 .store = &rcu_cpu_kthread_task, 79310 .store = &rcu_cpu_kthread_task,
79543 .thread_should_run = rcu_cpu_kthread_should_run, 79311 .thread_should_run = rcu_cpu_kthread_should_run,
79544 .thread_fn = rcu_cpu_kthread, 79312 .thread_fn = rcu_cpu_kthread,
79545@@ -2072,7 +2072,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu) 79313@@ -1916,7 +1916,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
79546 print_cpu_stall_fast_no_hz(fast_no_hz, cpu); 79314 print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
79547 printk(KERN_ERR "\t%d: (%lu %s) idle=%03x/%llx/%d %s\n", 79315 printk(KERN_ERR "\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u %s\n",
79548 cpu, ticks_value, ticks_title, 79316 cpu, ticks_value, ticks_title,
79549- atomic_read(&rdtp->dynticks) & 0xfff, 79317- atomic_read(&rdtp->dynticks) & 0xfff,
79550+ atomic_read_unchecked(&rdtp->dynticks) & 0xfff, 79318+ atomic_read_unchecked(&rdtp->dynticks) & 0xfff,
79551 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting, 79319 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
79320 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
79552 fast_no_hz); 79321 fast_no_hz);
79553 } 79322@@ -2079,7 +2079,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
79554@@ -2192,7 +2192,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
79555 79323
79556 /* Enqueue the callback on the nocb list and update counts. */ 79324 /* Enqueue the callback on the nocb list and update counts. */
79557 old_rhpp = xchg(&rdp->nocb_tail, rhtp); 79325 old_rhpp = xchg(&rdp->nocb_tail, rhtp);
@@ -79560,7 +79328,7 @@ index c1cc7e1..f62e436 100644
79560 atomic_long_add(rhcount, &rdp->nocb_q_count); 79328 atomic_long_add(rhcount, &rdp->nocb_q_count);
79561 atomic_long_add(rhcount_lazy, &rdp->nocb_q_count_lazy); 79329 atomic_long_add(rhcount_lazy, &rdp->nocb_q_count_lazy);
79562 79330
79563@@ -2384,12 +2384,12 @@ static int rcu_nocb_kthread(void *arg) 79331@@ -2219,12 +2219,12 @@ static int rcu_nocb_kthread(void *arg)
79564 * Extract queued callbacks, update counts, and wait 79332 * Extract queued callbacks, update counts, and wait
79565 * for a grace period to elapse. 79333 * for a grace period to elapse.
79566 */ 79334 */
@@ -79573,10 +79341,10 @@ index c1cc7e1..f62e436 100644
79573- ACCESS_ONCE(rdp->nocb_p_count_lazy) += cl; 79341- ACCESS_ONCE(rdp->nocb_p_count_lazy) += cl;
79574+ ACCESS_ONCE_RW(rdp->nocb_p_count) += c; 79342+ ACCESS_ONCE_RW(rdp->nocb_p_count) += c;
79575+ ACCESS_ONCE_RW(rdp->nocb_p_count_lazy) += cl; 79343+ ACCESS_ONCE_RW(rdp->nocb_p_count_lazy) += cl;
79576 wait_rcu_gp(rdp->rsp->call_remote); 79344 rcu_nocb_wait_gp(rdp);
79577 79345
79578 /* Each pass through the following loop invokes a callback. */ 79346 /* Each pass through the following loop invokes a callback. */
79579@@ -2411,8 +2411,8 @@ static int rcu_nocb_kthread(void *arg) 79347@@ -2246,8 +2246,8 @@ static int rcu_nocb_kthread(void *arg)
79580 list = next; 79348 list = next;
79581 } 79349 }
79582 trace_rcu_batch_end(rdp->rsp->name, c, !!list, 0, 0, 1); 79350 trace_rcu_batch_end(rdp->rsp->name, c, !!list, 0, 0, 1);
@@ -79587,9 +79355,9 @@ index c1cc7e1..f62e436 100644
79587 rdp->n_nocbs_invoked += c; 79355 rdp->n_nocbs_invoked += c;
79588 } 79356 }
79589 return 0; 79357 return 0;
79590@@ -2438,7 +2438,7 @@ static void __init rcu_spawn_nocb_kthreads(struct rcu_state *rsp) 79358@@ -2274,7 +2274,7 @@ static void __init rcu_spawn_nocb_kthreads(struct rcu_state *rsp)
79591 rdp = per_cpu_ptr(rsp->rda, cpu); 79359 t = kthread_run(rcu_nocb_kthread, rdp,
79592 t = kthread_run(rcu_nocb_kthread, rdp, "rcuo%d", cpu); 79360 "rcuo%c/%d", rsp->abbr, cpu);
79593 BUG_ON(IS_ERR(t)); 79361 BUG_ON(IS_ERR(t));
79594- ACCESS_ONCE(rdp->nocb_kthread) = t; 79362- ACCESS_ONCE(rdp->nocb_kthread) = t;
79595+ ACCESS_ONCE_RW(rdp->nocb_kthread) = t; 79363+ ACCESS_ONCE_RW(rdp->nocb_kthread) = t;
@@ -79597,10 +79365,10 @@ index c1cc7e1..f62e436 100644
79597 } 79365 }
79598 79366
79599diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c 79367diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c
79600index 93f8e8f..cf812ae 100644 79368index cf6c174..a8f4b50 100644
79601--- a/kernel/rcutree_trace.c 79369--- a/kernel/rcutree_trace.c
79602+++ b/kernel/rcutree_trace.c 79370+++ b/kernel/rcutree_trace.c
79603@@ -123,7 +123,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp) 79371@@ -121,7 +121,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
79604 ulong2long(rdp->completed), ulong2long(rdp->gpnum), 79372 ulong2long(rdp->completed), ulong2long(rdp->gpnum),
79605 rdp->passed_quiesce, rdp->qs_pending); 79373 rdp->passed_quiesce, rdp->qs_pending);
79606 seq_printf(m, " dt=%d/%llx/%d df=%lu", 79374 seq_printf(m, " dt=%d/%llx/%d df=%lu",
@@ -79609,7 +79377,7 @@ index 93f8e8f..cf812ae 100644
79609 rdp->dynticks->dynticks_nesting, 79377 rdp->dynticks->dynticks_nesting,
79610 rdp->dynticks->dynticks_nmi_nesting, 79378 rdp->dynticks->dynticks_nmi_nesting,
79611 rdp->dynticks_fqs); 79379 rdp->dynticks_fqs);
79612@@ -184,17 +184,17 @@ static int show_rcuexp(struct seq_file *m, void *v) 79380@@ -182,17 +182,17 @@ static int show_rcuexp(struct seq_file *m, void *v)
79613 struct rcu_state *rsp = (struct rcu_state *)m->private; 79381 struct rcu_state *rsp = (struct rcu_state *)m->private;
79614 79382
79615 seq_printf(m, "s=%lu d=%lu w=%lu tf=%lu wd1=%lu wd2=%lu n=%lu sc=%lu dt=%lu dl=%lu dx=%lu\n", 79383 seq_printf(m, "s=%lu d=%lu w=%lu tf=%lu wd1=%lu wd2=%lu n=%lu sc=%lu dt=%lu dl=%lu dx=%lu\n",
@@ -79638,10 +79406,10 @@ index 93f8e8f..cf812ae 100644
79638 } 79406 }
79639 79407
79640diff --git a/kernel/resource.c b/kernel/resource.c 79408diff --git a/kernel/resource.c b/kernel/resource.c
79641index 73f35d4..4684fc4 100644 79409index d738698..5f8e60a 100644
79642--- a/kernel/resource.c 79410--- a/kernel/resource.c
79643+++ b/kernel/resource.c 79411+++ b/kernel/resource.c
79644@@ -143,8 +143,18 @@ static const struct file_operations proc_iomem_operations = { 79412@@ -152,8 +152,18 @@ static const struct file_operations proc_iomem_operations = {
79645 79413
79646 static int __init ioresources_init(void) 79414 static int __init ioresources_init(void)
79647 { 79415 {
@@ -79661,10 +79429,10 @@ index 73f35d4..4684fc4 100644
79661 } 79429 }
79662 __initcall(ioresources_init); 79430 __initcall(ioresources_init);
79663diff --git a/kernel/rtmutex-tester.c b/kernel/rtmutex-tester.c 79431diff --git a/kernel/rtmutex-tester.c b/kernel/rtmutex-tester.c
79664index 7890b10..8b68605f 100644 79432index 1d96dd0..994ff19 100644
79665--- a/kernel/rtmutex-tester.c 79433--- a/kernel/rtmutex-tester.c
79666+++ b/kernel/rtmutex-tester.c 79434+++ b/kernel/rtmutex-tester.c
79667@@ -21,7 +21,7 @@ 79435@@ -22,7 +22,7 @@
79668 #define MAX_RT_TEST_MUTEXES 8 79436 #define MAX_RT_TEST_MUTEXES 8
79669 79437
79670 static spinlock_t rttest_lock; 79438 static spinlock_t rttest_lock;
@@ -79673,7 +79441,7 @@ index 7890b10..8b68605f 100644
79673 79441
79674 struct test_thread_data { 79442 struct test_thread_data {
79675 int opcode; 79443 int opcode;
79676@@ -62,7 +62,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup) 79444@@ -63,7 +63,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
79677 79445
79678 case RTTEST_LOCKCONT: 79446 case RTTEST_LOCKCONT:
79679 td->mutexes[td->opdata] = 1; 79447 td->mutexes[td->opdata] = 1;
@@ -79682,7 +79450,7 @@ index 7890b10..8b68605f 100644
79682 return 0; 79450 return 0;
79683 79451
79684 case RTTEST_RESET: 79452 case RTTEST_RESET:
79685@@ -75,7 +75,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup) 79453@@ -76,7 +76,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
79686 return 0; 79454 return 0;
79687 79455
79688 case RTTEST_RESETEVENT: 79456 case RTTEST_RESETEVENT:
@@ -79691,7 +79459,7 @@ index 7890b10..8b68605f 100644
79691 return 0; 79459 return 0;
79692 79460
79693 default: 79461 default:
79694@@ -92,9 +92,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup) 79462@@ -93,9 +93,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
79695 return ret; 79463 return ret;
79696 79464
79697 td->mutexes[id] = 1; 79465 td->mutexes[id] = 1;
@@ -79703,7 +79471,7 @@ index 7890b10..8b68605f 100644
79703 td->mutexes[id] = 4; 79471 td->mutexes[id] = 4;
79704 return 0; 79472 return 0;
79705 79473
79706@@ -105,9 +105,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup) 79474@@ -106,9 +106,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
79707 return ret; 79475 return ret;
79708 79476
79709 td->mutexes[id] = 1; 79477 td->mutexes[id] = 1;
@@ -79715,7 +79483,7 @@ index 7890b10..8b68605f 100644
79715 td->mutexes[id] = ret ? 0 : 4; 79483 td->mutexes[id] = ret ? 0 : 4;
79716 return ret ? -EINTR : 0; 79484 return ret ? -EINTR : 0;
79717 79485
79718@@ -116,9 +116,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup) 79486@@ -117,9 +117,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
79719 if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4) 79487 if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4)
79720 return ret; 79488 return ret;
79721 79489
@@ -79727,7 +79495,7 @@ index 7890b10..8b68605f 100644
79727 td->mutexes[id] = 0; 79495 td->mutexes[id] = 0;
79728 return 0; 79496 return 0;
79729 79497
79730@@ -165,7 +165,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex) 79498@@ -166,7 +166,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
79731 break; 79499 break;
79732 79500
79733 td->mutexes[dat] = 2; 79501 td->mutexes[dat] = 2;
@@ -79736,7 +79504,7 @@ index 7890b10..8b68605f 100644
79736 break; 79504 break;
79737 79505
79738 default: 79506 default:
79739@@ -185,7 +185,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex) 79507@@ -186,7 +186,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
79740 return; 79508 return;
79741 79509
79742 td->mutexes[dat] = 3; 79510 td->mutexes[dat] = 3;
@@ -79745,7 +79513,7 @@ index 7890b10..8b68605f 100644
79745 break; 79513 break;
79746 79514
79747 case RTTEST_LOCKNOWAIT: 79515 case RTTEST_LOCKNOWAIT:
79748@@ -197,7 +197,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex) 79516@@ -198,7 +198,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
79749 return; 79517 return;
79750 79518
79751 td->mutexes[dat] = 1; 79519 td->mutexes[dat] = 1;
@@ -79777,10 +79545,10 @@ index 64de5f8..7735e12 100644
79777 #ifdef CONFIG_RT_GROUP_SCHED 79545 #ifdef CONFIG_RT_GROUP_SCHED
79778 /* 79546 /*
79779diff --git a/kernel/sched/core.c b/kernel/sched/core.c 79547diff --git a/kernel/sched/core.c b/kernel/sched/core.c
79780index 67d0465..4cf9361 100644 79548index e8b3350..d83d44e 100644
79781--- a/kernel/sched/core.c 79549--- a/kernel/sched/core.c
79782+++ b/kernel/sched/core.c 79550+++ b/kernel/sched/core.c
79783@@ -3406,7 +3406,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible); 79551@@ -3440,7 +3440,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible);
79784 * The return value is -ERESTARTSYS if interrupted, 0 if timed out, 79552 * The return value is -ERESTARTSYS if interrupted, 0 if timed out,
79785 * positive (at least 1, or number of jiffies left till timeout) if completed. 79553 * positive (at least 1, or number of jiffies left till timeout) if completed.
79786 */ 79554 */
@@ -79789,7 +79557,7 @@ index 67d0465..4cf9361 100644
79789 wait_for_completion_interruptible_timeout(struct completion *x, 79557 wait_for_completion_interruptible_timeout(struct completion *x,
79790 unsigned long timeout) 79558 unsigned long timeout)
79791 { 79559 {
79792@@ -3423,7 +3423,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout); 79560@@ -3457,7 +3457,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
79793 * 79561 *
79794 * The return value is -ERESTARTSYS if interrupted, 0 if completed. 79562 * The return value is -ERESTARTSYS if interrupted, 0 if completed.
79795 */ 79563 */
@@ -79798,7 +79566,7 @@ index 67d0465..4cf9361 100644
79798 { 79566 {
79799 long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_KILLABLE); 79567 long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_KILLABLE);
79800 if (t == -ERESTARTSYS) 79568 if (t == -ERESTARTSYS)
79801@@ -3444,7 +3444,7 @@ EXPORT_SYMBOL(wait_for_completion_killable); 79569@@ -3478,7 +3478,7 @@ EXPORT_SYMBOL(wait_for_completion_killable);
79802 * The return value is -ERESTARTSYS if interrupted, 0 if timed out, 79570 * The return value is -ERESTARTSYS if interrupted, 0 if timed out,
79803 * positive (at least 1, or number of jiffies left till timeout) if completed. 79571 * positive (at least 1, or number of jiffies left till timeout) if completed.
79804 */ 79572 */
@@ -79807,7 +79575,7 @@ index 67d0465..4cf9361 100644
79807 wait_for_completion_killable_timeout(struct completion *x, 79575 wait_for_completion_killable_timeout(struct completion *x,
79808 unsigned long timeout) 79576 unsigned long timeout)
79809 { 79577 {
79810@@ -3670,6 +3670,8 @@ int can_nice(const struct task_struct *p, const int nice) 79578@@ -3704,6 +3704,8 @@ int can_nice(const struct task_struct *p, const int nice)
79811 /* convert nice value [19,-20] to rlimit style value [1,40] */ 79579 /* convert nice value [19,-20] to rlimit style value [1,40] */
79812 int nice_rlim = 20 - nice; 79580 int nice_rlim = 20 - nice;
79813 79581
@@ -79816,7 +79584,7 @@ index 67d0465..4cf9361 100644
79816 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || 79584 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
79817 capable(CAP_SYS_NICE)); 79585 capable(CAP_SYS_NICE));
79818 } 79586 }
79819@@ -3703,7 +3705,8 @@ SYSCALL_DEFINE1(nice, int, increment) 79587@@ -3737,7 +3739,8 @@ SYSCALL_DEFINE1(nice, int, increment)
79820 if (nice > 19) 79588 if (nice > 19)
79821 nice = 19; 79589 nice = 19;
79822 79590
@@ -79826,7 +79594,7 @@ index 67d0465..4cf9361 100644
79826 return -EPERM; 79594 return -EPERM;
79827 79595
79828 retval = security_task_setnice(current, nice); 79596 retval = security_task_setnice(current, nice);
79829@@ -3857,6 +3860,7 @@ recheck: 79597@@ -3891,6 +3894,7 @@ recheck:
79830 unsigned long rlim_rtprio = 79598 unsigned long rlim_rtprio =
79831 task_rlimit(p, RLIMIT_RTPRIO); 79599 task_rlimit(p, RLIMIT_RTPRIO);
79832 79600
@@ -79834,7 +79602,7 @@ index 67d0465..4cf9361 100644
79834 /* can't set/change the rt policy */ 79602 /* can't set/change the rt policy */
79835 if (policy != p->policy && !rlim_rtprio) 79603 if (policy != p->policy && !rlim_rtprio)
79836 return -EPERM; 79604 return -EPERM;
79837@@ -4954,7 +4958,7 @@ static void migrate_tasks(unsigned int dead_cpu) 79605@@ -4988,7 +4992,7 @@ static void migrate_tasks(unsigned int dead_cpu)
79838 79606
79839 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL) 79607 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
79840 79608
@@ -79843,7 +79611,7 @@ index 67d0465..4cf9361 100644
79843 { 79611 {
79844 .procname = "sched_domain", 79612 .procname = "sched_domain",
79845 .mode = 0555, 79613 .mode = 0555,
79846@@ -4971,17 +4975,17 @@ static struct ctl_table sd_ctl_root[] = { 79614@@ -5005,17 +5009,17 @@ static struct ctl_table sd_ctl_root[] = {
79847 {} 79615 {}
79848 }; 79616 };
79849 79617
@@ -79865,7 +79633,7 @@ index 67d0465..4cf9361 100644
79865 79633
79866 /* 79634 /*
79867 * In the intermediate directories, both the child directory and 79635 * In the intermediate directories, both the child directory and
79868@@ -4989,22 +4993,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep) 79636@@ -5023,22 +5027,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
79869 * will always be set. In the lowest directory the names are 79637 * will always be set. In the lowest directory the names are
79870 * static strings and all have proc handlers. 79638 * static strings and all have proc handlers.
79871 */ 79639 */
@@ -79897,7 +79665,7 @@ index 67d0465..4cf9361 100644
79897 const char *procname, void *data, int maxlen, 79665 const char *procname, void *data, int maxlen,
79898 umode_t mode, proc_handler *proc_handler, 79666 umode_t mode, proc_handler *proc_handler,
79899 bool load_idx) 79667 bool load_idx)
79900@@ -5024,7 +5031,7 @@ set_table_entry(struct ctl_table *entry, 79668@@ -5058,7 +5065,7 @@ set_table_entry(struct ctl_table *entry,
79901 static struct ctl_table * 79669 static struct ctl_table *
79902 sd_alloc_ctl_domain_table(struct sched_domain *sd) 79670 sd_alloc_ctl_domain_table(struct sched_domain *sd)
79903 { 79671 {
@@ -79906,7 +79674,7 @@ index 67d0465..4cf9361 100644
79906 79674
79907 if (table == NULL) 79675 if (table == NULL)
79908 return NULL; 79676 return NULL;
79909@@ -5059,9 +5066,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd) 79677@@ -5093,9 +5100,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
79910 return table; 79678 return table;
79911 } 79679 }
79912 79680
@@ -79918,7 +79686,7 @@ index 67d0465..4cf9361 100644
79918 struct sched_domain *sd; 79686 struct sched_domain *sd;
79919 int domain_num = 0, i; 79687 int domain_num = 0, i;
79920 char buf[32]; 79688 char buf[32];
79921@@ -5088,11 +5095,13 @@ static struct ctl_table_header *sd_sysctl_header; 79689@@ -5122,11 +5129,13 @@ static struct ctl_table_header *sd_sysctl_header;
79922 static void register_sched_domain_sysctl(void) 79690 static void register_sched_domain_sysctl(void)
79923 { 79691 {
79924 int i, cpu_num = num_possible_cpus(); 79692 int i, cpu_num = num_possible_cpus();
@@ -79933,7 +79701,7 @@ index 67d0465..4cf9361 100644
79933 79701
79934 if (entry == NULL) 79702 if (entry == NULL)
79935 return; 79703 return;
79936@@ -5115,8 +5124,12 @@ static void unregister_sched_domain_sysctl(void) 79704@@ -5149,8 +5158,12 @@ static void unregister_sched_domain_sysctl(void)
79937 if (sd_sysctl_header) 79705 if (sd_sysctl_header)
79938 unregister_sysctl_table(sd_sysctl_header); 79706 unregister_sysctl_table(sd_sysctl_header);
79939 sd_sysctl_header = NULL; 79707 sd_sysctl_header = NULL;
@@ -79948,7 +79716,7 @@ index 67d0465..4cf9361 100644
79948 } 79716 }
79949 #else 79717 #else
79950 static void register_sched_domain_sysctl(void) 79718 static void register_sched_domain_sysctl(void)
79951@@ -5215,7 +5228,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu) 79719@@ -5249,7 +5262,7 @@ migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
79952 * happens before everything else. This has to be lower priority than 79720 * happens before everything else. This has to be lower priority than
79953 * the notifier in the perf_event subsystem, though. 79721 * the notifier in the perf_event subsystem, though.
79954 */ 79722 */
@@ -79958,10 +79726,10 @@ index 67d0465..4cf9361 100644
79958 .priority = CPU_PRI_MIGRATION, 79726 .priority = CPU_PRI_MIGRATION,
79959 }; 79727 };
79960diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c 79728diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
79961index 7a33e59..2f7730c 100644 79729index c61a614..d7f3d7e 100644
79962--- a/kernel/sched/fair.c 79730--- a/kernel/sched/fair.c
79963+++ b/kernel/sched/fair.c 79731+++ b/kernel/sched/fair.c
79964@@ -830,7 +830,7 @@ void task_numa_fault(int node, int pages, bool migrated) 79732@@ -831,7 +831,7 @@ void task_numa_fault(int node, int pages, bool migrated)
79965 79733
79966 static void reset_ptenuma_scan(struct task_struct *p) 79734 static void reset_ptenuma_scan(struct task_struct *p)
79967 { 79735 {
@@ -79970,7 +79738,7 @@ index 7a33e59..2f7730c 100644
79970 p->mm->numa_scan_offset = 0; 79738 p->mm->numa_scan_offset = 0;
79971 } 79739 }
79972 79740
79973@@ -5654,7 +5654,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { } 79741@@ -5686,7 +5686,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
79974 * run_rebalance_domains is triggered when needed from the scheduler tick. 79742 * run_rebalance_domains is triggered when needed from the scheduler tick.
79975 * Also triggered for nohz idle balancing (with nohz_balancing_kick set). 79743 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
79976 */ 79744 */
@@ -79979,11 +79747,24 @@ index 7a33e59..2f7730c 100644
79979 { 79747 {
79980 int this_cpu = smp_processor_id(); 79748 int this_cpu = smp_processor_id();
79981 struct rq *this_rq = cpu_rq(this_cpu); 79749 struct rq *this_rq = cpu_rq(this_cpu);
79750diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
79751index ce39224d..0e09343 100644
79752--- a/kernel/sched/sched.h
79753+++ b/kernel/sched/sched.h
79754@@ -1009,7 +1009,7 @@ struct sched_class {
79755 #ifdef CONFIG_FAIR_GROUP_SCHED
79756 void (*task_move_group) (struct task_struct *p, int on_rq);
79757 #endif
79758-};
79759+} __do_const;
79760
79761 #define sched_class_highest (&stop_sched_class)
79762 #define for_each_class(class) \
79982diff --git a/kernel/signal.c b/kernel/signal.c 79763diff --git a/kernel/signal.c b/kernel/signal.c
79983index 598dc06..471310a 100644 79764index 113411b..17190e2 100644
79984--- a/kernel/signal.c 79765--- a/kernel/signal.c
79985+++ b/kernel/signal.c 79766+++ b/kernel/signal.c
79986@@ -50,12 +50,12 @@ static struct kmem_cache *sigqueue_cachep; 79767@@ -51,12 +51,12 @@ static struct kmem_cache *sigqueue_cachep;
79987 79768
79988 int print_fatal_signals __read_mostly; 79769 int print_fatal_signals __read_mostly;
79989 79770
@@ -79998,7 +79779,7 @@ index 598dc06..471310a 100644
79998 { 79779 {
79999 /* Is it explicitly or implicitly ignored? */ 79780 /* Is it explicitly or implicitly ignored? */
80000 return handler == SIG_IGN || 79781 return handler == SIG_IGN ||
80001@@ -64,7 +64,7 @@ static int sig_handler_ignored(void __user *handler, int sig) 79782@@ -65,7 +65,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
80002 79783
80003 static int sig_task_ignored(struct task_struct *t, int sig, bool force) 79784 static int sig_task_ignored(struct task_struct *t, int sig, bool force)
80004 { 79785 {
@@ -80007,7 +79788,7 @@ index 598dc06..471310a 100644
80007 79788
80008 handler = sig_handler(t, sig); 79789 handler = sig_handler(t, sig);
80009 79790
80010@@ -368,6 +368,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi 79791@@ -369,6 +369,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
80011 atomic_inc(&user->sigpending); 79792 atomic_inc(&user->sigpending);
80012 rcu_read_unlock(); 79793 rcu_read_unlock();
80013 79794
@@ -80017,7 +79798,7 @@ index 598dc06..471310a 100644
80017 if (override_rlimit || 79798 if (override_rlimit ||
80018 atomic_read(&user->sigpending) <= 79799 atomic_read(&user->sigpending) <=
80019 task_rlimit(t, RLIMIT_SIGPENDING)) { 79800 task_rlimit(t, RLIMIT_SIGPENDING)) {
80020@@ -495,7 +498,7 @@ flush_signal_handlers(struct task_struct *t, int force_default) 79801@@ -496,7 +499,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
80021 79802
80022 int unhandled_signal(struct task_struct *tsk, int sig) 79803 int unhandled_signal(struct task_struct *tsk, int sig)
80023 { 79804 {
@@ -80026,7 +79807,7 @@ index 598dc06..471310a 100644
80026 if (is_global_init(tsk)) 79807 if (is_global_init(tsk))
80027 return 1; 79808 return 1;
80028 if (handler != SIG_IGN && handler != SIG_DFL) 79809 if (handler != SIG_IGN && handler != SIG_DFL)
80029@@ -815,6 +818,13 @@ static int check_kill_permission(int sig, struct siginfo *info, 79810@@ -816,6 +819,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
80030 } 79811 }
80031 } 79812 }
80032 79813
@@ -80040,7 +79821,7 @@ index 598dc06..471310a 100644
80040 return security_task_kill(t, info, sig, 0); 79821 return security_task_kill(t, info, sig, 0);
80041 } 79822 }
80042 79823
80043@@ -1197,7 +1207,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) 79824@@ -1199,7 +1209,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
80044 return send_signal(sig, info, p, 1); 79825 return send_signal(sig, info, p, 1);
80045 } 79826 }
80046 79827
@@ -80049,7 +79830,7 @@ index 598dc06..471310a 100644
80049 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t) 79830 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
80050 { 79831 {
80051 return send_signal(sig, info, t, 0); 79832 return send_signal(sig, info, t, 0);
80052@@ -1234,6 +1244,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t) 79833@@ -1236,6 +1246,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
80053 unsigned long int flags; 79834 unsigned long int flags;
80054 int ret, blocked, ignored; 79835 int ret, blocked, ignored;
80055 struct k_sigaction *action; 79836 struct k_sigaction *action;
@@ -80057,7 +79838,7 @@ index 598dc06..471310a 100644
80057 79838
80058 spin_lock_irqsave(&t->sighand->siglock, flags); 79839 spin_lock_irqsave(&t->sighand->siglock, flags);
80059 action = &t->sighand->action[sig-1]; 79840 action = &t->sighand->action[sig-1];
80060@@ -1248,9 +1259,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t) 79841@@ -1250,9 +1261,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
80061 } 79842 }
80062 if (action->sa.sa_handler == SIG_DFL) 79843 if (action->sa.sa_handler == SIG_DFL)
80063 t->signal->flags &= ~SIGNAL_UNKILLABLE; 79844 t->signal->flags &= ~SIGNAL_UNKILLABLE;
@@ -80076,7 +79857,7 @@ index 598dc06..471310a 100644
80076 return ret; 79857 return ret;
80077 } 79858 }
80078 79859
80079@@ -1317,8 +1337,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p) 79860@@ -1319,8 +1339,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
80080 ret = check_kill_permission(sig, info, p); 79861 ret = check_kill_permission(sig, info, p);
80081 rcu_read_unlock(); 79862 rcu_read_unlock();
80082 79863
@@ -80089,7 +79870,7 @@ index 598dc06..471310a 100644
80089 79870
80090 return ret; 79871 return ret;
80091 } 79872 }
80092@@ -2923,7 +2946,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info) 79873@@ -2926,7 +2949,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
80093 int error = -ESRCH; 79874 int error = -ESRCH;
80094 79875
80095 rcu_read_lock(); 79876 rcu_read_lock();
@@ -80106,7 +79887,7 @@ index 598dc06..471310a 100644
80106 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) { 79887 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
80107 error = check_kill_permission(sig, info, p); 79888 error = check_kill_permission(sig, info, p);
80108 /* 79889 /*
80109@@ -3237,8 +3268,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack, 79890@@ -3240,8 +3271,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
80110 } 79891 }
80111 seg = get_fs(); 79892 seg = get_fs();
80112 set_fs(KERNEL_DS); 79893 set_fs(KERNEL_DS);
@@ -80118,7 +79899,7 @@ index 598dc06..471310a 100644
80118 set_fs(seg); 79899 set_fs(seg);
80119 if (ret >= 0 && uoss_ptr) { 79900 if (ret >= 0 && uoss_ptr) {
80120diff --git a/kernel/smp.c b/kernel/smp.c 79901diff --git a/kernel/smp.c b/kernel/smp.c
80121index 8e451f3..8322029 100644 79902index 4dba0f7..fe9f773 100644
80122--- a/kernel/smp.c 79903--- a/kernel/smp.c
80123+++ b/kernel/smp.c 79904+++ b/kernel/smp.c
80124@@ -73,7 +73,7 @@ hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu) 79905@@ -73,7 +73,7 @@ hotplug_cfd(struct notifier_block *nfb, unsigned long action, void *hcpu)
@@ -80153,7 +79934,7 @@ index 02fc5c9..e54c335 100644
80153 mutex_unlock(&smpboot_threads_lock); 79934 mutex_unlock(&smpboot_threads_lock);
80154 put_online_cpus(); 79935 put_online_cpus();
80155diff --git a/kernel/softirq.c b/kernel/softirq.c 79936diff --git a/kernel/softirq.c b/kernel/softirq.c
80156index d93dcb1..1cd8a71 100644 79937index 3d6833f..da6d93d 100644
80157--- a/kernel/softirq.c 79938--- a/kernel/softirq.c
80158+++ b/kernel/softirq.c 79939+++ b/kernel/softirq.c
80159@@ -53,11 +53,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned; 79940@@ -53,11 +53,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
@@ -80179,7 +79960,7 @@ index d93dcb1..1cd8a71 100644
80179 trace_softirq_exit(vec_nr); 79960 trace_softirq_exit(vec_nr);
80180 if (unlikely(prev_count != preempt_count())) { 79961 if (unlikely(prev_count != preempt_count())) {
80181 printk(KERN_ERR "huh, entered softirq %u %s %p" 79962 printk(KERN_ERR "huh, entered softirq %u %s %p"
80182@@ -396,7 +396,7 @@ void __raise_softirq_irqoff(unsigned int nr) 79963@@ -405,7 +405,7 @@ void __raise_softirq_irqoff(unsigned int nr)
80183 or_softirq_pending(1UL << nr); 79964 or_softirq_pending(1UL << nr);
80184 } 79965 }
80185 79966
@@ -80188,7 +79969,7 @@ index d93dcb1..1cd8a71 100644
80188 { 79969 {
80189 softirq_vec[nr].action = action; 79970 softirq_vec[nr].action = action;
80190 } 79971 }
80191@@ -452,7 +452,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t) 79972@@ -461,7 +461,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
80192 79973
80193 EXPORT_SYMBOL(__tasklet_hi_schedule_first); 79974 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
80194 79975
@@ -80197,7 +79978,7 @@ index d93dcb1..1cd8a71 100644
80197 { 79978 {
80198 struct tasklet_struct *list; 79979 struct tasklet_struct *list;
80199 79980
80200@@ -487,7 +487,7 @@ static void tasklet_action(struct softirq_action *a) 79981@@ -496,7 +496,7 @@ static void tasklet_action(struct softirq_action *a)
80201 } 79982 }
80202 } 79983 }
80203 79984
@@ -80206,7 +79987,7 @@ index d93dcb1..1cd8a71 100644
80206 { 79987 {
80207 struct tasklet_struct *list; 79988 struct tasklet_struct *list;
80208 79989
80209@@ -723,7 +723,7 @@ static int __cpuinit remote_softirq_cpu_notify(struct notifier_block *self, 79990@@ -730,7 +730,7 @@ static int __cpuinit remote_softirq_cpu_notify(struct notifier_block *self,
80210 return NOTIFY_OK; 79991 return NOTIFY_OK;
80211 } 79992 }
80212 79993
@@ -80215,7 +79996,7 @@ index d93dcb1..1cd8a71 100644
80215 .notifier_call = remote_softirq_cpu_notify, 79996 .notifier_call = remote_softirq_cpu_notify,
80216 }; 79997 };
80217 79998
80218@@ -840,11 +840,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb, 79999@@ -847,11 +847,11 @@ static int __cpuinit cpu_callback(struct notifier_block *nfb,
80219 return NOTIFY_OK; 80000 return NOTIFY_OK;
80220 } 80001 }
80221 80002
@@ -80246,10 +80027,10 @@ index 01d5ccb..cdcbee6 100644
80246 return idx; 80027 return idx;
80247 } 80028 }
80248diff --git a/kernel/sys.c b/kernel/sys.c 80029diff --git a/kernel/sys.c b/kernel/sys.c
80249index e5f0aca..8d58b1f 100644 80030index 2bbd9a7..0875671 100644
80250--- a/kernel/sys.c 80031--- a/kernel/sys.c
80251+++ b/kernel/sys.c 80032+++ b/kernel/sys.c
80252@@ -158,6 +158,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error) 80033@@ -163,6 +163,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
80253 error = -EACCES; 80034 error = -EACCES;
80254 goto out; 80035 goto out;
80255 } 80036 }
@@ -80262,7 +80043,7 @@ index e5f0aca..8d58b1f 100644
80262 no_nice = security_task_setnice(p, niceval); 80043 no_nice = security_task_setnice(p, niceval);
80263 if (no_nice) { 80044 if (no_nice) {
80264 error = no_nice; 80045 error = no_nice;
80265@@ -621,6 +627,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid) 80046@@ -626,6 +632,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
80266 goto error; 80047 goto error;
80267 } 80048 }
80268 80049
@@ -80272,7 +80053,7 @@ index e5f0aca..8d58b1f 100644
80272 if (rgid != (gid_t) -1 || 80053 if (rgid != (gid_t) -1 ||
80273 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid))) 80054 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
80274 new->sgid = new->egid; 80055 new->sgid = new->egid;
80275@@ -656,6 +665,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid) 80056@@ -661,6 +670,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
80276 old = current_cred(); 80057 old = current_cred();
80277 80058
80278 retval = -EPERM; 80059 retval = -EPERM;
@@ -80283,7 +80064,7 @@ index e5f0aca..8d58b1f 100644
80283 if (nsown_capable(CAP_SETGID)) 80064 if (nsown_capable(CAP_SETGID))
80284 new->gid = new->egid = new->sgid = new->fsgid = kgid; 80065 new->gid = new->egid = new->sgid = new->fsgid = kgid;
80285 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid)) 80066 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
80286@@ -673,7 +686,7 @@ error: 80067@@ -678,7 +691,7 @@ error:
80287 /* 80068 /*
80288 * change the user struct in a credentials set to match the new UID 80069 * change the user struct in a credentials set to match the new UID
80289 */ 80070 */
@@ -80292,7 +80073,7 @@ index e5f0aca..8d58b1f 100644
80292 { 80073 {
80293 struct user_struct *new_user; 80074 struct user_struct *new_user;
80294 80075
80295@@ -753,6 +766,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid) 80076@@ -758,6 +771,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
80296 goto error; 80077 goto error;
80297 } 80078 }
80298 80079
@@ -80302,7 +80083,7 @@ index e5f0aca..8d58b1f 100644
80302 if (!uid_eq(new->uid, old->uid)) { 80083 if (!uid_eq(new->uid, old->uid)) {
80303 retval = set_user(new); 80084 retval = set_user(new);
80304 if (retval < 0) 80085 if (retval < 0)
80305@@ -803,6 +819,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid) 80086@@ -808,6 +824,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
80306 old = current_cred(); 80087 old = current_cred();
80307 80088
80308 retval = -EPERM; 80089 retval = -EPERM;
@@ -80315,7 +80096,7 @@ index e5f0aca..8d58b1f 100644
80315 if (nsown_capable(CAP_SETUID)) { 80096 if (nsown_capable(CAP_SETUID)) {
80316 new->suid = new->uid = kuid; 80097 new->suid = new->uid = kuid;
80317 if (!uid_eq(kuid, old->uid)) { 80098 if (!uid_eq(kuid, old->uid)) {
80318@@ -872,6 +894,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid) 80099@@ -877,6 +899,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
80319 goto error; 80100 goto error;
80320 } 80101 }
80321 80102
@@ -80325,7 +80106,7 @@ index e5f0aca..8d58b1f 100644
80325 if (ruid != (uid_t) -1) { 80106 if (ruid != (uid_t) -1) {
80326 new->uid = kruid; 80107 new->uid = kruid;
80327 if (!uid_eq(kruid, old->uid)) { 80108 if (!uid_eq(kruid, old->uid)) {
80328@@ -954,6 +979,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid) 80109@@ -959,6 +984,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
80329 goto error; 80110 goto error;
80330 } 80111 }
80331 80112
@@ -80335,7 +80116,7 @@ index e5f0aca..8d58b1f 100644
80335 if (rgid != (gid_t) -1) 80116 if (rgid != (gid_t) -1)
80336 new->gid = krgid; 80117 new->gid = krgid;
80337 if (egid != (gid_t) -1) 80118 if (egid != (gid_t) -1)
80338@@ -1015,12 +1043,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid) 80119@@ -1020,12 +1048,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
80339 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) || 80120 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
80340 nsown_capable(CAP_SETUID)) { 80121 nsown_capable(CAP_SETUID)) {
80341 if (!uid_eq(kuid, old->fsuid)) { 80122 if (!uid_eq(kuid, old->fsuid)) {
@@ -80352,7 +80133,7 @@ index e5f0aca..8d58b1f 100644
80352 abort_creds(new); 80133 abort_creds(new);
80353 return old_fsuid; 80134 return old_fsuid;
80354 80135
80355@@ -1053,12 +1085,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid) 80136@@ -1058,12 +1090,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
80356 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) || 80137 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
80357 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) || 80138 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
80358 nsown_capable(CAP_SETGID)) { 80139 nsown_capable(CAP_SETGID)) {
@@ -80369,7 +80150,7 @@ index e5f0aca..8d58b1f 100644
80369 abort_creds(new); 80150 abort_creds(new);
80370 return old_fsgid; 80151 return old_fsgid;
80371 80152
80372@@ -1366,19 +1402,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name) 80153@@ -1432,19 +1468,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
80373 return -EFAULT; 80154 return -EFAULT;
80374 80155
80375 down_read(&uts_sem); 80156 down_read(&uts_sem);
@@ -80394,7 +80175,7 @@ index e5f0aca..8d58b1f 100644
80394 __OLD_UTS_LEN); 80175 __OLD_UTS_LEN);
80395 error |= __put_user(0, name->machine + __OLD_UTS_LEN); 80176 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
80396 up_read(&uts_sem); 80177 up_read(&uts_sem);
80397@@ -1580,6 +1616,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource, 80178@@ -1646,6 +1682,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
80398 */ 80179 */
80399 new_rlim->rlim_cur = 1; 80180 new_rlim->rlim_cur = 1;
80400 } 80181 }
@@ -80409,7 +80190,7 @@ index e5f0aca..8d58b1f 100644
80409 if (!retval) { 80190 if (!retval) {
80410 if (old_rlim) 80191 if (old_rlim)
80411diff --git a/kernel/sysctl.c b/kernel/sysctl.c 80192diff --git a/kernel/sysctl.c b/kernel/sysctl.c
80412index afc1dc6..f6cf355 100644 80193index 9edcf45..713c960 100644
80413--- a/kernel/sysctl.c 80194--- a/kernel/sysctl.c
80414+++ b/kernel/sysctl.c 80195+++ b/kernel/sysctl.c
80415@@ -93,7 +93,6 @@ 80196@@ -93,7 +93,6 @@
@@ -80420,7 +80201,7 @@ index afc1dc6..f6cf355 100644
80420 /* External variables not in a header file. */ 80201 /* External variables not in a header file. */
80421 extern int sysctl_overcommit_memory; 80202 extern int sysctl_overcommit_memory;
80422 extern int sysctl_overcommit_ratio; 80203 extern int sysctl_overcommit_ratio;
80423@@ -120,18 +119,18 @@ extern int blk_iopoll_enabled; 80204@@ -119,18 +118,18 @@ extern int blk_iopoll_enabled;
80424 80205
80425 /* Constants used for minimum and maximum */ 80206 /* Constants used for minimum and maximum */
80426 #ifdef CONFIG_LOCKUP_DETECTOR 80207 #ifdef CONFIG_LOCKUP_DETECTOR
@@ -80448,7 +80229,7 @@ index afc1dc6..f6cf355 100644
80448 #endif 80229 #endif
80449 80230
80450 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */ 80231 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
80451@@ -178,10 +177,8 @@ static int proc_taint(struct ctl_table *table, int write, 80232@@ -177,10 +176,8 @@ static int proc_taint(struct ctl_table *table, int write,
80452 void __user *buffer, size_t *lenp, loff_t *ppos); 80233 void __user *buffer, size_t *lenp, loff_t *ppos);
80453 #endif 80234 #endif
80454 80235
@@ -80459,7 +80240,7 @@ index afc1dc6..f6cf355 100644
80459 80240
80460 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write, 80241 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
80461 void __user *buffer, size_t *lenp, loff_t *ppos); 80242 void __user *buffer, size_t *lenp, loff_t *ppos);
80462@@ -212,6 +209,8 @@ static int sysrq_sysctl_handler(ctl_table *table, int write, 80243@@ -211,6 +208,8 @@ static int sysrq_sysctl_handler(ctl_table *table, int write,
80463 80244
80464 #endif 80245 #endif
80465 80246
@@ -80468,7 +80249,7 @@ index afc1dc6..f6cf355 100644
80468 static struct ctl_table kern_table[]; 80249 static struct ctl_table kern_table[];
80469 static struct ctl_table vm_table[]; 80250 static struct ctl_table vm_table[];
80470 static struct ctl_table fs_table[]; 80251 static struct ctl_table fs_table[];
80471@@ -226,6 +225,20 @@ extern struct ctl_table epoll_table[]; 80252@@ -225,6 +224,20 @@ extern struct ctl_table epoll_table[];
80472 int sysctl_legacy_va_layout; 80253 int sysctl_legacy_va_layout;
80473 #endif 80254 #endif
80474 80255
@@ -80489,7 +80270,7 @@ index afc1dc6..f6cf355 100644
80489 /* The default sysctl tables: */ 80270 /* The default sysctl tables: */
80490 80271
80491 static struct ctl_table sysctl_base_table[] = { 80272 static struct ctl_table sysctl_base_table[] = {
80492@@ -274,6 +287,22 @@ static int max_extfrag_threshold = 1000; 80273@@ -273,6 +286,22 @@ static int max_extfrag_threshold = 1000;
80493 #endif 80274 #endif
80494 80275
80495 static struct ctl_table kern_table[] = { 80276 static struct ctl_table kern_table[] = {
@@ -80512,7 +80293,7 @@ index afc1dc6..f6cf355 100644
80512 { 80293 {
80513 .procname = "sched_child_runs_first", 80294 .procname = "sched_child_runs_first",
80514 .data = &sysctl_sched_child_runs_first, 80295 .data = &sysctl_sched_child_runs_first,
80515@@ -608,7 +637,7 @@ static struct ctl_table kern_table[] = { 80296@@ -607,7 +636,7 @@ static struct ctl_table kern_table[] = {
80516 .data = &modprobe_path, 80297 .data = &modprobe_path,
80517 .maxlen = KMOD_PATH_LEN, 80298 .maxlen = KMOD_PATH_LEN,
80518 .mode = 0644, 80299 .mode = 0644,
@@ -80521,7 +80302,7 @@ index afc1dc6..f6cf355 100644
80521 }, 80302 },
80522 { 80303 {
80523 .procname = "modules_disabled", 80304 .procname = "modules_disabled",
80524@@ -775,16 +804,20 @@ static struct ctl_table kern_table[] = { 80305@@ -774,16 +803,20 @@ static struct ctl_table kern_table[] = {
80525 .extra1 = &zero, 80306 .extra1 = &zero,
80526 .extra2 = &one, 80307 .extra2 = &one,
80527 }, 80308 },
@@ -80543,7 +80324,7 @@ index afc1dc6..f6cf355 100644
80543 { 80324 {
80544 .procname = "ngroups_max", 80325 .procname = "ngroups_max",
80545 .data = &ngroups_max, 80326 .data = &ngroups_max,
80546@@ -1026,10 +1059,17 @@ static struct ctl_table kern_table[] = { 80327@@ -1025,10 +1058,17 @@ static struct ctl_table kern_table[] = {
80547 */ 80328 */
80548 { 80329 {
80549 .procname = "perf_event_paranoid", 80330 .procname = "perf_event_paranoid",
@@ -80564,7 +80345,7 @@ index afc1dc6..f6cf355 100644
80564 }, 80345 },
80565 { 80346 {
80566 .procname = "perf_event_mlock_kb", 80347 .procname = "perf_event_mlock_kb",
80567@@ -1283,6 +1323,13 @@ static struct ctl_table vm_table[] = { 80348@@ -1282,6 +1322,13 @@ static struct ctl_table vm_table[] = {
80568 .proc_handler = proc_dointvec_minmax, 80349 .proc_handler = proc_dointvec_minmax,
80569 .extra1 = &zero, 80350 .extra1 = &zero,
80570 }, 80351 },
@@ -80578,7 +80359,7 @@ index afc1dc6..f6cf355 100644
80578 #else 80359 #else
80579 { 80360 {
80580 .procname = "nr_trim_pages", 80361 .procname = "nr_trim_pages",
80581@@ -1733,6 +1780,16 @@ int proc_dostring(struct ctl_table *table, int write, 80362@@ -1746,6 +1793,16 @@ int proc_dostring(struct ctl_table *table, int write,
80582 buffer, lenp, ppos); 80363 buffer, lenp, ppos);
80583 } 80364 }
80584 80365
@@ -80595,7 +80376,7 @@ index afc1dc6..f6cf355 100644
80595 static size_t proc_skip_spaces(char **buf) 80376 static size_t proc_skip_spaces(char **buf)
80596 { 80377 {
80597 size_t ret; 80378 size_t ret;
80598@@ -1838,6 +1895,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val, 80379@@ -1851,6 +1908,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
80599 len = strlen(tmp); 80380 len = strlen(tmp);
80600 if (len > *size) 80381 if (len > *size)
80601 len = *size; 80382 len = *size;
@@ -80604,7 +80385,7 @@ index afc1dc6..f6cf355 100644
80604 if (copy_to_user(*buf, tmp, len)) 80385 if (copy_to_user(*buf, tmp, len))
80605 return -EFAULT; 80386 return -EFAULT;
80606 *size -= len; 80387 *size -= len;
80607@@ -2002,7 +2061,7 @@ int proc_dointvec(struct ctl_table *table, int write, 80388@@ -2015,7 +2074,7 @@ int proc_dointvec(struct ctl_table *table, int write,
80608 static int proc_taint(struct ctl_table *table, int write, 80389 static int proc_taint(struct ctl_table *table, int write,
80609 void __user *buffer, size_t *lenp, loff_t *ppos) 80390 void __user *buffer, size_t *lenp, loff_t *ppos)
80610 { 80391 {
@@ -80613,7 +80394,7 @@ index afc1dc6..f6cf355 100644
80613 unsigned long tmptaint = get_taint(); 80394 unsigned long tmptaint = get_taint();
80614 int err; 80395 int err;
80615 80396
80616@@ -2030,7 +2089,6 @@ static int proc_taint(struct ctl_table *table, int write, 80397@@ -2043,7 +2102,6 @@ static int proc_taint(struct ctl_table *table, int write,
80617 return err; 80398 return err;
80618 } 80399 }
80619 80400
@@ -80621,7 +80402,7 @@ index afc1dc6..f6cf355 100644
80621 static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, 80402 static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
80622 void __user *buffer, size_t *lenp, loff_t *ppos) 80403 void __user *buffer, size_t *lenp, loff_t *ppos)
80623 { 80404 {
80624@@ -2039,7 +2097,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, 80405@@ -2052,7 +2110,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
80625 80406
80626 return proc_dointvec_minmax(table, write, buffer, lenp, ppos); 80407 return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
80627 } 80408 }
@@ -80629,7 +80410,7 @@ index afc1dc6..f6cf355 100644
80629 80410
80630 struct do_proc_dointvec_minmax_conv_param { 80411 struct do_proc_dointvec_minmax_conv_param {
80631 int *min; 80412 int *min;
80632@@ -2186,8 +2243,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int 80413@@ -2199,8 +2256,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int
80633 *i = val; 80414 *i = val;
80634 } else { 80415 } else {
80635 val = convdiv * (*i) / convmul; 80416 val = convdiv * (*i) / convmul;
@@ -80642,7 +80423,7 @@ index afc1dc6..f6cf355 100644
80642 err = proc_put_long(&buffer, &left, val, false); 80423 err = proc_put_long(&buffer, &left, val, false);
80643 if (err) 80424 if (err)
80644 break; 80425 break;
80645@@ -2579,6 +2639,12 @@ int proc_dostring(struct ctl_table *table, int write, 80426@@ -2592,6 +2652,12 @@ int proc_dostring(struct ctl_table *table, int write,
80646 return -ENOSYS; 80427 return -ENOSYS;
80647 } 80428 }
80648 80429
@@ -80655,7 +80436,7 @@ index afc1dc6..f6cf355 100644
80655 int proc_dointvec(struct ctl_table *table, int write, 80436 int proc_dointvec(struct ctl_table *table, int write,
80656 void __user *buffer, size_t *lenp, loff_t *ppos) 80437 void __user *buffer, size_t *lenp, loff_t *ppos)
80657 { 80438 {
80658@@ -2635,5 +2701,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax); 80439@@ -2648,5 +2714,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
80659 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies); 80440 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
80660 EXPORT_SYMBOL(proc_dointvec_ms_jiffies); 80441 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
80661 EXPORT_SYMBOL(proc_dostring); 80442 EXPORT_SYMBOL(proc_dostring);
@@ -80690,10 +80471,10 @@ index 145bb4d..b2aa969 100644
80690 return cmd_attr_register_cpumask(info); 80471 return cmd_attr_register_cpumask(info);
80691 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK]) 80472 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
80692diff --git a/kernel/time.c b/kernel/time.c 80473diff --git a/kernel/time.c b/kernel/time.c
80693index f8342a4..288f13b 100644 80474index d3617db..c98bbe9 100644
80694--- a/kernel/time.c 80475--- a/kernel/time.c
80695+++ b/kernel/time.c 80476+++ b/kernel/time.c
80696@@ -171,6 +171,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz) 80477@@ -172,6 +172,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
80697 return error; 80478 return error;
80698 80479
80699 if (tz) { 80480 if (tz) {
@@ -80705,7 +80486,7 @@ index f8342a4..288f13b 100644
80705 sys_tz = *tz; 80486 sys_tz = *tz;
80706 update_vsyscall_tz(); 80487 update_vsyscall_tz();
80707 if (firsttime) { 80488 if (firsttime) {
80708@@ -501,7 +506,7 @@ EXPORT_SYMBOL(usecs_to_jiffies); 80489@@ -502,7 +507,7 @@ EXPORT_SYMBOL(usecs_to_jiffies);
80709 * The >> (NSEC_JIFFIE_SC - SEC_JIFFIE_SC) converts the scaled nsec 80490 * The >> (NSEC_JIFFIE_SC - SEC_JIFFIE_SC) converts the scaled nsec
80710 * value to a scaled second value. 80491 * value to a scaled second value.
80711 */ 80492 */
@@ -80727,21 +80508,8 @@ index f11d83b..d016d91 100644
80727 .clock_getres = alarm_clock_getres, 80508 .clock_getres = alarm_clock_getres,
80728 .clock_get = alarm_clock_get, 80509 .clock_get = alarm_clock_get,
80729 .timer_create = alarm_timer_create, 80510 .timer_create = alarm_timer_create,
80730diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
80731index 90ad470..1814e9a 100644
80732--- a/kernel/time/tick-broadcast.c
80733+++ b/kernel/time/tick-broadcast.c
80734@@ -138,7 +138,7 @@ int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu)
80735 * then clear the broadcast bit.
80736 */
80737 if (!(dev->features & CLOCK_EVT_FEAT_C3STOP)) {
80738- int cpu = smp_processor_id();
80739+ cpu = smp_processor_id();
80740 cpumask_clear_cpu(cpu, tick_get_broadcast_mask());
80741 tick_broadcast_clear_oneshot(cpu);
80742 } else {
80743diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c 80511diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
80744index 183df62..59b1442 100644 80512index baeeb5c..c22704a 100644
80745--- a/kernel/time/timekeeping.c 80513--- a/kernel/time/timekeeping.c
80746+++ b/kernel/time/timekeeping.c 80514+++ b/kernel/time/timekeeping.c
80747@@ -15,6 +15,7 @@ 80515@@ -15,6 +15,7 @@
@@ -80752,20 +80520,20 @@ index 183df62..59b1442 100644
80752 #include <linux/syscore_ops.h> 80520 #include <linux/syscore_ops.h>
80753 #include <linux/clocksource.h> 80521 #include <linux/clocksource.h>
80754 #include <linux/jiffies.h> 80522 #include <linux/jiffies.h>
80755@@ -448,6 +449,8 @@ int do_settimeofday(const struct timespec *tv) 80523@@ -495,6 +496,8 @@ int do_settimeofday(const struct timespec *tv)
80756 if (!timespec_valid_strict(tv)) 80524 if (!timespec_valid_strict(tv))
80757 return -EINVAL; 80525 return -EINVAL;
80758 80526
80759+ gr_log_timechange(); 80527+ gr_log_timechange();
80760+ 80528+
80761 write_seqlock_irqsave(&tk->lock, flags); 80529 raw_spin_lock_irqsave(&timekeeper_lock, flags);
80530 write_seqcount_begin(&timekeeper_seq);
80762 80531
80763 timekeeping_forward_now(tk);
80764diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c 80532diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
80765index af5a7e9..715611a 100644 80533index 3bdf283..cc68d83 100644
80766--- a/kernel/time/timer_list.c 80534--- a/kernel/time/timer_list.c
80767+++ b/kernel/time/timer_list.c 80535+++ b/kernel/time/timer_list.c
80768@@ -38,12 +38,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases); 80536@@ -45,12 +45,16 @@ DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases);
80769 80537
80770 static void print_name_offset(struct seq_file *m, void *sym) 80538 static void print_name_offset(struct seq_file *m, void *sym)
80771 { 80539 {
@@ -80782,7 +80550,7 @@ index af5a7e9..715611a 100644
80782 } 80550 }
80783 80551
80784 static void 80552 static void
80785@@ -112,7 +116,11 @@ next_one: 80553@@ -119,7 +123,11 @@ next_one:
80786 static void 80554 static void
80787 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now) 80555 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
80788 { 80556 {
@@ -80794,7 +80562,7 @@ index af5a7e9..715611a 100644
80794 SEQ_printf(m, " .index: %d\n", 80562 SEQ_printf(m, " .index: %d\n",
80795 base->index); 80563 base->index);
80796 SEQ_printf(m, " .resolution: %Lu nsecs\n", 80564 SEQ_printf(m, " .resolution: %Lu nsecs\n",
80797@@ -293,7 +301,11 @@ static int __init init_timer_list_procfs(void) 80565@@ -355,7 +363,11 @@ static int __init init_timer_list_procfs(void)
80798 { 80566 {
80799 struct proc_dir_entry *pe; 80567 struct proc_dir_entry *pe;
80800 80568
@@ -80880,10 +80648,10 @@ index 0b537f2..40d6c20 100644
80880 return -ENOMEM; 80648 return -ENOMEM;
80881 return 0; 80649 return 0;
80882diff --git a/kernel/timer.c b/kernel/timer.c 80650diff --git a/kernel/timer.c b/kernel/timer.c
80883index 3361cff..0751080 100644 80651index 15bc1b4..32da49c 100644
80884--- a/kernel/timer.c 80652--- a/kernel/timer.c
80885+++ b/kernel/timer.c 80653+++ b/kernel/timer.c
80886@@ -1365,7 +1365,7 @@ void update_process_times(int user_tick) 80654@@ -1366,7 +1366,7 @@ void update_process_times(int user_tick)
80887 /* 80655 /*
80888 * This function runs timers and the timer-tq in bottom half context. 80656 * This function runs timers and the timer-tq in bottom half context.
80889 */ 80657 */
@@ -80892,7 +80660,7 @@ index 3361cff..0751080 100644
80892 { 80660 {
80893 struct tvec_base *base = __this_cpu_read(tvec_bases); 80661 struct tvec_base *base = __this_cpu_read(tvec_bases);
80894 80662
80895@@ -1483,7 +1483,7 @@ static void process_timeout(unsigned long __data) 80663@@ -1429,7 +1429,7 @@ static void process_timeout(unsigned long __data)
80896 * 80664 *
80897 * In all cases the return value is guaranteed to be non-negative. 80665 * In all cases the return value is guaranteed to be non-negative.
80898 */ 80666 */
@@ -80901,7 +80669,7 @@ index 3361cff..0751080 100644
80901 { 80669 {
80902 struct timer_list timer; 80670 struct timer_list timer;
80903 unsigned long expire; 80671 unsigned long expire;
80904@@ -1774,7 +1774,7 @@ static int __cpuinit timer_cpu_notify(struct notifier_block *self, 80672@@ -1635,7 +1635,7 @@ static int __cpuinit timer_cpu_notify(struct notifier_block *self,
80905 return NOTIFY_OK; 80673 return NOTIFY_OK;
80906 } 80674 }
80907 80675
@@ -80911,7 +80679,7 @@ index 3361cff..0751080 100644
80911 }; 80679 };
80912 80680
80913diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c 80681diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
80914index 5a0f781..1497f95 100644 80682index b8b8560..75b1a09 100644
80915--- a/kernel/trace/blktrace.c 80683--- a/kernel/trace/blktrace.c
80916+++ b/kernel/trace/blktrace.c 80684+++ b/kernel/trace/blktrace.c
80917@@ -317,7 +317,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer, 80685@@ -317,7 +317,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
@@ -80942,10 +80710,10 @@ index 5a0f781..1497f95 100644
80942 ret = -EIO; 80710 ret = -EIO;
80943 bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt, 80711 bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt,
80944diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c 80712diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
80945index 0a0e2a6..943495e 100644 80713index 6c508ff..ee55a13 100644
80946--- a/kernel/trace/ftrace.c 80714--- a/kernel/trace/ftrace.c
80947+++ b/kernel/trace/ftrace.c 80715+++ b/kernel/trace/ftrace.c
80948@@ -1909,12 +1909,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec) 80716@@ -1915,12 +1915,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
80949 if (unlikely(ftrace_disabled)) 80717 if (unlikely(ftrace_disabled))
80950 return 0; 80718 return 0;
80951 80719
@@ -80965,16 +80733,7 @@ index 0a0e2a6..943495e 100644
80965 } 80733 }
80966 80734
80967 /* 80735 /*
80968@@ -2986,7 +2991,7 @@ static void ftrace_free_entry_rcu(struct rcu_head *rhp) 80736@@ -3931,8 +3936,10 @@ static int ftrace_process_locs(struct module *mod,
80969
80970 int
80971 register_ftrace_function_probe(char *glob, struct ftrace_probe_ops *ops,
80972- void *data)
80973+ void *data)
80974 {
80975 struct ftrace_func_probe *entry;
80976 struct ftrace_page *pg;
80977@@ -3854,8 +3859,10 @@ static int ftrace_process_locs(struct module *mod,
80978 if (!count) 80737 if (!count)
80979 return 0; 80738 return 0;
80980 80739
@@ -80985,7 +80744,7 @@ index 0a0e2a6..943495e 100644
80985 80744
80986 start_pg = ftrace_allocate_pages(count); 80745 start_pg = ftrace_allocate_pages(count);
80987 if (!start_pg) 80746 if (!start_pg)
80988@@ -4574,8 +4581,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write, 80747@@ -4655,8 +4662,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
80989 #ifdef CONFIG_FUNCTION_GRAPH_TRACER 80748 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
80990 80749
80991 static int ftrace_graph_active; 80750 static int ftrace_graph_active;
@@ -80994,7 +80753,7 @@ index 0a0e2a6..943495e 100644
80994 int ftrace_graph_entry_stub(struct ftrace_graph_ent *trace) 80753 int ftrace_graph_entry_stub(struct ftrace_graph_ent *trace)
80995 { 80754 {
80996 return 0; 80755 return 0;
80997@@ -4719,6 +4724,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state, 80756@@ -4800,6 +4805,10 @@ ftrace_suspend_notifier_call(struct notifier_block *bl, unsigned long state,
80998 return NOTIFY_DONE; 80757 return NOTIFY_DONE;
80999 } 80758 }
81000 80759
@@ -81005,7 +80764,7 @@ index 0a0e2a6..943495e 100644
81005 int register_ftrace_graph(trace_func_graph_ret_t retfunc, 80764 int register_ftrace_graph(trace_func_graph_ret_t retfunc,
81006 trace_func_graph_ent_t entryfunc) 80765 trace_func_graph_ent_t entryfunc)
81007 { 80766 {
81008@@ -4732,7 +4741,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc, 80767@@ -4813,7 +4822,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
81009 goto out; 80768 goto out;
81010 } 80769 }
81011 80770
@@ -81014,10 +80773,10 @@ index 0a0e2a6..943495e 100644
81014 80773
81015 ftrace_graph_active++; 80774 ftrace_graph_active++;
81016diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c 80775diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
81017index 6989df2..c2265cf 100644 80776index e444ff8..438b8f4 100644
81018--- a/kernel/trace/ring_buffer.c 80777--- a/kernel/trace/ring_buffer.c
81019+++ b/kernel/trace/ring_buffer.c 80778+++ b/kernel/trace/ring_buffer.c
81020@@ -349,9 +349,9 @@ struct buffer_data_page { 80779@@ -352,9 +352,9 @@ struct buffer_data_page {
81021 */ 80780 */
81022 struct buffer_page { 80781 struct buffer_page {
81023 struct list_head list; /* list of buffer pages */ 80782 struct list_head list; /* list of buffer pages */
@@ -81029,7 +80788,7 @@ index 6989df2..c2265cf 100644
81029 unsigned long real_end; /* real end of data */ 80788 unsigned long real_end; /* real end of data */
81030 struct buffer_data_page *page; /* Actual data page */ 80789 struct buffer_data_page *page; /* Actual data page */
81031 }; 80790 };
81032@@ -464,8 +464,8 @@ struct ring_buffer_per_cpu { 80791@@ -473,8 +473,8 @@ struct ring_buffer_per_cpu {
81033 unsigned long last_overrun; 80792 unsigned long last_overrun;
81034 local_t entries_bytes; 80793 local_t entries_bytes;
81035 local_t entries; 80794 local_t entries;
@@ -81040,7 +80799,7 @@ index 6989df2..c2265cf 100644
81040 local_t dropped_events; 80799 local_t dropped_events;
81041 local_t committing; 80800 local_t committing;
81042 local_t commits; 80801 local_t commits;
81043@@ -864,8 +864,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer, 80802@@ -992,8 +992,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
81044 * 80803 *
81045 * We add a counter to the write field to denote this. 80804 * We add a counter to the write field to denote this.
81046 */ 80805 */
@@ -81051,7 +80810,7 @@ index 6989df2..c2265cf 100644
81051 80810
81052 /* 80811 /*
81053 * Just make sure we have seen our old_write and synchronize 80812 * Just make sure we have seen our old_write and synchronize
81054@@ -893,8 +893,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer, 80813@@ -1021,8 +1021,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
81055 * cmpxchg to only update if an interrupt did not already 80814 * cmpxchg to only update if an interrupt did not already
81056 * do it for us. If the cmpxchg fails, we don't care. 80815 * do it for us. If the cmpxchg fails, we don't care.
81057 */ 80816 */
@@ -81062,7 +80821,7 @@ index 6989df2..c2265cf 100644
81062 80821
81063 /* 80822 /*
81064 * No need to worry about races with clearing out the commit. 80823 * No need to worry about races with clearing out the commit.
81065@@ -1253,12 +1253,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer); 80824@@ -1386,12 +1386,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer);
81066 80825
81067 static inline unsigned long rb_page_entries(struct buffer_page *bpage) 80826 static inline unsigned long rb_page_entries(struct buffer_page *bpage)
81068 { 80827 {
@@ -81077,7 +80836,7 @@ index 6989df2..c2265cf 100644
81077 } 80836 }
81078 80837
81079 static int 80838 static int
81080@@ -1353,7 +1353,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages) 80839@@ -1486,7 +1486,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages)
81081 * bytes consumed in ring buffer from here. 80840 * bytes consumed in ring buffer from here.
81082 * Increment overrun to account for the lost events. 80841 * Increment overrun to account for the lost events.
81083 */ 80842 */
@@ -81086,7 +80845,7 @@ index 6989df2..c2265cf 100644
81086 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); 80845 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
81087 } 80846 }
81088 80847
81089@@ -1909,7 +1909,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer, 80848@@ -2063,7 +2063,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer,
81090 * it is our responsibility to update 80849 * it is our responsibility to update
81091 * the counters. 80850 * the counters.
81092 */ 80851 */
@@ -81095,7 +80854,7 @@ index 6989df2..c2265cf 100644
81095 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); 80854 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
81096 80855
81097 /* 80856 /*
81098@@ -2059,7 +2059,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, 80857@@ -2213,7 +2213,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
81099 if (tail == BUF_PAGE_SIZE) 80858 if (tail == BUF_PAGE_SIZE)
81100 tail_page->real_end = 0; 80859 tail_page->real_end = 0;
81101 80860
@@ -81104,7 +80863,7 @@ index 6989df2..c2265cf 100644
81104 return; 80863 return;
81105 } 80864 }
81106 80865
81107@@ -2094,7 +2094,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, 80866@@ -2248,7 +2248,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
81108 rb_event_set_padding(event); 80867 rb_event_set_padding(event);
81109 80868
81110 /* Set the write back to the previous setting */ 80869 /* Set the write back to the previous setting */
@@ -81113,7 +80872,7 @@ index 6989df2..c2265cf 100644
81113 return; 80872 return;
81114 } 80873 }
81115 80874
81116@@ -2106,7 +2106,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer, 80875@@ -2260,7 +2260,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
81117 80876
81118 /* Set write to end of buffer */ 80877 /* Set write to end of buffer */
81119 length = (tail + length) - BUF_PAGE_SIZE; 80878 length = (tail + length) - BUF_PAGE_SIZE;
@@ -81122,7 +80881,7 @@ index 6989df2..c2265cf 100644
81122 } 80881 }
81123 80882
81124 /* 80883 /*
81125@@ -2132,7 +2132,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, 80884@@ -2286,7 +2286,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
81126 * about it. 80885 * about it.
81127 */ 80886 */
81128 if (unlikely(next_page == commit_page)) { 80887 if (unlikely(next_page == commit_page)) {
@@ -81131,7 +80890,7 @@ index 6989df2..c2265cf 100644
81131 goto out_reset; 80890 goto out_reset;
81132 } 80891 }
81133 80892
81134@@ -2188,7 +2188,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer, 80893@@ -2342,7 +2342,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
81135 cpu_buffer->tail_page) && 80894 cpu_buffer->tail_page) &&
81136 (cpu_buffer->commit_page == 80895 (cpu_buffer->commit_page ==
81137 cpu_buffer->reader_page))) { 80896 cpu_buffer->reader_page))) {
@@ -81140,7 +80899,7 @@ index 6989df2..c2265cf 100644
81140 goto out_reset; 80899 goto out_reset;
81141 } 80900 }
81142 } 80901 }
81143@@ -2236,7 +2236,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, 80902@@ -2390,7 +2390,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
81144 length += RB_LEN_TIME_EXTEND; 80903 length += RB_LEN_TIME_EXTEND;
81145 80904
81146 tail_page = cpu_buffer->tail_page; 80905 tail_page = cpu_buffer->tail_page;
@@ -81149,7 +80908,7 @@ index 6989df2..c2265cf 100644
81149 80908
81150 /* set write to only the index of the write */ 80909 /* set write to only the index of the write */
81151 write &= RB_WRITE_MASK; 80910 write &= RB_WRITE_MASK;
81152@@ -2253,7 +2253,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer, 80911@@ -2407,7 +2407,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
81153 kmemcheck_annotate_bitfield(event, bitfield); 80912 kmemcheck_annotate_bitfield(event, bitfield);
81154 rb_update_event(cpu_buffer, event, length, add_timestamp, delta); 80913 rb_update_event(cpu_buffer, event, length, add_timestamp, delta);
81155 80914
@@ -81158,7 +80917,7 @@ index 6989df2..c2265cf 100644
81158 80917
81159 /* 80918 /*
81160 * If this is the first commit on the page, then update 80919 * If this is the first commit on the page, then update
81161@@ -2286,7 +2286,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, 80920@@ -2440,7 +2440,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
81162 80921
81163 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) { 80922 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) {
81164 unsigned long write_mask = 80923 unsigned long write_mask =
@@ -81167,7 +80926,7 @@ index 6989df2..c2265cf 100644
81167 unsigned long event_length = rb_event_length(event); 80926 unsigned long event_length = rb_event_length(event);
81168 /* 80927 /*
81169 * This is on the tail page. It is possible that 80928 * This is on the tail page. It is possible that
81170@@ -2296,7 +2296,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer, 80929@@ -2450,7 +2450,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
81171 */ 80930 */
81172 old_index += write_mask; 80931 old_index += write_mask;
81173 new_index += write_mask; 80932 new_index += write_mask;
@@ -81176,7 +80935,7 @@ index 6989df2..c2265cf 100644
81176 if (index == old_index) { 80935 if (index == old_index) {
81177 /* update counters */ 80936 /* update counters */
81178 local_sub(event_length, &cpu_buffer->entries_bytes); 80937 local_sub(event_length, &cpu_buffer->entries_bytes);
81179@@ -2670,7 +2670,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, 80938@@ -2842,7 +2842,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
81180 80939
81181 /* Do the likely case first */ 80940 /* Do the likely case first */
81182 if (likely(bpage->page == (void *)addr)) { 80941 if (likely(bpage->page == (void *)addr)) {
@@ -81185,7 +80944,7 @@ index 6989df2..c2265cf 100644
81185 return; 80944 return;
81186 } 80945 }
81187 80946
81188@@ -2682,7 +2682,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer, 80947@@ -2854,7 +2854,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
81189 start = bpage; 80948 start = bpage;
81190 do { 80949 do {
81191 if (bpage->page == (void *)addr) { 80950 if (bpage->page == (void *)addr) {
@@ -81194,7 +80953,7 @@ index 6989df2..c2265cf 100644
81194 return; 80953 return;
81195 } 80954 }
81196 rb_inc_page(cpu_buffer, &bpage); 80955 rb_inc_page(cpu_buffer, &bpage);
81197@@ -2964,7 +2964,7 @@ static inline unsigned long 80956@@ -3138,7 +3138,7 @@ static inline unsigned long
81198 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer) 80957 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
81199 { 80958 {
81200 return local_read(&cpu_buffer->entries) - 80959 return local_read(&cpu_buffer->entries) -
@@ -81203,7 +80962,7 @@ index 6989df2..c2265cf 100644
81203 } 80962 }
81204 80963
81205 /** 80964 /**
81206@@ -3053,7 +3053,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu) 80965@@ -3227,7 +3227,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
81207 return 0; 80966 return 0;
81208 80967
81209 cpu_buffer = buffer->buffers[cpu]; 80968 cpu_buffer = buffer->buffers[cpu];
@@ -81212,7 +80971,7 @@ index 6989df2..c2265cf 100644
81212 80971
81213 return ret; 80972 return ret;
81214 } 80973 }
81215@@ -3076,7 +3076,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu) 80974@@ -3250,7 +3250,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
81216 return 0; 80975 return 0;
81217 80976
81218 cpu_buffer = buffer->buffers[cpu]; 80977 cpu_buffer = buffer->buffers[cpu];
@@ -81221,7 +80980,7 @@ index 6989df2..c2265cf 100644
81221 80980
81222 return ret; 80981 return ret;
81223 } 80982 }
81224@@ -3161,7 +3161,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer) 80983@@ -3335,7 +3335,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
81225 /* if you care about this being correct, lock the buffer */ 80984 /* if you care about this being correct, lock the buffer */
81226 for_each_buffer_cpu(buffer, cpu) { 80985 for_each_buffer_cpu(buffer, cpu) {
81227 cpu_buffer = buffer->buffers[cpu]; 80986 cpu_buffer = buffer->buffers[cpu];
@@ -81230,7 +80989,7 @@ index 6989df2..c2265cf 100644
81230 } 80989 }
81231 80990
81232 return overruns; 80991 return overruns;
81233@@ -3337,8 +3337,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) 80992@@ -3511,8 +3511,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
81234 /* 80993 /*
81235 * Reset the reader page to size zero. 80994 * Reset the reader page to size zero.
81236 */ 80995 */
@@ -81241,7 +81000,7 @@ index 6989df2..c2265cf 100644
81241 local_set(&cpu_buffer->reader_page->page->commit, 0); 81000 local_set(&cpu_buffer->reader_page->page->commit, 0);
81242 cpu_buffer->reader_page->real_end = 0; 81001 cpu_buffer->reader_page->real_end = 0;
81243 81002
81244@@ -3372,7 +3372,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer) 81003@@ -3546,7 +3546,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
81245 * want to compare with the last_overrun. 81004 * want to compare with the last_overrun.
81246 */ 81005 */
81247 smp_mb(); 81006 smp_mb();
@@ -81250,7 +81009,7 @@ index 6989df2..c2265cf 100644
81250 81009
81251 /* 81010 /*
81252 * Here's the tricky part. 81011 * Here's the tricky part.
81253@@ -3942,8 +3942,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) 81012@@ -4116,8 +4116,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
81254 81013
81255 cpu_buffer->head_page 81014 cpu_buffer->head_page
81256 = list_entry(cpu_buffer->pages, struct buffer_page, list); 81015 = list_entry(cpu_buffer->pages, struct buffer_page, list);
@@ -81261,7 +81020,7 @@ index 6989df2..c2265cf 100644
81261 local_set(&cpu_buffer->head_page->page->commit, 0); 81020 local_set(&cpu_buffer->head_page->page->commit, 0);
81262 81021
81263 cpu_buffer->head_page->read = 0; 81022 cpu_buffer->head_page->read = 0;
81264@@ -3953,14 +3953,14 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer) 81023@@ -4127,14 +4127,14 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
81265 81024
81266 INIT_LIST_HEAD(&cpu_buffer->reader_page->list); 81025 INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
81267 INIT_LIST_HEAD(&cpu_buffer->new_pages); 81026 INIT_LIST_HEAD(&cpu_buffer->new_pages);
@@ -81280,7 +81039,7 @@ index 6989df2..c2265cf 100644
81280 local_set(&cpu_buffer->dropped_events, 0); 81039 local_set(&cpu_buffer->dropped_events, 0);
81281 local_set(&cpu_buffer->entries, 0); 81040 local_set(&cpu_buffer->entries, 0);
81282 local_set(&cpu_buffer->committing, 0); 81041 local_set(&cpu_buffer->committing, 0);
81283@@ -4364,8 +4364,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer, 81042@@ -4538,8 +4538,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
81284 rb_init_page(bpage); 81043 rb_init_page(bpage);
81285 bpage = reader->page; 81044 bpage = reader->page;
81286 reader->page = *data_page; 81045 reader->page = *data_page;
@@ -81292,77 +81051,36 @@ index 6989df2..c2265cf 100644
81292 *data_page = bpage; 81051 *data_page = bpage;
81293 81052
81294diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c 81053diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
81295index 3f28192..9afb0a9 100644 81054index 0b936d8..306a7eb 100644
81296--- a/kernel/trace/trace.c 81055--- a/kernel/trace/trace.c
81297+++ b/kernel/trace/trace.c 81056+++ b/kernel/trace/trace.c
81298@@ -683,7 +683,15 @@ __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu) 81057@@ -3302,7 +3302,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
81299
81300 memcpy(max_data->comm, tsk->comm, TASK_COMM_LEN);
81301 max_data->pid = tsk->pid;
81302- max_data->uid = task_uid(tsk);
81303+ /*
81304+ * If tsk == current, then use current_uid(), as that does not use
81305+ * RCU. The irq tracer can be called out of RCU scope.
81306+ */
81307+ if (tsk == current)
81308+ max_data->uid = current_uid();
81309+ else
81310+ max_data->uid = task_uid(tsk);
81311+
81312 max_data->nice = tsk->static_prio - 20 - MAX_RT_PRIO;
81313 max_data->policy = tsk->policy;
81314 max_data->rt_priority = tsk->rt_priority;
81315@@ -2893,7 +2901,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
81316 return 0; 81058 return 0;
81317 } 81059 }
81318 81060
81319-int set_tracer_flag(unsigned int mask, int enabled) 81061-int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
81320+int set_tracer_flag(unsigned long mask, int enabled) 81062+int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled)
81321 { 81063 {
81322 /* do nothing if flag is already set */ 81064 /* do nothing if flag is already set */
81323 if (!!(trace_flags & mask) == !!enabled) 81065 if (!!(trace_flags & mask) == !!enabled)
81324@@ -4637,10 +4645,9 @@ static const struct file_operations tracing_dyn_info_fops = {
81325 };
81326 #endif
81327
81328-static struct dentry *d_tracer;
81329-
81330 struct dentry *tracing_init_dentry(void)
81331 {
81332+ static struct dentry *d_tracer;
81333 static int once;
81334
81335 if (d_tracer)
81336@@ -4660,10 +4667,9 @@ struct dentry *tracing_init_dentry(void)
81337 return d_tracer;
81338 }
81339
81340-static struct dentry *d_percpu;
81341-
81342 static struct dentry *tracing_dentry_percpu(void)
81343 {
81344+ static struct dentry *d_percpu;
81345 static int once;
81346 struct dentry *d_tracer;
81347
81348diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h 81066diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
81349index 2081971..09f861e 100644 81067index 51b4448..7be601f 100644
81350--- a/kernel/trace/trace.h 81068--- a/kernel/trace/trace.h
81351+++ b/kernel/trace/trace.h 81069+++ b/kernel/trace/trace.h
81352@@ -948,7 +948,7 @@ extern const char *__stop___trace_bprintk_fmt[]; 81070@@ -1035,7 +1035,7 @@ extern const char *__stop___trace_bprintk_fmt[];
81353 void trace_printk_init_buffers(void); 81071 void trace_printk_init_buffers(void);
81354 void trace_printk_start_comm(void); 81072 void trace_printk_start_comm(void);
81355 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set); 81073 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
81356-int set_tracer_flag(unsigned int mask, int enabled); 81074-int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled);
81357+int set_tracer_flag(unsigned long mask, int enabled); 81075+int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled);
81358 81076
81359 #undef FTRACE_ENTRY 81077 /*
81360 #define FTRACE_ENTRY(call, struct_name, id, tstruct, print, filter) \ 81078 * Normal trace_printk() and friends allocates special buffers
81361diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c 81079diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
81362index 57e9b28..eebe41c 100644 81080index 6dfd48b..a6d88d0 100644
81363--- a/kernel/trace/trace_events.c 81081--- a/kernel/trace/trace_events.c
81364+++ b/kernel/trace/trace_events.c 81082+++ b/kernel/trace/trace_events.c
81365@@ -1329,10 +1329,6 @@ static LIST_HEAD(ftrace_module_file_list); 81083@@ -1731,10 +1731,6 @@ static LIST_HEAD(ftrace_module_file_list);
81366 struct ftrace_module_file_ops { 81084 struct ftrace_module_file_ops {
81367 struct list_head list; 81085 struct list_head list;
81368 struct module *mod; 81086 struct module *mod;
@@ -81373,7 +81091,7 @@ index 57e9b28..eebe41c 100644
81373 }; 81091 };
81374 81092
81375 static struct ftrace_module_file_ops * 81093 static struct ftrace_module_file_ops *
81376@@ -1353,17 +1349,12 @@ trace_create_file_ops(struct module *mod) 81094@@ -1775,17 +1771,12 @@ trace_create_file_ops(struct module *mod)
81377 81095
81378 file_ops->mod = mod; 81096 file_ops->mod = mod;
81379 81097
@@ -81397,19 +81115,19 @@ index 57e9b28..eebe41c 100644
81397 81115
81398 list_add(&file_ops->list, &ftrace_module_file_list); 81116 list_add(&file_ops->list, &ftrace_module_file_list);
81399 81117
81400@@ -1387,8 +1378,8 @@ static void trace_module_add_events(struct module *mod) 81118@@ -1878,8 +1869,8 @@ __trace_add_new_mod_event(struct ftrace_event_call *call,
81401 81119 struct ftrace_module_file_ops *file_ops)
81402 for_each_event(call, start, end) { 81120 {
81403 __trace_add_event_call(*call, mod, 81121 return __trace_add_new_event(call, tr,
81404- &file_ops->id, &file_ops->enable, 81122- &file_ops->id, &file_ops->enable,
81405- &file_ops->filter, &file_ops->format); 81123- &file_ops->filter, &file_ops->format);
81406+ &mod->trace_id, &mod->trace_enable, 81124+ &file_ops->mod->trace_id, &file_ops->mod->trace_enable,
81407+ &mod->trace_filter, &mod->trace_format); 81125+ &file_ops->mod->trace_filter, &file_ops->mod->trace_format);
81408 }
81409 } 81126 }
81410 81127
81128 #else
81411diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c 81129diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
81412index fd3c8aa..5f324a6 100644 81130index a5e8f48..a9690d2 100644
81413--- a/kernel/trace/trace_mmiotrace.c 81131--- a/kernel/trace/trace_mmiotrace.c
81414+++ b/kernel/trace/trace_mmiotrace.c 81132+++ b/kernel/trace/trace_mmiotrace.c
81415@@ -24,7 +24,7 @@ struct header_iter { 81133@@ -24,7 +24,7 @@ struct header_iter {
@@ -81427,7 +81145,7 @@ index fd3c8aa..5f324a6 100644
81427 { 81145 {
81428- unsigned long cnt = atomic_xchg(&dropped_count, 0); 81146- unsigned long cnt = atomic_xchg(&dropped_count, 0);
81429+ unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0); 81147+ unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0);
81430 unsigned long over = ring_buffer_overruns(iter->tr->buffer); 81148 unsigned long over = ring_buffer_overruns(iter->trace_buffer->buffer);
81431 81149
81432 if (over > prev_overruns) 81150 if (over > prev_overruns)
81433@@ -317,7 +317,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, 81151@@ -317,7 +317,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr,
@@ -81449,10 +81167,10 @@ index fd3c8aa..5f324a6 100644
81449 } 81167 }
81450 entry = ring_buffer_event_data(event); 81168 entry = ring_buffer_event_data(event);
81451diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c 81169diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
81452index 697e88d..1a79993 100644 81170index bb922d9..2a54a257 100644
81453--- a/kernel/trace/trace_output.c 81171--- a/kernel/trace/trace_output.c
81454+++ b/kernel/trace/trace_output.c 81172+++ b/kernel/trace/trace_output.c
81455@@ -278,7 +278,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path) 81173@@ -294,7 +294,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
81456 81174
81457 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len); 81175 p = d_path(path, s->buffer + s->len, PAGE_SIZE - s->len);
81458 if (!IS_ERR(p)) { 81176 if (!IS_ERR(p)) {
@@ -81461,7 +81179,7 @@ index 697e88d..1a79993 100644
81461 if (p) { 81179 if (p) {
81462 s->len = p - s->buffer; 81180 s->len = p - s->buffer;
81463 return 1; 81181 return 1;
81464@@ -851,14 +851,16 @@ int register_ftrace_event(struct trace_event *event) 81182@@ -893,14 +893,16 @@ int register_ftrace_event(struct trace_event *event)
81465 goto out; 81183 goto out;
81466 } 81184 }
81467 81185
@@ -81496,7 +81214,7 @@ index b20428c..4845a10 100644
81496 81214
81497 local_irq_save(flags); 81215 local_irq_save(flags);
81498diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c 81216diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
81499index e134d8f..a018cdd 100644 81217index d8c30db..e065e89 100644
81500--- a/kernel/user_namespace.c 81218--- a/kernel/user_namespace.c
81501+++ b/kernel/user_namespace.c 81219+++ b/kernel/user_namespace.c
81502@@ -853,7 +853,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns) 81220@@ -853,7 +853,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns)
@@ -81522,10 +81240,10 @@ index 4f69f9a..7c6f8f8 100644
81522 memcpy(&uts_table, table, sizeof(uts_table)); 81240 memcpy(&uts_table, table, sizeof(uts_table));
81523 uts_table.data = get_uts(table, write); 81241 uts_table.data = get_uts(table, write);
81524diff --git a/kernel/watchdog.c b/kernel/watchdog.c 81242diff --git a/kernel/watchdog.c b/kernel/watchdog.c
81525index 4a94467..80a6f9c 100644 81243index 05039e3..17490c7 100644
81526--- a/kernel/watchdog.c 81244--- a/kernel/watchdog.c
81527+++ b/kernel/watchdog.c 81245+++ b/kernel/watchdog.c
81528@@ -526,7 +526,7 @@ int proc_dowatchdog(struct ctl_table *table, int write, 81246@@ -531,7 +531,7 @@ int proc_dowatchdog(struct ctl_table *table, int write,
81529 } 81247 }
81530 #endif /* CONFIG_SYSCTL */ 81248 #endif /* CONFIG_SYSCTL */
81531 81249
@@ -81534,8 +81252,21 @@ index 4a94467..80a6f9c 100644
81534 .store = &softlockup_watchdog, 81252 .store = &softlockup_watchdog,
81535 .thread_should_run = watchdog_should_run, 81253 .thread_should_run = watchdog_should_run,
81536 .thread_fn = watchdog, 81254 .thread_fn = watchdog,
81255diff --git a/kernel/workqueue.c b/kernel/workqueue.c
81256index ee8e29a..410568e 100644
81257--- a/kernel/workqueue.c
81258+++ b/kernel/workqueue.c
81259@@ -4584,7 +4584,7 @@ static void rebind_workers(struct worker_pool *pool)
81260 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
81261 worker_flags |= WORKER_REBOUND;
81262 worker_flags &= ~WORKER_UNBOUND;
81263- ACCESS_ONCE(worker->flags) = worker_flags;
81264+ ACCESS_ONCE_RW(worker->flags) = worker_flags;
81265 }
81266
81267 spin_unlock_irq(&pool->lock);
81537diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug 81268diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
81538index 28be08c..47bab92 100644 81269index 74fdc5c..3310593 100644
81539--- a/lib/Kconfig.debug 81270--- a/lib/Kconfig.debug
81540+++ b/lib/Kconfig.debug 81271+++ b/lib/Kconfig.debug
81541@@ -549,7 +549,7 @@ config DEBUG_MUTEXES 81272@@ -549,7 +549,7 @@ config DEBUG_MUTEXES
@@ -81573,7 +81304,16 @@ index 28be08c..47bab92 100644
81573 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND 81304 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND
81574 select KALLSYMS 81305 select KALLSYMS
81575 select KALLSYMS_ALL 81306 select KALLSYMS_ALL
81576@@ -1310,7 +1311,7 @@ config INTERVAL_TREE_TEST 81307@@ -1298,7 +1299,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
81308 config DEBUG_STRICT_USER_COPY_CHECKS
81309 bool "Strict user copy size checks"
81310 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
81311- depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
81312+ depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
81313 help
81314 Enabling this option turns a certain set of sanity checks for user
81315 copy operations into compile time failures.
81316@@ -1328,7 +1329,7 @@ config INTERVAL_TREE_TEST
81577 81317
81578 config PROVIDE_OHCI1394_DMA_INIT 81318 config PROVIDE_OHCI1394_DMA_INIT
81579 bool "Remote debugging over FireWire early on boot" 81319 bool "Remote debugging over FireWire early on boot"
@@ -81582,7 +81322,7 @@ index 28be08c..47bab92 100644
81582 help 81322 help
81583 If you want to debug problems which hang or crash the kernel early 81323 If you want to debug problems which hang or crash the kernel early
81584 on boot and the crashing machine has a FireWire port, you can use 81324 on boot and the crashing machine has a FireWire port, you can use
81585@@ -1339,7 +1340,7 @@ config PROVIDE_OHCI1394_DMA_INIT 81325@@ -1357,7 +1358,7 @@ config PROVIDE_OHCI1394_DMA_INIT
81586 81326
81587 config FIREWIRE_OHCI_REMOTE_DMA 81327 config FIREWIRE_OHCI_REMOTE_DMA
81588 bool "Remote debugging over FireWire with firewire-ohci" 81328 bool "Remote debugging over FireWire with firewire-ohci"
@@ -81592,10 +81332,10 @@ index 28be08c..47bab92 100644
81592 This option lets you use the FireWire bus for remote debugging 81332 This option lets you use the FireWire bus for remote debugging
81593 with help of the firewire-ohci driver. It enables unfiltered 81333 with help of the firewire-ohci driver. It enables unfiltered
81594diff --git a/lib/Makefile b/lib/Makefile 81334diff --git a/lib/Makefile b/lib/Makefile
81595index 6e2cc56..9b13738 100644 81335index c55a037..fb46e3b 100644
81596--- a/lib/Makefile 81336--- a/lib/Makefile
81597+++ b/lib/Makefile 81337+++ b/lib/Makefile
81598@@ -47,7 +47,7 @@ obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o 81338@@ -50,7 +50,7 @@ obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
81599 81339
81600 obj-$(CONFIG_BTREE) += btree.o 81340 obj-$(CONFIG_BTREE) += btree.o
81601 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o 81341 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
@@ -81786,7 +81526,7 @@ index bd2bea9..6b3c95e 100644
81786 return false; 81526 return false;
81787 81527
81788diff --git a/lib/kobject.c b/lib/kobject.c 81528diff --git a/lib/kobject.c b/lib/kobject.c
81789index a654866..d8bb115 100644 81529index b7e29a6..2f3ca75 100644
81790--- a/lib/kobject.c 81530--- a/lib/kobject.c
81791+++ b/lib/kobject.c 81531+++ b/lib/kobject.c
81792@@ -805,7 +805,7 @@ static struct kset *kset_create(const char *name, 81532@@ -805,7 +805,7 @@ static struct kset *kset_create(const char *name,
@@ -82038,8 +81778,22 @@ index d23762e..e21eab2 100644
82038 { 81778 {
82039 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr); 81779 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
82040 81780
81781diff --git a/lib/usercopy.c b/lib/usercopy.c
81782index 4f5b1dd..7cab418 100644
81783--- a/lib/usercopy.c
81784+++ b/lib/usercopy.c
81785@@ -7,3 +7,9 @@ void copy_from_user_overflow(void)
81786 WARN(1, "Buffer overflow detected!\n");
81787 }
81788 EXPORT_SYMBOL(copy_from_user_overflow);
81789+
81790+void copy_to_user_overflow(void)
81791+{
81792+ WARN(1, "Buffer overflow detected!\n");
81793+}
81794+EXPORT_SYMBOL(copy_to_user_overflow);
82041diff --git a/lib/vsprintf.c b/lib/vsprintf.c 81795diff --git a/lib/vsprintf.c b/lib/vsprintf.c
82042index 0d62fd7..b7bc911 100644 81796index e149c64..24aa71a 100644
82043--- a/lib/vsprintf.c 81797--- a/lib/vsprintf.c
82044+++ b/lib/vsprintf.c 81798+++ b/lib/vsprintf.c
82045@@ -16,6 +16,9 @@ 81799@@ -16,6 +16,9 @@
@@ -82052,7 +81806,7 @@ index 0d62fd7..b7bc911 100644
82052 #include <stdarg.h> 81806 #include <stdarg.h>
82053 #include <linux/module.h> /* for KSYM_SYMBOL_LEN */ 81807 #include <linux/module.h> /* for KSYM_SYMBOL_LEN */
82054 #include <linux/types.h> 81808 #include <linux/types.h>
82055@@ -974,7 +977,11 @@ char *netdev_feature_string(char *buf, char *end, const u8 *addr, 81809@@ -981,7 +984,11 @@ char *netdev_feature_string(char *buf, char *end, const u8 *addr,
82056 return number(buf, end, *(const netdev_features_t *)addr, spec); 81810 return number(buf, end, *(const netdev_features_t *)addr, spec);
82057 } 81811 }
82058 81812
@@ -82064,16 +81818,15 @@ index 0d62fd7..b7bc911 100644
82064 81818
82065 /* 81819 /*
82066 * Show a '%p' thing. A kernel extension is that the '%p' is followed 81820 * Show a '%p' thing. A kernel extension is that the '%p' is followed
82067@@ -988,6 +995,8 @@ int kptr_restrict __read_mostly; 81821@@ -994,6 +1001,7 @@ int kptr_restrict __read_mostly;
81822 * - 'f' For simple symbolic function names without offset
82068 * - 'S' For symbolic direct pointers with offset 81823 * - 'S' For symbolic direct pointers with offset
82069 * - 's' For symbolic direct pointers without offset 81824 * - 's' For symbolic direct pointers without offset
82070 * - 'B' For backtraced symbolic direct pointers with offset
82071+ * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM 81825+ * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM
82072+ * - 'a' For symbolic direct pointers without offset approved for use with GRKERNSEC_HIDESYM 81826 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
81827 * - 'B' For backtraced symbolic direct pointers with offset
82073 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref] 81828 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
82074 * - 'r' For raw struct resource, e.g., [mem 0x0-0x1f flags 0x201] 81829@@ -1052,12 +1060,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
82075 * - 'M' For a 6-byte MAC address, it prints the address in the
82076@@ -1044,12 +1053,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
82077 81830
82078 if (!ptr && *fmt != 'K') { 81831 if (!ptr && *fmt != 'K') {
82079 /* 81832 /*
@@ -82088,20 +81841,20 @@ index 0d62fd7..b7bc911 100644
82088 } 81841 }
82089 81842
82090 switch (*fmt) { 81843 switch (*fmt) {
82091@@ -1059,6 +1068,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, 81844@@ -1067,6 +1075,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
82092 /* Fallthrough */ 81845 /* Fallthrough */
82093 case 'S': 81846 case 'S':
82094 case 's': 81847 case 's':
82095+#ifdef CONFIG_GRKERNSEC_HIDESYM 81848+#ifdef CONFIG_GRKERNSEC_HIDESYM
82096+ break; 81849+ break;
82097+#else 81850+#else
82098+ return symbol_string(buf, end, ptr, spec, *fmt); 81851+ return symbol_string(buf, end, ptr, spec, fmt);
82099+#endif 81852+#endif
82100+ case 'A': 81853+ case 'A':
82101 case 'B': 81854 case 'B':
82102 return symbol_string(buf, end, ptr, spec, *fmt); 81855 return symbol_string(buf, end, ptr, spec, fmt);
82103 case 'R': 81856 case 'R':
82104@@ -1099,6 +1114,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, 81857@@ -1107,6 +1121,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
82105 va_end(va); 81858 va_end(va);
82106 return buf; 81859 return buf;
82107 } 81860 }
@@ -82110,7 +81863,7 @@ index 0d62fd7..b7bc911 100644
82110 case 'K': 81863 case 'K':
82111 /* 81864 /*
82112 * %pK cannot be used in IRQ context because its test 81865 * %pK cannot be used in IRQ context because its test
82113@@ -1128,6 +1145,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr, 81866@@ -1136,6 +1152,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
82114 return number(buf, end, 81867 return number(buf, end,
82115 (unsigned long long) *((phys_addr_t *)ptr), spec); 81868 (unsigned long long) *((phys_addr_t *)ptr), spec);
82116 } 81869 }
@@ -82132,7 +81885,7 @@ index 0d62fd7..b7bc911 100644
82132 spec.flags |= SMALL; 81885 spec.flags |= SMALL;
82133 if (spec.field_width == -1) { 81886 if (spec.field_width == -1) {
82134 spec.field_width = default_width; 81887 spec.field_width = default_width;
82135@@ -1849,11 +1881,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) 81888@@ -1857,11 +1888,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
82136 typeof(type) value; \ 81889 typeof(type) value; \
82137 if (sizeof(type) == 8) { \ 81890 if (sizeof(type) == 8) { \
82138 args = PTR_ALIGN(args, sizeof(u32)); \ 81891 args = PTR_ALIGN(args, sizeof(u32)); \
@@ -82147,7 +81900,7 @@ index 0d62fd7..b7bc911 100644
82147 } \ 81900 } \
82148 args += sizeof(type); \ 81901 args += sizeof(type); \
82149 value; \ 81902 value; \
82150@@ -1916,7 +1948,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf) 81903@@ -1924,7 +1955,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
82151 case FORMAT_TYPE_STR: { 81904 case FORMAT_TYPE_STR: {
82152 const char *str_arg = args; 81905 const char *str_arg = args;
82153 args += strlen(str_arg) + 1; 81906 args += strlen(str_arg) + 1;
@@ -82164,10 +81917,10 @@ index 0000000..7cd6065
82164@@ -0,0 +1 @@ 81917@@ -0,0 +1 @@
82165+-grsec 81918+-grsec
82166diff --git a/mm/Kconfig b/mm/Kconfig 81919diff --git a/mm/Kconfig b/mm/Kconfig
82167index 3bea74f..e821c99 100644 81920index e742d06..c56fdd8 100644
82168--- a/mm/Kconfig 81921--- a/mm/Kconfig
82169+++ b/mm/Kconfig 81922+++ b/mm/Kconfig
82170@@ -311,10 +311,10 @@ config KSM 81923@@ -317,10 +317,10 @@ config KSM
82171 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set). 81924 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
82172 81925
82173 config DEFAULT_MMAP_MIN_ADDR 81926 config DEFAULT_MMAP_MIN_ADDR
@@ -82181,7 +81934,7 @@ index 3bea74f..e821c99 100644
82181 This is the portion of low virtual memory which should be protected 81934 This is the portion of low virtual memory which should be protected
82182 from userspace allocation. Keeping a user from writing to low pages 81935 from userspace allocation. Keeping a user from writing to low pages
82183 can help reduce the impact of kernel NULL pointer bugs. 81936 can help reduce the impact of kernel NULL pointer bugs.
82184@@ -345,7 +345,7 @@ config MEMORY_FAILURE 81937@@ -351,7 +351,7 @@ config MEMORY_FAILURE
82185 81938
82186 config HWPOISON_INJECT 81939 config HWPOISON_INJECT
82187 tristate "HWPoison pages injector" 81940 tristate "HWPoison pages injector"
@@ -82191,10 +81944,10 @@ index 3bea74f..e821c99 100644
82191 81944
82192 config NOMMU_INITIAL_TRIM_EXCESS 81945 config NOMMU_INITIAL_TRIM_EXCESS
82193diff --git a/mm/backing-dev.c b/mm/backing-dev.c 81946diff --git a/mm/backing-dev.c b/mm/backing-dev.c
82194index 41733c5..d80d7a9 100644 81947index 5025174..9fc1c5c 100644
82195--- a/mm/backing-dev.c 81948--- a/mm/backing-dev.c
82196+++ b/mm/backing-dev.c 81949+++ b/mm/backing-dev.c
82197@@ -716,7 +716,6 @@ EXPORT_SYMBOL(bdi_destroy); 81950@@ -515,7 +515,6 @@ EXPORT_SYMBOL(bdi_destroy);
82198 int bdi_setup_and_register(struct backing_dev_info *bdi, char *name, 81951 int bdi_setup_and_register(struct backing_dev_info *bdi, char *name,
82199 unsigned int cap) 81952 unsigned int cap)
82200 { 81953 {
@@ -82202,7 +81955,7 @@ index 41733c5..d80d7a9 100644
82202 int err; 81955 int err;
82203 81956
82204 bdi->name = name; 81957 bdi->name = name;
82205@@ -725,8 +724,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name, 81958@@ -524,8 +523,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name,
82206 if (err) 81959 if (err)
82207 return err; 81960 return err;
82208 81961
@@ -82213,10 +81966,10 @@ index 41733c5..d80d7a9 100644
82213 bdi_destroy(bdi); 81966 bdi_destroy(bdi);
82214 return err; 81967 return err;
82215diff --git a/mm/filemap.c b/mm/filemap.c 81968diff --git a/mm/filemap.c b/mm/filemap.c
82216index e1979fd..dda5120 100644 81969index 7905fe7..e60faa8 100644
82217--- a/mm/filemap.c 81970--- a/mm/filemap.c
82218+++ b/mm/filemap.c 81971+++ b/mm/filemap.c
82219@@ -1748,7 +1748,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma) 81972@@ -1766,7 +1766,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
82220 struct address_space *mapping = file->f_mapping; 81973 struct address_space *mapping = file->f_mapping;
82221 81974
82222 if (!mapping->a_ops->readpage) 81975 if (!mapping->a_ops->readpage)
@@ -82225,7 +81978,7 @@ index e1979fd..dda5120 100644
82225 file_accessed(file); 81978 file_accessed(file);
82226 vma->vm_ops = &generic_file_vm_ops; 81979 vma->vm_ops = &generic_file_vm_ops;
82227 return 0; 81980 return 0;
82228@@ -2088,6 +2088,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i 81981@@ -2106,6 +2106,7 @@ inline int generic_write_checks(struct file *file, loff_t *pos, size_t *count, i
82229 *pos = i_size_read(inode); 81982 *pos = i_size_read(inode);
82230 81983
82231 if (limit != RLIM_INFINITY) { 81984 if (limit != RLIM_INFINITY) {
@@ -82278,7 +82031,7 @@ index b32b70c..e512eb0 100644
82278 set_page_address(page, (void *)vaddr); 82031 set_page_address(page, (void *)vaddr);
82279 82032
82280diff --git a/mm/hugetlb.c b/mm/hugetlb.c 82033diff --git a/mm/hugetlb.c b/mm/hugetlb.c
82281index 2baa6e3..cd0a264 100644 82034index 5cf99bf..28634c8 100644
82282--- a/mm/hugetlb.c 82035--- a/mm/hugetlb.c
82283+++ b/mm/hugetlb.c 82036+++ b/mm/hugetlb.c
82284@@ -2022,15 +2022,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy, 82037@@ -2022,15 +2022,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
@@ -82323,7 +82076,7 @@ index 2baa6e3..cd0a264 100644
82323 if (ret) 82076 if (ret)
82324 goto out; 82077 goto out;
82325 82078
82326@@ -2529,6 +2533,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, 82079@@ -2545,6 +2549,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
82327 return 1; 82080 return 1;
82328 } 82081 }
82329 82082
@@ -82351,7 +82104,7 @@ index 2baa6e3..cd0a264 100644
82351 /* 82104 /*
82352 * Hugetlb_cow() should be called with page lock of the original hugepage held. 82105 * Hugetlb_cow() should be called with page lock of the original hugepage held.
82353 * Called with hugetlb_instantiation_mutex held and pte_page locked so we 82106 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
82354@@ -2647,6 +2672,11 @@ retry_avoidcopy: 82107@@ -2663,6 +2688,11 @@ retry_avoidcopy:
82355 make_huge_pte(vma, new_page, 1)); 82108 make_huge_pte(vma, new_page, 1));
82356 page_remove_rmap(old_page); 82109 page_remove_rmap(old_page);
82357 hugepage_add_new_anon_rmap(new_page, vma, address); 82110 hugepage_add_new_anon_rmap(new_page, vma, address);
@@ -82363,7 +82116,7 @@ index 2baa6e3..cd0a264 100644
82363 /* Make the old page be freed below */ 82116 /* Make the old page be freed below */
82364 new_page = old_page; 82117 new_page = old_page;
82365 } 82118 }
82366@@ -2805,6 +2835,10 @@ retry: 82119@@ -2821,6 +2851,10 @@ retry:
82367 && (vma->vm_flags & VM_SHARED))); 82120 && (vma->vm_flags & VM_SHARED)));
82368 set_huge_pte_at(mm, address, ptep, new_pte); 82121 set_huge_pte_at(mm, address, ptep, new_pte);
82369 82122
@@ -82374,7 +82127,7 @@ index 2baa6e3..cd0a264 100644
82374 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) { 82127 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
82375 /* Optimization, do the COW without a second fault */ 82128 /* Optimization, do the COW without a second fault */
82376 ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page); 82129 ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page);
82377@@ -2834,6 +2868,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82130@@ -2850,6 +2884,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
82378 static DEFINE_MUTEX(hugetlb_instantiation_mutex); 82131 static DEFINE_MUTEX(hugetlb_instantiation_mutex);
82379 struct hstate *h = hstate_vma(vma); 82132 struct hstate *h = hstate_vma(vma);
82380 82133
@@ -82385,7 +82138,7 @@ index 2baa6e3..cd0a264 100644
82385 address &= huge_page_mask(h); 82138 address &= huge_page_mask(h);
82386 82139
82387 ptep = huge_pte_offset(mm, address); 82140 ptep = huge_pte_offset(mm, address);
82388@@ -2847,6 +2885,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82141@@ -2863,6 +2901,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
82389 VM_FAULT_SET_HINDEX(hstate_index(h)); 82142 VM_FAULT_SET_HINDEX(hstate_index(h));
82390 } 82143 }
82391 82144
@@ -82469,7 +82222,7 @@ index d53adf9..03a24bf 100644
82469 set_fs(old_fs); 82222 set_fs(old_fs);
82470 82223
82471diff --git a/mm/madvise.c b/mm/madvise.c 82224diff --git a/mm/madvise.c b/mm/madvise.c
82472index c58c94b..86ec14e 100644 82225index 7055883..aafb1ed 100644
82473--- a/mm/madvise.c 82226--- a/mm/madvise.c
82474+++ b/mm/madvise.c 82227+++ b/mm/madvise.c
82475@@ -51,6 +51,10 @@ static long madvise_behavior(struct vm_area_struct * vma, 82228@@ -51,6 +51,10 @@ static long madvise_behavior(struct vm_area_struct * vma,
@@ -82531,25 +82284,25 @@ index c58c94b..86ec14e 100644
82531 return 0; 82284 return 0;
82532 } 82285 }
82533 82286
82534@@ -491,6 +522,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior) 82287@@ -485,6 +516,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
82535 if (end < start) 82288 if (end < start)
82536 goto out; 82289 return error;
82537 82290
82538+#ifdef CONFIG_PAX_SEGMEXEC 82291+#ifdef CONFIG_PAX_SEGMEXEC
82539+ if (current->mm->pax_flags & MF_PAX_SEGMEXEC) { 82292+ if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
82540+ if (end > SEGMEXEC_TASK_SIZE) 82293+ if (end > SEGMEXEC_TASK_SIZE)
82541+ goto out; 82294+ return error;
82542+ } else 82295+ } else
82543+#endif 82296+#endif
82544+ 82297+
82545+ if (end > TASK_SIZE) 82298+ if (end > TASK_SIZE)
82546+ goto out; 82299+ return error;
82547+ 82300+
82548 error = 0; 82301 error = 0;
82549 if (end == start) 82302 if (end == start)
82550 goto out; 82303 return error;
82551diff --git a/mm/memory-failure.c b/mm/memory-failure.c 82304diff --git a/mm/memory-failure.c b/mm/memory-failure.c
82552index df0694c..bc95539 100644 82305index ceb0c7f..b2b8e94 100644
82553--- a/mm/memory-failure.c 82306--- a/mm/memory-failure.c
82554+++ b/mm/memory-failure.c 82307+++ b/mm/memory-failure.c
82555@@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0; 82308@@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
@@ -82666,10 +82419,10 @@ index df0694c..bc95539 100644
82666 } else { 82419 } else {
82667 pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n", 82420 pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
82668diff --git a/mm/memory.c b/mm/memory.c 82421diff --git a/mm/memory.c b/mm/memory.c
82669index ba94dec..08ffe0d 100644 82422index 61a262b..77a94d1 100644
82670--- a/mm/memory.c 82423--- a/mm/memory.c
82671+++ b/mm/memory.c 82424+++ b/mm/memory.c
82672@@ -438,6 +438,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, 82425@@ -429,6 +429,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
82673 free_pte_range(tlb, pmd, addr); 82426 free_pte_range(tlb, pmd, addr);
82674 } while (pmd++, addr = next, addr != end); 82427 } while (pmd++, addr = next, addr != end);
82675 82428
@@ -82677,7 +82430,7 @@ index ba94dec..08ffe0d 100644
82677 start &= PUD_MASK; 82430 start &= PUD_MASK;
82678 if (start < floor) 82431 if (start < floor)
82679 return; 82432 return;
82680@@ -452,6 +453,8 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud, 82433@@ -443,6 +444,8 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
82681 pmd = pmd_offset(pud, start); 82434 pmd = pmd_offset(pud, start);
82682 pud_clear(pud); 82435 pud_clear(pud);
82683 pmd_free_tlb(tlb, pmd, start); 82436 pmd_free_tlb(tlb, pmd, start);
@@ -82686,7 +82439,7 @@ index ba94dec..08ffe0d 100644
82686 } 82439 }
82687 82440
82688 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, 82441 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
82689@@ -471,6 +474,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, 82442@@ -462,6 +465,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
82690 free_pmd_range(tlb, pud, addr, next, floor, ceiling); 82443 free_pmd_range(tlb, pud, addr, next, floor, ceiling);
82691 } while (pud++, addr = next, addr != end); 82444 } while (pud++, addr = next, addr != end);
82692 82445
@@ -82694,7 +82447,7 @@ index ba94dec..08ffe0d 100644
82694 start &= PGDIR_MASK; 82447 start &= PGDIR_MASK;
82695 if (start < floor) 82448 if (start < floor)
82696 return; 82449 return;
82697@@ -485,6 +489,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd, 82450@@ -476,6 +480,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
82698 pud = pud_offset(pgd, start); 82451 pud = pud_offset(pgd, start);
82699 pgd_clear(pgd); 82452 pgd_clear(pgd);
82700 pud_free_tlb(tlb, pud, start); 82453 pud_free_tlb(tlb, pud, start);
@@ -82703,7 +82456,7 @@ index ba94dec..08ffe0d 100644
82703 } 82456 }
82704 82457
82705 /* 82458 /*
82706@@ -1644,12 +1650,6 @@ no_page_table: 82459@@ -1635,12 +1641,6 @@ no_page_table:
82707 return page; 82460 return page;
82708 } 82461 }
82709 82462
@@ -82716,7 +82469,7 @@ index ba94dec..08ffe0d 100644
82716 /** 82469 /**
82717 * __get_user_pages() - pin user pages in memory 82470 * __get_user_pages() - pin user pages in memory
82718 * @tsk: task_struct of target task 82471 * @tsk: task_struct of target task
82719@@ -1736,10 +1736,10 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, 82472@@ -1727,10 +1727,10 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
82720 82473
82721 i = 0; 82474 i = 0;
82722 82475
@@ -82729,7 +82482,7 @@ index ba94dec..08ffe0d 100644
82729 if (!vma && in_gate_area(mm, start)) { 82482 if (!vma && in_gate_area(mm, start)) {
82730 unsigned long pg = start & PAGE_MASK; 82483 unsigned long pg = start & PAGE_MASK;
82731 pgd_t *pgd; 82484 pgd_t *pgd;
82732@@ -1788,7 +1788,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, 82485@@ -1779,7 +1779,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
82733 goto next_page; 82486 goto next_page;
82734 } 82487 }
82735 82488
@@ -82738,7 +82491,7 @@ index ba94dec..08ffe0d 100644
82738 (vma->vm_flags & (VM_IO | VM_PFNMAP)) || 82491 (vma->vm_flags & (VM_IO | VM_PFNMAP)) ||
82739 !(vm_flags & vma->vm_flags)) 82492 !(vm_flags & vma->vm_flags))
82740 return i ? : -EFAULT; 82493 return i ? : -EFAULT;
82741@@ -1817,11 +1817,6 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, 82494@@ -1808,11 +1808,6 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
82742 int ret; 82495 int ret;
82743 unsigned int fault_flags = 0; 82496 unsigned int fault_flags = 0;
82744 82497
@@ -82750,7 +82503,7 @@ index ba94dec..08ffe0d 100644
82750 if (foll_flags & FOLL_WRITE) 82503 if (foll_flags & FOLL_WRITE)
82751 fault_flags |= FAULT_FLAG_WRITE; 82504 fault_flags |= FAULT_FLAG_WRITE;
82752 if (nonblocking) 82505 if (nonblocking)
82753@@ -1901,7 +1896,7 @@ next_page: 82506@@ -1892,7 +1887,7 @@ next_page:
82754 start += page_increm * PAGE_SIZE; 82507 start += page_increm * PAGE_SIZE;
82755 nr_pages -= page_increm; 82508 nr_pages -= page_increm;
82756 } while (nr_pages && start < vma->vm_end); 82509 } while (nr_pages && start < vma->vm_end);
@@ -82759,7 +82512,7 @@ index ba94dec..08ffe0d 100644
82759 return i; 82512 return i;
82760 } 82513 }
82761 EXPORT_SYMBOL(__get_user_pages); 82514 EXPORT_SYMBOL(__get_user_pages);
82762@@ -2108,6 +2103,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr, 82515@@ -2099,6 +2094,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
82763 page_add_file_rmap(page); 82516 page_add_file_rmap(page);
82764 set_pte_at(mm, addr, pte, mk_pte(page, prot)); 82517 set_pte_at(mm, addr, pte, mk_pte(page, prot));
82765 82518
@@ -82770,7 +82523,7 @@ index ba94dec..08ffe0d 100644
82770 retval = 0; 82523 retval = 0;
82771 pte_unmap_unlock(pte, ptl); 82524 pte_unmap_unlock(pte, ptl);
82772 return retval; 82525 return retval;
82773@@ -2152,9 +2151,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr, 82526@@ -2143,9 +2142,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
82774 if (!page_count(page)) 82527 if (!page_count(page))
82775 return -EINVAL; 82528 return -EINVAL;
82776 if (!(vma->vm_flags & VM_MIXEDMAP)) { 82529 if (!(vma->vm_flags & VM_MIXEDMAP)) {
@@ -82792,7 +82545,7 @@ index ba94dec..08ffe0d 100644
82792 } 82545 }
82793 return insert_page(vma, addr, page, vma->vm_page_prot); 82546 return insert_page(vma, addr, page, vma->vm_page_prot);
82794 } 82547 }
82795@@ -2237,6 +2248,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr, 82548@@ -2228,6 +2239,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
82796 unsigned long pfn) 82549 unsigned long pfn)
82797 { 82550 {
82798 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP)); 82551 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
@@ -82800,7 +82553,7 @@ index ba94dec..08ffe0d 100644
82800 82553
82801 if (addr < vma->vm_start || addr >= vma->vm_end) 82554 if (addr < vma->vm_start || addr >= vma->vm_end)
82802 return -EFAULT; 82555 return -EFAULT;
82803@@ -2484,7 +2496,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud, 82556@@ -2475,7 +2487,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
82804 82557
82805 BUG_ON(pud_huge(*pud)); 82558 BUG_ON(pud_huge(*pud));
82806 82559
@@ -82811,7 +82564,7 @@ index ba94dec..08ffe0d 100644
82811 if (!pmd) 82564 if (!pmd)
82812 return -ENOMEM; 82565 return -ENOMEM;
82813 do { 82566 do {
82814@@ -2504,7 +2518,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd, 82567@@ -2495,7 +2509,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
82815 unsigned long next; 82568 unsigned long next;
82816 int err; 82569 int err;
82817 82570
@@ -82822,7 +82575,7 @@ index ba94dec..08ffe0d 100644
82822 if (!pud) 82575 if (!pud)
82823 return -ENOMEM; 82576 return -ENOMEM;
82824 do { 82577 do {
82825@@ -2592,6 +2608,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo 82578@@ -2583,6 +2599,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
82826 copy_user_highpage(dst, src, va, vma); 82579 copy_user_highpage(dst, src, va, vma);
82827 } 82580 }
82828 82581
@@ -83009,7 +82762,7 @@ index ba94dec..08ffe0d 100644
83009 /* 82762 /*
83010 * This routine handles present pages, when users try to write 82763 * This routine handles present pages, when users try to write
83011 * to a shared page. It is done by copying the page to a new address 82764 * to a shared page. It is done by copying the page to a new address
83012@@ -2808,6 +3004,12 @@ gotten: 82765@@ -2799,6 +2995,12 @@ gotten:
83013 */ 82766 */
83014 page_table = pte_offset_map_lock(mm, pmd, address, &ptl); 82767 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
83015 if (likely(pte_same(*page_table, orig_pte))) { 82768 if (likely(pte_same(*page_table, orig_pte))) {
@@ -83022,7 +82775,7 @@ index ba94dec..08ffe0d 100644
83022 if (old_page) { 82775 if (old_page) {
83023 if (!PageAnon(old_page)) { 82776 if (!PageAnon(old_page)) {
83024 dec_mm_counter_fast(mm, MM_FILEPAGES); 82777 dec_mm_counter_fast(mm, MM_FILEPAGES);
83025@@ -2859,6 +3061,10 @@ gotten: 82778@@ -2850,6 +3052,10 @@ gotten:
83026 page_remove_rmap(old_page); 82779 page_remove_rmap(old_page);
83027 } 82780 }
83028 82781
@@ -83033,7 +82786,7 @@ index ba94dec..08ffe0d 100644
83033 /* Free the old page.. */ 82786 /* Free the old page.. */
83034 new_page = old_page; 82787 new_page = old_page;
83035 ret |= VM_FAULT_WRITE; 82788 ret |= VM_FAULT_WRITE;
83036@@ -3134,6 +3340,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, 82789@@ -3125,6 +3331,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
83037 swap_free(entry); 82790 swap_free(entry);
83038 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page)) 82791 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
83039 try_to_free_swap(page); 82792 try_to_free_swap(page);
@@ -83045,7 +82798,7 @@ index ba94dec..08ffe0d 100644
83045 unlock_page(page); 82798 unlock_page(page);
83046 if (page != swapcache) { 82799 if (page != swapcache) {
83047 /* 82800 /*
83048@@ -3157,6 +3368,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, 82801@@ -3148,6 +3359,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
83049 82802
83050 /* No need to invalidate - it was non-present before */ 82803 /* No need to invalidate - it was non-present before */
83051 update_mmu_cache(vma, address, page_table); 82804 update_mmu_cache(vma, address, page_table);
@@ -83057,7 +82810,7 @@ index ba94dec..08ffe0d 100644
83057 unlock: 82810 unlock:
83058 pte_unmap_unlock(page_table, ptl); 82811 pte_unmap_unlock(page_table, ptl);
83059 out: 82812 out:
83060@@ -3176,40 +3392,6 @@ out_release: 82813@@ -3167,40 +3383,6 @@ out_release:
83061 } 82814 }
83062 82815
83063 /* 82816 /*
@@ -83098,7 +82851,7 @@ index ba94dec..08ffe0d 100644
83098 * We enter with non-exclusive mmap_sem (to exclude vma changes, 82851 * We enter with non-exclusive mmap_sem (to exclude vma changes,
83099 * but allow concurrent faults), and pte mapped but not yet locked. 82852 * but allow concurrent faults), and pte mapped but not yet locked.
83100 * We return with mmap_sem still held, but pte unmapped and unlocked. 82853 * We return with mmap_sem still held, but pte unmapped and unlocked.
83101@@ -3218,27 +3400,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, 82854@@ -3209,27 +3391,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
83102 unsigned long address, pte_t *page_table, pmd_t *pmd, 82855 unsigned long address, pte_t *page_table, pmd_t *pmd,
83103 unsigned int flags) 82856 unsigned int flags)
83104 { 82857 {
@@ -83131,7 +82884,7 @@ index ba94dec..08ffe0d 100644
83131 if (unlikely(anon_vma_prepare(vma))) 82884 if (unlikely(anon_vma_prepare(vma)))
83132 goto oom; 82885 goto oom;
83133 page = alloc_zeroed_user_highpage_movable(vma, address); 82886 page = alloc_zeroed_user_highpage_movable(vma, address);
83134@@ -3257,6 +3435,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, 82887@@ -3253,6 +3431,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
83135 if (!pte_none(*page_table)) 82888 if (!pte_none(*page_table))
83136 goto release; 82889 goto release;
83137 82890
@@ -83143,7 +82896,7 @@ index ba94dec..08ffe0d 100644
83143 inc_mm_counter_fast(mm, MM_ANONPAGES); 82896 inc_mm_counter_fast(mm, MM_ANONPAGES);
83144 page_add_new_anon_rmap(page, vma, address); 82897 page_add_new_anon_rmap(page, vma, address);
83145 setpte: 82898 setpte:
83146@@ -3264,6 +3447,12 @@ setpte: 82899@@ -3260,6 +3443,12 @@ setpte:
83147 82900
83148 /* No need to invalidate - it was non-present before */ 82901 /* No need to invalidate - it was non-present before */
83149 update_mmu_cache(vma, address, page_table); 82902 update_mmu_cache(vma, address, page_table);
@@ -83156,7 +82909,7 @@ index ba94dec..08ffe0d 100644
83156 unlock: 82909 unlock:
83157 pte_unmap_unlock(page_table, ptl); 82910 pte_unmap_unlock(page_table, ptl);
83158 return 0; 82911 return 0;
83159@@ -3407,6 +3596,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82912@@ -3403,6 +3592,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
83160 */ 82913 */
83161 /* Only go through if we didn't race with anybody else... */ 82914 /* Only go through if we didn't race with anybody else... */
83162 if (likely(pte_same(*page_table, orig_pte))) { 82915 if (likely(pte_same(*page_table, orig_pte))) {
@@ -83169,7 +82922,7 @@ index ba94dec..08ffe0d 100644
83169 flush_icache_page(vma, page); 82922 flush_icache_page(vma, page);
83170 entry = mk_pte(page, vma->vm_page_prot); 82923 entry = mk_pte(page, vma->vm_page_prot);
83171 if (flags & FAULT_FLAG_WRITE) 82924 if (flags & FAULT_FLAG_WRITE)
83172@@ -3426,6 +3621,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82925@@ -3422,6 +3617,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
83173 82926
83174 /* no need to invalidate: a not-present page won't be cached */ 82927 /* no need to invalidate: a not-present page won't be cached */
83175 update_mmu_cache(vma, address, page_table); 82928 update_mmu_cache(vma, address, page_table);
@@ -83184,7 +82937,7 @@ index ba94dec..08ffe0d 100644
83184 } else { 82937 } else {
83185 if (cow_page) 82938 if (cow_page)
83186 mem_cgroup_uncharge_page(cow_page); 82939 mem_cgroup_uncharge_page(cow_page);
83187@@ -3747,6 +3950,12 @@ int handle_pte_fault(struct mm_struct *mm, 82940@@ -3743,6 +3946,12 @@ int handle_pte_fault(struct mm_struct *mm,
83188 if (flags & FAULT_FLAG_WRITE) 82941 if (flags & FAULT_FLAG_WRITE)
83189 flush_tlb_fix_spurious_fault(vma, address); 82942 flush_tlb_fix_spurious_fault(vma, address);
83190 } 82943 }
@@ -83197,7 +82950,7 @@ index ba94dec..08ffe0d 100644
83197 unlock: 82950 unlock:
83198 pte_unmap_unlock(pte, ptl); 82951 pte_unmap_unlock(pte, ptl);
83199 return 0; 82952 return 0;
83200@@ -3763,6 +3972,10 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82953@@ -3759,6 +3968,10 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
83201 pmd_t *pmd; 82954 pmd_t *pmd;
83202 pte_t *pte; 82955 pte_t *pte;
83203 82956
@@ -83208,7 +82961,7 @@ index ba94dec..08ffe0d 100644
83208 __set_current_state(TASK_RUNNING); 82961 __set_current_state(TASK_RUNNING);
83209 82962
83210 count_vm_event(PGFAULT); 82963 count_vm_event(PGFAULT);
83211@@ -3774,6 +3987,34 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, 82964@@ -3770,6 +3983,34 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
83212 if (unlikely(is_vm_hugetlb_page(vma))) 82965 if (unlikely(is_vm_hugetlb_page(vma)))
83213 return hugetlb_fault(mm, vma, address, flags); 82966 return hugetlb_fault(mm, vma, address, flags);
83214 82967
@@ -83243,7 +82996,7 @@ index ba94dec..08ffe0d 100644
83243 retry: 82996 retry:
83244 pgd = pgd_offset(mm, address); 82997 pgd = pgd_offset(mm, address);
83245 pud = pud_alloc(mm, pgd, address); 82998 pud = pud_alloc(mm, pgd, address);
83246@@ -3872,6 +4113,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address) 82999@@ -3868,6 +4109,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
83247 spin_unlock(&mm->page_table_lock); 83000 spin_unlock(&mm->page_table_lock);
83248 return 0; 83001 return 0;
83249 } 83002 }
@@ -83267,7 +83020,7 @@ index ba94dec..08ffe0d 100644
83267 #endif /* __PAGETABLE_PUD_FOLDED */ 83020 #endif /* __PAGETABLE_PUD_FOLDED */
83268 83021
83269 #ifndef __PAGETABLE_PMD_FOLDED 83022 #ifndef __PAGETABLE_PMD_FOLDED
83270@@ -3902,6 +4160,30 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address) 83023@@ -3898,6 +4156,30 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
83271 spin_unlock(&mm->page_table_lock); 83024 spin_unlock(&mm->page_table_lock);
83272 return 0; 83025 return 0;
83273 } 83026 }
@@ -83298,7 +83051,7 @@ index ba94dec..08ffe0d 100644
83298 #endif /* __PAGETABLE_PMD_FOLDED */ 83051 #endif /* __PAGETABLE_PMD_FOLDED */
83299 83052
83300 #if !defined(__HAVE_ARCH_GATE_AREA) 83053 #if !defined(__HAVE_ARCH_GATE_AREA)
83301@@ -3915,7 +4197,7 @@ static int __init gate_vma_init(void) 83054@@ -3911,7 +4193,7 @@ static int __init gate_vma_init(void)
83302 gate_vma.vm_start = FIXADDR_USER_START; 83055 gate_vma.vm_start = FIXADDR_USER_START;
83303 gate_vma.vm_end = FIXADDR_USER_END; 83056 gate_vma.vm_end = FIXADDR_USER_END;
83304 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC; 83057 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
@@ -83307,7 +83060,7 @@ index ba94dec..08ffe0d 100644
83307 83060
83308 return 0; 83061 return 0;
83309 } 83062 }
83310@@ -4049,8 +4331,8 @@ out: 83063@@ -4045,8 +4327,8 @@ out:
83311 return ret; 83064 return ret;
83312 } 83065 }
83313 83066
@@ -83318,7 +83071,7 @@ index ba94dec..08ffe0d 100644
83318 { 83071 {
83319 resource_size_t phys_addr; 83072 resource_size_t phys_addr;
83320 unsigned long prot = 0; 83073 unsigned long prot = 0;
83321@@ -4075,8 +4357,8 @@ int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, 83074@@ -4071,8 +4353,8 @@ int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
83322 * Access another process' address space as given in mm. If non-NULL, use the 83075 * Access another process' address space as given in mm. If non-NULL, use the
83323 * given task for page fault accounting. 83076 * given task for page fault accounting.
83324 */ 83077 */
@@ -83329,7 +83082,7 @@ index ba94dec..08ffe0d 100644
83329 { 83082 {
83330 struct vm_area_struct *vma; 83083 struct vm_area_struct *vma;
83331 void *old_buf = buf; 83084 void *old_buf = buf;
83332@@ -4084,7 +4366,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm, 83085@@ -4080,7 +4362,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
83333 down_read(&mm->mmap_sem); 83086 down_read(&mm->mmap_sem);
83334 /* ignore errors, just check how much was successfully transferred */ 83087 /* ignore errors, just check how much was successfully transferred */
83335 while (len) { 83088 while (len) {
@@ -83338,7 +83091,7 @@ index ba94dec..08ffe0d 100644
83338 void *maddr; 83091 void *maddr;
83339 struct page *page = NULL; 83092 struct page *page = NULL;
83340 83093
83341@@ -4143,8 +4425,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm, 83094@@ -4139,8 +4421,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
83342 * 83095 *
83343 * The caller must hold a reference on @mm. 83096 * The caller must hold a reference on @mm.
83344 */ 83097 */
@@ -83349,7 +83102,7 @@ index ba94dec..08ffe0d 100644
83349 { 83102 {
83350 return __access_remote_vm(NULL, mm, addr, buf, len, write); 83103 return __access_remote_vm(NULL, mm, addr, buf, len, write);
83351 } 83104 }
83352@@ -4154,11 +4436,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr, 83105@@ -4150,11 +4432,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
83353 * Source/target buffer must be kernel space, 83106 * Source/target buffer must be kernel space,
83354 * Do not walk the page table directly, use get_user_pages 83107 * Do not walk the page table directly, use get_user_pages
83355 */ 83108 */
@@ -83445,10 +83198,10 @@ index 7431001..0f8344e 100644
83445 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE); 83198 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
83446 83199
83447diff --git a/mm/migrate.c b/mm/migrate.c 83200diff --git a/mm/migrate.c b/mm/migrate.c
83448index c04d9af..0b41805 100644 83201index 6f0c244..6d1ae32 100644
83449--- a/mm/migrate.c 83202--- a/mm/migrate.c
83450+++ b/mm/migrate.c 83203+++ b/mm/migrate.c
83451@@ -1395,8 +1395,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages, 83204@@ -1399,8 +1399,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
83452 */ 83205 */
83453 tcred = __task_cred(task); 83206 tcred = __task_cred(task);
83454 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) && 83207 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
@@ -83530,18 +83283,18 @@ index 79b7cf7..9944291 100644
83530 capable(CAP_IPC_LOCK)) 83283 capable(CAP_IPC_LOCK))
83531 ret = do_mlockall(flags); 83284 ret = do_mlockall(flags);
83532diff --git a/mm/mmap.c b/mm/mmap.c 83285diff --git a/mm/mmap.c b/mm/mmap.c
83533index 0dceed8..a559c2e 100644 83286index f681e18..623110e 100644
83534--- a/mm/mmap.c 83287--- a/mm/mmap.c
83535+++ b/mm/mmap.c 83288+++ b/mm/mmap.c
83536@@ -33,6 +33,7 @@ 83289@@ -36,6 +36,7 @@
83537 #include <linux/uprobes.h>
83538 #include <linux/rbtree_augmented.h>
83539 #include <linux/sched/sysctl.h> 83290 #include <linux/sched/sysctl.h>
83291 #include <linux/notifier.h>
83292 #include <linux/memory.h>
83540+#include <linux/random.h> 83293+#include <linux/random.h>
83541 83294
83542 #include <asm/uaccess.h> 83295 #include <asm/uaccess.h>
83543 #include <asm/cacheflush.h> 83296 #include <asm/cacheflush.h>
83544@@ -49,6 +50,16 @@ 83297@@ -52,6 +53,16 @@
83545 #define arch_rebalance_pgtables(addr, len) (addr) 83298 #define arch_rebalance_pgtables(addr, len) (addr)
83546 #endif 83299 #endif
83547 83300
@@ -83558,7 +83311,7 @@ index 0dceed8..a559c2e 100644
83558 static void unmap_region(struct mm_struct *mm, 83311 static void unmap_region(struct mm_struct *mm,
83559 struct vm_area_struct *vma, struct vm_area_struct *prev, 83312 struct vm_area_struct *vma, struct vm_area_struct *prev,
83560 unsigned long start, unsigned long end); 83313 unsigned long start, unsigned long end);
83561@@ -68,22 +79,32 @@ static void unmap_region(struct mm_struct *mm, 83314@@ -71,16 +82,25 @@ static void unmap_region(struct mm_struct *mm,
83562 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes 83315 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes
83563 * 83316 *
83564 */ 83317 */
@@ -83587,14 +83340,15 @@ index 0dceed8..a559c2e 100644
83587 } 83340 }
83588 EXPORT_SYMBOL(vm_get_page_prot); 83341 EXPORT_SYMBOL(vm_get_page_prot);
83589 83342
83590 int sysctl_overcommit_memory __read_mostly = OVERCOMMIT_GUESS; /* heuristic overcommit */ 83343@@ -89,6 +109,7 @@ int sysctl_overcommit_ratio __read_mostly = 50; /* default is 50% */
83591 int sysctl_overcommit_ratio __read_mostly = 50; /* default is 50% */
83592 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; 83344 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
83345 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
83346 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
83593+unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024; 83347+unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024;
83594 /* 83348 /*
83595 * Make sure vm_committed_as in one cacheline and not cacheline shared with 83349 * Make sure vm_committed_as in one cacheline and not cacheline shared with
83596 * other variables. It can be updated by several CPUs frequently. 83350 * other variables. It can be updated by several CPUs frequently.
83597@@ -239,6 +260,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) 83351@@ -247,6 +268,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
83598 struct vm_area_struct *next = vma->vm_next; 83352 struct vm_area_struct *next = vma->vm_next;
83599 83353
83600 might_sleep(); 83354 might_sleep();
@@ -83602,7 +83356,7 @@ index 0dceed8..a559c2e 100644
83602 if (vma->vm_ops && vma->vm_ops->close) 83356 if (vma->vm_ops && vma->vm_ops->close)
83603 vma->vm_ops->close(vma); 83357 vma->vm_ops->close(vma);
83604 if (vma->vm_file) 83358 if (vma->vm_file)
83605@@ -283,6 +305,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) 83359@@ -291,6 +313,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
83606 * not page aligned -Ram Gupta 83360 * not page aligned -Ram Gupta
83607 */ 83361 */
83608 rlim = rlimit(RLIMIT_DATA); 83362 rlim = rlimit(RLIMIT_DATA);
@@ -83610,7 +83364,7 @@ index 0dceed8..a559c2e 100644
83610 if (rlim < RLIM_INFINITY && (brk - mm->start_brk) + 83364 if (rlim < RLIM_INFINITY && (brk - mm->start_brk) +
83611 (mm->end_data - mm->start_data) > rlim) 83365 (mm->end_data - mm->start_data) > rlim)
83612 goto out; 83366 goto out;
83613@@ -897,6 +920,12 @@ static int 83367@@ -933,6 +956,12 @@ static int
83614 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags, 83368 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
83615 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) 83369 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
83616 { 83370 {
@@ -83623,7 +83377,7 @@ index 0dceed8..a559c2e 100644
83623 if (is_mergeable_vma(vma, file, vm_flags) && 83377 if (is_mergeable_vma(vma, file, vm_flags) &&
83624 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) { 83378 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
83625 if (vma->vm_pgoff == vm_pgoff) 83379 if (vma->vm_pgoff == vm_pgoff)
83626@@ -916,6 +945,12 @@ static int 83380@@ -952,6 +981,12 @@ static int
83627 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags, 83381 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
83628 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff) 83382 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
83629 { 83383 {
@@ -83636,7 +83390,7 @@ index 0dceed8..a559c2e 100644
83636 if (is_mergeable_vma(vma, file, vm_flags) && 83390 if (is_mergeable_vma(vma, file, vm_flags) &&
83637 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) { 83391 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
83638 pgoff_t vm_pglen; 83392 pgoff_t vm_pglen;
83639@@ -958,13 +993,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags, 83393@@ -994,13 +1029,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
83640 struct vm_area_struct *vma_merge(struct mm_struct *mm, 83394 struct vm_area_struct *vma_merge(struct mm_struct *mm,
83641 struct vm_area_struct *prev, unsigned long addr, 83395 struct vm_area_struct *prev, unsigned long addr,
83642 unsigned long end, unsigned long vm_flags, 83396 unsigned long end, unsigned long vm_flags,
@@ -83658,7 +83412,7 @@ index 0dceed8..a559c2e 100644
83658 /* 83412 /*
83659 * We later require that vma->vm_flags == vm_flags, 83413 * We later require that vma->vm_flags == vm_flags,
83660 * so this tests vma->vm_flags & VM_SPECIAL, too. 83414 * so this tests vma->vm_flags & VM_SPECIAL, too.
83661@@ -980,6 +1022,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, 83415@@ -1016,6 +1058,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
83662 if (next && next->vm_end == end) /* cases 6, 7, 8 */ 83416 if (next && next->vm_end == end) /* cases 6, 7, 8 */
83663 next = next->vm_next; 83417 next = next->vm_next;
83664 83418
@@ -83674,7 +83428,7 @@ index 0dceed8..a559c2e 100644
83674 /* 83428 /*
83675 * Can it merge with the predecessor? 83429 * Can it merge with the predecessor?
83676 */ 83430 */
83677@@ -999,9 +1050,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, 83431@@ -1035,9 +1086,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
83678 /* cases 1, 6 */ 83432 /* cases 1, 6 */
83679 err = vma_adjust(prev, prev->vm_start, 83433 err = vma_adjust(prev, prev->vm_start,
83680 next->vm_end, prev->vm_pgoff, NULL); 83434 next->vm_end, prev->vm_pgoff, NULL);
@@ -83700,7 +83454,7 @@ index 0dceed8..a559c2e 100644
83700 if (err) 83454 if (err)
83701 return NULL; 83455 return NULL;
83702 khugepaged_enter_vma_merge(prev); 83456 khugepaged_enter_vma_merge(prev);
83703@@ -1015,12 +1081,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, 83457@@ -1051,12 +1117,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
83704 mpol_equal(policy, vma_policy(next)) && 83458 mpol_equal(policy, vma_policy(next)) &&
83705 can_vma_merge_before(next, vm_flags, 83459 can_vma_merge_before(next, vm_flags,
83706 anon_vma, file, pgoff+pglen)) { 83460 anon_vma, file, pgoff+pglen)) {
@@ -83730,7 +83484,7 @@ index 0dceed8..a559c2e 100644
83730 if (err) 83484 if (err)
83731 return NULL; 83485 return NULL;
83732 khugepaged_enter_vma_merge(area); 83486 khugepaged_enter_vma_merge(area);
83733@@ -1129,8 +1210,10 @@ none: 83487@@ -1165,8 +1246,10 @@ none:
83734 void vm_stat_account(struct mm_struct *mm, unsigned long flags, 83488 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
83735 struct file *file, long pages) 83489 struct file *file, long pages)
83736 { 83490 {
@@ -83743,7 +83497,7 @@ index 0dceed8..a559c2e 100644
83743 83497
83744 mm->total_vm += pages; 83498 mm->total_vm += pages;
83745 83499
83746@@ -1138,7 +1221,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags, 83500@@ -1174,7 +1257,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
83747 mm->shared_vm += pages; 83501 mm->shared_vm += pages;
83748 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC) 83502 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
83749 mm->exec_vm += pages; 83503 mm->exec_vm += pages;
@@ -83752,7 +83506,7 @@ index 0dceed8..a559c2e 100644
83752 mm->stack_vm += pages; 83506 mm->stack_vm += pages;
83753 } 83507 }
83754 #endif /* CONFIG_PROC_FS */ 83508 #endif /* CONFIG_PROC_FS */
83755@@ -1177,7 +1260,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 83509@@ -1213,7 +1296,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
83756 * (the exception is when the underlying filesystem is noexec 83510 * (the exception is when the underlying filesystem is noexec
83757 * mounted, in which case we dont add PROT_EXEC.) 83511 * mounted, in which case we dont add PROT_EXEC.)
83758 */ 83512 */
@@ -83761,7 +83515,7 @@ index 0dceed8..a559c2e 100644
83761 if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC))) 83515 if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC)))
83762 prot |= PROT_EXEC; 83516 prot |= PROT_EXEC;
83763 83517
83764@@ -1203,7 +1286,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 83518@@ -1239,7 +1322,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
83765 /* Obtain the address to map to. we verify (or select) it and ensure 83519 /* Obtain the address to map to. we verify (or select) it and ensure
83766 * that it represents a valid section of the address space. 83520 * that it represents a valid section of the address space.
83767 */ 83521 */
@@ -83770,12 +83524,19 @@ index 0dceed8..a559c2e 100644
83770 if (addr & ~PAGE_MASK) 83524 if (addr & ~PAGE_MASK)
83771 return addr; 83525 return addr;
83772 83526
83773@@ -1214,6 +1297,36 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 83527@@ -1250,6 +1333,43 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
83774 vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) | 83528 vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
83775 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC; 83529 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
83776 83530
83777+#ifdef CONFIG_PAX_MPROTECT 83531+#ifdef CONFIG_PAX_MPROTECT
83778+ if (mm->pax_flags & MF_PAX_MPROTECT) { 83532+ if (mm->pax_flags & MF_PAX_MPROTECT) {
83533+
83534+#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
83535+ if (file && (vm_flags & VM_EXEC) && mm->binfmt &&
83536+ mm->binfmt->handle_mmap)
83537+ mm->binfmt->handle_mmap(file);
83538+#endif
83539+
83779+#ifndef CONFIG_PAX_MPROTECT_COMPAT 83540+#ifndef CONFIG_PAX_MPROTECT_COMPAT
83780+ if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) { 83541+ if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) {
83781+ gr_log_rwxmmap(file); 83542+ gr_log_rwxmmap(file);
@@ -83807,7 +83568,7 @@ index 0dceed8..a559c2e 100644
83807 if (flags & MAP_LOCKED) 83568 if (flags & MAP_LOCKED)
83808 if (!can_do_mlock()) 83569 if (!can_do_mlock())
83809 return -EPERM; 83570 return -EPERM;
83810@@ -1225,6 +1338,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 83571@@ -1261,6 +1381,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
83811 locked += mm->locked_vm; 83572 locked += mm->locked_vm;
83812 lock_limit = rlimit(RLIMIT_MEMLOCK); 83573 lock_limit = rlimit(RLIMIT_MEMLOCK);
83813 lock_limit >>= PAGE_SHIFT; 83574 lock_limit >>= PAGE_SHIFT;
@@ -83815,7 +83576,7 @@ index 0dceed8..a559c2e 100644
83815 if (locked > lock_limit && !capable(CAP_IPC_LOCK)) 83576 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
83816 return -EAGAIN; 83577 return -EAGAIN;
83817 } 83578 }
83818@@ -1305,6 +1419,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, 83579@@ -1341,6 +1462,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
83819 vm_flags |= VM_NORESERVE; 83580 vm_flags |= VM_NORESERVE;
83820 } 83581 }
83821 83582
@@ -83825,7 +83586,7 @@ index 0dceed8..a559c2e 100644
83825 addr = mmap_region(file, addr, len, vm_flags, pgoff); 83586 addr = mmap_region(file, addr, len, vm_flags, pgoff);
83826 if (!IS_ERR_VALUE(addr) && 83587 if (!IS_ERR_VALUE(addr) &&
83827 ((vm_flags & VM_LOCKED) || 83588 ((vm_flags & VM_LOCKED) ||
83828@@ -1396,7 +1513,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma) 83589@@ -1432,7 +1556,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
83829 vm_flags_t vm_flags = vma->vm_flags; 83590 vm_flags_t vm_flags = vma->vm_flags;
83830 83591
83831 /* If it was private or non-writable, the write bit is already clear */ 83592 /* If it was private or non-writable, the write bit is already clear */
@@ -83834,7 +83595,7 @@ index 0dceed8..a559c2e 100644
83834 return 0; 83595 return 0;
83835 83596
83836 /* The backer wishes to know when pages are first written to? */ 83597 /* The backer wishes to know when pages are first written to? */
83837@@ -1444,16 +1561,30 @@ unsigned long mmap_region(struct file *file, unsigned long addr, 83598@@ -1480,7 +1604,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
83838 unsigned long charged = 0; 83599 unsigned long charged = 0;
83839 struct inode *inode = file ? file_inode(file) : NULL; 83600 struct inode *inode = file ? file_inode(file) : NULL;
83840 83601
@@ -83848,6 +83609,17 @@ index 0dceed8..a559c2e 100644
83848+ */ 83609+ */
83849+ verify_mm_writelocked(mm); 83610+ verify_mm_writelocked(mm);
83850+ 83611+
83612 /* Check against address space limit. */
83613+
83614+#ifdef CONFIG_PAX_RANDMMAP
83615+ if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
83616+#endif
83617+
83618 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
83619 unsigned long nr_pages;
83620
83621@@ -1499,11 +1638,10 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
83622
83851 /* Clear old maps */ 83623 /* Clear old maps */
83852 error = -ENOMEM; 83624 error = -ENOMEM;
83853-munmap_back: 83625-munmap_back:
@@ -83858,16 +83630,8 @@ index 0dceed8..a559c2e 100644
83858+ BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent)); 83630+ BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
83859 } 83631 }
83860 83632
83861 /* Check against address space limit. */ 83633 /*
83862+ 83634@@ -1534,6 +1672,16 @@ munmap_back:
83863+#ifdef CONFIG_PAX_RANDMMAP
83864+ if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
83865+#endif
83866+
83867 if (!may_expand_vm(mm, len >> PAGE_SHIFT))
83868 return -ENOMEM;
83869
83870@@ -1485,6 +1616,16 @@ munmap_back:
83871 goto unacct_error; 83635 goto unacct_error;
83872 } 83636 }
83873 83637
@@ -83884,7 +83648,7 @@ index 0dceed8..a559c2e 100644
83884 vma->vm_mm = mm; 83648 vma->vm_mm = mm;
83885 vma->vm_start = addr; 83649 vma->vm_start = addr;
83886 vma->vm_end = addr + len; 83650 vma->vm_end = addr + len;
83887@@ -1509,6 +1650,13 @@ munmap_back: 83651@@ -1558,6 +1706,13 @@ munmap_back:
83888 if (error) 83652 if (error)
83889 goto unmap_and_free_vma; 83653 goto unmap_and_free_vma;
83890 83654
@@ -83898,7 +83662,7 @@ index 0dceed8..a559c2e 100644
83898 /* Can addr have changed?? 83662 /* Can addr have changed??
83899 * 83663 *
83900 * Answer: Yes, several device drivers can do it in their 83664 * Answer: Yes, several device drivers can do it in their
83901@@ -1547,6 +1695,11 @@ munmap_back: 83665@@ -1596,6 +1751,11 @@ munmap_back:
83902 vma_link(mm, vma, prev, rb_link, rb_parent); 83666 vma_link(mm, vma, prev, rb_link, rb_parent);
83903 file = vma->vm_file; 83667 file = vma->vm_file;
83904 83668
@@ -83910,7 +83674,7 @@ index 0dceed8..a559c2e 100644
83910 /* Once vma denies write, undo our temporary denial count */ 83674 /* Once vma denies write, undo our temporary denial count */
83911 if (correct_wcount) 83675 if (correct_wcount)
83912 atomic_inc(&inode->i_writecount); 83676 atomic_inc(&inode->i_writecount);
83913@@ -1554,6 +1707,7 @@ out: 83677@@ -1603,6 +1763,7 @@ out:
83914 perf_event_mmap(vma); 83678 perf_event_mmap(vma);
83915 83679
83916 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT); 83680 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
@@ -83918,7 +83682,7 @@ index 0dceed8..a559c2e 100644
83918 if (vm_flags & VM_LOCKED) { 83682 if (vm_flags & VM_LOCKED) {
83919 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) || 83683 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
83920 vma == get_gate_vma(current->mm))) 83684 vma == get_gate_vma(current->mm)))
83921@@ -1577,6 +1731,12 @@ unmap_and_free_vma: 83685@@ -1626,6 +1787,12 @@ unmap_and_free_vma:
83922 unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); 83686 unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
83923 charged = 0; 83687 charged = 0;
83924 free_vma: 83688 free_vma:
@@ -83931,7 +83695,7 @@ index 0dceed8..a559c2e 100644
83931 kmem_cache_free(vm_area_cachep, vma); 83695 kmem_cache_free(vm_area_cachep, vma);
83932 unacct_error: 83696 unacct_error:
83933 if (charged) 83697 if (charged)
83934@@ -1584,7 +1744,63 @@ unacct_error: 83698@@ -1633,7 +1800,63 @@ unacct_error:
83935 return error; 83699 return error;
83936 } 83700 }
83937 83701
@@ -83940,7 +83704,7 @@ index 0dceed8..a559c2e 100644
83940+unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags) 83704+unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
83941+{ 83705+{
83942+ if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK)) 83706+ if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK))
83943+ return ((random32() & 0xFF) + 1) << PAGE_SHIFT; 83707+ return ((prandom_u32() & 0xFF) + 1) << PAGE_SHIFT;
83944+ 83708+
83945+ return 0; 83709+ return 0;
83946+} 83710+}
@@ -83967,7 +83731,7 @@ index 0dceed8..a559c2e 100644
83967+ return sysctl_heap_stack_gap <= vma->vm_start - addr - len; 83731+ return sysctl_heap_stack_gap <= vma->vm_start - addr - len;
83968+#ifdef CONFIG_STACK_GROWSUP 83732+#ifdef CONFIG_STACK_GROWSUP
83969+ else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) 83733+ else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP))
83970+ return addr - vma->vm_prev->vm_end <= sysctl_heap_stack_gap; 83734+ return addr - vma->vm_prev->vm_end >= sysctl_heap_stack_gap;
83971+#endif 83735+#endif
83972+ else if (offset) 83736+ else if (offset)
83973+ return offset <= vma->vm_start - addr - len; 83737+ return offset <= vma->vm_start - addr - len;
@@ -83996,7 +83760,7 @@ index 0dceed8..a559c2e 100644
83996 { 83760 {
83997 /* 83761 /*
83998 * We implement the search by looking for an rbtree node that 83762 * We implement the search by looking for an rbtree node that
83999@@ -1632,11 +1848,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) 83763@@ -1681,11 +1904,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
84000 } 83764 }
84001 } 83765 }
84002 83766
@@ -84027,7 +83791,7 @@ index 0dceed8..a559c2e 100644
84027 if (gap_end >= low_limit && gap_end - gap_start >= length) 83791 if (gap_end >= low_limit && gap_end - gap_start >= length)
84028 goto found; 83792 goto found;
84029 83793
84030@@ -1686,7 +1920,7 @@ found: 83794@@ -1735,7 +1976,7 @@ found:
84031 return gap_start; 83795 return gap_start;
84032 } 83796 }
84033 83797
@@ -84036,7 +83800,7 @@ index 0dceed8..a559c2e 100644
84036 { 83800 {
84037 struct mm_struct *mm = current->mm; 83801 struct mm_struct *mm = current->mm;
84038 struct vm_area_struct *vma; 83802 struct vm_area_struct *vma;
84039@@ -1740,6 +1974,24 @@ check_current: 83803@@ -1789,6 +2030,24 @@ check_current:
84040 gap_end = vma->vm_start; 83804 gap_end = vma->vm_start;
84041 if (gap_end < low_limit) 83805 if (gap_end < low_limit)
84042 return -ENOMEM; 83806 return -ENOMEM;
@@ -84061,7 +83825,7 @@ index 0dceed8..a559c2e 100644
84061 if (gap_start <= high_limit && gap_end - gap_start >= length) 83825 if (gap_start <= high_limit && gap_end - gap_start >= length)
84062 goto found; 83826 goto found;
84063 83827
84064@@ -1803,6 +2055,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, 83828@@ -1852,6 +2111,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
84065 struct mm_struct *mm = current->mm; 83829 struct mm_struct *mm = current->mm;
84066 struct vm_area_struct *vma; 83830 struct vm_area_struct *vma;
84067 struct vm_unmapped_area_info info; 83831 struct vm_unmapped_area_info info;
@@ -84069,7 +83833,7 @@ index 0dceed8..a559c2e 100644
84069 83833
84070 if (len > TASK_SIZE) 83834 if (len > TASK_SIZE)
84071 return -ENOMEM; 83835 return -ENOMEM;
84072@@ -1810,29 +2063,45 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, 83836@@ -1859,29 +2119,45 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
84073 if (flags & MAP_FIXED) 83837 if (flags & MAP_FIXED)
84074 return addr; 83838 return addr;
84075 83839
@@ -84118,7 +83882,7 @@ index 0dceed8..a559c2e 100644
84118 mm->free_area_cache = addr; 83882 mm->free_area_cache = addr;
84119 } 83883 }
84120 83884
84121@@ -1850,6 +2119,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 83885@@ -1899,6 +2175,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
84122 struct mm_struct *mm = current->mm; 83886 struct mm_struct *mm = current->mm;
84123 unsigned long addr = addr0; 83887 unsigned long addr = addr0;
84124 struct vm_unmapped_area_info info; 83888 struct vm_unmapped_area_info info;
@@ -84126,7 +83890,7 @@ index 0dceed8..a559c2e 100644
84126 83890
84127 /* requested length too big for entire address space */ 83891 /* requested length too big for entire address space */
84128 if (len > TASK_SIZE) 83892 if (len > TASK_SIZE)
84129@@ -1858,12 +2128,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 83893@@ -1907,12 +2184,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
84130 if (flags & MAP_FIXED) 83894 if (flags & MAP_FIXED)
84131 return addr; 83895 return addr;
84132 83896
@@ -84144,7 +83908,7 @@ index 0dceed8..a559c2e 100644
84144 return addr; 83908 return addr;
84145 } 83909 }
84146 83910
84147@@ -1872,6 +2145,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 83911@@ -1921,6 +2201,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
84148 info.low_limit = PAGE_SIZE; 83912 info.low_limit = PAGE_SIZE;
84149 info.high_limit = mm->mmap_base; 83913 info.high_limit = mm->mmap_base;
84150 info.align_mask = 0; 83914 info.align_mask = 0;
@@ -84152,7 +83916,7 @@ index 0dceed8..a559c2e 100644
84152 addr = vm_unmapped_area(&info); 83916 addr = vm_unmapped_area(&info);
84153 83917
84154 /* 83918 /*
84155@@ -1884,6 +2158,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 83919@@ -1933,6 +2214,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
84156 VM_BUG_ON(addr != -ENOMEM); 83920 VM_BUG_ON(addr != -ENOMEM);
84157 info.flags = 0; 83921 info.flags = 0;
84158 info.low_limit = TASK_UNMAPPED_BASE; 83922 info.low_limit = TASK_UNMAPPED_BASE;
@@ -84165,7 +83929,7 @@ index 0dceed8..a559c2e 100644
84165 info.high_limit = TASK_SIZE; 83929 info.high_limit = TASK_SIZE;
84166 addr = vm_unmapped_area(&info); 83930 addr = vm_unmapped_area(&info);
84167 } 83931 }
84168@@ -1894,6 +2174,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 83932@@ -1943,6 +2230,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
84169 83933
84170 void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr) 83934 void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
84171 { 83935 {
@@ -84178,7 +83942,7 @@ index 0dceed8..a559c2e 100644
84178 /* 83942 /*
84179 * Is this a new hole at the highest possible address? 83943 * Is this a new hole at the highest possible address?
84180 */ 83944 */
84181@@ -1901,8 +2187,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr) 83945@@ -1950,8 +2243,10 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
84182 mm->free_area_cache = addr; 83946 mm->free_area_cache = addr;
84183 83947
84184 /* dont allow allocations above current base */ 83948 /* dont allow allocations above current base */
@@ -84190,7 +83954,7 @@ index 0dceed8..a559c2e 100644
84190 } 83954 }
84191 83955
84192 unsigned long 83956 unsigned long
84193@@ -2001,6 +2289,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr, 83957@@ -2047,6 +2342,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
84194 return vma; 83958 return vma;
84195 } 83959 }
84196 83960
@@ -84219,7 +83983,7 @@ index 0dceed8..a559c2e 100644
84219 /* 83983 /*
84220 * Verify that the stack growth is acceptable and 83984 * Verify that the stack growth is acceptable and
84221 * update accounting. This is shared with both the 83985 * update accounting. This is shared with both the
84222@@ -2017,6 +2327,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns 83986@@ -2063,6 +2380,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
84223 return -ENOMEM; 83987 return -ENOMEM;
84224 83988
84225 /* Stack limit test */ 83989 /* Stack limit test */
@@ -84227,7 +83991,7 @@ index 0dceed8..a559c2e 100644
84227 if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur)) 83991 if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
84228 return -ENOMEM; 83992 return -ENOMEM;
84229 83993
84230@@ -2027,6 +2338,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns 83994@@ -2073,6 +2391,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
84231 locked = mm->locked_vm + grow; 83995 locked = mm->locked_vm + grow;
84232 limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur); 83996 limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
84233 limit >>= PAGE_SHIFT; 83997 limit >>= PAGE_SHIFT;
@@ -84235,7 +83999,7 @@ index 0dceed8..a559c2e 100644
84235 if (locked > limit && !capable(CAP_IPC_LOCK)) 83999 if (locked > limit && !capable(CAP_IPC_LOCK))
84236 return -ENOMEM; 84000 return -ENOMEM;
84237 } 84001 }
84238@@ -2056,37 +2368,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns 84002@@ -2102,37 +2421,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
84239 * PA-RISC uses this for its stack; IA64 for its Register Backing Store. 84003 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
84240 * vma is the last one with address > vma->vm_end. Have to extend vma. 84004 * vma is the last one with address > vma->vm_end. Have to extend vma.
84241 */ 84005 */
@@ -84293,7 +84057,7 @@ index 0dceed8..a559c2e 100644
84293 unsigned long size, grow; 84057 unsigned long size, grow;
84294 84058
84295 size = address - vma->vm_start; 84059 size = address - vma->vm_start;
84296@@ -2121,6 +2444,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) 84060@@ -2167,6 +2497,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
84297 } 84061 }
84298 } 84062 }
84299 } 84063 }
@@ -84302,7 +84066,7 @@ index 0dceed8..a559c2e 100644
84302 vma_unlock_anon_vma(vma); 84066 vma_unlock_anon_vma(vma);
84303 khugepaged_enter_vma_merge(vma); 84067 khugepaged_enter_vma_merge(vma);
84304 validate_mm(vma->vm_mm); 84068 validate_mm(vma->vm_mm);
84305@@ -2135,6 +2460,8 @@ int expand_downwards(struct vm_area_struct *vma, 84069@@ -2181,6 +2513,8 @@ int expand_downwards(struct vm_area_struct *vma,
84306 unsigned long address) 84070 unsigned long address)
84307 { 84071 {
84308 int error; 84072 int error;
@@ -84311,7 +84075,7 @@ index 0dceed8..a559c2e 100644
84311 84075
84312 /* 84076 /*
84313 * We must make sure the anon_vma is allocated 84077 * We must make sure the anon_vma is allocated
84314@@ -2148,6 +2475,15 @@ int expand_downwards(struct vm_area_struct *vma, 84078@@ -2194,6 +2528,15 @@ int expand_downwards(struct vm_area_struct *vma,
84315 if (error) 84079 if (error)
84316 return error; 84080 return error;
84317 84081
@@ -84327,7 +84091,7 @@ index 0dceed8..a559c2e 100644
84327 vma_lock_anon_vma(vma); 84091 vma_lock_anon_vma(vma);
84328 84092
84329 /* 84093 /*
84330@@ -2157,9 +2493,17 @@ int expand_downwards(struct vm_area_struct *vma, 84094@@ -2203,9 +2546,17 @@ int expand_downwards(struct vm_area_struct *vma,
84331 */ 84095 */
84332 84096
84333 /* Somebody else might have raced and expanded it already */ 84097 /* Somebody else might have raced and expanded it already */
@@ -84346,7 +84110,7 @@ index 0dceed8..a559c2e 100644
84346 size = vma->vm_end - address; 84110 size = vma->vm_end - address;
84347 grow = (vma->vm_start - address) >> PAGE_SHIFT; 84111 grow = (vma->vm_start - address) >> PAGE_SHIFT;
84348 84112
84349@@ -2184,13 +2528,27 @@ int expand_downwards(struct vm_area_struct *vma, 84113@@ -2230,13 +2581,27 @@ int expand_downwards(struct vm_area_struct *vma,
84350 vma->vm_pgoff -= grow; 84114 vma->vm_pgoff -= grow;
84351 anon_vma_interval_tree_post_update_vma(vma); 84115 anon_vma_interval_tree_post_update_vma(vma);
84352 vma_gap_update(vma); 84116 vma_gap_update(vma);
@@ -84374,7 +84138,7 @@ index 0dceed8..a559c2e 100644
84374 khugepaged_enter_vma_merge(vma); 84138 khugepaged_enter_vma_merge(vma);
84375 validate_mm(vma->vm_mm); 84139 validate_mm(vma->vm_mm);
84376 return error; 84140 return error;
84377@@ -2288,6 +2646,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma) 84141@@ -2334,6 +2699,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
84378 do { 84142 do {
84379 long nrpages = vma_pages(vma); 84143 long nrpages = vma_pages(vma);
84380 84144
@@ -84388,7 +84152,7 @@ index 0dceed8..a559c2e 100644
84388 if (vma->vm_flags & VM_ACCOUNT) 84152 if (vma->vm_flags & VM_ACCOUNT)
84389 nr_accounted += nrpages; 84153 nr_accounted += nrpages;
84390 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages); 84154 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
84391@@ -2333,6 +2698,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma, 84155@@ -2379,6 +2751,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
84392 insertion_point = (prev ? &prev->vm_next : &mm->mmap); 84156 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
84393 vma->vm_prev = NULL; 84157 vma->vm_prev = NULL;
84394 do { 84158 do {
@@ -84405,7 +84169,7 @@ index 0dceed8..a559c2e 100644
84405 vma_rb_erase(vma, &mm->mm_rb); 84169 vma_rb_erase(vma, &mm->mm_rb);
84406 mm->map_count--; 84170 mm->map_count--;
84407 tail_vma = vma; 84171 tail_vma = vma;
84408@@ -2364,14 +2739,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, 84172@@ -2410,14 +2792,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
84409 struct vm_area_struct *new; 84173 struct vm_area_struct *new;
84410 int err = -ENOMEM; 84174 int err = -ENOMEM;
84411 84175
@@ -84439,7 +84203,7 @@ index 0dceed8..a559c2e 100644
84439 /* most fields are the same, copy all, and then fixup */ 84203 /* most fields are the same, copy all, and then fixup */
84440 *new = *vma; 84204 *new = *vma;
84441 84205
84442@@ -2384,6 +2778,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, 84206@@ -2430,6 +2831,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
84443 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT); 84207 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
84444 } 84208 }
84445 84209
@@ -84462,7 +84226,7 @@ index 0dceed8..a559c2e 100644
84462 pol = mpol_dup(vma_policy(vma)); 84226 pol = mpol_dup(vma_policy(vma));
84463 if (IS_ERR(pol)) { 84227 if (IS_ERR(pol)) {
84464 err = PTR_ERR(pol); 84228 err = PTR_ERR(pol);
84465@@ -2406,6 +2816,36 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, 84229@@ -2452,6 +2869,36 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
84466 else 84230 else
84467 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new); 84231 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
84468 84232
@@ -84499,7 +84263,7 @@ index 0dceed8..a559c2e 100644
84499 /* Success. */ 84263 /* Success. */
84500 if (!err) 84264 if (!err)
84501 return 0; 84265 return 0;
84502@@ -2415,10 +2855,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, 84266@@ -2461,10 +2908,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
84503 new->vm_ops->close(new); 84267 new->vm_ops->close(new);
84504 if (new->vm_file) 84268 if (new->vm_file)
84505 fput(new->vm_file); 84269 fput(new->vm_file);
@@ -84519,7 +84283,7 @@ index 0dceed8..a559c2e 100644
84519 kmem_cache_free(vm_area_cachep, new); 84283 kmem_cache_free(vm_area_cachep, new);
84520 out_err: 84284 out_err:
84521 return err; 84285 return err;
84522@@ -2431,6 +2879,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma, 84286@@ -2477,6 +2932,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
84523 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, 84287 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
84524 unsigned long addr, int new_below) 84288 unsigned long addr, int new_below)
84525 { 84289 {
@@ -84535,7 +84299,7 @@ index 0dceed8..a559c2e 100644
84535 if (mm->map_count >= sysctl_max_map_count) 84299 if (mm->map_count >= sysctl_max_map_count)
84536 return -ENOMEM; 84300 return -ENOMEM;
84537 84301
84538@@ -2442,11 +2899,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, 84302@@ -2488,11 +2952,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
84539 * work. This now handles partial unmappings. 84303 * work. This now handles partial unmappings.
84540 * Jeremy Fitzhardinge <jeremy@goop.org> 84304 * Jeremy Fitzhardinge <jeremy@goop.org>
84541 */ 84305 */
@@ -84566,7 +84330,7 @@ index 0dceed8..a559c2e 100644
84566 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start) 84330 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
84567 return -EINVAL; 84331 return -EINVAL;
84568 84332
84569@@ -2521,6 +2997,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len) 84333@@ -2567,6 +3050,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
84570 /* Fix up all other VM information */ 84334 /* Fix up all other VM information */
84571 remove_vma_list(mm, vma); 84335 remove_vma_list(mm, vma);
84572 84336
@@ -84575,7 +84339,7 @@ index 0dceed8..a559c2e 100644
84575 return 0; 84339 return 0;
84576 } 84340 }
84577 84341
84578@@ -2529,6 +3007,13 @@ int vm_munmap(unsigned long start, size_t len) 84342@@ -2575,6 +3060,13 @@ int vm_munmap(unsigned long start, size_t len)
84579 int ret; 84343 int ret;
84580 struct mm_struct *mm = current->mm; 84344 struct mm_struct *mm = current->mm;
84581 84345
@@ -84589,7 +84353,7 @@ index 0dceed8..a559c2e 100644
84589 down_write(&mm->mmap_sem); 84353 down_write(&mm->mmap_sem);
84590 ret = do_munmap(mm, start, len); 84354 ret = do_munmap(mm, start, len);
84591 up_write(&mm->mmap_sem); 84355 up_write(&mm->mmap_sem);
84592@@ -2542,16 +3027,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len) 84356@@ -2588,16 +3080,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
84593 return vm_munmap(addr, len); 84357 return vm_munmap(addr, len);
84594 } 84358 }
84595 84359
@@ -84606,7 +84370,7 @@ index 0dceed8..a559c2e 100644
84606 /* 84370 /*
84607 * this is really a simplified "do_mmap". it only handles 84371 * this is really a simplified "do_mmap". it only handles
84608 * anonymous maps. eventually we may be able to do some 84372 * anonymous maps. eventually we may be able to do some
84609@@ -2565,6 +3040,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) 84373@@ -2611,6 +3093,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
84610 struct rb_node ** rb_link, * rb_parent; 84374 struct rb_node ** rb_link, * rb_parent;
84611 pgoff_t pgoff = addr >> PAGE_SHIFT; 84375 pgoff_t pgoff = addr >> PAGE_SHIFT;
84612 int error; 84376 int error;
@@ -84614,7 +84378,7 @@ index 0dceed8..a559c2e 100644
84614 84378
84615 len = PAGE_ALIGN(len); 84379 len = PAGE_ALIGN(len);
84616 if (!len) 84380 if (!len)
84617@@ -2572,16 +3048,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) 84381@@ -2618,16 +3101,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
84618 84382
84619 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; 84383 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
84620 84384
@@ -84646,7 +84410,7 @@ index 0dceed8..a559c2e 100644
84646 locked += mm->locked_vm; 84410 locked += mm->locked_vm;
84647 lock_limit = rlimit(RLIMIT_MEMLOCK); 84411 lock_limit = rlimit(RLIMIT_MEMLOCK);
84648 lock_limit >>= PAGE_SHIFT; 84412 lock_limit >>= PAGE_SHIFT;
84649@@ -2598,21 +3088,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) 84413@@ -2644,21 +3141,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
84650 /* 84414 /*
84651 * Clear old maps. this also does some error checking for us 84415 * Clear old maps. this also does some error checking for us
84652 */ 84416 */
@@ -84671,7 +84435,7 @@ index 0dceed8..a559c2e 100644
84671 return -ENOMEM; 84435 return -ENOMEM;
84672 84436
84673 /* Can we just expand an old private anonymous mapping? */ 84437 /* Can we just expand an old private anonymous mapping? */
84674@@ -2626,7 +3115,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) 84438@@ -2672,7 +3168,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
84675 */ 84439 */
84676 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL); 84440 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
84677 if (!vma) { 84441 if (!vma) {
@@ -84680,7 +84444,7 @@ index 0dceed8..a559c2e 100644
84680 return -ENOMEM; 84444 return -ENOMEM;
84681 } 84445 }
84682 84446
84683@@ -2640,9 +3129,10 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) 84447@@ -2686,9 +3182,10 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
84684 vma_link(mm, vma, prev, rb_link, rb_parent); 84448 vma_link(mm, vma, prev, rb_link, rb_parent);
84685 out: 84449 out:
84686 perf_event_mmap(vma); 84450 perf_event_mmap(vma);
@@ -84693,7 +84457,7 @@ index 0dceed8..a559c2e 100644
84693 return addr; 84457 return addr;
84694 } 84458 }
84695 84459
84696@@ -2704,6 +3194,7 @@ void exit_mmap(struct mm_struct *mm) 84460@@ -2750,6 +3247,7 @@ void exit_mmap(struct mm_struct *mm)
84697 while (vma) { 84461 while (vma) {
84698 if (vma->vm_flags & VM_ACCOUNT) 84462 if (vma->vm_flags & VM_ACCOUNT)
84699 nr_accounted += vma_pages(vma); 84463 nr_accounted += vma_pages(vma);
@@ -84701,7 +84465,7 @@ index 0dceed8..a559c2e 100644
84701 vma = remove_vma(vma); 84465 vma = remove_vma(vma);
84702 } 84466 }
84703 vm_unacct_memory(nr_accounted); 84467 vm_unacct_memory(nr_accounted);
84704@@ -2720,6 +3211,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) 84468@@ -2766,6 +3264,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
84705 struct vm_area_struct *prev; 84469 struct vm_area_struct *prev;
84706 struct rb_node **rb_link, *rb_parent; 84470 struct rb_node **rb_link, *rb_parent;
84707 84471
@@ -84715,7 +84479,7 @@ index 0dceed8..a559c2e 100644
84715 /* 84479 /*
84716 * The vm_pgoff of a purely anonymous vma should be irrelevant 84480 * The vm_pgoff of a purely anonymous vma should be irrelevant
84717 * until its first write fault, when page's anon_vma and index 84481 * until its first write fault, when page's anon_vma and index
84718@@ -2743,7 +3241,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) 84482@@ -2789,7 +3294,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
84719 security_vm_enough_memory_mm(mm, vma_pages(vma))) 84483 security_vm_enough_memory_mm(mm, vma_pages(vma)))
84720 return -ENOMEM; 84484 return -ENOMEM;
84721 84485
@@ -84737,7 +84501,7 @@ index 0dceed8..a559c2e 100644
84737 return 0; 84501 return 0;
84738 } 84502 }
84739 84503
84740@@ -2763,6 +3275,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, 84504@@ -2809,6 +3328,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
84741 struct mempolicy *pol; 84505 struct mempolicy *pol;
84742 bool faulted_in_anon_vma = true; 84506 bool faulted_in_anon_vma = true;
84743 84507
@@ -84746,7 +84510,7 @@ index 0dceed8..a559c2e 100644
84746 /* 84510 /*
84747 * If anonymous vma has not yet been faulted, update new pgoff 84511 * If anonymous vma has not yet been faulted, update new pgoff
84748 * to match new location, to increase its chance of merging. 84512 * to match new location, to increase its chance of merging.
84749@@ -2829,6 +3343,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, 84513@@ -2875,6 +3396,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
84750 return NULL; 84514 return NULL;
84751 } 84515 }
84752 84516
@@ -84786,7 +84550,7 @@ index 0dceed8..a559c2e 100644
84786 /* 84550 /*
84787 * Return true if the calling process may expand its vm space by the passed 84551 * Return true if the calling process may expand its vm space by the passed
84788 * number of pages 84552 * number of pages
84789@@ -2840,6 +3387,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages) 84553@@ -2886,6 +3440,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
84790 84554
84791 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT; 84555 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
84792 84556
@@ -84794,7 +84558,7 @@ index 0dceed8..a559c2e 100644
84794 if (cur + npages > lim) 84558 if (cur + npages > lim)
84795 return 0; 84559 return 0;
84796 return 1; 84560 return 1;
84797@@ -2910,6 +3458,22 @@ int install_special_mapping(struct mm_struct *mm, 84561@@ -2956,6 +3511,22 @@ int install_special_mapping(struct mm_struct *mm,
84798 vma->vm_start = addr; 84562 vma->vm_start = addr;
84799 vma->vm_end = addr + len; 84563 vma->vm_end = addr + len;
84800 84564
@@ -84818,7 +84582,7 @@ index 0dceed8..a559c2e 100644
84818 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); 84582 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
84819 84583
84820diff --git a/mm/mprotect.c b/mm/mprotect.c 84584diff --git a/mm/mprotect.c b/mm/mprotect.c
84821index 94722a4..07d9926 100644 84585index 94722a4..e661e29 100644
84822--- a/mm/mprotect.c 84586--- a/mm/mprotect.c
84823+++ b/mm/mprotect.c 84587+++ b/mm/mprotect.c
84824@@ -23,10 +23,18 @@ 84588@@ -23,10 +23,18 @@
@@ -85029,7 +84793,7 @@ index 94722a4..07d9926 100644
85029 /* newflags >> 4 shift VM_MAY% in place of VM_% */ 84793 /* newflags >> 4 shift VM_MAY% in place of VM_% */
85030 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) { 84794 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
85031+ if (prot & (PROT_WRITE | PROT_EXEC)) 84795+ if (prot & (PROT_WRITE | PROT_EXEC))
85032+ gr_log_rwxmprotect(vma->vm_file); 84796+ gr_log_rwxmprotect(vma);
85033+ 84797+
85034+ error = -EACCES; 84798+ error = -EACCES;
85035+ goto out; 84799+ goto out;
@@ -85157,18 +84921,18 @@ index 463a257..c0c7a92 100644
85157 out: 84921 out:
85158 if (ret & ~PAGE_MASK) 84922 if (ret & ~PAGE_MASK)
85159diff --git a/mm/nommu.c b/mm/nommu.c 84923diff --git a/mm/nommu.c b/mm/nommu.c
85160index e001768..9b52b30 100644 84924index 298884d..5f74980 100644
85161--- a/mm/nommu.c 84925--- a/mm/nommu.c
85162+++ b/mm/nommu.c 84926+++ b/mm/nommu.c
85163@@ -63,7 +63,6 @@ int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */ 84927@@ -65,7 +65,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
85164 int sysctl_overcommit_ratio = 50; /* default is 50% */
85165 int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
85166 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS; 84928 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
84929 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
84930 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
85167-int heap_stack_gap = 0; 84931-int heap_stack_gap = 0;
85168 84932
85169 atomic_long_t mmap_pages_allocated; 84933 atomic_long_t mmap_pages_allocated;
85170 84934
85171@@ -841,15 +840,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) 84935@@ -842,15 +841,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
85172 EXPORT_SYMBOL(find_vma); 84936 EXPORT_SYMBOL(find_vma);
85173 84937
85174 /* 84938 /*
@@ -85184,7 +84948,7 @@ index e001768..9b52b30 100644
85184 * expand a stack to a given address 84948 * expand a stack to a given address
85185 * - not supported under NOMMU conditions 84949 * - not supported under NOMMU conditions
85186 */ 84950 */
85187@@ -1560,6 +1550,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, 84951@@ -1561,6 +1551,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
85188 84952
85189 /* most fields are the same, copy all, and then fixup */ 84953 /* most fields are the same, copy all, and then fixup */
85190 *new = *vma; 84954 *new = *vma;
@@ -85192,7 +84956,7 @@ index e001768..9b52b30 100644
85192 *region = *vma->vm_region; 84956 *region = *vma->vm_region;
85193 new->vm_region = region; 84957 new->vm_region = region;
85194 84958
85195@@ -1992,8 +1983,8 @@ int generic_file_remap_pages(struct vm_area_struct *vma, unsigned long addr, 84959@@ -1995,8 +1986,8 @@ int generic_file_remap_pages(struct vm_area_struct *vma, unsigned long addr,
85196 } 84960 }
85197 EXPORT_SYMBOL(generic_file_remap_pages); 84961 EXPORT_SYMBOL(generic_file_remap_pages);
85198 84962
@@ -85203,7 +84967,7 @@ index e001768..9b52b30 100644
85203 { 84967 {
85204 struct vm_area_struct *vma; 84968 struct vm_area_struct *vma;
85205 84969
85206@@ -2034,8 +2025,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm, 84970@@ -2037,8 +2028,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
85207 * 84971 *
85208 * The caller must hold a reference on @mm. 84972 * The caller must hold a reference on @mm.
85209 */ 84973 */
@@ -85214,7 +84978,7 @@ index e001768..9b52b30 100644
85214 { 84978 {
85215 return __access_remote_vm(NULL, mm, addr, buf, len, write); 84979 return __access_remote_vm(NULL, mm, addr, buf, len, write);
85216 } 84980 }
85217@@ -2044,7 +2035,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr, 84981@@ -2047,7 +2038,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
85218 * Access another process' address space. 84982 * Access another process' address space.
85219 * - source/target buffer must be kernel space 84983 * - source/target buffer must be kernel space
85220 */ 84984 */
@@ -85224,7 +84988,7 @@ index e001768..9b52b30 100644
85224 struct mm_struct *mm; 84988 struct mm_struct *mm;
85225 84989
85226diff --git a/mm/page-writeback.c b/mm/page-writeback.c 84990diff --git a/mm/page-writeback.c b/mm/page-writeback.c
85227index efe6814..64b4701 100644 84991index 4514ad7..92eaa1c 100644
85228--- a/mm/page-writeback.c 84992--- a/mm/page-writeback.c
85229+++ b/mm/page-writeback.c 84993+++ b/mm/page-writeback.c
85230@@ -659,7 +659,7 @@ unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, unsigned long dirty) 84994@@ -659,7 +659,7 @@ unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, unsigned long dirty)
@@ -85246,18 +85010,18 @@ index efe6814..64b4701 100644
85246 .next = NULL, 85010 .next = NULL,
85247 }; 85011 };
85248diff --git a/mm/page_alloc.c b/mm/page_alloc.c 85012diff --git a/mm/page_alloc.c b/mm/page_alloc.c
85249index ab62b75..410422f 100644 85013index 2ee0fd3..6e2edfb 100644
85250--- a/mm/page_alloc.c 85014--- a/mm/page_alloc.c
85251+++ b/mm/page_alloc.c 85015+++ b/mm/page_alloc.c
85252@@ -59,6 +59,7 @@ 85016@@ -60,6 +60,7 @@
85253 #include <linux/migrate.h>
85254 #include <linux/page-debug-flags.h> 85017 #include <linux/page-debug-flags.h>
85018 #include <linux/hugetlb.h>
85255 #include <linux/sched/rt.h> 85019 #include <linux/sched/rt.h>
85256+#include <linux/random.h> 85020+#include <linux/random.h>
85257 85021
85258 #include <asm/tlbflush.h> 85022 #include <asm/tlbflush.h>
85259 #include <asm/div64.h> 85023 #include <asm/div64.h>
85260@@ -344,7 +345,7 @@ out: 85024@@ -345,7 +346,7 @@ out:
85261 * This usage means that zero-order pages may not be compound. 85025 * This usage means that zero-order pages may not be compound.
85262 */ 85026 */
85263 85027
@@ -85266,7 +85030,7 @@ index ab62b75..410422f 100644
85266 { 85030 {
85267 __free_pages_ok(page, compound_order(page)); 85031 __free_pages_ok(page, compound_order(page));
85268 } 85032 }
85269@@ -701,6 +702,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order) 85033@@ -702,6 +703,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
85270 int i; 85034 int i;
85271 int bad = 0; 85035 int bad = 0;
85272 85036
@@ -85277,7 +85041,7 @@ index ab62b75..410422f 100644
85277 trace_mm_page_free(page, order); 85041 trace_mm_page_free(page, order);
85278 kmemcheck_free_shadow(page, order); 85042 kmemcheck_free_shadow(page, order);
85279 85043
85280@@ -716,6 +721,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order) 85044@@ -717,6 +722,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
85281 debug_check_no_obj_freed(page_address(page), 85045 debug_check_no_obj_freed(page_address(page),
85282 PAGE_SIZE << order); 85046 PAGE_SIZE << order);
85283 } 85047 }
@@ -85290,7 +85054,7 @@ index ab62b75..410422f 100644
85290 arch_free_page(page, order); 85054 arch_free_page(page, order);
85291 kernel_map_pages(page, 1 << order, 0); 85055 kernel_map_pages(page, 1 << order, 0);
85292 85056
85293@@ -738,6 +749,19 @@ static void __free_pages_ok(struct page *page, unsigned int order) 85057@@ -739,6 +750,19 @@ static void __free_pages_ok(struct page *page, unsigned int order)
85294 local_irq_restore(flags); 85058 local_irq_restore(flags);
85295 } 85059 }
85296 85060
@@ -85310,7 +85074,7 @@ index ab62b75..410422f 100644
85310 /* 85074 /*
85311 * Read access to zone->managed_pages is safe because it's unsigned long, 85075 * Read access to zone->managed_pages is safe because it's unsigned long,
85312 * but we still need to serialize writers. Currently all callers of 85076 * but we still need to serialize writers. Currently all callers of
85313@@ -760,6 +784,19 @@ void __meminit __free_pages_bootmem(struct page *page, unsigned int order) 85077@@ -761,6 +785,19 @@ void __meminit __free_pages_bootmem(struct page *page, unsigned int order)
85314 set_page_count(p, 0); 85078 set_page_count(p, 0);
85315 } 85079 }
85316 85080
@@ -85330,7 +85094,7 @@ index ab62b75..410422f 100644
85330 page_zone(page)->managed_pages += 1 << order; 85094 page_zone(page)->managed_pages += 1 << order;
85331 set_page_refcounted(page); 85095 set_page_refcounted(page);
85332 __free_pages(page, order); 85096 __free_pages(page, order);
85333@@ -869,8 +906,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags) 85097@@ -870,8 +907,10 @@ static int prep_new_page(struct page *page, int order, gfp_t gfp_flags)
85334 arch_alloc_page(page, order); 85098 arch_alloc_page(page, order);
85335 kernel_map_pages(page, 1 << order, 1); 85099 kernel_map_pages(page, 1 << order, 1);
85336 85100
@@ -85342,10 +85106,10 @@ index ab62b75..410422f 100644
85342 if (order && (gfp_flags & __GFP_COMP)) 85106 if (order && (gfp_flags & __GFP_COMP))
85343 prep_compound_page(page, order); 85107 prep_compound_page(page, order);
85344diff --git a/mm/page_io.c b/mm/page_io.c 85108diff --git a/mm/page_io.c b/mm/page_io.c
85345index 6182870..4bba6a2 100644 85109index a8a3ef4..7260a60 100644
85346--- a/mm/page_io.c 85110--- a/mm/page_io.c
85347+++ b/mm/page_io.c 85111+++ b/mm/page_io.c
85348@@ -205,7 +205,7 @@ int swap_writepage(struct page *page, struct writeback_control *wbc) 85112@@ -214,7 +214,7 @@ int __swap_writepage(struct page *page, struct writeback_control *wbc,
85349 struct file *swap_file = sis->swap_file; 85113 struct file *swap_file = sis->swap_file;
85350 struct address_space *mapping = swap_file->f_mapping; 85114 struct address_space *mapping = swap_file->f_mapping;
85351 struct iovec iov = { 85115 struct iovec iov = {
@@ -85419,7 +85183,7 @@ index fd26d04..0cea1b0 100644
85419 if (!mm || IS_ERR(mm)) { 85183 if (!mm || IS_ERR(mm)) {
85420 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH; 85184 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
85421diff --git a/mm/rmap.c b/mm/rmap.c 85185diff --git a/mm/rmap.c b/mm/rmap.c
85422index 807c96b..0e05279 100644 85186index 6280da8..b5c090e 100644
85423--- a/mm/rmap.c 85187--- a/mm/rmap.c
85424+++ b/mm/rmap.c 85188+++ b/mm/rmap.c
85425@@ -163,6 +163,10 @@ int anon_vma_prepare(struct vm_area_struct *vma) 85189@@ -163,6 +163,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
@@ -85508,20 +85272,33 @@ index 807c96b..0e05279 100644
85508 { 85272 {
85509 struct anon_vma_chain *avc; 85273 struct anon_vma_chain *avc;
85510 struct anon_vma *anon_vma; 85274 struct anon_vma *anon_vma;
85275@@ -373,8 +407,10 @@ static void anon_vma_ctor(void *data)
85276 void __init anon_vma_init(void)
85277 {
85278 anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
85279- 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor);
85280- anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain, SLAB_PANIC);
85281+ 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_NO_SANITIZE,
85282+ anon_vma_ctor);
85283+ anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
85284+ SLAB_PANIC|SLAB_NO_SANITIZE);
85285 }
85286
85287 /*
85511diff --git a/mm/shmem.c b/mm/shmem.c 85288diff --git a/mm/shmem.c b/mm/shmem.c
85512index 1c44af7..cefe9a6 100644 85289index 5e6a842..b41916e 100644
85513--- a/mm/shmem.c 85290--- a/mm/shmem.c
85514+++ b/mm/shmem.c 85291+++ b/mm/shmem.c
85515@@ -31,7 +31,7 @@ 85292@@ -33,7 +33,7 @@
85516 #include <linux/export.h>
85517 #include <linux/swap.h> 85293 #include <linux/swap.h>
85294 #include <linux/aio.h>
85518 85295
85519-static struct vfsmount *shm_mnt; 85296-static struct vfsmount *shm_mnt;
85520+struct vfsmount *shm_mnt; 85297+struct vfsmount *shm_mnt;
85521 85298
85522 #ifdef CONFIG_SHMEM 85299 #ifdef CONFIG_SHMEM
85523 /* 85300 /*
85524@@ -75,7 +75,7 @@ static struct vfsmount *shm_mnt; 85301@@ -77,7 +77,7 @@ static struct vfsmount *shm_mnt;
85525 #define BOGO_DIRENT_SIZE 20 85302 #define BOGO_DIRENT_SIZE 20
85526 85303
85527 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */ 85304 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */
@@ -85530,7 +85307,7 @@ index 1c44af7..cefe9a6 100644
85530 85307
85531 /* 85308 /*
85532 * shmem_fallocate and shmem_writepage communicate via inode->i_private 85309 * shmem_fallocate and shmem_writepage communicate via inode->i_private
85533@@ -2201,6 +2201,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = { 85310@@ -2203,6 +2203,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
85534 static int shmem_xattr_validate(const char *name) 85311 static int shmem_xattr_validate(const char *name)
85535 { 85312 {
85536 struct { const char *prefix; size_t len; } arr[] = { 85313 struct { const char *prefix; size_t len; } arr[] = {
@@ -85542,7 +85319,7 @@ index 1c44af7..cefe9a6 100644
85542 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN }, 85319 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
85543 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN } 85320 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
85544 }; 85321 };
85545@@ -2256,6 +2261,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name, 85322@@ -2258,6 +2263,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name,
85546 if (err) 85323 if (err)
85547 return err; 85324 return err;
85548 85325
@@ -85558,7 +85335,7 @@ index 1c44af7..cefe9a6 100644
85558 return simple_xattr_set(&info->xattrs, name, value, size, flags); 85335 return simple_xattr_set(&info->xattrs, name, value, size, flags);
85559 } 85336 }
85560 85337
85561@@ -2568,8 +2582,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent) 85338@@ -2570,8 +2584,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
85562 int err = -ENOMEM; 85339 int err = -ENOMEM;
85563 85340
85564 /* Round up to L1_CACHE_BYTES to resist false sharing */ 85341 /* Round up to L1_CACHE_BYTES to resist false sharing */
@@ -85569,19 +85346,10 @@ index 1c44af7..cefe9a6 100644
85569 return -ENOMEM; 85346 return -ENOMEM;
85570 85347
85571diff --git a/mm/slab.c b/mm/slab.c 85348diff --git a/mm/slab.c b/mm/slab.c
85572index 856e4a1..fafb820 100644 85349index bd88411..2d46fd6 100644
85573--- a/mm/slab.c 85350--- a/mm/slab.c
85574+++ b/mm/slab.c 85351+++ b/mm/slab.c
85575@@ -306,7 +306,7 @@ struct kmem_list3 { 85352@@ -366,10 +366,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
85576 * Need this for bootstrapping a per node allocator.
85577 */
85578 #define NUM_INIT_LISTS (3 * MAX_NUMNODES)
85579-static struct kmem_list3 __initdata initkmem_list3[NUM_INIT_LISTS];
85580+static struct kmem_list3 initkmem_list3[NUM_INIT_LISTS];
85581 #define CACHE_CACHE 0
85582 #define SIZE_AC MAX_NUMNODES
85583 #define SIZE_L3 (2 * MAX_NUMNODES)
85584@@ -407,10 +407,10 @@ static void kmem_list3_init(struct kmem_list3 *parent)
85585 if ((x)->max_freeable < i) \ 85353 if ((x)->max_freeable < i) \
85586 (x)->max_freeable = i; \ 85354 (x)->max_freeable = i; \
85587 } while (0) 85355 } while (0)
@@ -85593,10 +85361,21 @@ index 856e4a1..fafb820 100644
85593+#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss) 85361+#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss)
85594+#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit) 85362+#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit)
85595+#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss) 85363+#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss)
85364+#define STATS_INC_SANITIZED(x) atomic_inc_unchecked(&(x)->sanitized)
85365+#define STATS_INC_NOT_SANITIZED(x) atomic_inc_unchecked(&(x)->not_sanitized)
85596 #else 85366 #else
85597 #define STATS_INC_ACTIVE(x) do { } while (0) 85367 #define STATS_INC_ACTIVE(x) do { } while (0)
85598 #define STATS_DEC_ACTIVE(x) do { } while (0) 85368 #define STATS_DEC_ACTIVE(x) do { } while (0)
85599@@ -518,7 +518,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct slab *slab, 85369@@ -386,6 +388,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
85370 #define STATS_INC_ALLOCMISS(x) do { } while (0)
85371 #define STATS_INC_FREEHIT(x) do { } while (0)
85372 #define STATS_INC_FREEMISS(x) do { } while (0)
85373+#define STATS_INC_SANITIZED(x) do { } while (0)
85374+#define STATS_INC_NOT_SANITIZED(x) do { } while (0)
85375 #endif
85376
85377 #if DEBUG
85378@@ -477,7 +481,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct slab *slab,
85600 * reciprocal_divide(offset, cache->reciprocal_buffer_size) 85379 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
85601 */ 85380 */
85602 static inline unsigned int obj_to_index(const struct kmem_cache *cache, 85381 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
@@ -85605,36 +85384,7 @@ index 856e4a1..fafb820 100644
85605 { 85384 {
85606 u32 offset = (obj - slab->s_mem); 85385 u32 offset = (obj - slab->s_mem);
85607 return reciprocal_divide(offset, cache->reciprocal_buffer_size); 85386 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
85608@@ -539,12 +539,13 @@ EXPORT_SYMBOL(malloc_sizes); 85387@@ -1384,7 +1388,7 @@ static int __cpuinit cpuup_callback(struct notifier_block *nfb,
85609 struct cache_names {
85610 char *name;
85611 char *name_dma;
85612+ char *name_usercopy;
85613 };
85614
85615 static struct cache_names __initdata cache_names[] = {
85616-#define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)" },
85617+#define CACHE(x) { .name = "size-" #x, .name_dma = "size-" #x "(DMA)", .name_usercopy = "size-" #x "(USERCOPY)" },
85618 #include <linux/kmalloc_sizes.h>
85619- {NULL,}
85620+ {NULL}
85621 #undef CACHE
85622 };
85623
85624@@ -729,6 +730,12 @@ static inline struct kmem_cache *__find_general_cachep(size_t size,
85625 if (unlikely(gfpflags & GFP_DMA))
85626 return csizep->cs_dmacachep;
85627 #endif
85628+
85629+#ifdef CONFIG_PAX_USERCOPY_SLABS
85630+ if (unlikely(gfpflags & GFP_USERCOPY))
85631+ return csizep->cs_usercopycachep;
85632+#endif
85633+
85634 return csizep->cs_cachep;
85635 }
85636
85637@@ -1482,7 +1489,7 @@ static int __cpuinit cpuup_callback(struct notifier_block *nfb,
85638 return notifier_from_errno(err); 85388 return notifier_from_errno(err);
85639 } 85389 }
85640 85390
@@ -85643,44 +85393,44 @@ index 856e4a1..fafb820 100644
85643 &cpuup_callback, NULL, 0 85393 &cpuup_callback, NULL, 0
85644 }; 85394 };
85645 85395
85646@@ -1667,12 +1674,12 @@ void __init kmem_cache_init(void) 85396@@ -1565,12 +1569,12 @@ void __init kmem_cache_init(void)
85647 */ 85397 */
85648 85398
85649 sizes[INDEX_AC].cs_cachep = create_kmalloc_cache(names[INDEX_AC].name, 85399 kmalloc_caches[INDEX_AC] = create_kmalloc_cache("kmalloc-ac",
85650- sizes[INDEX_AC].cs_size, ARCH_KMALLOC_FLAGS); 85400- kmalloc_size(INDEX_AC), ARCH_KMALLOC_FLAGS);
85651+ sizes[INDEX_AC].cs_size, ARCH_KMALLOC_FLAGS|SLAB_USERCOPY); 85401+ kmalloc_size(INDEX_AC), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
85652 85402
85653 if (INDEX_AC != INDEX_L3) 85403 if (INDEX_AC != INDEX_NODE)
85654 sizes[INDEX_L3].cs_cachep = 85404 kmalloc_caches[INDEX_NODE] =
85655 create_kmalloc_cache(names[INDEX_L3].name, 85405 create_kmalloc_cache("kmalloc-node",
85656- sizes[INDEX_L3].cs_size, ARCH_KMALLOC_FLAGS); 85406- kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
85657+ sizes[INDEX_L3].cs_size, ARCH_KMALLOC_FLAGS|SLAB_USERCOPY); 85407+ kmalloc_size(INDEX_NODE), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
85658 85408
85659 slab_early_init = 0; 85409 slab_early_init = 0;
85660 85410
85661@@ -1686,13 +1693,20 @@ void __init kmem_cache_init(void) 85411@@ -3583,6 +3587,21 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
85662 */ 85412 struct array_cache *ac = cpu_cache_get(cachep);
85663 if (!sizes->cs_cachep)
85664 sizes->cs_cachep = create_kmalloc_cache(names->name,
85665- sizes->cs_size, ARCH_KMALLOC_FLAGS);
85666+ sizes->cs_size, ARCH_KMALLOC_FLAGS|SLAB_USERCOPY);
85667 85413
85668 #ifdef CONFIG_ZONE_DMA 85414 check_irq_off();
85669 sizes->cs_dmacachep = create_kmalloc_cache(
85670 names->name_dma, sizes->cs_size,
85671 SLAB_CACHE_DMA|ARCH_KMALLOC_FLAGS);
85672 #endif
85673+ 85415+
85674+#ifdef CONFIG_PAX_USERCOPY_SLABS 85416+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85675+ sizes->cs_usercopycachep = create_kmalloc_cache( 85417+ if (pax_sanitize_slab) {
85676+ names->name_usercopy, sizes->cs_size, 85418+ if (!(cachep->flags & (SLAB_POISON | SLAB_NO_SANITIZE))) {
85677+ ARCH_KMALLOC_FLAGS|SLAB_USERCOPY); 85419+ memset(objp, PAX_MEMORY_SANITIZE_VALUE, cachep->object_size);
85420+
85421+ if (cachep->ctor)
85422+ cachep->ctor(objp);
85423+
85424+ STATS_INC_SANITIZED(cachep);
85425+ } else
85426+ STATS_INC_NOT_SANITIZED(cachep);
85427+ }
85678+#endif 85428+#endif
85679+ 85429+
85680 sizes++; 85430 kmemleak_free_recursive(objp, cachep->flags);
85681 names++; 85431 objp = cache_free_debugcheck(cachep, objp, caller);
85682 } 85432
85683@@ -3924,6 +3938,7 @@ void kfree(const void *objp) 85433@@ -3800,6 +3819,7 @@ void kfree(const void *objp)
85684 85434
85685 if (unlikely(ZERO_OR_NULL_PTR(objp))) 85435 if (unlikely(ZERO_OR_NULL_PTR(objp)))
85686 return; 85436 return;
@@ -85688,7 +85438,7 @@ index 856e4a1..fafb820 100644
85688 local_irq_save(flags); 85438 local_irq_save(flags);
85689 kfree_debugcheck(objp); 85439 kfree_debugcheck(objp);
85690 c = virt_to_cache(objp); 85440 c = virt_to_cache(objp);
85691@@ -4365,10 +4380,10 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep) 85441@@ -4241,14 +4261,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
85692 } 85442 }
85693 /* cpu stats */ 85443 /* cpu stats */
85694 { 85444 {
@@ -85703,7 +85453,19 @@ index 856e4a1..fafb820 100644
85703 85453
85704 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu", 85454 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
85705 allochit, allocmiss, freehit, freemiss); 85455 allochit, allocmiss, freehit, freemiss);
85706@@ -4600,13 +4615,71 @@ static const struct file_operations proc_slabstats_operations = { 85456 }
85457+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85458+ {
85459+ unsigned long sanitized = atomic_read_unchecked(&cachep->sanitized);
85460+ unsigned long not_sanitized = atomic_read_unchecked(&cachep->not_sanitized);
85461+
85462+ seq_printf(m, " : pax %6lu %6lu", sanitized, not_sanitized);
85463+ }
85464+#endif
85465 #endif
85466 }
85467
85468@@ -4476,13 +4504,71 @@ static const struct file_operations proc_slabstats_operations = {
85707 static int __init slab_proc_init(void) 85469 static int __init slab_proc_init(void)
85708 { 85470 {
85709 #ifdef CONFIG_DEBUG_SLAB_LEAK 85471 #ifdef CONFIG_DEBUG_SLAB_LEAK
@@ -85777,19 +85539,36 @@ index 856e4a1..fafb820 100644
85777 * ksize - get the actual amount of memory allocated for a given object 85539 * ksize - get the actual amount of memory allocated for a given object
85778 * @objp: Pointer to the object 85540 * @objp: Pointer to the object
85779diff --git a/mm/slab.h b/mm/slab.h 85541diff --git a/mm/slab.h b/mm/slab.h
85780index 34a98d6..73633d1 100644 85542index f96b49e..db1d204 100644
85781--- a/mm/slab.h 85543--- a/mm/slab.h
85782+++ b/mm/slab.h 85544+++ b/mm/slab.h
85783@@ -58,7 +58,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, 85545@@ -32,6 +32,15 @@ extern struct list_head slab_caches;
85546 /* The slab cache that manages slab cache information */
85547 extern struct kmem_cache *kmem_cache;
85548
85549+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85550+#ifdef CONFIG_X86_64
85551+#define PAX_MEMORY_SANITIZE_VALUE '\xfe'
85552+#else
85553+#define PAX_MEMORY_SANITIZE_VALUE '\xff'
85554+#endif
85555+extern bool pax_sanitize_slab;
85556+#endif
85557+
85558 unsigned long calculate_alignment(unsigned long flags,
85559 unsigned long align, unsigned long size);
85560
85561@@ -67,7 +76,8 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
85784 85562
85785 /* Legal flag mask for kmem_cache_create(), for various configurations */ 85563 /* Legal flag mask for kmem_cache_create(), for various configurations */
85786 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \ 85564 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
85787- SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS ) 85565- SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
85788+ SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | SLAB_USERCOPY) 85566+ SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | \
85567+ SLAB_USERCOPY | SLAB_NO_SANITIZE)
85789 85568
85790 #if defined(CONFIG_DEBUG_SLAB) 85569 #if defined(CONFIG_DEBUG_SLAB)
85791 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER) 85570 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
85792@@ -220,6 +220,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x) 85571@@ -229,6 +239,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
85793 return s; 85572 return s;
85794 85573
85795 page = virt_to_head_page(x); 85574 page = virt_to_head_page(x);
@@ -85800,10 +85579,10 @@ index 34a98d6..73633d1 100644
85800 if (slab_equal_or_root(cachep, s)) 85579 if (slab_equal_or_root(cachep, s))
85801 return cachep; 85580 return cachep;
85802diff --git a/mm/slab_common.c b/mm/slab_common.c 85581diff --git a/mm/slab_common.c b/mm/slab_common.c
85803index 3f3cd97..93b0236 100644 85582index 2d41450..4efe6ee 100644
85804--- a/mm/slab_common.c 85583--- a/mm/slab_common.c
85805+++ b/mm/slab_common.c 85584+++ b/mm/slab_common.c
85806@@ -22,7 +22,7 @@ 85585@@ -22,11 +22,22 @@
85807 85586
85808 #include "slab.h" 85587 #include "slab.h"
85809 85588
@@ -85812,7 +85591,22 @@ index 3f3cd97..93b0236 100644
85812 LIST_HEAD(slab_caches); 85591 LIST_HEAD(slab_caches);
85813 DEFINE_MUTEX(slab_mutex); 85592 DEFINE_MUTEX(slab_mutex);
85814 struct kmem_cache *kmem_cache; 85593 struct kmem_cache *kmem_cache;
85815@@ -209,7 +209,7 @@ kmem_cache_create_memcg(struct mem_cgroup *memcg, const char *name, size_t size, 85594
85595+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85596+bool pax_sanitize_slab __read_only = true;
85597+static int __init pax_sanitize_slab_setup(char *str)
85598+{
85599+ pax_sanitize_slab = !!simple_strtol(str, NULL, 0);
85600+ printk("%sabled PaX slab sanitization\n", pax_sanitize_slab ? "En" : "Dis");
85601+ return 1;
85602+}
85603+__setup("pax_sanitize_slab=", pax_sanitize_slab_setup);
85604+#endif
85605+
85606 #ifdef CONFIG_DEBUG_VM
85607 static int kmem_cache_sanity_check(struct mem_cgroup *memcg, const char *name,
85608 size_t size)
85609@@ -209,7 +220,7 @@ kmem_cache_create_memcg(struct mem_cgroup *memcg, const char *name, size_t size,
85816 85610
85817 err = __kmem_cache_create(s, flags); 85611 err = __kmem_cache_create(s, flags);
85818 if (!err) { 85612 if (!err) {
@@ -85821,7 +85615,7 @@ index 3f3cd97..93b0236 100644
85821 list_add(&s->list, &slab_caches); 85615 list_add(&s->list, &slab_caches);
85822 memcg_cache_list_add(memcg, s); 85616 memcg_cache_list_add(memcg, s);
85823 } else { 85617 } else {
85824@@ -255,8 +255,7 @@ void kmem_cache_destroy(struct kmem_cache *s) 85618@@ -255,8 +266,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
85825 85619
85826 get_online_cpus(); 85620 get_online_cpus();
85827 mutex_lock(&slab_mutex); 85621 mutex_lock(&slab_mutex);
@@ -85831,8 +85625,8 @@ index 3f3cd97..93b0236 100644
85831 list_del(&s->list); 85625 list_del(&s->list);
85832 85626
85833 if (!__kmem_cache_shutdown(s)) { 85627 if (!__kmem_cache_shutdown(s)) {
85834@@ -302,7 +301,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz 85628@@ -302,7 +312,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
85835 panic("Creation of kmalloc slab %s size=%zd failed. Reason %d\n", 85629 panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
85836 name, size, err); 85630 name, size, err);
85837 85631
85838- s->refcount = -1; /* Exempt from merging for now */ 85632- s->refcount = -1; /* Exempt from merging for now */
@@ -85840,7 +85634,7 @@ index 3f3cd97..93b0236 100644
85840 } 85634 }
85841 85635
85842 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size, 85636 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
85843@@ -315,7 +314,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size, 85637@@ -315,7 +325,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
85844 85638
85845 create_boot_cache(s, name, size, flags); 85639 create_boot_cache(s, name, size, flags);
85846 list_add(&s->list, &slab_caches); 85640 list_add(&s->list, &slab_caches);
@@ -85849,8 +85643,90 @@ index 3f3cd97..93b0236 100644
85849 return s; 85643 return s;
85850 } 85644 }
85851 85645
85646@@ -327,6 +337,11 @@ struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
85647 EXPORT_SYMBOL(kmalloc_dma_caches);
85648 #endif
85649
85650+#ifdef CONFIG_PAX_USERCOPY_SLABS
85651+struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
85652+EXPORT_SYMBOL(kmalloc_usercopy_caches);
85653+#endif
85654+
85655 /*
85656 * Conversion table for small slabs sizes / 8 to the index in the
85657 * kmalloc array. This is necessary for slabs < 192 since we have non power
85658@@ -391,6 +406,13 @@ struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
85659 return kmalloc_dma_caches[index];
85660
85661 #endif
85662+
85663+#ifdef CONFIG_PAX_USERCOPY_SLABS
85664+ if (unlikely((flags & GFP_USERCOPY)))
85665+ return kmalloc_usercopy_caches[index];
85666+
85667+#endif
85668+
85669 return kmalloc_caches[index];
85670 }
85671
85672@@ -447,7 +469,7 @@ void __init create_kmalloc_caches(unsigned long flags)
85673 for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
85674 if (!kmalloc_caches[i]) {
85675 kmalloc_caches[i] = create_kmalloc_cache(NULL,
85676- 1 << i, flags);
85677+ 1 << i, SLAB_USERCOPY | flags);
85678 }
85679
85680 /*
85681@@ -456,10 +478,10 @@ void __init create_kmalloc_caches(unsigned long flags)
85682 * earlier power of two caches
85683 */
85684 if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[1] && i == 6)
85685- kmalloc_caches[1] = create_kmalloc_cache(NULL, 96, flags);
85686+ kmalloc_caches[1] = create_kmalloc_cache(NULL, 96, SLAB_USERCOPY | flags);
85687
85688 if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[2] && i == 7)
85689- kmalloc_caches[2] = create_kmalloc_cache(NULL, 192, flags);
85690+ kmalloc_caches[2] = create_kmalloc_cache(NULL, 192, SLAB_USERCOPY | flags);
85691 }
85692
85693 /* Kmalloc array is now usable */
85694@@ -492,6 +514,23 @@ void __init create_kmalloc_caches(unsigned long flags)
85695 }
85696 }
85697 #endif
85698+
85699+#ifdef CONFIG_PAX_USERCOPY_SLABS
85700+ for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
85701+ struct kmem_cache *s = kmalloc_caches[i];
85702+
85703+ if (s) {
85704+ int size = kmalloc_size(i);
85705+ char *n = kasprintf(GFP_NOWAIT,
85706+ "usercopy-kmalloc-%d", size);
85707+
85708+ BUG_ON(!n);
85709+ kmalloc_usercopy_caches[i] = create_kmalloc_cache(n,
85710+ size, SLAB_USERCOPY | flags);
85711+ }
85712+ }
85713+#endif
85714+
85715 }
85716 #endif /* !CONFIG_SLOB */
85717
85718@@ -516,6 +555,9 @@ void print_slabinfo_header(struct seq_file *m)
85719 seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
85720 "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
85721 seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
85722+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85723+ seq_puts(m, " : pax <sanitized> <not_sanitized>");
85724+#endif
85725 #endif
85726 seq_putc(m, '\n');
85727 }
85852diff --git a/mm/slob.c b/mm/slob.c 85728diff --git a/mm/slob.c b/mm/slob.c
85853index eeed4a0..6ee34ec 100644 85729index eeed4a0..bb0e9ab 100644
85854--- a/mm/slob.c 85730--- a/mm/slob.c
85855+++ b/mm/slob.c 85731+++ b/mm/slob.c
85856@@ -157,7 +157,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next) 85732@@ -157,7 +157,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
@@ -85905,7 +85781,7 @@ index eeed4a0..6ee34ec 100644
85905 current->reclaim_state->reclaimed_slab += 1 << order; 85781 current->reclaim_state->reclaimed_slab += 1 << order;
85906- free_pages((unsigned long)b, order); 85782- free_pages((unsigned long)b, order);
85907+ __ClearPageSlab(sp); 85783+ __ClearPageSlab(sp);
85908+ reset_page_mapcount(sp); 85784+ page_mapcount_reset(sp);
85909+ sp->private = 0; 85785+ sp->private = 0;
85910+ __free_pages(sp, order); 85786+ __free_pages(sp, order);
85911 } 85787 }
@@ -85931,7 +85807,7 @@ index eeed4a0..6ee34ec 100644
85931 INIT_LIST_HEAD(&sp->list); 85807 INIT_LIST_HEAD(&sp->list);
85932 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE)); 85808 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE));
85933 set_slob_page_free(sp, slob_list); 85809 set_slob_page_free(sp, slob_list);
85934@@ -359,9 +363,7 @@ static void slob_free(void *block, int size) 85810@@ -359,12 +363,15 @@ static void slob_free(void *block, int size)
85935 if (slob_page_free(sp)) 85811 if (slob_page_free(sp))
85936 clear_slob_page_free(sp); 85812 clear_slob_page_free(sp);
85937 spin_unlock_irqrestore(&slob_lock, flags); 85813 spin_unlock_irqrestore(&slob_lock, flags);
@@ -85942,7 +85818,15 @@ index eeed4a0..6ee34ec 100644
85942 return; 85818 return;
85943 } 85819 }
85944 85820
85945@@ -424,11 +426,10 @@ out: 85821+#ifdef CONFIG_PAX_MEMORY_SANITIZE
85822+ if (pax_sanitize_slab)
85823+ memset(block, PAX_MEMORY_SANITIZE_VALUE, size);
85824+#endif
85825+
85826 if (!slob_page_free(sp)) {
85827 /* This slob page is about to become partially free. Easy! */
85828 sp->units = units;
85829@@ -424,11 +431,10 @@ out:
85946 */ 85830 */
85947 85831
85948 static __always_inline void * 85832 static __always_inline void *
@@ -85957,7 +85841,7 @@ index eeed4a0..6ee34ec 100644
85957 85841
85958 gfp &= gfp_allowed_mask; 85842 gfp &= gfp_allowed_mask;
85959 85843
85960@@ -442,23 +443,41 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller) 85844@@ -442,23 +448,41 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
85961 85845
85962 if (!m) 85846 if (!m)
85963 return NULL; 85847 return NULL;
@@ -86002,7 +85886,7 @@ index eeed4a0..6ee34ec 100644
86002 return ret; 85886 return ret;
86003 } 85887 }
86004 85888
86005@@ -493,34 +512,112 @@ void kfree(const void *block) 85889@@ -493,34 +517,112 @@ void kfree(const void *block)
86006 return; 85890 return;
86007 kmemleak_free(block); 85891 kmemleak_free(block);
86008 85892
@@ -86019,7 +85903,7 @@ index eeed4a0..6ee34ec 100644
86019+ slob_free(m, m[0].units + align); 85903+ slob_free(m, m[0].units + align);
86020+ } else { 85904+ } else {
86021+ __ClearPageSlab(sp); 85905+ __ClearPageSlab(sp);
86022+ reset_page_mapcount(sp); 85906+ page_mapcount_reset(sp);
86023+ sp->private = 0; 85907+ sp->private = 0;
86024 __free_pages(sp, compound_order(sp)); 85908 __free_pages(sp, compound_order(sp));
86025+ } 85909+ }
@@ -86124,7 +86008,7 @@ index eeed4a0..6ee34ec 100644
86124 } 86008 }
86125 EXPORT_SYMBOL(ksize); 86009 EXPORT_SYMBOL(ksize);
86126 86010
86127@@ -536,23 +633,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags) 86011@@ -536,23 +638,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
86128 86012
86129 void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node) 86013 void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
86130 { 86014 {
@@ -86160,7 +86044,7 @@ index eeed4a0..6ee34ec 100644
86160 86044
86161 if (c->ctor) 86045 if (c->ctor)
86162 c->ctor(b); 86046 c->ctor(b);
86163@@ -564,10 +671,14 @@ EXPORT_SYMBOL(kmem_cache_alloc_node); 86047@@ -564,10 +676,14 @@ EXPORT_SYMBOL(kmem_cache_alloc_node);
86164 86048
86165 static void __kmem_cache_free(void *b, int size) 86049 static void __kmem_cache_free(void *b, int size)
86166 { 86050 {
@@ -86177,7 +86061,7 @@ index eeed4a0..6ee34ec 100644
86177 } 86061 }
86178 86062
86179 static void kmem_rcu_free(struct rcu_head *head) 86063 static void kmem_rcu_free(struct rcu_head *head)
86180@@ -580,17 +691,31 @@ static void kmem_rcu_free(struct rcu_head *head) 86064@@ -580,17 +696,31 @@ static void kmem_rcu_free(struct rcu_head *head)
86181 86065
86182 void kmem_cache_free(struct kmem_cache *c, void *b) 86066 void kmem_cache_free(struct kmem_cache *c, void *b)
86183 { 86067 {
@@ -86213,10 +86097,10 @@ index eeed4a0..6ee34ec 100644
86213 EXPORT_SYMBOL(kmem_cache_free); 86097 EXPORT_SYMBOL(kmem_cache_free);
86214 86098
86215diff --git a/mm/slub.c b/mm/slub.c 86099diff --git a/mm/slub.c b/mm/slub.c
86216index 4aec537..8043df1 100644 86100index 57707f0..7857bd3 100644
86217--- a/mm/slub.c 86101--- a/mm/slub.c
86218+++ b/mm/slub.c 86102+++ b/mm/slub.c
86219@@ -197,7 +197,7 @@ struct track { 86103@@ -198,7 +198,7 @@ struct track {
86220 86104
86221 enum track_item { TRACK_ALLOC, TRACK_FREE }; 86105 enum track_item { TRACK_ALLOC, TRACK_FREE };
86222 86106
@@ -86225,7 +86109,7 @@ index 4aec537..8043df1 100644
86225 static int sysfs_slab_add(struct kmem_cache *); 86109 static int sysfs_slab_add(struct kmem_cache *);
86226 static int sysfs_slab_alias(struct kmem_cache *, const char *); 86110 static int sysfs_slab_alias(struct kmem_cache *, const char *);
86227 static void sysfs_slab_remove(struct kmem_cache *); 86111 static void sysfs_slab_remove(struct kmem_cache *);
86228@@ -518,7 +518,7 @@ static void print_track(const char *s, struct track *t) 86112@@ -519,7 +519,7 @@ static void print_track(const char *s, struct track *t)
86229 if (!t->addr) 86113 if (!t->addr)
86230 return; 86114 return;
86231 86115
@@ -86234,7 +86118,22 @@ index 4aec537..8043df1 100644
86234 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid); 86118 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
86235 #ifdef CONFIG_STACKTRACE 86119 #ifdef CONFIG_STACKTRACE
86236 { 86120 {
86237@@ -2653,7 +2653,7 @@ static int slub_min_objects; 86121@@ -2594,6 +2594,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
86122
86123 slab_free_hook(s, x);
86124
86125+#ifdef CONFIG_PAX_MEMORY_SANITIZE
86126+ if (pax_sanitize_slab && !(s->flags & SLAB_NO_SANITIZE)) {
86127+ memset(x, PAX_MEMORY_SANITIZE_VALUE, s->object_size);
86128+ if (s->ctor)
86129+ s->ctor(x);
86130+ }
86131+#endif
86132+
86133 redo:
86134 /*
86135 * Determine the currently cpus per cpu slab.
86136@@ -2661,7 +2669,7 @@ static int slub_min_objects;
86238 * Merge control. If this is set then no merging of slab caches will occur. 86137 * Merge control. If this is set then no merging of slab caches will occur.
86239 * (Could be removed. This was introduced to pacify the merge skeptics.) 86138 * (Could be removed. This was introduced to pacify the merge skeptics.)
86240 */ 86139 */
@@ -86243,32 +86142,17 @@ index 4aec537..8043df1 100644
86243 86142
86244 /* 86143 /*
86245 * Calculate the order of allocation given an slab object size. 86144 * Calculate the order of allocation given an slab object size.
86246@@ -3181,6 +3181,10 @@ EXPORT_SYMBOL(kmalloc_caches); 86145@@ -2938,6 +2946,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
86247 static struct kmem_cache *kmalloc_dma_caches[SLUB_PAGE_SHIFT]; 86146 s->inuse = size;
86248 #endif
86249
86250+#ifdef CONFIG_PAX_USERCOPY_SLABS
86251+static struct kmem_cache *kmalloc_usercopy_caches[SLUB_PAGE_SHIFT];
86252+#endif
86253+
86254 static int __init setup_slub_min_order(char *str)
86255 {
86256 get_option(&str, &slub_min_order);
86257@@ -3272,6 +3276,13 @@ static struct kmem_cache *get_slab(size_t size, gfp_t flags)
86258 return kmalloc_dma_caches[index];
86259 86147
86260 #endif 86148 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
86261+ 86149+#ifdef CONFIG_PAX_MEMORY_SANITIZE
86262+#ifdef CONFIG_PAX_USERCOPY_SLABS 86150+ (pax_sanitize_slab && !(flags & SLAB_NO_SANITIZE)) ||
86263+ if (flags & SLAB_USERCOPY)
86264+ return kmalloc_usercopy_caches[index];
86265+
86266+#endif 86151+#endif
86267+ 86152 s->ctor)) {
86268 return kmalloc_caches[index]; 86153 /*
86269 } 86154 * Relocate free pointer after the object if it is not
86270 86155@@ -3283,6 +3294,59 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
86271@@ -3340,6 +3351,59 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
86272 EXPORT_SYMBOL(__kmalloc_node); 86156 EXPORT_SYMBOL(__kmalloc_node);
86273 #endif 86157 #endif
86274 86158
@@ -86328,7 +86212,7 @@ index 4aec537..8043df1 100644
86328 size_t ksize(const void *object) 86212 size_t ksize(const void *object)
86329 { 86213 {
86330 struct page *page; 86214 struct page *page;
86331@@ -3404,6 +3468,7 @@ void kfree(const void *x) 86215@@ -3347,6 +3411,7 @@ void kfree(const void *x)
86332 if (unlikely(ZERO_OR_NULL_PTR(x))) 86216 if (unlikely(ZERO_OR_NULL_PTR(x)))
86333 return; 86217 return;
86334 86218
@@ -86336,51 +86220,7 @@ index 4aec537..8043df1 100644
86336 page = virt_to_head_page(x); 86220 page = virt_to_head_page(x);
86337 if (unlikely(!PageSlab(page))) { 86221 if (unlikely(!PageSlab(page))) {
86338 BUG_ON(!PageCompound(page)); 86222 BUG_ON(!PageCompound(page));
86339@@ -3712,17 +3777,17 @@ void __init kmem_cache_init(void) 86223@@ -3652,7 +3717,7 @@ static int slab_unmergeable(struct kmem_cache *s)
86340
86341 /* Caches that are not of the two-to-the-power-of size */
86342 if (KMALLOC_MIN_SIZE <= 32) {
86343- kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, 0);
86344+ kmalloc_caches[1] = create_kmalloc_cache("kmalloc-96", 96, SLAB_USERCOPY);
86345 caches++;
86346 }
86347
86348 if (KMALLOC_MIN_SIZE <= 64) {
86349- kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, 0);
86350+ kmalloc_caches[2] = create_kmalloc_cache("kmalloc-192", 192, SLAB_USERCOPY);
86351 caches++;
86352 }
86353
86354 for (i = KMALLOC_SHIFT_LOW; i < SLUB_PAGE_SHIFT; i++) {
86355- kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, 0);
86356+ kmalloc_caches[i] = create_kmalloc_cache("kmalloc", 1 << i, SLAB_USERCOPY);
86357 caches++;
86358 }
86359
86360@@ -3764,6 +3829,22 @@ void __init kmem_cache_init(void)
86361 }
86362 }
86363 #endif
86364+
86365+#ifdef CONFIG_PAX_USERCOPY_SLABS
86366+ for (i = 0; i < SLUB_PAGE_SHIFT; i++) {
86367+ struct kmem_cache *s = kmalloc_caches[i];
86368+
86369+ if (s && s->size) {
86370+ char *name = kasprintf(GFP_NOWAIT,
86371+ "usercopy-kmalloc-%d", s->object_size);
86372+
86373+ BUG_ON(!name);
86374+ kmalloc_usercopy_caches[i] = create_kmalloc_cache(name,
86375+ s->object_size, SLAB_USERCOPY);
86376+ }
86377+ }
86378+#endif
86379+
86380 printk(KERN_INFO
86381 "SLUB: Genslabs=%d, HWalign=%d, Order=%d-%d, MinObjects=%d,"
86382 " CPUs=%d, Nodes=%d\n",
86383@@ -3790,7 +3871,7 @@ static int slab_unmergeable(struct kmem_cache *s)
86384 /* 86224 /*
86385 * We may have set a slab to be unmergeable during bootstrap. 86225 * We may have set a slab to be unmergeable during bootstrap.
86386 */ 86226 */
@@ -86389,7 +86229,7 @@ index 4aec537..8043df1 100644
86389 return 1; 86229 return 1;
86390 86230
86391 return 0; 86231 return 0;
86392@@ -3848,7 +3929,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, 86232@@ -3710,7 +3775,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
86393 86233
86394 s = find_mergeable(memcg, size, align, flags, name, ctor); 86234 s = find_mergeable(memcg, size, align, flags, name, ctor);
86395 if (s) { 86235 if (s) {
@@ -86398,7 +86238,7 @@ index 4aec537..8043df1 100644
86398 /* 86238 /*
86399 * Adjust the object sizes so that we clear 86239 * Adjust the object sizes so that we clear
86400 * the complete object on kzalloc. 86240 * the complete object on kzalloc.
86401@@ -3857,7 +3938,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size, 86241@@ -3719,7 +3784,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
86402 s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *))); 86242 s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *)));
86403 86243
86404 if (sysfs_slab_alias(s, name)) { 86244 if (sysfs_slab_alias(s, name)) {
@@ -86407,7 +86247,7 @@ index 4aec537..8043df1 100644
86407 s = NULL; 86247 s = NULL;
86408 } 86248 }
86409 } 86249 }
86410@@ -3919,7 +4000,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb, 86250@@ -3781,7 +3846,7 @@ static int __cpuinit slab_cpuup_callback(struct notifier_block *nfb,
86411 return NOTIFY_OK; 86251 return NOTIFY_OK;
86412 } 86252 }
86413 86253
@@ -86416,7 +86256,7 @@ index 4aec537..8043df1 100644
86416 .notifier_call = slab_cpuup_callback 86256 .notifier_call = slab_cpuup_callback
86417 }; 86257 };
86418 86258
86419@@ -3977,7 +4058,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags, 86259@@ -3839,7 +3904,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
86420 } 86260 }
86421 #endif 86261 #endif
86422 86262
@@ -86425,7 +86265,7 @@ index 4aec537..8043df1 100644
86425 static int count_inuse(struct page *page) 86265 static int count_inuse(struct page *page)
86426 { 86266 {
86427 return page->inuse; 86267 return page->inuse;
86428@@ -4364,12 +4445,12 @@ static void resiliency_test(void) 86268@@ -4226,12 +4291,12 @@ static void resiliency_test(void)
86429 validate_slab_cache(kmalloc_caches[9]); 86269 validate_slab_cache(kmalloc_caches[9]);
86430 } 86270 }
86431 #else 86271 #else
@@ -86440,7 +86280,7 @@ index 4aec537..8043df1 100644
86440 enum slab_stat_type { 86280 enum slab_stat_type {
86441 SL_ALL, /* All slabs */ 86281 SL_ALL, /* All slabs */
86442 SL_PARTIAL, /* Only partially allocated slabs */ 86282 SL_PARTIAL, /* Only partially allocated slabs */
86443@@ -4613,7 +4694,7 @@ SLAB_ATTR_RO(ctor); 86283@@ -4475,7 +4540,7 @@ SLAB_ATTR_RO(ctor);
86444 86284
86445 static ssize_t aliases_show(struct kmem_cache *s, char *buf) 86285 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
86446 { 86286 {
@@ -86449,7 +86289,32 @@ index 4aec537..8043df1 100644
86449 } 86289 }
86450 SLAB_ATTR_RO(aliases); 86290 SLAB_ATTR_RO(aliases);
86451 86291
86452@@ -5266,6 +5347,7 @@ static char *create_unique_id(struct kmem_cache *s) 86292@@ -4563,6 +4628,14 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
86293 SLAB_ATTR_RO(cache_dma);
86294 #endif
86295
86296+#ifdef CONFIG_PAX_USERCOPY_SLABS
86297+static ssize_t usercopy_show(struct kmem_cache *s, char *buf)
86298+{
86299+ return sprintf(buf, "%d\n", !!(s->flags & SLAB_USERCOPY));
86300+}
86301+SLAB_ATTR_RO(usercopy);
86302+#endif
86303+
86304 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
86305 {
86306 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
86307@@ -4897,6 +4970,9 @@ static struct attribute *slab_attrs[] = {
86308 #ifdef CONFIG_ZONE_DMA
86309 &cache_dma_attr.attr,
86310 #endif
86311+#ifdef CONFIG_PAX_USERCOPY_SLABS
86312+ &usercopy_attr.attr,
86313+#endif
86314 #ifdef CONFIG_NUMA
86315 &remote_node_defrag_ratio_attr.attr,
86316 #endif
86317@@ -5128,6 +5204,7 @@ static char *create_unique_id(struct kmem_cache *s)
86453 return name; 86318 return name;
86454 } 86319 }
86455 86320
@@ -86457,7 +86322,7 @@ index 4aec537..8043df1 100644
86457 static int sysfs_slab_add(struct kmem_cache *s) 86322 static int sysfs_slab_add(struct kmem_cache *s)
86458 { 86323 {
86459 int err; 86324 int err;
86460@@ -5289,7 +5371,7 @@ static int sysfs_slab_add(struct kmem_cache *s) 86325@@ -5151,7 +5228,7 @@ static int sysfs_slab_add(struct kmem_cache *s)
86461 } 86326 }
86462 86327
86463 s->kobj.kset = slab_kset; 86328 s->kobj.kset = slab_kset;
@@ -86466,7 +86331,7 @@ index 4aec537..8043df1 100644
86466 if (err) { 86331 if (err) {
86467 kobject_put(&s->kobj); 86332 kobject_put(&s->kobj);
86468 return err; 86333 return err;
86469@@ -5323,6 +5405,7 @@ static void sysfs_slab_remove(struct kmem_cache *s) 86334@@ -5185,6 +5262,7 @@ static void sysfs_slab_remove(struct kmem_cache *s)
86470 kobject_del(&s->kobj); 86335 kobject_del(&s->kobj);
86471 kobject_put(&s->kobj); 86336 kobject_put(&s->kobj);
86472 } 86337 }
@@ -86474,7 +86339,7 @@ index 4aec537..8043df1 100644
86474 86339
86475 /* 86340 /*
86476 * Need to buffer aliases during bootup until sysfs becomes 86341 * Need to buffer aliases during bootup until sysfs becomes
86477@@ -5336,6 +5419,7 @@ struct saved_alias { 86342@@ -5198,6 +5276,7 @@ struct saved_alias {
86478 86343
86479 static struct saved_alias *alias_list; 86344 static struct saved_alias *alias_list;
86480 86345
@@ -86482,7 +86347,7 @@ index 4aec537..8043df1 100644
86482 static int sysfs_slab_alias(struct kmem_cache *s, const char *name) 86347 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
86483 { 86348 {
86484 struct saved_alias *al; 86349 struct saved_alias *al;
86485@@ -5358,6 +5442,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) 86350@@ -5220,6 +5299,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
86486 alias_list = al; 86351 alias_list = al;
86487 return 0; 86352 return 0;
86488 } 86353 }
@@ -86491,10 +86356,10 @@ index 4aec537..8043df1 100644
86491 static int __init slab_sysfs_init(void) 86356 static int __init slab_sysfs_init(void)
86492 { 86357 {
86493diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c 86358diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
86494index 1b7e22a..3fcd4f3 100644 86359index 27eeab3..7c3f7f2 100644
86495--- a/mm/sparse-vmemmap.c 86360--- a/mm/sparse-vmemmap.c
86496+++ b/mm/sparse-vmemmap.c 86361+++ b/mm/sparse-vmemmap.c
86497@@ -128,7 +128,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node) 86362@@ -130,7 +130,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
86498 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 86363 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
86499 if (!p) 86364 if (!p)
86500 return NULL; 86365 return NULL;
@@ -86503,7 +86368,7 @@ index 1b7e22a..3fcd4f3 100644
86503 } 86368 }
86504 return pud; 86369 return pud;
86505 } 86370 }
86506@@ -140,7 +140,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node) 86371@@ -142,7 +142,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
86507 void *p = vmemmap_alloc_block(PAGE_SIZE, node); 86372 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
86508 if (!p) 86373 if (!p)
86509 return NULL; 86374 return NULL;
@@ -86513,10 +86378,10 @@ index 1b7e22a..3fcd4f3 100644
86513 return pgd; 86378 return pgd;
86514 } 86379 }
86515diff --git a/mm/sparse.c b/mm/sparse.c 86380diff --git a/mm/sparse.c b/mm/sparse.c
86516index 7ca6dc8..6472aa1 100644 86381index 1c91f0d3..485470a 100644
86517--- a/mm/sparse.c 86382--- a/mm/sparse.c
86518+++ b/mm/sparse.c 86383+++ b/mm/sparse.c
86519@@ -783,7 +783,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages) 86384@@ -761,7 +761,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
86520 86385
86521 for (i = 0; i < PAGES_PER_SECTION; i++) { 86386 for (i = 0; i < PAGES_PER_SECTION; i++) {
86522 if (PageHWPoison(&memmap[i])) { 86387 if (PageHWPoison(&memmap[i])) {
@@ -86526,18 +86391,18 @@ index 7ca6dc8..6472aa1 100644
86526 } 86391 }
86527 } 86392 }
86528diff --git a/mm/swap.c b/mm/swap.c 86393diff --git a/mm/swap.c b/mm/swap.c
86529index 8a529a0..154ef26 100644 86394index dfd7d71..ccdf688 100644
86530--- a/mm/swap.c 86395--- a/mm/swap.c
86531+++ b/mm/swap.c 86396+++ b/mm/swap.c
86532@@ -30,6 +30,7 @@ 86397@@ -31,6 +31,7 @@
86533 #include <linux/backing-dev.h>
86534 #include <linux/memcontrol.h> 86398 #include <linux/memcontrol.h>
86535 #include <linux/gfp.h> 86399 #include <linux/gfp.h>
86400 #include <linux/uio.h>
86536+#include <linux/hugetlb.h> 86401+#include <linux/hugetlb.h>
86537 86402
86538 #include "internal.h" 86403 #include "internal.h"
86539 86404
86540@@ -72,6 +73,8 @@ static void __put_compound_page(struct page *page) 86405@@ -73,6 +74,8 @@ static void __put_compound_page(struct page *page)
86541 86406
86542 __page_cache_release(page); 86407 __page_cache_release(page);
86543 dtor = get_compound_page_dtor(page); 86408 dtor = get_compound_page_dtor(page);
@@ -86547,7 +86412,7 @@ index 8a529a0..154ef26 100644
86547 } 86412 }
86548 86413
86549diff --git a/mm/swapfile.c b/mm/swapfile.c 86414diff --git a/mm/swapfile.c b/mm/swapfile.c
86550index a1f7772..9e982ac 100644 86415index 746af55b..7ac94ae 100644
86551--- a/mm/swapfile.c 86416--- a/mm/swapfile.c
86552+++ b/mm/swapfile.c 86417+++ b/mm/swapfile.c
86553@@ -66,7 +66,7 @@ static DEFINE_MUTEX(swapon_mutex); 86418@@ -66,7 +66,7 @@ static DEFINE_MUTEX(swapon_mutex);
@@ -86559,7 +86424,7 @@ index a1f7772..9e982ac 100644
86559 86424
86560 static inline unsigned char swap_count(unsigned char ent) 86425 static inline unsigned char swap_count(unsigned char ent)
86561 { 86426 {
86562@@ -1683,7 +1683,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile) 86427@@ -1684,7 +1684,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
86563 } 86428 }
86564 filp_close(swap_file, NULL); 86429 filp_close(swap_file, NULL);
86565 err = 0; 86430 err = 0;
@@ -86568,7 +86433,7 @@ index a1f7772..9e982ac 100644
86568 wake_up_interruptible(&proc_poll_wait); 86433 wake_up_interruptible(&proc_poll_wait);
86569 86434
86570 out_dput: 86435 out_dput:
86571@@ -1700,8 +1700,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait) 86436@@ -1701,8 +1701,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait)
86572 86437
86573 poll_wait(file, &proc_poll_wait, wait); 86438 poll_wait(file, &proc_poll_wait, wait);
86574 86439
@@ -86579,7 +86444,7 @@ index a1f7772..9e982ac 100644
86579 return POLLIN | POLLRDNORM | POLLERR | POLLPRI; 86444 return POLLIN | POLLRDNORM | POLLERR | POLLPRI;
86580 } 86445 }
86581 86446
86582@@ -1799,7 +1799,7 @@ static int swaps_open(struct inode *inode, struct file *file) 86447@@ -1800,7 +1800,7 @@ static int swaps_open(struct inode *inode, struct file *file)
86583 return ret; 86448 return ret;
86584 86449
86585 seq = file->private_data; 86450 seq = file->private_data;
@@ -86588,7 +86453,7 @@ index a1f7772..9e982ac 100644
86588 return 0; 86453 return 0;
86589 } 86454 }
86590 86455
86591@@ -2142,7 +2142,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags) 86456@@ -2143,7 +2143,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
86592 (frontswap_map) ? "FS" : ""); 86457 (frontswap_map) ? "FS" : "");
86593 86458
86594 mutex_unlock(&swapon_mutex); 86459 mutex_unlock(&swapon_mutex);
@@ -86615,10 +86480,10 @@ index ab1424d..7c5bd5a 100644
86615 mm->unmap_area = arch_unmap_area; 86480 mm->unmap_area = arch_unmap_area;
86616 } 86481 }
86617diff --git a/mm/vmalloc.c b/mm/vmalloc.c 86482diff --git a/mm/vmalloc.c b/mm/vmalloc.c
86618index 0f751f2..2bc3bd1 100644 86483index d365724..6cae7c2 100644
86619--- a/mm/vmalloc.c 86484--- a/mm/vmalloc.c
86620+++ b/mm/vmalloc.c 86485+++ b/mm/vmalloc.c
86621@@ -39,8 +39,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end) 86486@@ -59,8 +59,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
86622 86487
86623 pte = pte_offset_kernel(pmd, addr); 86488 pte = pte_offset_kernel(pmd, addr);
86624 do { 86489 do {
@@ -86640,7 +86505,7 @@ index 0f751f2..2bc3bd1 100644
86640 } while (pte++, addr += PAGE_SIZE, addr != end); 86505 } while (pte++, addr += PAGE_SIZE, addr != end);
86641 } 86506 }
86642 86507
86643@@ -100,16 +111,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr, 86508@@ -120,16 +131,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
86644 pte = pte_alloc_kernel(pmd, addr); 86509 pte = pte_alloc_kernel(pmd, addr);
86645 if (!pte) 86510 if (!pte)
86646 return -ENOMEM; 86511 return -ENOMEM;
@@ -86672,7 +86537,7 @@ index 0f751f2..2bc3bd1 100644
86672 return 0; 86537 return 0;
86673 } 86538 }
86674 86539
86675@@ -119,7 +143,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr, 86540@@ -139,7 +163,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
86676 pmd_t *pmd; 86541 pmd_t *pmd;
86677 unsigned long next; 86542 unsigned long next;
86678 86543
@@ -86681,7 +86546,7 @@ index 0f751f2..2bc3bd1 100644
86681 if (!pmd) 86546 if (!pmd)
86682 return -ENOMEM; 86547 return -ENOMEM;
86683 do { 86548 do {
86684@@ -136,7 +160,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr, 86549@@ -156,7 +180,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
86685 pud_t *pud; 86550 pud_t *pud;
86686 unsigned long next; 86551 unsigned long next;
86687 86552
@@ -86690,7 +86555,7 @@ index 0f751f2..2bc3bd1 100644
86690 if (!pud) 86555 if (!pud)
86691 return -ENOMEM; 86556 return -ENOMEM;
86692 do { 86557 do {
86693@@ -196,6 +220,12 @@ int is_vmalloc_or_module_addr(const void *x) 86558@@ -216,6 +240,12 @@ int is_vmalloc_or_module_addr(const void *x)
86694 if (addr >= MODULES_VADDR && addr < MODULES_END) 86559 if (addr >= MODULES_VADDR && addr < MODULES_END)
86695 return 1; 86560 return 1;
86696 #endif 86561 #endif
@@ -86703,7 +86568,7 @@ index 0f751f2..2bc3bd1 100644
86703 return is_vmalloc_addr(x); 86568 return is_vmalloc_addr(x);
86704 } 86569 }
86705 86570
86706@@ -216,8 +246,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr) 86571@@ -236,8 +266,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
86707 86572
86708 if (!pgd_none(*pgd)) { 86573 if (!pgd_none(*pgd)) {
86709 pud_t *pud = pud_offset(pgd, addr); 86574 pud_t *pud = pud_offset(pgd, addr);
@@ -86718,7 +86583,7 @@ index 0f751f2..2bc3bd1 100644
86718 if (!pmd_none(*pmd)) { 86583 if (!pmd_none(*pmd)) {
86719 pte_t *ptep, pte; 86584 pte_t *ptep, pte;
86720 86585
86721@@ -329,7 +365,7 @@ static void purge_vmap_area_lazy(void); 86586@@ -339,7 +375,7 @@ static void purge_vmap_area_lazy(void);
86722 * Allocate a region of KVA of the specified size and alignment, within the 86587 * Allocate a region of KVA of the specified size and alignment, within the
86723 * vstart and vend. 86588 * vstart and vend.
86724 */ 86589 */
@@ -86727,7 +86592,7 @@ index 0f751f2..2bc3bd1 100644
86727 unsigned long align, 86592 unsigned long align,
86728 unsigned long vstart, unsigned long vend, 86593 unsigned long vstart, unsigned long vend,
86729 int node, gfp_t gfp_mask) 86594 int node, gfp_t gfp_mask)
86730@@ -1328,6 +1364,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, 86595@@ -1337,6 +1373,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
86731 struct vm_struct *area; 86596 struct vm_struct *area;
86732 86597
86733 BUG_ON(in_interrupt()); 86598 BUG_ON(in_interrupt());
@@ -86744,7 +86609,7 @@ index 0f751f2..2bc3bd1 100644
86744 if (flags & VM_IOREMAP) { 86609 if (flags & VM_IOREMAP) {
86745 int bit = fls(size); 86610 int bit = fls(size);
86746 86611
86747@@ -1569,6 +1615,11 @@ void *vmap(struct page **pages, unsigned int count, 86612@@ -1581,6 +1627,11 @@ void *vmap(struct page **pages, unsigned int count,
86748 if (count > totalram_pages) 86613 if (count > totalram_pages)
86749 return NULL; 86614 return NULL;
86750 86615
@@ -86756,7 +86621,7 @@ index 0f751f2..2bc3bd1 100644
86756 area = get_vm_area_caller((count << PAGE_SHIFT), flags, 86621 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
86757 __builtin_return_address(0)); 86622 __builtin_return_address(0));
86758 if (!area) 86623 if (!area)
86759@@ -1670,6 +1721,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align, 86624@@ -1682,6 +1733,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
86760 if (!size || (size >> PAGE_SHIFT) > totalram_pages) 86625 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
86761 goto fail; 86626 goto fail;
86762 86627
@@ -86770,7 +86635,7 @@ index 0f751f2..2bc3bd1 100644
86770 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNLIST, 86635 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNLIST,
86771 start, end, node, gfp_mask, caller); 86636 start, end, node, gfp_mask, caller);
86772 if (!area) 86637 if (!area)
86773@@ -1845,10 +1903,9 @@ EXPORT_SYMBOL(vzalloc_node); 86638@@ -1858,10 +1916,9 @@ EXPORT_SYMBOL(vzalloc_node);
86774 * For tight control over page level allocator and protection flags 86639 * For tight control over page level allocator and protection flags
86775 * use __vmalloc() instead. 86640 * use __vmalloc() instead.
86776 */ 86641 */
@@ -86782,7 +86647,7 @@ index 0f751f2..2bc3bd1 100644
86782 NUMA_NO_NODE, __builtin_return_address(0)); 86647 NUMA_NO_NODE, __builtin_return_address(0));
86783 } 86648 }
86784 86649
86785@@ -2139,6 +2196,8 @@ int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, 86650@@ -2168,6 +2225,8 @@ int remap_vmalloc_range(struct vm_area_struct *vma, void *addr,
86786 unsigned long uaddr = vma->vm_start; 86651 unsigned long uaddr = vma->vm_start;
86787 unsigned long usize = vma->vm_end - vma->vm_start; 86652 unsigned long usize = vma->vm_end - vma->vm_start;
86788 86653
@@ -86791,7 +86656,7 @@ index 0f751f2..2bc3bd1 100644
86791 if ((PAGE_SIZE-1) & (unsigned long)addr) 86656 if ((PAGE_SIZE-1) & (unsigned long)addr)
86792 return -EINVAL; 86657 return -EINVAL;
86793 86658
86794@@ -2578,7 +2637,11 @@ static int s_show(struct seq_file *m, void *p) 86659@@ -2629,7 +2688,11 @@ static int s_show(struct seq_file *m, void *p)
86795 v->addr, v->addr + v->size, v->size); 86660 v->addr, v->addr + v->size, v->size);
86796 86661
86797 if (v->caller) 86662 if (v->caller)
@@ -86804,10 +86669,10 @@ index 0f751f2..2bc3bd1 100644
86804 if (v->nr_pages) 86669 if (v->nr_pages)
86805 seq_printf(m, " pages=%d", v->nr_pages); 86670 seq_printf(m, " pages=%d", v->nr_pages);
86806diff --git a/mm/vmstat.c b/mm/vmstat.c 86671diff --git a/mm/vmstat.c b/mm/vmstat.c
86807index e1d8ed1..253fa3c 100644 86672index f42745e..62f8346 100644
86808--- a/mm/vmstat.c 86673--- a/mm/vmstat.c
86809+++ b/mm/vmstat.c 86674+++ b/mm/vmstat.c
86810@@ -78,7 +78,7 @@ void vm_events_fold_cpu(int cpu) 86675@@ -76,7 +76,7 @@ void vm_events_fold_cpu(int cpu)
86811 * 86676 *
86812 * vm_stat contains the global counters 86677 * vm_stat contains the global counters
86813 */ 86678 */
@@ -86816,7 +86681,7 @@ index e1d8ed1..253fa3c 100644
86816 EXPORT_SYMBOL(vm_stat); 86681 EXPORT_SYMBOL(vm_stat);
86817 86682
86818 #ifdef CONFIG_SMP 86683 #ifdef CONFIG_SMP
86819@@ -454,7 +454,7 @@ void refresh_cpu_vm_stats(int cpu) 86684@@ -452,7 +452,7 @@ void refresh_cpu_vm_stats(int cpu)
86820 v = p->vm_stat_diff[i]; 86685 v = p->vm_stat_diff[i];
86821 p->vm_stat_diff[i] = 0; 86686 p->vm_stat_diff[i] = 0;
86822 local_irq_restore(flags); 86687 local_irq_restore(flags);
@@ -86825,7 +86690,7 @@ index e1d8ed1..253fa3c 100644
86825 global_diff[i] += v; 86690 global_diff[i] += v;
86826 #ifdef CONFIG_NUMA 86691 #ifdef CONFIG_NUMA
86827 /* 3 seconds idle till flush */ 86692 /* 3 seconds idle till flush */
86828@@ -492,7 +492,7 @@ void refresh_cpu_vm_stats(int cpu) 86693@@ -490,7 +490,7 @@ void refresh_cpu_vm_stats(int cpu)
86829 86694
86830 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++) 86695 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
86831 if (global_diff[i]) 86696 if (global_diff[i])
@@ -86833,8 +86698,8 @@ index e1d8ed1..253fa3c 100644
86833+ atomic_long_add_unchecked(global_diff[i], &vm_stat[i]); 86698+ atomic_long_add_unchecked(global_diff[i], &vm_stat[i]);
86834 } 86699 }
86835 86700
86836 void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset) 86701 /*
86837@@ -503,8 +503,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset) 86702@@ -505,8 +505,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset)
86838 if (pset->vm_stat_diff[i]) { 86703 if (pset->vm_stat_diff[i]) {
86839 int v = pset->vm_stat_diff[i]; 86704 int v = pset->vm_stat_diff[i];
86840 pset->vm_stat_diff[i] = 0; 86705 pset->vm_stat_diff[i] = 0;
@@ -86845,7 +86710,7 @@ index e1d8ed1..253fa3c 100644
86845 } 86710 }
86846 } 86711 }
86847 #endif 86712 #endif
86848@@ -1224,7 +1224,7 @@ static int __cpuinit vmstat_cpuup_callback(struct notifier_block *nfb, 86713@@ -1226,7 +1226,7 @@ static int __cpuinit vmstat_cpuup_callback(struct notifier_block *nfb,
86849 return NOTIFY_OK; 86714 return NOTIFY_OK;
86850 } 86715 }
86851 86716
@@ -86854,7 +86719,7 @@ index e1d8ed1..253fa3c 100644
86854 { &vmstat_cpuup_callback, NULL, 0 }; 86719 { &vmstat_cpuup_callback, NULL, 0 };
86855 #endif 86720 #endif
86856 86721
86857@@ -1239,10 +1239,20 @@ static int __init setup_vmstat(void) 86722@@ -1241,10 +1241,20 @@ static int __init setup_vmstat(void)
86858 start_cpu_timer(cpu); 86723 start_cpu_timer(cpu);
86859 #endif 86724 #endif
86860 #ifdef CONFIG_PROC_FS 86725 #ifdef CONFIG_PROC_FS
@@ -86880,24 +86745,10 @@ index e1d8ed1..253fa3c 100644
86880 return 0; 86745 return 0;
86881 } 86746 }
86882diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c 86747diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
86883index 85addcd..c429a13 100644 86748index 9424f37..6aabf19 100644
86884--- a/net/8021q/vlan.c 86749--- a/net/8021q/vlan.c
86885+++ b/net/8021q/vlan.c 86750+++ b/net/8021q/vlan.c
86886@@ -114,6 +114,13 @@ void unregister_vlan_dev(struct net_device *dev, struct list_head *head) 86751@@ -469,7 +469,7 @@ out:
86887 if (vlan_id)
86888 vlan_vid_del(real_dev, vlan_id);
86889
86890+ /* Take it out of our own structures, but be sure to interlock with
86891+ * HW accelerating devices or SW vlan input packet processing if
86892+ * VLAN is not 0 (leave it there for 802.1p).
86893+ */
86894+ if (vlan_id)
86895+ vlan_vid_del(real_dev, vlan_id);
86896+
86897 /* Get rid of the vlan's reference to real_dev */
86898 dev_put(real_dev);
86899 }
86900@@ -496,7 +503,7 @@ out:
86901 return NOTIFY_DONE; 86752 return NOTIFY_DONE;
86902 } 86753 }
86903 86754
@@ -86906,7 +86757,7 @@ index 85addcd..c429a13 100644
86906 .notifier_call = vlan_device_event, 86757 .notifier_call = vlan_device_event,
86907 }; 86758 };
86908 86759
86909@@ -571,8 +578,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg) 86760@@ -544,8 +544,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
86910 err = -EPERM; 86761 err = -EPERM;
86911 if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) 86762 if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
86912 break; 86763 break;
@@ -86916,44 +86767,6 @@ index 85addcd..c429a13 100644
86916 struct vlan_net *vn; 86767 struct vlan_net *vn;
86917 86768
86918 vn = net_generic(net, vlan_net_id); 86769 vn = net_generic(net, vlan_net_id);
86919diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
86920index f3b6f51..6c205fc 100644
86921--- a/net/8021q/vlan_core.c
86922+++ b/net/8021q/vlan_core.c
86923@@ -8,7 +8,7 @@
86924 bool vlan_do_receive(struct sk_buff **skbp)
86925 {
86926 struct sk_buff *skb = *skbp;
86927- u16 vlan_id = skb->vlan_tci & VLAN_VID_MASK;
86928+ u16 vlan_id = vlan_tx_tag_get_id(skb);
86929 struct net_device *vlan_dev;
86930 struct vlan_pcpu_stats *rx_stats;
86931
86932diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
86933index 63bd98c..c09b2b0 100644
86934--- a/net/8021q/vlan_dev.c
86935+++ b/net/8021q/vlan_dev.c
86936@@ -73,6 +73,8 @@ vlan_dev_get_egress_qos_mask(struct net_device *dev, struct sk_buff *skb)
86937 {
86938 struct vlan_priority_tci_mapping *mp;
86939
86940+ smp_rmb(); /* coupled with smp_wmb() in vlan_dev_set_egress_priority() */
86941+
86942 mp = vlan_dev_priv(dev)->egress_priority_map[(skb->priority & 0xF)];
86943 while (mp) {
86944 if (mp->priority == skb->priority) {
86945@@ -248,6 +250,11 @@ int vlan_dev_set_egress_priority(const struct net_device *dev,
86946 np->next = mp;
86947 np->priority = skb_prio;
86948 np->vlan_qos = vlan_qos;
86949+ /* Before inserting this element in hash table, make sure all its fields
86950+ * are committed to memory.
86951+ * coupled with smp_rmb() in vlan_dev_get_egress_qos_mask()
86952+ */
86953+ smp_wmb();
86954 vlan->egress_priority_map[skb_prio & 0xF] = np;
86955 if (vlan_qos)
86956 vlan->nr_egress_mappings++;
86957diff --git a/net/9p/mod.c b/net/9p/mod.c 86770diff --git a/net/9p/mod.c b/net/9p/mod.c
86958index 6ab36ae..6f1841b 100644 86771index 6ab36ae..6f1841b 100644
86959--- a/net/9p/mod.c 86772--- a/net/9p/mod.c
@@ -86976,27 +86789,6 @@ index 6ab36ae..6f1841b 100644
86976 spin_unlock(&v9fs_trans_lock); 86789 spin_unlock(&v9fs_trans_lock);
86977 } 86790 }
86978 EXPORT_SYMBOL(v9fs_unregister_trans); 86791 EXPORT_SYMBOL(v9fs_unregister_trans);
86979diff --git a/net/9p/trans_common.c b/net/9p/trans_common.c
86980index de8df95..2ee3879 100644
86981--- a/net/9p/trans_common.c
86982+++ b/net/9p/trans_common.c
86983@@ -24,11 +24,11 @@
86984 */
86985 void p9_release_pages(struct page **pages, int nr_pages)
86986 {
86987- int i = 0;
86988- while (pages[i] && nr_pages--) {
86989- put_page(pages[i]);
86990- i++;
86991- }
86992+ int i;
86993+
86994+ for (i = 0; i < nr_pages; i++)
86995+ if (pages[i])
86996+ put_page(pages[i]);
86997 }
86998 EXPORT_SYMBOL(p9_release_pages);
86999
87000diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c 86792diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
87001index 02efb25..41541a9 100644 86793index 02efb25..41541a9 100644
87002--- a/net/9p/trans_fd.c 86794--- a/net/9p/trans_fd.c
@@ -87051,7 +86843,7 @@ index 876fbe8..8bbea9f 100644
87051 #undef __HANDLE_ITEM 86843 #undef __HANDLE_ITEM
87052 } 86844 }
87053diff --git a/net/atm/lec.h b/net/atm/lec.h 86845diff --git a/net/atm/lec.h b/net/atm/lec.h
87054index a86aff9..3a0d6f6 100644 86846index 4149db1..f2ab682 100644
87055--- a/net/atm/lec.h 86847--- a/net/atm/lec.h
87056+++ b/net/atm/lec.h 86848+++ b/net/atm/lec.h
87057@@ -48,7 +48,7 @@ struct lane2_ops { 86849@@ -48,7 +48,7 @@ struct lane2_ops {
@@ -87064,7 +86856,7 @@ index a86aff9..3a0d6f6 100644
87064 /* 86856 /*
87065 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType 86857 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
87066diff --git a/net/atm/proc.c b/net/atm/proc.c 86858diff --git a/net/atm/proc.c b/net/atm/proc.c
87067index 6ac35ff..ac0e136 100644 86859index bbb6461..cf04016 100644
87068--- a/net/atm/proc.c 86860--- a/net/atm/proc.c
87069+++ b/net/atm/proc.c 86861+++ b/net/atm/proc.c
87070@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal, 86862@@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal,
@@ -87116,10 +86908,10 @@ index d5744b7..506bae3 100644
87116 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL); 86908 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
87117 if (!table) 86909 if (!table)
87118diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c 86910diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
87119index a5bb0a7..e1d8b97 100644 86911index f680ee1..97e3542 100644
87120--- a/net/batman-adv/bat_iv_ogm.c 86912--- a/net/batman-adv/bat_iv_ogm.c
87121+++ b/net/batman-adv/bat_iv_ogm.c 86913+++ b/net/batman-adv/bat_iv_ogm.c
87122@@ -63,7 +63,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface) 86914@@ -79,7 +79,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
87123 86915
87124 /* randomize initial seqno to avoid collision */ 86916 /* randomize initial seqno to avoid collision */
87125 get_random_bytes(&random_seqno, sizeof(random_seqno)); 86917 get_random_bytes(&random_seqno, sizeof(random_seqno));
@@ -87128,7 +86920,7 @@ index a5bb0a7..e1d8b97 100644
87128 86920
87129 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN; 86921 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
87130 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC); 86922 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
87131@@ -611,9 +611,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface) 86923@@ -627,9 +627,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
87132 batadv_ogm_packet = (struct batadv_ogm_packet *)(*ogm_buff); 86924 batadv_ogm_packet = (struct batadv_ogm_packet *)(*ogm_buff);
87133 86925
87134 /* change sequence number to network order */ 86926 /* change sequence number to network order */
@@ -87140,7 +86932,7 @@ index a5bb0a7..e1d8b97 100644
87140 86932
87141 batadv_ogm_packet->ttvn = atomic_read(&bat_priv->tt.vn); 86933 batadv_ogm_packet->ttvn = atomic_read(&bat_priv->tt.vn);
87142 batadv_ogm_packet->tt_crc = htons(bat_priv->tt.local_crc); 86934 batadv_ogm_packet->tt_crc = htons(bat_priv->tt.local_crc);
87143@@ -1013,7 +1013,7 @@ static void batadv_iv_ogm_process(const struct ethhdr *ethhdr, 86935@@ -1037,7 +1037,7 @@ static void batadv_iv_ogm_process(const struct ethhdr *ethhdr,
87144 return; 86936 return;
87145 86937
87146 /* could be changed by schedule_own_packet() */ 86938 /* could be changed by schedule_own_packet() */
@@ -87150,10 +86942,10 @@ index a5bb0a7..e1d8b97 100644
87150 if (batadv_ogm_packet->flags & BATADV_DIRECTLINK) 86942 if (batadv_ogm_packet->flags & BATADV_DIRECTLINK)
87151 has_directlink_flag = 1; 86943 has_directlink_flag = 1;
87152diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c 86944diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
87153index 368219e..53f56f9 100644 86945index 522243a..b48c0ef 100644
87154--- a/net/batman-adv/hard-interface.c 86946--- a/net/batman-adv/hard-interface.c
87155+++ b/net/batman-adv/hard-interface.c 86947+++ b/net/batman-adv/hard-interface.c
87156@@ -370,7 +370,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface, 86948@@ -401,7 +401,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
87157 hard_iface->batman_adv_ptype.dev = hard_iface->net_dev; 86949 hard_iface->batman_adv_ptype.dev = hard_iface->net_dev;
87158 dev_add_pack(&hard_iface->batman_adv_ptype); 86950 dev_add_pack(&hard_iface->batman_adv_ptype);
87159 86951
@@ -87162,7 +86954,7 @@ index 368219e..53f56f9 100644
87162 batadv_info(hard_iface->soft_iface, "Adding interface: %s\n", 86954 batadv_info(hard_iface->soft_iface, "Adding interface: %s\n",
87163 hard_iface->net_dev->name); 86955 hard_iface->net_dev->name);
87164 86956
87165@@ -514,7 +514,7 @@ batadv_hardif_add_interface(struct net_device *net_dev) 86957@@ -550,7 +550,7 @@ batadv_hardif_add_interface(struct net_device *net_dev)
87166 /* This can't be called via a bat_priv callback because 86958 /* This can't be called via a bat_priv callback because
87167 * we have no bat_priv yet. 86959 * we have no bat_priv yet.
87168 */ 86960 */
@@ -87172,10 +86964,10 @@ index 368219e..53f56f9 100644
87172 86964
87173 return hard_iface; 86965 return hard_iface;
87174diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c 86966diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
87175index 2711e87..4ca48fa 100644 86967index 819dfb0..9a672d1 100644
87176--- a/net/batman-adv/soft-interface.c 86968--- a/net/batman-adv/soft-interface.c
87177+++ b/net/batman-adv/soft-interface.c 86969+++ b/net/batman-adv/soft-interface.c
87178@@ -252,7 +252,7 @@ static int batadv_interface_tx(struct sk_buff *skb, 86970@@ -253,7 +253,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
87179 primary_if->net_dev->dev_addr, ETH_ALEN); 86971 primary_if->net_dev->dev_addr, ETH_ALEN);
87180 86972
87181 /* set broadcast sequence number */ 86973 /* set broadcast sequence number */
@@ -87184,7 +86976,7 @@ index 2711e87..4ca48fa 100644
87184 bcast_packet->seqno = htonl(seqno); 86976 bcast_packet->seqno = htonl(seqno);
87185 86977
87186 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay); 86978 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
87187@@ -527,7 +527,7 @@ struct net_device *batadv_softif_create(const char *name) 86979@@ -472,7 +472,7 @@ static int batadv_softif_init_late(struct net_device *dev)
87188 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN); 86980 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
87189 86981
87190 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE); 86982 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
@@ -87194,7 +86986,7 @@ index 2711e87..4ca48fa 100644
87194 atomic_set(&bat_priv->tt.local_changes, 0); 86986 atomic_set(&bat_priv->tt.local_changes, 0);
87195 atomic_set(&bat_priv->tt.ogm_append_cnt, 0); 86987 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
87196diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h 86988diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
87197index 4cd87a0..348e705 100644 86989index aba8364..50fcbb8 100644
87198--- a/net/batman-adv/types.h 86990--- a/net/batman-adv/types.h
87199+++ b/net/batman-adv/types.h 86991+++ b/net/batman-adv/types.h
87200@@ -51,7 +51,7 @@ 86992@@ -51,7 +51,7 @@
@@ -87215,7 +87007,7 @@ index 4cd87a0..348e705 100644
87215 struct kobject *hardif_obj; 87007 struct kobject *hardif_obj;
87216 atomic_t refcount; 87008 atomic_t refcount;
87217 struct packet_type batman_adv_ptype; 87009 struct packet_type batman_adv_ptype;
87218@@ -495,7 +495,7 @@ struct batadv_priv { 87010@@ -558,7 +558,7 @@ struct batadv_priv {
87219 #ifdef CONFIG_BATMAN_ADV_DEBUG 87011 #ifdef CONFIG_BATMAN_ADV_DEBUG
87220 atomic_t log_level; 87012 atomic_t log_level;
87221 #endif 87013 #endif
@@ -87225,7 +87017,7 @@ index 4cd87a0..348e705 100644
87225 atomic_t batman_queue_left; 87017 atomic_t batman_queue_left;
87226 char num_ifaces; 87018 char num_ifaces;
87227diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c 87019diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
87228index 50e079f..49ce2d2 100644 87020index 0bb3b59..ffcbf2f 100644
87229--- a/net/batman-adv/unicast.c 87021--- a/net/batman-adv/unicast.c
87230+++ b/net/batman-adv/unicast.c 87022+++ b/net/batman-adv/unicast.c
87231@@ -270,7 +270,7 @@ int batadv_frag_send_skb(struct sk_buff *skb, struct batadv_priv *bat_priv, 87023@@ -270,7 +270,7 @@ int batadv_frag_send_skb(struct sk_buff *skb, struct batadv_priv *bat_priv,
@@ -87238,10 +87030,10 @@ index 50e079f..49ce2d2 100644
87238 frag2->seqno = htons(seqno); 87030 frag2->seqno = htons(seqno);
87239 87031
87240diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c 87032diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
87241index b88605f..958e3e2 100644 87033index ace5e55..a65a1c0 100644
87242--- a/net/bluetooth/hci_core.c 87034--- a/net/bluetooth/hci_core.c
87243+++ b/net/bluetooth/hci_core.c 87035+++ b/net/bluetooth/hci_core.c
87244@@ -1793,16 +1793,16 @@ int hci_register_dev(struct hci_dev *hdev) 87036@@ -2211,16 +2211,16 @@ int hci_register_dev(struct hci_dev *hdev)
87245 list_add(&hdev->list, &hci_dev_list); 87037 list_add(&hdev->list, &hci_dev_list);
87246 write_unlock(&hci_dev_list_lock); 87038 write_unlock(&hci_dev_list_lock);
87247 87039
@@ -87263,10 +87055,10 @@ index b88605f..958e3e2 100644
87263 destroy_workqueue(hdev->workqueue); 87055 destroy_workqueue(hdev->workqueue);
87264 error = -ENOMEM; 87056 error = -ENOMEM;
87265diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c 87057diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
87266index 6a93614..1415549 100644 87058index 9bd7d95..6c4884f 100644
87267--- a/net/bluetooth/hci_sock.c 87059--- a/net/bluetooth/hci_sock.c
87268+++ b/net/bluetooth/hci_sock.c 87060+++ b/net/bluetooth/hci_sock.c
87269@@ -929,7 +929,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname, 87061@@ -934,7 +934,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
87270 uf.event_mask[1] = *((u32 *) f->event_mask + 1); 87062 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
87271 } 87063 }
87272 87064
@@ -87276,10 +87068,10 @@ index 6a93614..1415549 100644
87276 err = -EFAULT; 87068 err = -EFAULT;
87277 break; 87069 break;
87278diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c 87070diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
87279index 04b32e1..dfc8ec1 100644 87071index 68843a2..30e9342 100644
87280--- a/net/bluetooth/l2cap_core.c 87072--- a/net/bluetooth/l2cap_core.c
87281+++ b/net/bluetooth/l2cap_core.c 87073+++ b/net/bluetooth/l2cap_core.c
87282@@ -3398,8 +3398,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len, 87074@@ -3507,8 +3507,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
87283 break; 87075 break;
87284 87076
87285 case L2CAP_CONF_RFC: 87077 case L2CAP_CONF_RFC:
@@ -87293,10 +87085,10 @@ index 04b32e1..dfc8ec1 100644
87293 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) && 87085 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
87294 rfc.mode != chan->mode) 87086 rfc.mode != chan->mode)
87295diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c 87087diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
87296index 1bcfb84..dad9f98 100644 87088index 36fed40..be2eeb2 100644
87297--- a/net/bluetooth/l2cap_sock.c 87089--- a/net/bluetooth/l2cap_sock.c
87298+++ b/net/bluetooth/l2cap_sock.c 87090+++ b/net/bluetooth/l2cap_sock.c
87299@@ -479,7 +479,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, 87091@@ -485,7 +485,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
87300 struct sock *sk = sock->sk; 87092 struct sock *sk = sock->sk;
87301 struct l2cap_chan *chan = l2cap_pi(sk)->chan; 87093 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
87302 struct l2cap_options opts; 87094 struct l2cap_options opts;
@@ -87306,7 +87098,7 @@ index 1bcfb84..dad9f98 100644
87306 u32 opt; 87098 u32 opt;
87307 87099
87308 BT_DBG("sk %p", sk); 87100 BT_DBG("sk %p", sk);
87309@@ -501,7 +502,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname, 87101@@ -507,7 +508,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
87310 opts.max_tx = chan->max_tx; 87102 opts.max_tx = chan->max_tx;
87311 opts.txwin_size = chan->tx_win; 87103 opts.txwin_size = chan->tx_win;
87312 87104
@@ -87315,7 +87107,7 @@ index 1bcfb84..dad9f98 100644
87315 if (copy_from_user((char *) &opts, optval, len)) { 87107 if (copy_from_user((char *) &opts, optval, len)) {
87316 err = -EFAULT; 87108 err = -EFAULT;
87317 break; 87109 break;
87318@@ -581,7 +582,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, 87110@@ -587,7 +588,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
87319 struct bt_security sec; 87111 struct bt_security sec;
87320 struct bt_power pwr; 87112 struct bt_power pwr;
87321 struct l2cap_conn *conn; 87113 struct l2cap_conn *conn;
@@ -87325,7 +87117,7 @@ index 1bcfb84..dad9f98 100644
87325 u32 opt; 87117 u32 opt;
87326 87118
87327 BT_DBG("sk %p", sk); 87119 BT_DBG("sk %p", sk);
87328@@ -604,7 +606,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, 87120@@ -610,7 +612,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
87329 87121
87330 sec.level = BT_SECURITY_LOW; 87122 sec.level = BT_SECURITY_LOW;
87331 87123
@@ -87334,7 +87126,7 @@ index 1bcfb84..dad9f98 100644
87334 if (copy_from_user((char *) &sec, optval, len)) { 87126 if (copy_from_user((char *) &sec, optval, len)) {
87335 err = -EFAULT; 87127 err = -EFAULT;
87336 break; 87128 break;
87337@@ -701,7 +703,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname, 87129@@ -707,7 +709,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
87338 87130
87339 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON; 87131 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
87340 87132
@@ -87344,7 +87136,7 @@ index 1bcfb84..dad9f98 100644
87344 err = -EFAULT; 87136 err = -EFAULT;
87345 break; 87137 break;
87346diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c 87138diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
87347index 7c9224b..381009e 100644 87139index 30b3721..c1bd0a0 100644
87348--- a/net/bluetooth/rfcomm/sock.c 87140--- a/net/bluetooth/rfcomm/sock.c
87349+++ b/net/bluetooth/rfcomm/sock.c 87141+++ b/net/bluetooth/rfcomm/sock.c
87350@@ -666,7 +666,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c 87142@@ -666,7 +666,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
@@ -87404,24 +87196,8 @@ index b6e44ad..5b0d514 100644
87404 spin_unlock_irqrestore(&dev->port.lock, flags); 87196 spin_unlock_irqrestore(&dev->port.lock, flags);
87405 if (dev->tty_dev->parent) 87197 if (dev->tty_dev->parent)
87406 device_move(dev->tty_dev, NULL, DPM_ORDER_DEV_LAST); 87198 device_move(dev->tty_dev, NULL, DPM_ORDER_DEV_LAST);
87407diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
87408index 923fbea..642566d 100644
87409--- a/net/bridge/br_multicast.c
87410+++ b/net/bridge/br_multicast.c
87411@@ -465,8 +465,9 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br,
87412 skb_set_transport_header(skb, skb->len);
87413 mldq = (struct mld_msg *) icmp6_hdr(skb);
87414
87415- interval = ipv6_addr_any(group) ? br->multicast_last_member_interval :
87416- br->multicast_query_response_interval;
87417+ interval = ipv6_addr_any(group) ?
87418+ br->multicast_query_response_interval :
87419+ br->multicast_last_member_interval;
87420
87421 mldq->mld_type = ICMPV6_MGM_QUERY;
87422 mldq->mld_code = 0;
87423diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c 87199diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
87424index 8d493c9..3849e49 100644 87200index 3d110c4..4e1b2eb 100644
87425--- a/net/bridge/netfilter/ebtables.c 87201--- a/net/bridge/netfilter/ebtables.c
87426+++ b/net/bridge/netfilter/ebtables.c 87202+++ b/net/bridge/netfilter/ebtables.c
87427@@ -1525,7 +1525,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len) 87203@@ -1525,7 +1525,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
@@ -87452,7 +87228,7 @@ index 8d493c9..3849e49 100644
87452 break; 87228 break;
87453 } 87229 }
87454diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c 87230diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
87455index a376ec1..1fbd6be 100644 87231index 2bd4b58..0dc30a1 100644
87456--- a/net/caif/cfctrl.c 87232--- a/net/caif/cfctrl.c
87457+++ b/net/caif/cfctrl.c 87233+++ b/net/caif/cfctrl.c
87458@@ -10,6 +10,7 @@ 87234@@ -10,6 +10,7 @@
@@ -87495,10 +87271,10 @@ index a376ec1..1fbd6be 100644
87495 list_del(&p->list); 87271 list_del(&p->list);
87496 goto out; 87272 goto out;
87497diff --git a/net/can/af_can.c b/net/can/af_can.c 87273diff --git a/net/can/af_can.c b/net/can/af_can.c
87498index c48e522..1223690 100644 87274index c4e5085..aa9efdf 100644
87499--- a/net/can/af_can.c 87275--- a/net/can/af_can.c
87500+++ b/net/can/af_can.c 87276+++ b/net/can/af_can.c
87501@@ -870,7 +870,7 @@ static const struct net_proto_family can_family_ops = { 87277@@ -862,7 +862,7 @@ static const struct net_proto_family can_family_ops = {
87502 }; 87278 };
87503 87279
87504 /* notifier block for netdevice event */ 87280 /* notifier block for netdevice event */
@@ -87508,7 +87284,7 @@ index c48e522..1223690 100644
87508 }; 87284 };
87509 87285
87510diff --git a/net/can/gw.c b/net/can/gw.c 87286diff --git a/net/can/gw.c b/net/can/gw.c
87511index 117814a..ad4fb73 100644 87287index 3ee690e..00d581b 100644
87512--- a/net/can/gw.c 87288--- a/net/can/gw.c
87513+++ b/net/can/gw.c 87289+++ b/net/can/gw.c
87514@@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops, 87290@@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops,
@@ -87519,7 +87295,7 @@ index 117814a..ad4fb73 100644
87519 87295
87520 static struct kmem_cache *cgw_cache __read_mostly; 87296 static struct kmem_cache *cgw_cache __read_mostly;
87521 87297
87522@@ -928,6 +927,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg) 87298@@ -927,6 +926,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
87523 return err; 87299 return err;
87524 } 87300 }
87525 87301
@@ -87530,7 +87306,7 @@ index 117814a..ad4fb73 100644
87530 static __init int cgw_module_init(void) 87306 static __init int cgw_module_init(void)
87531 { 87307 {
87532 /* sanitize given module parameter */ 87308 /* sanitize given module parameter */
87533@@ -943,7 +946,6 @@ static __init int cgw_module_init(void) 87309@@ -942,7 +945,6 @@ static __init int cgw_module_init(void)
87534 return -ENOMEM; 87310 return -ENOMEM;
87535 87311
87536 /* set notifier */ 87312 /* set notifier */
@@ -87679,10 +87455,10 @@ index f0a1ba6..0541331 100644
87679 a0 = a[0]; 87455 a0 = a[0];
87680 a1 = a[1]; 87456 a1 = a[1];
87681diff --git a/net/core/datagram.c b/net/core/datagram.c 87457diff --git a/net/core/datagram.c b/net/core/datagram.c
87682index 368f9c3..f82d4a3 100644 87458index b71423d..0360434 100644
87683--- a/net/core/datagram.c 87459--- a/net/core/datagram.c
87684+++ b/net/core/datagram.c 87460+++ b/net/core/datagram.c
87685@@ -289,7 +289,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags) 87461@@ -295,7 +295,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
87686 } 87462 }
87687 87463
87688 kfree_skb(skb); 87464 kfree_skb(skb);
@@ -87692,10 +87468,10 @@ index 368f9c3..f82d4a3 100644
87692 87468
87693 return err; 87469 return err;
87694diff --git a/net/core/dev.c b/net/core/dev.c 87470diff --git a/net/core/dev.c b/net/core/dev.c
87695index c9eb9e6..9186a82 100644 87471index 7ddbb31..3902452 100644
87696--- a/net/core/dev.c 87472--- a/net/core/dev.c
87697+++ b/net/core/dev.c 87473+++ b/net/core/dev.c
87698@@ -1617,7 +1617,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb) 87474@@ -1649,7 +1649,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
87699 { 87475 {
87700 if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) { 87476 if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
87701 if (skb_copy_ubufs(skb, GFP_ATOMIC)) { 87477 if (skb_copy_ubufs(skb, GFP_ATOMIC)) {
@@ -87704,7 +87480,7 @@ index c9eb9e6..9186a82 100644
87704 kfree_skb(skb); 87480 kfree_skb(skb);
87705 return NET_RX_DROP; 87481 return NET_RX_DROP;
87706 } 87482 }
87707@@ -1626,7 +1626,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb) 87483@@ -1658,7 +1658,7 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
87708 skb_orphan(skb); 87484 skb_orphan(skb);
87709 87485
87710 if (unlikely(!is_skb_forwardable(dev, skb))) { 87486 if (unlikely(!is_skb_forwardable(dev, skb))) {
@@ -87713,7 +87489,7 @@ index c9eb9e6..9186a82 100644
87713 kfree_skb(skb); 87489 kfree_skb(skb);
87714 return NET_RX_DROP; 87490 return NET_RX_DROP;
87715 } 87491 }
87716@@ -2351,7 +2351,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb) 87492@@ -2404,7 +2404,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
87717 87493
87718 struct dev_gso_cb { 87494 struct dev_gso_cb {
87719 void (*destructor)(struct sk_buff *skb); 87495 void (*destructor)(struct sk_buff *skb);
@@ -87722,7 +87498,7 @@ index c9eb9e6..9186a82 100644
87722 87498
87723 #define DEV_GSO_CB(skb) ((struct dev_gso_cb *)(skb)->cb) 87499 #define DEV_GSO_CB(skb) ((struct dev_gso_cb *)(skb)->cb)
87724 87500
87725@@ -3099,7 +3099,7 @@ enqueue: 87501@@ -3139,7 +3139,7 @@ enqueue:
87726 87502
87727 local_irq_restore(flags); 87503 local_irq_restore(flags);
87728 87504
@@ -87731,7 +87507,7 @@ index c9eb9e6..9186a82 100644
87731 kfree_skb(skb); 87507 kfree_skb(skb);
87732 return NET_RX_DROP; 87508 return NET_RX_DROP;
87733 } 87509 }
87734@@ -3171,7 +3171,7 @@ int netif_rx_ni(struct sk_buff *skb) 87510@@ -3211,7 +3211,7 @@ int netif_rx_ni(struct sk_buff *skb)
87735 } 87511 }
87736 EXPORT_SYMBOL(netif_rx_ni); 87512 EXPORT_SYMBOL(netif_rx_ni);
87737 87513
@@ -87740,25 +87516,7 @@ index c9eb9e6..9186a82 100644
87740 { 87516 {
87741 struct softnet_data *sd = &__get_cpu_var(softnet_data); 87517 struct softnet_data *sd = &__get_cpu_var(softnet_data);
87742 87518
87743@@ -3471,8 +3471,15 @@ ncls: 87519@@ -3545,7 +3545,7 @@ ncls:
87744 }
87745 }
87746
87747- if (vlan_tx_nonzero_tag_present(skb))
87748- skb->pkt_type = PACKET_OTHERHOST;
87749+ if (unlikely(vlan_tx_tag_present(skb))) {
87750+ if (vlan_tx_tag_get_id(skb))
87751+ skb->pkt_type = PACKET_OTHERHOST;
87752+ /* Note: we might in the future use prio bits
87753+ * and set skb->priority like in vlan_do_receive()
87754+ * For the time being, just ignore Priority Code Point
87755+ */
87756+ skb->vlan_tci = 0;
87757+ }
87758
87759 /* deliver only exact match when indicated */
87760 null_or_dev = deliver_exact ? skb->dev : NULL;
87761@@ -3496,7 +3503,7 @@ ncls:
87762 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev); 87520 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
87763 } else { 87521 } else {
87764 drop: 87522 drop:
@@ -87767,7 +87525,7 @@ index c9eb9e6..9186a82 100644
87767 kfree_skb(skb); 87525 kfree_skb(skb);
87768 /* Jamal, now you will not able to escape explaining 87526 /* Jamal, now you will not able to escape explaining
87769 * me how you were going to use this. :-) 87527 * me how you were going to use this. :-)
87770@@ -4101,7 +4108,7 @@ void netif_napi_del(struct napi_struct *napi) 87528@@ -4153,7 +4153,7 @@ void netif_napi_del(struct napi_struct *napi)
87771 } 87529 }
87772 EXPORT_SYMBOL(netif_napi_del); 87530 EXPORT_SYMBOL(netif_napi_del);
87773 87531
@@ -87776,7 +87534,7 @@ index c9eb9e6..9186a82 100644
87776 { 87534 {
87777 struct softnet_data *sd = &__get_cpu_var(softnet_data); 87535 struct softnet_data *sd = &__get_cpu_var(softnet_data);
87778 unsigned long time_limit = jiffies + 2; 87536 unsigned long time_limit = jiffies + 2;
87779@@ -5528,7 +5535,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, 87537@@ -5590,7 +5590,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
87780 } else { 87538 } else {
87781 netdev_stats_to_stats64(storage, &dev->stats); 87539 netdev_stats_to_stats64(storage, &dev->stats);
87782 } 87540 }
@@ -87786,10 +87544,10 @@ index c9eb9e6..9186a82 100644
87786 } 87544 }
87787 EXPORT_SYMBOL(dev_get_stats); 87545 EXPORT_SYMBOL(dev_get_stats);
87788diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c 87546diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
87789index 6cc0481..59cfb00 100644 87547index 5b7d0e1..cb960fc 100644
87790--- a/net/core/dev_ioctl.c 87548--- a/net/core/dev_ioctl.c
87791+++ b/net/core/dev_ioctl.c 87549+++ b/net/core/dev_ioctl.c
87792@@ -376,9 +376,13 @@ void dev_load(struct net *net, const char *name) 87550@@ -365,9 +365,13 @@ void dev_load(struct net *net, const char *name)
87793 if (no_module && capable(CAP_NET_ADMIN)) 87551 if (no_module && capable(CAP_NET_ADMIN))
87794 no_module = request_module("netdev-%s", name); 87552 no_module = request_module("netdev-%s", name);
87795 if (no_module && capable(CAP_SYS_MODULE)) { 87553 if (no_module && capable(CAP_SYS_MODULE)) {
@@ -87804,10 +87562,10 @@ index 6cc0481..59cfb00 100644
87804 } 87562 }
87805 EXPORT_SYMBOL(dev_load); 87563 EXPORT_SYMBOL(dev_load);
87806diff --git a/net/core/ethtool.c b/net/core/ethtool.c 87564diff --git a/net/core/ethtool.c b/net/core/ethtool.c
87807index 41f4bdf..9e7c219 100644 87565index ce91766..3b71cdb 100644
87808--- a/net/core/ethtool.c 87566--- a/net/core/ethtool.c
87809+++ b/net/core/ethtool.c 87567+++ b/net/core/ethtool.c
87810@@ -1314,10 +1314,19 @@ static int ethtool_get_dump_data(struct net_device *dev, 87568@@ -1319,10 +1319,19 @@ static int ethtool_get_dump_data(struct net_device *dev,
87811 if (ret) 87569 if (ret)
87812 return ret; 87570 return ret;
87813 87571
@@ -87828,7 +87586,7 @@ index 41f4bdf..9e7c219 100644
87828 data = vzalloc(tmp.len); 87586 data = vzalloc(tmp.len);
87829 if (!data) 87587 if (!data)
87830 return -ENOMEM; 87588 return -ENOMEM;
87831@@ -1325,6 +1334,16 @@ static int ethtool_get_dump_data(struct net_device *dev, 87589@@ -1330,6 +1339,16 @@ static int ethtool_get_dump_data(struct net_device *dev,
87832 if (ret) 87590 if (ret)
87833 goto out; 87591 goto out;
87834 87592
@@ -87846,7 +87604,7 @@ index 41f4bdf..9e7c219 100644
87846 ret = -EFAULT; 87604 ret = -EFAULT;
87847 goto out; 87605 goto out;
87848diff --git a/net/core/flow.c b/net/core/flow.c 87606diff --git a/net/core/flow.c b/net/core/flow.c
87849index 2bfd081..53c6058 100644 87607index 7102f16..146b4bd 100644
87850--- a/net/core/flow.c 87608--- a/net/core/flow.c
87851+++ b/net/core/flow.c 87609+++ b/net/core/flow.c
87852@@ -61,7 +61,7 @@ struct flow_cache { 87610@@ -61,7 +61,7 @@ struct flow_cache {
@@ -87886,7 +87644,7 @@ index 2bfd081..53c6058 100644
87886 fle->object = flo; 87644 fle->object = flo;
87887 else 87645 else
87888diff --git a/net/core/iovec.c b/net/core/iovec.c 87646diff --git a/net/core/iovec.c b/net/core/iovec.c
87889index 7e7aeb0..2a998cb 100644 87647index de178e4..1dabd8b 100644
87890--- a/net/core/iovec.c 87648--- a/net/core/iovec.c
87891+++ b/net/core/iovec.c 87649+++ b/net/core/iovec.c
87892@@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a 87650@@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
@@ -87908,57 +87666,10 @@ index 7e7aeb0..2a998cb 100644
87908 87666
87909 m->msg_iov = iov; 87667 m->msg_iov = iov;
87910diff --git a/net/core/neighbour.c b/net/core/neighbour.c 87668diff --git a/net/core/neighbour.c b/net/core/neighbour.c
87911index 3863b8f..7c7ea84 100644 87669index ce90b02..8752627 100644
87912--- a/net/core/neighbour.c 87670--- a/net/core/neighbour.c
87913+++ b/net/core/neighbour.c 87671+++ b/net/core/neighbour.c
87914@@ -239,7 +239,7 @@ static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev) 87672@@ -2771,7 +2771,7 @@ static int proc_unres_qlen(ctl_table *ctl, int write, void __user *buffer,
87915 we must kill timers etc. and move
87916 it to safe state.
87917 */
87918- skb_queue_purge(&n->arp_queue);
87919+ __skb_queue_purge(&n->arp_queue);
87920 n->arp_queue_len_bytes = 0;
87921 n->output = neigh_blackhole;
87922 if (n->nud_state & NUD_VALID)
87923@@ -294,7 +294,7 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl, struct net_device
87924 if (!n)
87925 goto out_entries;
87926
87927- skb_queue_head_init(&n->arp_queue);
87928+ __skb_queue_head_init(&n->arp_queue);
87929 rwlock_init(&n->lock);
87930 seqlock_init(&n->ha_lock);
87931 n->updated = n->used = now;
87932@@ -716,7 +716,9 @@ void neigh_destroy(struct neighbour *neigh)
87933 if (neigh_del_timer(neigh))
87934 pr_warn("Impossible event\n");
87935
87936- skb_queue_purge(&neigh->arp_queue);
87937+ write_lock_bh(&neigh->lock);
87938+ __skb_queue_purge(&neigh->arp_queue);
87939+ write_unlock_bh(&neigh->lock);
87940 neigh->arp_queue_len_bytes = 0;
87941
87942 if (dev->netdev_ops->ndo_neigh_destroy)
87943@@ -866,7 +868,7 @@ static void neigh_invalidate(struct neighbour *neigh)
87944 neigh->ops->error_report(neigh, skb);
87945 write_lock(&neigh->lock);
87946 }
87947- skb_queue_purge(&neigh->arp_queue);
87948+ __skb_queue_purge(&neigh->arp_queue);
87949 neigh->arp_queue_len_bytes = 0;
87950 }
87951
87952@@ -1218,7 +1220,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
87953
87954 write_lock_bh(&neigh->lock);
87955 }
87956- skb_queue_purge(&neigh->arp_queue);
87957+ __skb_queue_purge(&neigh->arp_queue);
87958 neigh->arp_queue_len_bytes = 0;
87959 }
87960 out:
87961@@ -2778,7 +2780,7 @@ static int proc_unres_qlen(ctl_table *ctl, int write, void __user *buffer,
87962 size_t *lenp, loff_t *ppos) 87673 size_t *lenp, loff_t *ppos)
87963 { 87674 {
87964 int size, ret; 87675 int size, ret;
@@ -87968,7 +87679,7 @@ index 3863b8f..7c7ea84 100644
87968 tmp.extra1 = &zero; 87679 tmp.extra1 = &zero;
87969 tmp.extra2 = &unres_qlen_max; 87680 tmp.extra2 = &unres_qlen_max;
87970diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c 87681diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
87971index 3174f19..5810985 100644 87682index 569d355..79cf2d0 100644
87972--- a/net/core/net-procfs.c 87683--- a/net/core/net-procfs.c
87973+++ b/net/core/net-procfs.c 87684+++ b/net/core/net-procfs.c
87974@@ -271,8 +271,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v) 87685@@ -271,8 +271,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
@@ -87976,20 +87687,20 @@ index 3174f19..5810985 100644
87976 seq_printf(seq, "%04x", ntohs(pt->type)); 87687 seq_printf(seq, "%04x", ntohs(pt->type));
87977 87688
87978+#ifdef CONFIG_GRKERNSEC_HIDESYM 87689+#ifdef CONFIG_GRKERNSEC_HIDESYM
87979+ seq_printf(seq, " %-8s %pF\n", 87690+ seq_printf(seq, " %-8s %pf\n",
87980+ pt->dev ? pt->dev->name : "", NULL); 87691+ pt->dev ? pt->dev->name : "", NULL);
87981+#else 87692+#else
87982 seq_printf(seq, " %-8s %pF\n", 87693 seq_printf(seq, " %-8s %pf\n",
87983 pt->dev ? pt->dev->name : "", pt->func); 87694 pt->dev ? pt->dev->name : "", pt->func);
87984+#endif 87695+#endif
87985 } 87696 }
87986 87697
87987 return 0; 87698 return 0;
87988diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c 87699diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
87989index 7427ab5..389f411 100644 87700index 981fed3..536af34 100644
87990--- a/net/core/net-sysfs.c 87701--- a/net/core/net-sysfs.c
87991+++ b/net/core/net-sysfs.c 87702+++ b/net/core/net-sysfs.c
87992@@ -1321,7 +1321,7 @@ void netdev_class_remove_file(struct class_attribute *class_attr) 87703@@ -1311,7 +1311,7 @@ void netdev_class_remove_file(struct class_attribute *class_attr)
87993 } 87704 }
87994 EXPORT_SYMBOL(netdev_class_remove_file); 87705 EXPORT_SYMBOL(netdev_class_remove_file);
87995 87706
@@ -87999,10 +87710,10 @@ index 7427ab5..389f411 100644
87999 kobj_ns_type_register(&net_ns_type_operations); 87710 kobj_ns_type_register(&net_ns_type_operations);
88000 return class_register(&net_class); 87711 return class_register(&net_class);
88001diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c 87712diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
88002index 80e271d..2980cc2 100644 87713index f9765203..9feaef8 100644
88003--- a/net/core/net_namespace.c 87714--- a/net/core/net_namespace.c
88004+++ b/net/core/net_namespace.c 87715+++ b/net/core/net_namespace.c
88005@@ -442,7 +442,7 @@ static int __register_pernet_operations(struct list_head *list, 87716@@ -443,7 +443,7 @@ static int __register_pernet_operations(struct list_head *list,
88006 int error; 87717 int error;
88007 LIST_HEAD(net_exit_list); 87718 LIST_HEAD(net_exit_list);
88008 87719
@@ -88011,7 +87722,7 @@ index 80e271d..2980cc2 100644
88011 if (ops->init || (ops->id && ops->size)) { 87722 if (ops->init || (ops->id && ops->size)) {
88012 for_each_net(net) { 87723 for_each_net(net) {
88013 error = ops_init(ops, net); 87724 error = ops_init(ops, net);
88014@@ -455,7 +455,7 @@ static int __register_pernet_operations(struct list_head *list, 87725@@ -456,7 +456,7 @@ static int __register_pernet_operations(struct list_head *list,
88015 87726
88016 out_undo: 87727 out_undo:
88017 /* If I have an error cleanup all namespaces I initialized */ 87728 /* If I have an error cleanup all namespaces I initialized */
@@ -88020,7 +87731,7 @@ index 80e271d..2980cc2 100644
88020 ops_exit_list(ops, &net_exit_list); 87731 ops_exit_list(ops, &net_exit_list);
88021 ops_free_list(ops, &net_exit_list); 87732 ops_free_list(ops, &net_exit_list);
88022 return error; 87733 return error;
88023@@ -466,7 +466,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops) 87734@@ -467,7 +467,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
88024 struct net *net; 87735 struct net *net;
88025 LIST_HEAD(net_exit_list); 87736 LIST_HEAD(net_exit_list);
88026 87737
@@ -88029,7 +87740,7 @@ index 80e271d..2980cc2 100644
88029 for_each_net(net) 87740 for_each_net(net)
88030 list_add_tail(&net->exit_list, &net_exit_list); 87741 list_add_tail(&net->exit_list, &net_exit_list);
88031 ops_exit_list(ops, &net_exit_list); 87742 ops_exit_list(ops, &net_exit_list);
88032@@ -600,7 +600,7 @@ int register_pernet_device(struct pernet_operations *ops) 87743@@ -601,7 +601,7 @@ int register_pernet_device(struct pernet_operations *ops)
88033 mutex_lock(&net_mutex); 87744 mutex_lock(&net_mutex);
88034 error = register_pernet_operations(&pernet_list, ops); 87745 error = register_pernet_operations(&pernet_list, ops);
88035 if (!error && (first_device == &pernet_list)) 87746 if (!error && (first_device == &pernet_list))
@@ -88039,7 +87750,7 @@ index 80e271d..2980cc2 100644
88039 return error; 87750 return error;
88040 } 87751 }
88041diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c 87752diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
88042index 23854b5..ff4fda4 100644 87753index a08bd2b..4e8f43c 100644
88043--- a/net/core/rtnetlink.c 87754--- a/net/core/rtnetlink.c
88044+++ b/net/core/rtnetlink.c 87755+++ b/net/core/rtnetlink.c
88045@@ -58,7 +58,7 @@ struct rtnl_link { 87756@@ -58,7 +58,7 @@ struct rtnl_link {
@@ -88078,10 +87789,10 @@ index 23854b5..ff4fda4 100644
88078 EXPORT_SYMBOL_GPL(__rtnl_link_unregister); 87789 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
88079 87790
88080diff --git a/net/core/scm.c b/net/core/scm.c 87791diff --git a/net/core/scm.c b/net/core/scm.c
88081index 2dc6cda..2159524 100644 87792index 03795d0..eaf7368 100644
88082--- a/net/core/scm.c 87793--- a/net/core/scm.c
88083+++ b/net/core/scm.c 87794+++ b/net/core/scm.c
88084@@ -226,7 +226,7 @@ EXPORT_SYMBOL(__scm_send); 87795@@ -210,7 +210,7 @@ EXPORT_SYMBOL(__scm_send);
88085 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) 87796 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
88086 { 87797 {
88087 struct cmsghdr __user *cm 87798 struct cmsghdr __user *cm
@@ -88090,7 +87801,7 @@ index 2dc6cda..2159524 100644
88090 struct cmsghdr cmhdr; 87801 struct cmsghdr cmhdr;
88091 int cmlen = CMSG_LEN(len); 87802 int cmlen = CMSG_LEN(len);
88092 int err; 87803 int err;
88093@@ -249,7 +249,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data) 87804@@ -233,7 +233,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
88094 err = -EFAULT; 87805 err = -EFAULT;
88095 if (copy_to_user(cm, &cmhdr, sizeof cmhdr)) 87806 if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
88096 goto out; 87807 goto out;
@@ -88099,7 +87810,7 @@ index 2dc6cda..2159524 100644
88099 goto out; 87810 goto out;
88100 cmlen = CMSG_SPACE(len); 87811 cmlen = CMSG_SPACE(len);
88101 if (msg->msg_controllen < cmlen) 87812 if (msg->msg_controllen < cmlen)
88102@@ -265,7 +265,7 @@ EXPORT_SYMBOL(put_cmsg); 87813@@ -249,7 +249,7 @@ EXPORT_SYMBOL(put_cmsg);
88103 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) 87814 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
88104 { 87815 {
88105 struct cmsghdr __user *cm 87816 struct cmsghdr __user *cm
@@ -88108,7 +87819,7 @@ index 2dc6cda..2159524 100644
88108 87819
88109 int fdmax = 0; 87820 int fdmax = 0;
88110 int fdnum = scm->fp->count; 87821 int fdnum = scm->fp->count;
88111@@ -285,7 +285,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) 87822@@ -269,7 +269,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
88112 if (fdnum < fdmax) 87823 if (fdnum < fdmax)
88113 fdmax = fdnum; 87824 fdmax = fdnum;
88114 87825
@@ -88117,26 +87828,30 @@ index 2dc6cda..2159524 100644
88117 i++, cmfptr++) 87828 i++, cmfptr++)
88118 { 87829 {
88119 struct socket *sock; 87830 struct socket *sock;
88120diff --git a/net/core/secure_seq.c b/net/core/secure_seq.c 87831diff --git a/net/core/skbuff.c b/net/core/skbuff.c
88121index e61a8bb..6a2f13c 100644 87832index 1c1738c..4cab7f0 100644
88122--- a/net/core/secure_seq.c 87833--- a/net/core/skbuff.c
88123+++ b/net/core/secure_seq.c 87834+++ b/net/core/skbuff.c
88124@@ -12,12 +12,10 @@ 87835@@ -3087,13 +3087,15 @@ void __init skb_init(void)
88125 87836 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
88126 static u32 net_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; 87837 sizeof(struct sk_buff),
88127 87838 0,
88128-static int __init net_secret_init(void) 87839- SLAB_HWCACHE_ALIGN|SLAB_PANIC,
88129+void net_secret_init(void) 87840+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|
88130 { 87841+ SLAB_NO_SANITIZE,
88131 get_random_bytes(net_secret, sizeof(net_secret)); 87842 NULL);
88132- return 0; 87843 skbuff_fclone_cache = kmem_cache_create("skbuff_fclone_cache",
87844 (2*sizeof(struct sk_buff)) +
87845 sizeof(atomic_t),
87846 0,
87847- SLAB_HWCACHE_ALIGN|SLAB_PANIC,
87848+ SLAB_HWCACHE_ALIGN|SLAB_PANIC|
87849+ SLAB_NO_SANITIZE,
87850 NULL);
88133 } 87851 }
88134-late_initcall(net_secret_init);
88135 87852
88136 #ifdef CONFIG_INET
88137 static u32 seq_scale(u32 seq)
88138diff --git a/net/core/sock.c b/net/core/sock.c 87853diff --git a/net/core/sock.c b/net/core/sock.c
88139index 684c37d..b541900 100644 87854index d6d024c..6ea7ab4 100644
88140--- a/net/core/sock.c 87855--- a/net/core/sock.c
88141+++ b/net/core/sock.c 87856+++ b/net/core/sock.c
88142@@ -390,7 +390,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) 87857@@ -390,7 +390,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -88184,7 +87899,7 @@ index 684c37d..b541900 100644
88184 goto discard_and_relse; 87899 goto discard_and_relse;
88185 } 87900 }
88186 87901
88187@@ -942,12 +942,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname, 87902@@ -933,12 +933,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
88188 struct timeval tm; 87903 struct timeval tm;
88189 } v; 87904 } v;
88190 87905
@@ -88200,7 +87915,7 @@ index 684c37d..b541900 100644
88200 return -EINVAL; 87915 return -EINVAL;
88201 87916
88202 memset(&v, 0, sizeof(v)); 87917 memset(&v, 0, sizeof(v));
88203@@ -1099,11 +1099,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname, 87918@@ -1090,11 +1090,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
88204 87919
88205 case SO_PEERNAME: 87920 case SO_PEERNAME:
88206 { 87921 {
@@ -88214,7 +87929,7 @@ index 684c37d..b541900 100644
88214 return -EINVAL; 87929 return -EINVAL;
88215 if (copy_to_user(optval, address, len)) 87930 if (copy_to_user(optval, address, len))
88216 return -EFAULT; 87931 return -EFAULT;
88217@@ -1166,7 +1166,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname, 87932@@ -1161,7 +1161,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
88218 87933
88219 if (len > lv) 87934 if (len > lv)
88220 len = lv; 87935 len = lv;
@@ -88223,7 +87938,7 @@ index 684c37d..b541900 100644
88223 return -EFAULT; 87938 return -EFAULT;
88224 lenout: 87939 lenout:
88225 if (put_user(len, optlen)) 87940 if (put_user(len, optlen))
88226@@ -2284,7 +2284,7 @@ void sock_init_data(struct socket *sock, struct sock *sk) 87941@@ -2277,7 +2277,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
88227 */ 87942 */
88228 smp_wmb(); 87943 smp_wmb();
88229 atomic_set(&sk->sk_refcnt, 1); 87944 atomic_set(&sk->sk_refcnt, 1);
@@ -88233,7 +87948,7 @@ index 684c37d..b541900 100644
88233 EXPORT_SYMBOL(sock_init_data); 87948 EXPORT_SYMBOL(sock_init_data);
88234 87949
88235diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c 87950diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
88236index a29e90c..922399c 100644 87951index a0e9cf6..ef7f9ed 100644
88237--- a/net/core/sock_diag.c 87952--- a/net/core/sock_diag.c
88238+++ b/net/core/sock_diag.c 87953+++ b/net/core/sock_diag.c
88239@@ -9,26 +9,33 @@ 87954@@ -9,26 +9,33 @@
@@ -88271,7 +87986,7 @@ index a29e90c..922399c 100644
88271 } 87986 }
88272 EXPORT_SYMBOL_GPL(sock_diag_save_cookie); 87987 EXPORT_SYMBOL_GPL(sock_diag_save_cookie);
88273 87988
88274@@ -75,8 +82,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl) 87989@@ -113,8 +120,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
88275 mutex_lock(&sock_diag_table_mutex); 87990 mutex_lock(&sock_diag_table_mutex);
88276 if (sock_diag_handlers[hndl->family]) 87991 if (sock_diag_handlers[hndl->family])
88277 err = -EBUSY; 87992 err = -EBUSY;
@@ -88284,7 +87999,7 @@ index a29e90c..922399c 100644
88284 mutex_unlock(&sock_diag_table_mutex); 87999 mutex_unlock(&sock_diag_table_mutex);
88285 88000
88286 return err; 88001 return err;
88287@@ -92,7 +102,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld) 88002@@ -130,7 +140,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
88288 88003
88289 mutex_lock(&sock_diag_table_mutex); 88004 mutex_lock(&sock_diag_table_mutex);
88290 BUG_ON(sock_diag_handlers[family] != hnld); 88005 BUG_ON(sock_diag_handlers[family] != hnld);
@@ -88389,30 +88104,10 @@ index a55eecc..dd8428c 100644
88389 88104
88390 *lenp = len; 88105 *lenp = len;
88391diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c 88106diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
88392index c929d9c..df10cde 100644 88107index d01be2a..8976537 100644
88393--- a/net/ipv4/af_inet.c 88108--- a/net/ipv4/af_inet.c
88394+++ b/net/ipv4/af_inet.c 88109+++ b/net/ipv4/af_inet.c
88395@@ -115,6 +115,7 @@ 88110@@ -1703,13 +1703,9 @@ static int __init inet_init(void)
88396 #include <net/inet_common.h>
88397 #include <net/xfrm.h>
88398 #include <net/net_namespace.h>
88399+#include <net/secure_seq.h>
88400 #ifdef CONFIG_IP_MROUTE
88401 #include <linux/mroute.h>
88402 #endif
88403@@ -263,8 +264,10 @@ void build_ehash_secret(void)
88404 get_random_bytes(&rnd, sizeof(rnd));
88405 } while (rnd == 0);
88406
88407- if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0)
88408+ if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0) {
88409 get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret));
88410+ net_secret_init();
88411+ }
88412 }
88413 EXPORT_SYMBOL(build_ehash_secret);
88414
88415@@ -1699,13 +1702,9 @@ static int __init inet_init(void)
88416 88111
88417 BUILD_BUG_ON(sizeof(struct inet_skb_parm) > FIELD_SIZEOF(struct sk_buff, cb)); 88112 BUILD_BUG_ON(sizeof(struct inet_skb_parm) > FIELD_SIZEOF(struct sk_buff, cb));
88418 88113
@@ -88427,7 +88122,7 @@ index c929d9c..df10cde 100644
88427 88122
88428 rc = proto_register(&udp_prot, 1); 88123 rc = proto_register(&udp_prot, 1);
88429 if (rc) 88124 if (rc)
88430@@ -1814,8 +1813,6 @@ out_unregister_udp_proto: 88125@@ -1818,8 +1814,6 @@ out_unregister_udp_proto:
88431 proto_unregister(&udp_prot); 88126 proto_unregister(&udp_prot);
88432 out_unregister_tcp_proto: 88127 out_unregister_tcp_proto:
88433 proto_unregister(&tcp_prot); 88128 proto_unregister(&tcp_prot);
@@ -88450,10 +88145,28 @@ index 2e7f194..0fa4d6d 100644
88450 88145
88451 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_AH, 0); 88146 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_AH, 0);
88452diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c 88147diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
88453index c6287cd..e9bc96a 100644 88148index dfc39d4..0b82c4d 100644
88454--- a/net/ipv4/devinet.c 88149--- a/net/ipv4/devinet.c
88455+++ b/net/ipv4/devinet.c 88150+++ b/net/ipv4/devinet.c
88456@@ -1992,7 +1992,7 @@ static int ipv4_doint_and_flush(ctl_table *ctl, int write, 88151@@ -1529,7 +1529,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
88152 idx = 0;
88153 head = &net->dev_index_head[h];
88154 rcu_read_lock();
88155- cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
88156+ cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
88157 net->dev_base_seq;
88158 hlist_for_each_entry_rcu(dev, head, index_hlist) {
88159 if (idx < s_idx)
88160@@ -1840,7 +1840,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
88161 idx = 0;
88162 head = &net->dev_index_head[h];
88163 rcu_read_lock();
88164- cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
88165+ cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
88166 net->dev_base_seq;
88167 hlist_for_each_entry_rcu(dev, head, index_hlist) {
88168 if (idx < s_idx)
88169@@ -2065,7 +2065,7 @@ static int ipv4_doint_and_flush(ctl_table *ctl, int write,
88457 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \ 88170 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
88458 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush) 88171 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
88459 88172
@@ -88462,7 +88175,7 @@ index c6287cd..e9bc96a 100644
88462 struct ctl_table_header *sysctl_header; 88175 struct ctl_table_header *sysctl_header;
88463 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX]; 88176 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
88464 } devinet_sysctl = { 88177 } devinet_sysctl = {
88465@@ -2110,7 +2110,7 @@ static __net_init int devinet_init_net(struct net *net) 88178@@ -2183,7 +2183,7 @@ static __net_init int devinet_init_net(struct net *net)
88466 int err; 88179 int err;
88467 struct ipv4_devconf *all, *dflt; 88180 struct ipv4_devconf *all, *dflt;
88468 #ifdef CONFIG_SYSCTL 88181 #ifdef CONFIG_SYSCTL
@@ -88471,7 +88184,7 @@ index c6287cd..e9bc96a 100644
88471 struct ctl_table_header *forw_hdr; 88184 struct ctl_table_header *forw_hdr;
88472 #endif 88185 #endif
88473 88186
88474@@ -2128,7 +2128,7 @@ static __net_init int devinet_init_net(struct net *net) 88187@@ -2201,7 +2201,7 @@ static __net_init int devinet_init_net(struct net *net)
88475 goto err_alloc_dflt; 88188 goto err_alloc_dflt;
88476 88189
88477 #ifdef CONFIG_SYSCTL 88190 #ifdef CONFIG_SYSCTL
@@ -88480,7 +88193,7 @@ index c6287cd..e9bc96a 100644
88480 if (tbl == NULL) 88193 if (tbl == NULL)
88481 goto err_alloc_ctl; 88194 goto err_alloc_ctl;
88482 88195
88483@@ -2148,7 +2148,10 @@ static __net_init int devinet_init_net(struct net *net) 88196@@ -2221,7 +2221,10 @@ static __net_init int devinet_init_net(struct net *net)
88484 goto err_reg_dflt; 88197 goto err_reg_dflt;
88485 88198
88486 err = -ENOMEM; 88199 err = -ENOMEM;
@@ -88492,7 +88205,7 @@ index c6287cd..e9bc96a 100644
88492 if (forw_hdr == NULL) 88205 if (forw_hdr == NULL)
88493 goto err_reg_ctl; 88206 goto err_reg_ctl;
88494 net->ipv4.forw_hdr = forw_hdr; 88207 net->ipv4.forw_hdr = forw_hdr;
88495@@ -2164,8 +2167,7 @@ err_reg_ctl: 88208@@ -2237,8 +2240,7 @@ err_reg_ctl:
88496 err_reg_dflt: 88209 err_reg_dflt:
88497 __devinet_sysctl_unregister(all); 88210 __devinet_sysctl_unregister(all);
88498 err_reg_all: 88211 err_reg_all:
@@ -88516,7 +88229,7 @@ index 4cfe34d..a6ba66e 100644
88516 88229
88517 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_ESP, 0); 88230 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_ESP, 0);
88518diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c 88231diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
88519index eb4bb12..ee4ec7d 100644 88232index c7629a2..b62d139 100644
88520--- a/net/ipv4/fib_frontend.c 88233--- a/net/ipv4/fib_frontend.c
88521+++ b/net/ipv4/fib_frontend.c 88234+++ b/net/ipv4/fib_frontend.c
88522@@ -1017,12 +1017,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event, 88235@@ -1017,12 +1017,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
@@ -88557,7 +88270,7 @@ index 8f6cb7a..34507f9 100644
88557 return nh->nh_saddr; 88270 return nh->nh_saddr;
88558 } 88271 }
88559diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c 88272diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
88560index 786d97a..1889c0d 100644 88273index 6acb541..9ea617d 100644
88561--- a/net/ipv4/inet_connection_sock.c 88274--- a/net/ipv4/inet_connection_sock.c
88562+++ b/net/ipv4/inet_connection_sock.c 88275+++ b/net/ipv4/inet_connection_sock.c
88563@@ -37,7 +37,7 @@ struct local_ports sysctl_local_ports __read_mostly = { 88276@@ -37,7 +37,7 @@ struct local_ports sysctl_local_ports __read_mostly = {
@@ -88614,10 +88327,10 @@ index 000e3d2..5472da3 100644
88614 secure_ip_id(daddr->addr.a4) : 88327 secure_ip_id(daddr->addr.a4) :
88615 secure_ipv6_id(daddr->addr.a6)); 88328 secure_ipv6_id(daddr->addr.a6));
88616diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c 88329diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
88617index 52c273e..579060b 100644 88330index b66910a..cfe416e 100644
88618--- a/net/ipv4/ip_fragment.c 88331--- a/net/ipv4/ip_fragment.c
88619+++ b/net/ipv4/ip_fragment.c 88332+++ b/net/ipv4/ip_fragment.c
88620@@ -311,7 +311,7 @@ static inline int ip_frag_too_far(struct ipq *qp) 88333@@ -282,7 +282,7 @@ static inline int ip_frag_too_far(struct ipq *qp)
88621 return 0; 88334 return 0;
88622 88335
88623 start = qp->rid; 88336 start = qp->rid;
@@ -88626,7 +88339,7 @@ index 52c273e..579060b 100644
88626 qp->rid = end; 88339 qp->rid = end;
88627 88340
88628 rc = qp->q.fragments && (end - start) > max; 88341 rc = qp->q.fragments && (end - start) > max;
88629@@ -788,12 +788,11 @@ static struct ctl_table ip4_frags_ctl_table[] = { 88342@@ -759,12 +759,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
88630 88343
88631 static int __net_init ip4_frags_ns_ctl_register(struct net *net) 88344 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
88632 { 88345 {
@@ -88641,7 +88354,7 @@ index 52c273e..579060b 100644
88641 if (table == NULL) 88354 if (table == NULL)
88642 goto err_alloc; 88355 goto err_alloc;
88643 88356
88644@@ -804,9 +803,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) 88357@@ -775,9 +774,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
88645 /* Don't export sysctls to unprivileged users */ 88358 /* Don't export sysctls to unprivileged users */
88646 if (net->user_ns != &init_user_ns) 88359 if (net->user_ns != &init_user_ns)
88647 table[0].procname = NULL; 88360 table[0].procname = NULL;
@@ -88654,7 +88367,7 @@ index 52c273e..579060b 100644
88654 if (hdr == NULL) 88367 if (hdr == NULL)
88655 goto err_reg; 88368 goto err_reg;
88656 88369
88657@@ -814,8 +814,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net) 88370@@ -785,8 +785,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
88658 return 0; 88371 return 0;
88659 88372
88660 err_reg: 88373 err_reg:
@@ -88665,19 +88378,19 @@ index 52c273e..579060b 100644
88665 return -ENOMEM; 88378 return -ENOMEM;
88666 } 88379 }
88667diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c 88380diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
88668index c7e8c04..56cb4c1 100644 88381index 855004f..68e7458 100644
88669--- a/net/ipv4/ip_gre.c 88382--- a/net/ipv4/ip_gre.c
88670+++ b/net/ipv4/ip_gre.c 88383+++ b/net/ipv4/ip_gre.c
88671@@ -124,7 +124,7 @@ static bool log_ecn_error = true; 88384@@ -115,7 +115,7 @@ static bool log_ecn_error = true;
88672 module_param(log_ecn_error, bool, 0644); 88385 module_param(log_ecn_error, bool, 0644);
88673 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN"); 88386 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
88674 88387
88675-static struct rtnl_link_ops ipgre_link_ops __read_mostly; 88388-static struct rtnl_link_ops ipgre_link_ops __read_mostly;
88676+static struct rtnl_link_ops ipgre_link_ops; 88389+static struct rtnl_link_ops ipgre_link_ops;
88677 static int ipgre_tunnel_init(struct net_device *dev); 88390 static int ipgre_tunnel_init(struct net_device *dev);
88678 static void ipgre_tunnel_setup(struct net_device *dev); 88391
88679 static int ipgre_tunnel_bind_dev(struct net_device *dev); 88392 static int ipgre_net_id __read_mostly;
88680@@ -1823,7 +1823,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = { 88393@@ -919,7 +919,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
88681 [IFLA_GRE_PMTUDISC] = { .type = NLA_U8 }, 88394 [IFLA_GRE_PMTUDISC] = { .type = NLA_U8 },
88682 }; 88395 };
88683 88396
@@ -88686,7 +88399,7 @@ index c7e8c04..56cb4c1 100644
88686 .kind = "gre", 88399 .kind = "gre",
88687 .maxtype = IFLA_GRE_MAX, 88400 .maxtype = IFLA_GRE_MAX,
88688 .policy = ipgre_policy, 88401 .policy = ipgre_policy,
88689@@ -1836,7 +1836,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = { 88402@@ -933,7 +933,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
88690 .fill_info = ipgre_fill_info, 88403 .fill_info = ipgre_fill_info,
88691 }; 88404 };
88692 88405
@@ -88695,31 +88408,6 @@ index c7e8c04..56cb4c1 100644
88695 .kind = "gretap", 88408 .kind = "gretap",
88696 .maxtype = IFLA_GRE_MAX, 88409 .maxtype = IFLA_GRE_MAX,
88697 .policy = ipgre_policy, 88410 .policy = ipgre_policy,
88698diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
88699index 2bdf802..439f123 100644
88700--- a/net/ipv4/ip_input.c
88701+++ b/net/ipv4/ip_input.c
88702@@ -190,10 +190,7 @@ static int ip_local_deliver_finish(struct sk_buff *skb)
88703 {
88704 struct net *net = dev_net(skb->dev);
88705
88706- __skb_pull(skb, ip_hdrlen(skb));
88707-
88708- /* Point into the IP datagram, just past the header. */
88709- skb_reset_transport_header(skb);
88710+ __skb_pull(skb, skb_network_header_len(skb));
88711
88712 rcu_read_lock();
88713 {
88714@@ -437,6 +434,8 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
88715 goto drop;
88716 }
88717
88718+ skb->transport_header = skb->network_header + iph->ihl*4;
88719+
88720 /* Remove any debris in the socket control block */
88721 memset(IPCB(skb), 0, sizeof(struct inet_skb_parm));
88722
88723diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c 88411diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
88724index d9c4f11..02b82dbc 100644 88412index d9c4f11..02b82dbc 100644
88725--- a/net/ipv4/ip_sockglue.c 88413--- a/net/ipv4/ip_sockglue.c
@@ -88744,7 +88432,7 @@ index d9c4f11..02b82dbc 100644
88744 msg.msg_flags = flags; 88432 msg.msg_flags = flags;
88745 88433
88746diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c 88434diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
88747index c3a4233..3fa029d 100644 88435index 17cc0ff..63856c4 100644
88748--- a/net/ipv4/ip_vti.c 88436--- a/net/ipv4/ip_vti.c
88749+++ b/net/ipv4/ip_vti.c 88437+++ b/net/ipv4/ip_vti.c
88750@@ -47,7 +47,7 @@ 88438@@ -47,7 +47,7 @@
@@ -88756,35 +88444,7 @@ index c3a4233..3fa029d 100644
88756 88444
88757 static int vti_net_id __read_mostly; 88445 static int vti_net_id __read_mostly;
88758 struct vti_net { 88446 struct vti_net {
88759@@ -399,8 +399,7 @@ static netdev_tx_t vti_tunnel_xmit(struct sk_buff *skb, struct net_device *dev) 88447@@ -840,7 +840,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
88760 tunnel->err_count = 0;
88761 }
88762
88763- IPCB(skb)->flags &= ~(IPSKB_XFRM_TUNNEL_SIZE | IPSKB_XFRM_TRANSFORMED |
88764- IPSKB_REROUTED);
88765+ memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
88766 skb_dst_drop(skb);
88767 skb_dst_set(skb, &rt->dst);
88768 nf_reset(skb);
88769@@ -645,17 +644,10 @@ static int __net_init vti_fb_tunnel_init(struct net_device *dev)
88770 struct iphdr *iph = &tunnel->parms.iph;
88771 struct vti_net *ipn = net_generic(dev_net(dev), vti_net_id);
88772
88773- tunnel->dev = dev;
88774- strcpy(tunnel->parms.name, dev->name);
88775-
88776 iph->version = 4;
88777 iph->protocol = IPPROTO_IPIP;
88778 iph->ihl = 5;
88779
88780- dev->tstats = alloc_percpu(struct pcpu_tstats);
88781- if (!dev->tstats)
88782- return -ENOMEM;
88783-
88784 dev_hold(dev);
88785 rcu_assign_pointer(ipn->tunnels_wc[0], tunnel);
88786 return 0;
88787@@ -886,7 +878,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
88788 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) }, 88448 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
88789 }; 88449 };
88790 88450
@@ -88794,7 +88454,7 @@ index c3a4233..3fa029d 100644
88794 .maxtype = IFLA_VTI_MAX, 88454 .maxtype = IFLA_VTI_MAX,
88795 .policy = vti_policy, 88455 .policy = vti_policy,
88796diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c 88456diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c
88797index f01d1b1..8fe03ad 100644 88457index 59cb8c7..a72160c 100644
88798--- a/net/ipv4/ipcomp.c 88458--- a/net/ipv4/ipcomp.c
88799+++ b/net/ipv4/ipcomp.c 88459+++ b/net/ipv4/ipcomp.c
88800@@ -48,7 +48,7 @@ static void ipcomp4_err(struct sk_buff *skb, u32 info) 88460@@ -48,7 +48,7 @@ static void ipcomp4_err(struct sk_buff *skb, u32 info)
@@ -88807,10 +88467,10 @@ index f01d1b1..8fe03ad 100644
88807 88467
88808 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_COMP, 0); 88468 ipv4_update_pmtu(skb, net, info, 0, 0, IPPROTO_COMP, 0);
88809diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c 88469diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
88810index bf6c5cf..ab2e9c6 100644 88470index efa1138..20dbba0 100644
88811--- a/net/ipv4/ipconfig.c 88471--- a/net/ipv4/ipconfig.c
88812+++ b/net/ipv4/ipconfig.c 88472+++ b/net/ipv4/ipconfig.c
88813@@ -323,7 +323,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg) 88473@@ -334,7 +334,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
88814 88474
88815 mm_segment_t oldfs = get_fs(); 88475 mm_segment_t oldfs = get_fs();
88816 set_fs(get_ds()); 88476 set_fs(get_ds());
@@ -88819,7 +88479,7 @@ index bf6c5cf..ab2e9c6 100644
88819 set_fs(oldfs); 88479 set_fs(oldfs);
88820 return res; 88480 return res;
88821 } 88481 }
88822@@ -334,7 +334,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg) 88482@@ -345,7 +345,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
88823 88483
88824 mm_segment_t oldfs = get_fs(); 88484 mm_segment_t oldfs = get_fs();
88825 set_fs(get_ds()); 88485 set_fs(get_ds());
@@ -88828,7 +88488,7 @@ index bf6c5cf..ab2e9c6 100644
88828 set_fs(oldfs); 88488 set_fs(oldfs);
88829 return res; 88489 return res;
88830 } 88490 }
88831@@ -345,7 +345,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg) 88491@@ -356,7 +356,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
88832 88492
88833 mm_segment_t oldfs = get_fs(); 88493 mm_segment_t oldfs = get_fs();
88834 set_fs(get_ds()); 88494 set_fs(get_ds());
@@ -88838,19 +88498,19 @@ index bf6c5cf..ab2e9c6 100644
88838 return res; 88498 return res;
88839 } 88499 }
88840diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c 88500diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
88841index 7533846..d2361d1 100644 88501index 7cfc456..e726868 100644
88842--- a/net/ipv4/ipip.c 88502--- a/net/ipv4/ipip.c
88843+++ b/net/ipv4/ipip.c 88503+++ b/net/ipv4/ipip.c
88844@@ -138,7 +138,7 @@ struct ipip_net { 88504@@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
88505 static int ipip_net_id __read_mostly;
88506
88845 static int ipip_tunnel_init(struct net_device *dev); 88507 static int ipip_tunnel_init(struct net_device *dev);
88846 static void ipip_tunnel_setup(struct net_device *dev);
88847 static void ipip_dev_free(struct net_device *dev);
88848-static struct rtnl_link_ops ipip_link_ops __read_mostly; 88508-static struct rtnl_link_ops ipip_link_ops __read_mostly;
88849+static struct rtnl_link_ops ipip_link_ops; 88509+static struct rtnl_link_ops ipip_link_ops;
88850 88510
88851 static struct rtnl_link_stats64 *ipip_get_stats64(struct net_device *dev, 88511 static int ipip_err(struct sk_buff *skb, u32 info)
88852 struct rtnl_link_stats64 *tot) 88512 {
88853@@ -974,7 +974,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = { 88513@@ -406,7 +406,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
88854 [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 }, 88514 [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 },
88855 }; 88515 };
88856 88516
@@ -88860,10 +88520,10 @@ index 7533846..d2361d1 100644
88860 .maxtype = IFLA_IPTUN_MAX, 88520 .maxtype = IFLA_IPTUN_MAX,
88861 .policy = ipip_policy, 88521 .policy = ipip_policy,
88862diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c 88522diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
88863index 7dc6a97..229c61b 100644 88523index 85a4f21..1beb1f5 100644
88864--- a/net/ipv4/netfilter/arp_tables.c 88524--- a/net/ipv4/netfilter/arp_tables.c
88865+++ b/net/ipv4/netfilter/arp_tables.c 88525+++ b/net/ipv4/netfilter/arp_tables.c
88866@@ -879,14 +879,14 @@ static int compat_table_info(const struct xt_table_info *info, 88526@@ -880,14 +880,14 @@ static int compat_table_info(const struct xt_table_info *info,
88867 #endif 88527 #endif
88868 88528
88869 static int get_info(struct net *net, void __user *user, 88529 static int get_info(struct net *net, void __user *user,
@@ -88881,7 +88541,7 @@ index 7dc6a97..229c61b 100644
88881 sizeof(struct arpt_getinfo)); 88541 sizeof(struct arpt_getinfo));
88882 return -EINVAL; 88542 return -EINVAL;
88883 } 88543 }
88884@@ -923,7 +923,7 @@ static int get_info(struct net *net, void __user *user, 88544@@ -924,7 +924,7 @@ static int get_info(struct net *net, void __user *user,
88885 info.size = private->size; 88545 info.size = private->size;
88886 strcpy(info.name, name); 88546 strcpy(info.name, name);
88887 88547
@@ -88890,7 +88550,7 @@ index 7dc6a97..229c61b 100644
88890 ret = -EFAULT; 88550 ret = -EFAULT;
88891 else 88551 else
88892 ret = 0; 88552 ret = 0;
88893@@ -1682,7 +1682,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, 88553@@ -1683,7 +1683,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
88894 88554
88895 switch (cmd) { 88555 switch (cmd) {
88896 case ARPT_SO_GET_INFO: 88556 case ARPT_SO_GET_INFO:
@@ -88899,7 +88559,7 @@ index 7dc6a97..229c61b 100644
88899 break; 88559 break;
88900 case ARPT_SO_GET_ENTRIES: 88560 case ARPT_SO_GET_ENTRIES:
88901 ret = compat_get_entries(sock_net(sk), user, len); 88561 ret = compat_get_entries(sock_net(sk), user, len);
88902@@ -1727,7 +1727,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len 88562@@ -1728,7 +1728,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
88903 88563
88904 switch (cmd) { 88564 switch (cmd) {
88905 case ARPT_SO_GET_INFO: 88565 case ARPT_SO_GET_INFO:
@@ -88909,7 +88569,7 @@ index 7dc6a97..229c61b 100644
88909 88569
88910 case ARPT_SO_GET_ENTRIES: 88570 case ARPT_SO_GET_ENTRIES:
88911diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c 88571diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
88912index 3efcf87..5247916 100644 88572index d23118d..6ad7277 100644
88913--- a/net/ipv4/netfilter/ip_tables.c 88573--- a/net/ipv4/netfilter/ip_tables.c
88914+++ b/net/ipv4/netfilter/ip_tables.c 88574+++ b/net/ipv4/netfilter/ip_tables.c
88915@@ -1068,14 +1068,14 @@ static int compat_table_info(const struct xt_table_info *info, 88575@@ -1068,14 +1068,14 @@ static int compat_table_info(const struct xt_table_info *info,
@@ -88958,10 +88618,10 @@ index 3efcf87..5247916 100644
88958 88618
88959 case IPT_SO_GET_ENTRIES: 88619 case IPT_SO_GET_ENTRIES:
88960diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c 88620diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
88961index 2e91006..f084394 100644 88621index 7d93d62..cbbf2a3 100644
88962--- a/net/ipv4/ping.c 88622--- a/net/ipv4/ping.c
88963+++ b/net/ipv4/ping.c 88623+++ b/net/ipv4/ping.c
88964@@ -844,7 +844,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f, 88624@@ -843,7 +843,7 @@ static void ping_format_sock(struct sock *sp, struct seq_file *f,
88965 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)), 88625 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
88966 0, sock_i_ino(sp), 88626 0, sock_i_ino(sp),
88967 atomic_read(&sp->sk_refcnt), sp, 88627 atomic_read(&sp->sk_refcnt), sp,
@@ -89026,7 +88686,7 @@ index dd44e0a..06dcca4 100644
89026 88686
89027 static int raw_seq_show(struct seq_file *seq, void *v) 88687 static int raw_seq_show(struct seq_file *seq, void *v)
89028diff --git a/net/ipv4/route.c b/net/ipv4/route.c 88688diff --git a/net/ipv4/route.c b/net/ipv4/route.c
89029index cfede9a..22248f9 100644 88689index d35bbf0..faa3ab8 100644
89030--- a/net/ipv4/route.c 88690--- a/net/ipv4/route.c
89031+++ b/net/ipv4/route.c 88691+++ b/net/ipv4/route.c
89032@@ -2558,34 +2558,34 @@ static struct ctl_table ipv4_route_flush_table[] = { 88692@@ -2558,34 +2558,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
@@ -89082,7 +88742,7 @@ index cfede9a..22248f9 100644
89082 sizeof(net->ipv4.dev_addr_genid)); 88742 sizeof(net->ipv4.dev_addr_genid));
89083 return 0; 88743 return 0;
89084diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c 88744diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
89085index 960fd29..d55bf64 100644 88745index fa2f63f..6554815 100644
89086--- a/net/ipv4/sysctl_net_ipv4.c 88746--- a/net/ipv4/sysctl_net_ipv4.c
89087+++ b/net/ipv4/sysctl_net_ipv4.c 88747+++ b/net/ipv4/sysctl_net_ipv4.c
89088@@ -55,7 +55,7 @@ static int ipv4_local_port_range(ctl_table *table, int write, 88748@@ -55,7 +55,7 @@ static int ipv4_local_port_range(ctl_table *table, int write,
@@ -89169,7 +88829,7 @@ index 960fd29..d55bf64 100644
89169 .maxlen = 65536, 88829 .maxlen = 65536,
89170 .mode = 0644, 88830 .mode = 0644,
89171 .proc_handler = proc_do_large_bitmap, 88831 .proc_handler = proc_do_large_bitmap,
89172@@ -856,11 +858,10 @@ static struct ctl_table ipv4_net_table[] = { 88832@@ -842,11 +844,10 @@ static struct ctl_table ipv4_net_table[] = {
89173 88833
89174 static __net_init int ipv4_sysctl_init_net(struct net *net) 88834 static __net_init int ipv4_sysctl_init_net(struct net *net)
89175 { 88835 {
@@ -89183,7 +88843,7 @@ index 960fd29..d55bf64 100644
89183 if (table == NULL) 88843 if (table == NULL)
89184 goto err_alloc; 88844 goto err_alloc;
89185 88845
89186@@ -895,15 +896,17 @@ static __net_init int ipv4_sysctl_init_net(struct net *net) 88846@@ -881,15 +882,17 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
89187 88847
89188 tcp_init_mem(net); 88848 tcp_init_mem(net);
89189 88849
@@ -89204,7 +88864,7 @@ index 960fd29..d55bf64 100644
89204 err_alloc: 88864 err_alloc:
89205 return -ENOMEM; 88865 return -ENOMEM;
89206 } 88866 }
89207@@ -925,16 +928,6 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = { 88867@@ -911,16 +914,6 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = {
89208 static __init int sysctl_ipv4_init(void) 88868 static __init int sysctl_ipv4_init(void)
89209 { 88869 {
89210 struct ctl_table_header *hdr; 88870 struct ctl_table_header *hdr;
@@ -89222,10 +88882,10 @@ index 960fd29..d55bf64 100644
89222 hdr = register_net_sysctl(&init_net, "net/ipv4", ipv4_table); 88882 hdr = register_net_sysctl(&init_net, "net/ipv4", ipv4_table);
89223 if (hdr == NULL) 88883 if (hdr == NULL)
89224diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c 88884diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
89225index 59163c8..8277c51 100644 88885index 9c62257..651cc27 100644
89226--- a/net/ipv4/tcp_input.c 88886--- a/net/ipv4/tcp_input.c
89227+++ b/net/ipv4/tcp_input.c 88887+++ b/net/ipv4/tcp_input.c
89228@@ -4727,7 +4727,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb, 88888@@ -4436,7 +4436,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
89229 * simplifies code) 88889 * simplifies code)
89230 */ 88890 */
89231 static void 88891 static void
@@ -89234,7 +88894,7 @@ index 59163c8..8277c51 100644
89234 struct sk_buff *head, struct sk_buff *tail, 88894 struct sk_buff *head, struct sk_buff *tail,
89235 u32 start, u32 end) 88895 u32 start, u32 end)
89236 { 88896 {
89237@@ -5841,6 +5841,7 @@ discard: 88897@@ -5522,6 +5522,7 @@ discard:
89238 tcp_paws_reject(&tp->rx_opt, 0)) 88898 tcp_paws_reject(&tp->rx_opt, 0))
89239 goto discard_and_undo; 88899 goto discard_and_undo;
89240 88900
@@ -89242,7 +88902,7 @@ index 59163c8..8277c51 100644
89242 if (th->syn) { 88902 if (th->syn) {
89243 /* We see SYN without ACK. It is attempt of 88903 /* We see SYN without ACK. It is attempt of
89244 * simultaneous connect with crossed SYNs. 88904 * simultaneous connect with crossed SYNs.
89245@@ -5891,6 +5892,7 @@ discard: 88905@@ -5572,6 +5573,7 @@ discard:
89246 goto discard; 88906 goto discard;
89247 #endif 88907 #endif
89248 } 88908 }
@@ -89250,7 +88910,7 @@ index 59163c8..8277c51 100644
89250 /* "fifth, if neither of the SYN or RST bits is set then 88910 /* "fifth, if neither of the SYN or RST bits is set then
89251 * drop the segment and return." 88911 * drop the segment and return."
89252 */ 88912 */
89253@@ -5935,7 +5937,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb, 88913@@ -5616,7 +5618,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
89254 goto discard; 88914 goto discard;
89255 88915
89256 if (th->syn) { 88916 if (th->syn) {
@@ -89260,7 +88920,7 @@ index 59163c8..8277c51 100644
89260 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0) 88920 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
89261 return 1; 88921 return 1;
89262diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c 88922diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
89263index d09203c..518eff5 100644 88923index 7999fc5..c812f42 100644
89264--- a/net/ipv4/tcp_ipv4.c 88924--- a/net/ipv4/tcp_ipv4.c
89265+++ b/net/ipv4/tcp_ipv4.c 88925+++ b/net/ipv4/tcp_ipv4.c
89266@@ -90,6 +90,10 @@ int sysctl_tcp_low_latency __read_mostly; 88926@@ -90,6 +90,10 @@ int sysctl_tcp_low_latency __read_mostly;
@@ -89274,25 +88934,7 @@ index d09203c..518eff5 100644
89274 #ifdef CONFIG_TCP_MD5SIG 88934 #ifdef CONFIG_TCP_MD5SIG
89275 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key, 88935 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
89276 __be32 daddr, __be32 saddr, const struct tcphdr *th); 88936 __be32 daddr, __be32 saddr, const struct tcphdr *th);
89277@@ -1005,7 +1009,7 @@ int tcp_md5_do_add(struct sock *sk, const union tcp_md5_addr *addr, 88937@@ -1855,6 +1859,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
89278 struct tcp_sock *tp = tcp_sk(sk);
89279 struct tcp_md5sig_info *md5sig;
89280
89281- key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET);
89282+ key = tcp_md5_do_lookup(sk, addr, family);
89283 if (key) {
89284 /* Pre-existing entry - just update that one. */
89285 memcpy(key->key, newkey, newkeylen);
89286@@ -1050,7 +1054,7 @@ int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family)
89287 struct tcp_md5sig_key *key;
89288 struct tcp_md5sig_info *md5sig;
89289
89290- key = tcp_md5_do_lookup(sk, (union tcp_md5_addr *)&addr, AF_INET);
89291+ key = tcp_md5_do_lookup(sk, addr, family);
89292 if (!key)
89293 return -ENOENT;
89294 hlist_del_rcu(&key->node);
89295@@ -1897,6 +1901,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
89296 return 0; 88938 return 0;
89297 88939
89298 reset: 88940 reset:
@@ -89302,7 +88944,7 @@ index d09203c..518eff5 100644
89302 tcp_v4_send_reset(rsk, skb); 88944 tcp_v4_send_reset(rsk, skb);
89303 discard: 88945 discard:
89304 kfree_skb(skb); 88946 kfree_skb(skb);
89305@@ -1996,12 +2003,19 @@ int tcp_v4_rcv(struct sk_buff *skb) 88947@@ -2000,12 +2007,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
89306 TCP_SKB_CB(skb)->sacked = 0; 88948 TCP_SKB_CB(skb)->sacked = 0;
89307 88949
89308 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest); 88950 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
@@ -89325,7 +88967,7 @@ index d09203c..518eff5 100644
89325 88967
89326 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) { 88968 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
89327 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP); 88969 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
89328@@ -2052,6 +2066,10 @@ no_tcp_socket: 88970@@ -2058,6 +2072,10 @@ csum_error:
89329 bad_packet: 88971 bad_packet:
89330 TCP_INC_STATS_BH(net, TCP_MIB_INERRS); 88972 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
89331 } else { 88973 } else {
@@ -89337,7 +88979,7 @@ index d09203c..518eff5 100644
89337 } 88979 }
89338 88980
89339diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c 88981diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
89340index 2f672e7..b8895e9 100644 88982index 0f01788..d52a859 100644
89341--- a/net/ipv4/tcp_minisocks.c 88983--- a/net/ipv4/tcp_minisocks.c
89342+++ b/net/ipv4/tcp_minisocks.c 88984+++ b/net/ipv4/tcp_minisocks.c
89343@@ -27,6 +27,10 @@ 88985@@ -27,6 +27,10 @@
@@ -89351,7 +88993,7 @@ index 2f672e7..b8895e9 100644
89351 int sysctl_tcp_syncookies __read_mostly = 1; 88993 int sysctl_tcp_syncookies __read_mostly = 1;
89352 EXPORT_SYMBOL(sysctl_tcp_syncookies); 88994 EXPORT_SYMBOL(sysctl_tcp_syncookies);
89353 88995
89354@@ -749,7 +753,10 @@ embryonic_reset: 88996@@ -717,7 +721,10 @@ embryonic_reset:
89355 * avoid becoming vulnerable to outside attack aiming at 88997 * avoid becoming vulnerable to outside attack aiming at
89356 * resetting legit local connections. 88998 * resetting legit local connections.
89357 */ 88999 */
@@ -89377,7 +89019,7 @@ index d4943f6..e7a74a5 100644
89377 cnt += width; 89019 cnt += width;
89378 } 89020 }
89379diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c 89021diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
89380index b78aac3..e18230b 100644 89022index 4b85e6f..22f9ac9 100644
89381--- a/net/ipv4/tcp_timer.c 89023--- a/net/ipv4/tcp_timer.c
89382+++ b/net/ipv4/tcp_timer.c 89024+++ b/net/ipv4/tcp_timer.c
89383@@ -22,6 +22,10 @@ 89025@@ -22,6 +22,10 @@
@@ -89406,7 +89048,7 @@ index b78aac3..e18230b 100644
89406 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) { 89048 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
89407 /* Has it gone just too far? */ 89049 /* Has it gone just too far? */
89408diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c 89050diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
89409index 0a073a2..d4a04de 100644 89051index 93b731d..5a2dd92 100644
89410--- a/net/ipv4/udp.c 89052--- a/net/ipv4/udp.c
89411+++ b/net/ipv4/udp.c 89053+++ b/net/ipv4/udp.c
89412@@ -87,6 +87,7 @@ 89054@@ -87,6 +87,7 @@
@@ -89438,24 +89080,7 @@ index 0a073a2..d4a04de 100644
89438 /* 89080 /*
89439 * This routine is called by the ICMP module when it gets some 89081 * This routine is called by the ICMP module when it gets some
89440 * sort of error condition. If err < 0 then the socket should 89082 * sort of error condition. If err < 0 then the socket should
89441@@ -799,7 +807,7 @@ send: 89083@@ -890,9 +898,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
89442 /*
89443 * Push out all pending data as one UDP datagram. Socket is locked.
89444 */
89445-static int udp_push_pending_frames(struct sock *sk)
89446+int udp_push_pending_frames(struct sock *sk)
89447 {
89448 struct udp_sock *up = udp_sk(sk);
89449 struct inet_sock *inet = inet_sk(sk);
89450@@ -818,6 +826,7 @@ out:
89451 up->pending = 0;
89452 return err;
89453 }
89454+EXPORT_SYMBOL(udp_push_pending_frames);
89455
89456 int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
89457 size_t len)
89458@@ -889,9 +898,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
89459 dport = usin->sin_port; 89084 dport = usin->sin_port;
89460 if (dport == 0) 89085 if (dport == 0)
89461 return -EINVAL; 89086 return -EINVAL;
@@ -89474,8 +89099,8 @@ index 0a073a2..d4a04de 100644
89474 daddr = inet->inet_daddr; 89099 daddr = inet->inet_daddr;
89475 dport = inet->inet_dport; 89100 dport = inet->inet_dport;
89476 /* Open fast path for connected socket. 89101 /* Open fast path for connected socket.
89477@@ -1133,7 +1151,7 @@ static unsigned int first_packet_length(struct sock *sk) 89102@@ -1136,7 +1153,7 @@ static unsigned int first_packet_length(struct sock *sk)
89478 udp_lib_checksum_complete(skb)) { 89103 IS_UDPLITE(sk));
89479 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, 89104 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
89480 IS_UDPLITE(sk)); 89105 IS_UDPLITE(sk));
89481- atomic_inc(&sk->sk_drops); 89106- atomic_inc(&sk->sk_drops);
@@ -89483,7 +89108,7 @@ index 0a073a2..d4a04de 100644
89483 __skb_unlink(skb, rcvq); 89108 __skb_unlink(skb, rcvq);
89484 __skb_queue_tail(&list_kill, skb); 89109 __skb_queue_tail(&list_kill, skb);
89485 } 89110 }
89486@@ -1219,6 +1237,10 @@ try_again: 89111@@ -1222,6 +1239,10 @@ try_again:
89487 if (!skb) 89112 if (!skb)
89488 goto out; 89113 goto out;
89489 89114
@@ -89494,7 +89119,7 @@ index 0a073a2..d4a04de 100644
89494 ulen = skb->len - sizeof(struct udphdr); 89119 ulen = skb->len - sizeof(struct udphdr);
89495 copied = len; 89120 copied = len;
89496 if (copied > ulen) 89121 if (copied > ulen)
89497@@ -1252,7 +1274,7 @@ try_again: 89122@@ -1255,7 +1276,7 @@ try_again:
89498 if (unlikely(err)) { 89123 if (unlikely(err)) {
89499 trace_kfree_skb(skb, udp_recvmsg); 89124 trace_kfree_skb(skb, udp_recvmsg);
89500 if (!peeked) { 89125 if (!peeked) {
@@ -89503,8 +89128,8 @@ index 0a073a2..d4a04de 100644
89503 UDP_INC_STATS_USER(sock_net(sk), 89128 UDP_INC_STATS_USER(sock_net(sk),
89504 UDP_MIB_INERRORS, is_udplite); 89129 UDP_MIB_INERRORS, is_udplite);
89505 } 89130 }
89506@@ -1535,7 +1557,7 @@ int udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) 89131@@ -1542,7 +1563,7 @@ csum_error:
89507 89132 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
89508 drop: 89133 drop:
89509 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite); 89134 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
89510- atomic_inc(&sk->sk_drops); 89135- atomic_inc(&sk->sk_drops);
@@ -89512,7 +89137,7 @@ index 0a073a2..d4a04de 100644
89512 kfree_skb(skb); 89137 kfree_skb(skb);
89513 return -1; 89138 return -1;
89514 } 89139 }
89515@@ -1554,7 +1576,7 @@ static void flush_stack(struct sock **stack, unsigned int count, 89140@@ -1561,7 +1582,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
89516 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC); 89141 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
89517 89142
89518 if (!skb1) { 89143 if (!skb1) {
@@ -89521,7 +89146,7 @@ index 0a073a2..d4a04de 100644
89521 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS, 89146 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
89522 IS_UDPLITE(sk)); 89147 IS_UDPLITE(sk));
89523 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, 89148 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
89524@@ -1723,6 +1745,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, 89149@@ -1730,6 +1751,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
89525 goto csum_error; 89150 goto csum_error;
89526 89151
89527 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE); 89152 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
@@ -89531,7 +89156,7 @@ index 0a073a2..d4a04de 100644
89531 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0); 89156 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
89532 89157
89533 /* 89158 /*
89534@@ -2152,7 +2177,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f, 89159@@ -2160,7 +2184,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
89535 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)), 89160 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
89536 0, sock_i_ino(sp), 89161 0, sock_i_ino(sp),
89537 atomic_read(&sp->sk_refcnt), sp, 89162 atomic_read(&sp->sk_refcnt), sp,
@@ -89580,53 +89205,19 @@ index 9a459be..086b866 100644
89580 return -ENOMEM; 89205 return -ENOMEM;
89581 } 89206 }
89582diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c 89207diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
89583index 50a4c7c..231de25 100644 89208index fb8c94c..fb18024 100644
89584--- a/net/ipv6/addrconf.c 89209--- a/net/ipv6/addrconf.c
89585+++ b/net/ipv6/addrconf.c 89210+++ b/net/ipv6/addrconf.c
89586@@ -1375,6 +1375,23 @@ try_nextdev: 89211@@ -621,7 +621,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
89587 } 89212 idx = 0;
89588 EXPORT_SYMBOL(ipv6_dev_get_saddr); 89213 head = &net->dev_index_head[h];
89589 89214 rcu_read_lock();
89590+int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr, 89215- cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^
89591+ unsigned char banned_flags) 89216+ cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^
89592+{ 89217 net->dev_base_seq;
89593+ struct inet6_ifaddr *ifp; 89218 hlist_for_each_entry_rcu(dev, head, index_hlist) {
89594+ int err = -EADDRNOTAVAIL; 89219 if (idx < s_idx)
89595+ 89220@@ -2380,7 +2380,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
89596+ list_for_each_entry(ifp, &idev->addr_list, if_list) {
89597+ if (ifp->scope == IFA_LINK &&
89598+ !(ifp->flags & banned_flags)) {
89599+ *addr = ifp->addr;
89600+ err = 0;
89601+ break;
89602+ }
89603+ }
89604+ return err;
89605+}
89606+
89607 int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
89608 unsigned char banned_flags)
89609 {
89610@@ -1384,17 +1401,8 @@ int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
89611 rcu_read_lock();
89612 idev = __in6_dev_get(dev);
89613 if (idev) {
89614- struct inet6_ifaddr *ifp;
89615-
89616 read_lock_bh(&idev->lock);
89617- list_for_each_entry(ifp, &idev->addr_list, if_list) {
89618- if (ifp->scope == IFA_LINK &&
89619- !(ifp->flags & banned_flags)) {
89620- *addr = ifp->addr;
89621- err = 0;
89622- break;
89623- }
89624- }
89625+ err = __ipv6_get_lladdr(idev, addr, banned_flags);
89626 read_unlock_bh(&idev->lock);
89627 }
89628 rcu_read_unlock();
89629@@ -2274,7 +2282,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
89630 p.iph.ihl = 5; 89221 p.iph.ihl = 5;
89631 p.iph.protocol = IPPROTO_IPV6; 89222 p.iph.protocol = IPPROTO_IPV6;
89632 p.iph.ttl = 64; 89223 p.iph.ttl = 64;
@@ -89635,17 +89226,25 @@ index 50a4c7c..231de25 100644
89635 89226
89636 if (ops->ndo_do_ioctl) { 89227 if (ops->ndo_do_ioctl) {
89637 mm_segment_t oldfs = get_fs(); 89228 mm_segment_t oldfs = get_fs();
89638@@ -2557,6 +2565,9 @@ static void init_loopback(struct net_device *dev) 89229@@ -4002,7 +4002,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
89639 if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE)) 89230 s_ip_idx = ip_idx = cb->args[2];
89640 continue;
89641 89231
89642+ if (sp_ifa->rt) 89232 rcu_read_lock();
89643+ continue; 89233- cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
89644+ 89234+ cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
89645 sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0); 89235 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
89236 idx = 0;
89237 head = &net->dev_index_head[h];
89238@@ -4587,7 +4587,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
89239 dst_free(&ifp->rt->dst);
89240 break;
89241 }
89242- atomic_inc(&net->ipv6.dev_addr_genid);
89243+ atomic_inc_unchecked(&net->ipv6.dev_addr_genid);
89244 }
89646 89245
89647 /* Failure cases are ignored */ 89246 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
89648@@ -4412,7 +4423,7 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write, 89247@@ -4607,7 +4607,7 @@ int addrconf_sysctl_forward(ctl_table *ctl, int write,
89649 int *valp = ctl->data; 89248 int *valp = ctl->data;
89650 int val = *valp; 89249 int val = *valp;
89651 loff_t pos = *ppos; 89250 loff_t pos = *ppos;
@@ -89654,7 +89253,7 @@ index 50a4c7c..231de25 100644
89654 int ret; 89253 int ret;
89655 89254
89656 /* 89255 /*
89657@@ -4494,7 +4505,7 @@ int addrconf_sysctl_disable(ctl_table *ctl, int write, 89256@@ -4689,7 +4689,7 @@ int addrconf_sysctl_disable(ctl_table *ctl, int write,
89658 int *valp = ctl->data; 89257 int *valp = ctl->data;
89659 int val = *valp; 89258 int val = *valp;
89660 loff_t pos = *ppos; 89259 loff_t pos = *ppos;
@@ -89664,10 +89263,10 @@ index 50a4c7c..231de25 100644
89664 89263
89665 /* 89264 /*
89666diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c 89265diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
89667index fff5bdd..15194fb 100644 89266index b4ff0a4..db9b764 100644
89668--- a/net/ipv6/icmp.c 89267--- a/net/ipv6/icmp.c
89669+++ b/net/ipv6/icmp.c 89268+++ b/net/ipv6/icmp.c
89670@@ -973,7 +973,7 @@ ctl_table ipv6_icmp_table_template[] = { 89269@@ -980,7 +980,7 @@ ctl_table ipv6_icmp_table_template[] = {
89671 89270
89672 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net) 89271 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
89673 { 89272 {
@@ -89676,58 +89275,11 @@ index fff5bdd..15194fb 100644
89676 89275
89677 table = kmemdup(ipv6_icmp_table_template, 89276 table = kmemdup(ipv6_icmp_table_template,
89678 sizeof(ipv6_icmp_table_template), 89277 sizeof(ipv6_icmp_table_template),
89679diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
89680index 192dd1a..5fc9c7a 100644
89681--- a/net/ipv6/ip6_fib.c
89682+++ b/net/ipv6/ip6_fib.c
89683@@ -632,6 +632,12 @@ insert_above:
89684 return ln;
89685 }
89686
89687+static inline bool rt6_qualify_for_ecmp(struct rt6_info *rt)
89688+{
89689+ return (rt->rt6i_flags & (RTF_GATEWAY|RTF_ADDRCONF|RTF_DYNAMIC)) ==
89690+ RTF_GATEWAY;
89691+}
89692+
89693 /*
89694 * Insert routing information in a node.
89695 */
89696@@ -646,6 +652,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
89697 int add = (!info->nlh ||
89698 (info->nlh->nlmsg_flags & NLM_F_CREATE));
89699 int found = 0;
89700+ bool rt_can_ecmp = rt6_qualify_for_ecmp(rt);
89701
89702 ins = &fn->leaf;
89703
89704@@ -691,9 +698,8 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
89705 * To avoid long list, we only had siblings if the
89706 * route have a gateway.
89707 */
89708- if (rt->rt6i_flags & RTF_GATEWAY &&
89709- !(rt->rt6i_flags & RTF_EXPIRES) &&
89710- !(iter->rt6i_flags & RTF_EXPIRES))
89711+ if (rt_can_ecmp &&
89712+ rt6_qualify_for_ecmp(iter))
89713 rt->rt6i_nsiblings++;
89714 }
89715
89716@@ -715,7 +721,8 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
89717 /* Find the first route that have the same metric */
89718 sibling = fn->leaf;
89719 while (sibling) {
89720- if (sibling->rt6i_metric == rt->rt6i_metric) {
89721+ if (sibling->rt6i_metric == rt->rt6i_metric &&
89722+ rt6_qualify_for_ecmp(sibling)) {
89723 list_add_tail(&rt->rt6i_siblings,
89724 &sibling->rt6i_siblings);
89725 break;
89726diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c 89278diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
89727index 95d13c7..791fe2f 100644 89279index ecd6073..58162ae 100644
89728--- a/net/ipv6/ip6_gre.c 89280--- a/net/ipv6/ip6_gre.c
89729+++ b/net/ipv6/ip6_gre.c 89281+++ b/net/ipv6/ip6_gre.c
89730@@ -73,7 +73,7 @@ struct ip6gre_net { 89282@@ -74,7 +74,7 @@ struct ip6gre_net {
89731 struct net_device *fb_tunnel_dev; 89283 struct net_device *fb_tunnel_dev;
89732 }; 89284 };
89733 89285
@@ -89736,7 +89288,7 @@ index 95d13c7..791fe2f 100644
89736 static int ip6gre_tunnel_init(struct net_device *dev); 89288 static int ip6gre_tunnel_init(struct net_device *dev);
89737 static void ip6gre_tunnel_setup(struct net_device *dev); 89289 static void ip6gre_tunnel_setup(struct net_device *dev);
89738 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t); 89290 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
89739@@ -1337,7 +1337,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev) 89291@@ -1283,7 +1283,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
89740 } 89292 }
89741 89293
89742 89294
@@ -89745,7 +89297,7 @@ index 95d13c7..791fe2f 100644
89745 .handler = ip6gre_rcv, 89297 .handler = ip6gre_rcv,
89746 .err_handler = ip6gre_err, 89298 .err_handler = ip6gre_err,
89747 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL, 89299 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
89748@@ -1671,7 +1671,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = { 89300@@ -1617,7 +1617,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
89749 [IFLA_GRE_FLAGS] = { .type = NLA_U32 }, 89301 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
89750 }; 89302 };
89751 89303
@@ -89754,7 +89306,7 @@ index 95d13c7..791fe2f 100644
89754 .kind = "ip6gre", 89306 .kind = "ip6gre",
89755 .maxtype = IFLA_GRE_MAX, 89307 .maxtype = IFLA_GRE_MAX,
89756 .policy = ip6gre_policy, 89308 .policy = ip6gre_policy,
89757@@ -1684,7 +1684,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = { 89309@@ -1630,7 +1630,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
89758 .fill_info = ip6gre_fill_info, 89310 .fill_info = ip6gre_fill_info,
89759 }; 89311 };
89760 89312
@@ -89763,84 +89315,11 @@ index 95d13c7..791fe2f 100644
89763 .kind = "ip6gretap", 89315 .kind = "ip6gretap",
89764 .maxtype = IFLA_GRE_MAX, 89316 .maxtype = IFLA_GRE_MAX,
89765 .policy = ip6gre_policy, 89317 .policy = ip6gre_policy,
89766diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
89767index 851fdae..8f6f09a 100644
89768--- a/net/ipv6/ip6_output.c
89769+++ b/net/ipv6/ip6_output.c
89770@@ -822,11 +822,17 @@ static struct dst_entry *ip6_sk_dst_check(struct sock *sk,
89771 const struct flowi6 *fl6)
89772 {
89773 struct ipv6_pinfo *np = inet6_sk(sk);
89774- struct rt6_info *rt = (struct rt6_info *)dst;
89775+ struct rt6_info *rt;
89776
89777 if (!dst)
89778 goto out;
89779
89780+ if (dst->ops->family != AF_INET6) {
89781+ dst_release(dst);
89782+ return NULL;
89783+ }
89784+
89785+ rt = (struct rt6_info *)dst;
89786 /* Yes, checking route validity in not connected
89787 * case is not very simple. Take into account,
89788 * that we do not support routing by source, TOS,
89789@@ -1093,11 +1099,12 @@ static inline struct ipv6_rt_hdr *ip6_rthdr_dup(struct ipv6_rt_hdr *src,
89790 return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL;
89791 }
89792
89793-static void ip6_append_data_mtu(int *mtu,
89794+static void ip6_append_data_mtu(unsigned int *mtu,
89795 int *maxfraglen,
89796 unsigned int fragheaderlen,
89797 struct sk_buff *skb,
89798- struct rt6_info *rt)
89799+ struct rt6_info *rt,
89800+ bool pmtuprobe)
89801 {
89802 if (!(rt->dst.flags & DST_XFRM_TUNNEL)) {
89803 if (skb == NULL) {
89804@@ -1109,7 +1116,9 @@ static void ip6_append_data_mtu(int *mtu,
89805 * this fragment is not first, the headers
89806 * space is regarded as data space.
89807 */
89808- *mtu = dst_mtu(rt->dst.path);
89809+ *mtu = min(*mtu, pmtuprobe ?
89810+ rt->dst.dev->mtu :
89811+ dst_mtu(rt->dst.path));
89812 }
89813 *maxfraglen = ((*mtu - fragheaderlen) & ~7)
89814 + fragheaderlen - sizeof(struct frag_hdr);
89815@@ -1126,11 +1135,10 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
89816 struct ipv6_pinfo *np = inet6_sk(sk);
89817 struct inet_cork *cork;
89818 struct sk_buff *skb, *skb_prev = NULL;
89819- unsigned int maxfraglen, fragheaderlen;
89820+ unsigned int maxfraglen, fragheaderlen, mtu;
89821 int exthdrlen;
89822 int dst_exthdrlen;
89823 int hh_len;
89824- int mtu;
89825 int copy;
89826 int err;
89827 int offset = 0;
89828@@ -1290,7 +1298,9 @@ alloc_new_skb:
89829 /* update mtu and maxfraglen if necessary */
89830 if (skb == NULL || skb_prev == NULL)
89831 ip6_append_data_mtu(&mtu, &maxfraglen,
89832- fragheaderlen, skb, rt);
89833+ fragheaderlen, skb, rt,
89834+ np->pmtudisc ==
89835+ IPV6_PMTUDISC_PROBE);
89836
89837 skb_prev = skb;
89838
89839diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c 89318diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
89840index fff83cb..82d49dd 100644 89319index 1e55866..b398dab 100644
89841--- a/net/ipv6/ip6_tunnel.c 89320--- a/net/ipv6/ip6_tunnel.c
89842+++ b/net/ipv6/ip6_tunnel.c 89321+++ b/net/ipv6/ip6_tunnel.c
89843@@ -87,7 +87,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2) 89322@@ -88,7 +88,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
89844 89323
89845 static int ip6_tnl_dev_init(struct net_device *dev); 89324 static int ip6_tnl_dev_init(struct net_device *dev);
89846 static void ip6_tnl_dev_setup(struct net_device *dev); 89325 static void ip6_tnl_dev_setup(struct net_device *dev);
@@ -89849,7 +89328,7 @@ index fff83cb..82d49dd 100644
89849 89328
89850 static int ip6_tnl_net_id __read_mostly; 89329 static int ip6_tnl_net_id __read_mostly;
89851 struct ip6_tnl_net { 89330 struct ip6_tnl_net {
89852@@ -1684,7 +1684,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = { 89331@@ -1672,7 +1672,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
89853 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, 89332 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
89854 }; 89333 };
89855 89334
@@ -89871,98 +89350,11 @@ index d1e2e8e..51c19ae 100644
89871 msg.msg_controllen = len; 89350 msg.msg_controllen = len;
89872 msg.msg_flags = flags; 89351 msg.msg_flags = flags;
89873 89352
89874diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
89875index bfa6cc3..c3998c2 100644
89876--- a/net/ipv6/mcast.c
89877+++ b/net/ipv6/mcast.c
89878@@ -1343,8 +1343,9 @@ static void ip6_mc_hdr(struct sock *sk, struct sk_buff *skb,
89879 hdr->daddr = *daddr;
89880 }
89881
89882-static struct sk_buff *mld_newpack(struct net_device *dev, int size)
89883+static struct sk_buff *mld_newpack(struct inet6_dev *idev, int size)
89884 {
89885+ struct net_device *dev = idev->dev;
89886 struct net *net = dev_net(dev);
89887 struct sock *sk = net->ipv6.igmp_sk;
89888 struct sk_buff *skb;
89889@@ -1369,7 +1370,7 @@ static struct sk_buff *mld_newpack(struct net_device *dev, int size)
89890
89891 skb_reserve(skb, hlen);
89892
89893- if (ipv6_get_lladdr(dev, &addr_buf, IFA_F_TENTATIVE)) {
89894+ if (__ipv6_get_lladdr(idev, &addr_buf, IFA_F_TENTATIVE)) {
89895 /* <draft-ietf-magma-mld-source-05.txt>:
89896 * use unspecified address as the source address
89897 * when a valid link-local address is not available.
89898@@ -1465,7 +1466,7 @@ static struct sk_buff *add_grhead(struct sk_buff *skb, struct ifmcaddr6 *pmc,
89899 struct mld2_grec *pgr;
89900
89901 if (!skb)
89902- skb = mld_newpack(dev, dev->mtu);
89903+ skb = mld_newpack(pmc->idev, dev->mtu);
89904 if (!skb)
89905 return NULL;
89906 pgr = (struct mld2_grec *)skb_put(skb, sizeof(struct mld2_grec));
89907@@ -1485,7 +1486,8 @@ static struct sk_buff *add_grhead(struct sk_buff *skb, struct ifmcaddr6 *pmc,
89908 static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
89909 int type, int gdeleted, int sdeleted)
89910 {
89911- struct net_device *dev = pmc->idev->dev;
89912+ struct inet6_dev *idev = pmc->idev;
89913+ struct net_device *dev = idev->dev;
89914 struct mld2_report *pmr;
89915 struct mld2_grec *pgr = NULL;
89916 struct ip6_sf_list *psf, *psf_next, *psf_prev, **psf_list;
89917@@ -1514,7 +1516,7 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
89918 AVAILABLE(skb) < grec_size(pmc, type, gdeleted, sdeleted)) {
89919 if (skb)
89920 mld_sendpack(skb);
89921- skb = mld_newpack(dev, dev->mtu);
89922+ skb = mld_newpack(idev, dev->mtu);
89923 }
89924 }
89925 first = 1;
89926@@ -1541,7 +1543,7 @@ static struct sk_buff *add_grec(struct sk_buff *skb, struct ifmcaddr6 *pmc,
89927 pgr->grec_nsrcs = htons(scount);
89928 if (skb)
89929 mld_sendpack(skb);
89930- skb = mld_newpack(dev, dev->mtu);
89931+ skb = mld_newpack(idev, dev->mtu);
89932 first = 1;
89933 scount = 0;
89934 }
89935@@ -1596,8 +1598,8 @@ static void mld_send_report(struct inet6_dev *idev, struct ifmcaddr6 *pmc)
89936 struct sk_buff *skb = NULL;
89937 int type;
89938
89939+ read_lock_bh(&idev->lock);
89940 if (!pmc) {
89941- read_lock_bh(&idev->lock);
89942 for (pmc=idev->mc_list; pmc; pmc=pmc->next) {
89943 if (pmc->mca_flags & MAF_NOREPORT)
89944 continue;
89945@@ -1609,7 +1611,6 @@ static void mld_send_report(struct inet6_dev *idev, struct ifmcaddr6 *pmc)
89946 skb = add_grec(skb, pmc, type, 0, 0);
89947 spin_unlock_bh(&pmc->mca_lock);
89948 }
89949- read_unlock_bh(&idev->lock);
89950 } else {
89951 spin_lock_bh(&pmc->mca_lock);
89952 if (pmc->mca_sfcount[MCAST_EXCLUDE])
89953@@ -1619,6 +1620,7 @@ static void mld_send_report(struct inet6_dev *idev, struct ifmcaddr6 *pmc)
89954 skb = add_grec(skb, pmc, type, 0, 0);
89955 spin_unlock_bh(&pmc->mca_lock);
89956 }
89957+ read_unlock_bh(&idev->lock);
89958 if (skb)
89959 mld_sendpack(skb);
89960 }
89961diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c 89353diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
89962index 341b54a..591e8ed 100644 89354index 44400c2..8e11f52 100644
89963--- a/net/ipv6/netfilter/ip6_tables.c 89355--- a/net/ipv6/netfilter/ip6_tables.c
89964+++ b/net/ipv6/netfilter/ip6_tables.c 89356+++ b/net/ipv6/netfilter/ip6_tables.c
89965@@ -1076,14 +1076,14 @@ static int compat_table_info(const struct xt_table_info *info, 89357@@ -1078,14 +1078,14 @@ static int compat_table_info(const struct xt_table_info *info,
89966 #endif 89358 #endif
89967 89359
89968 static int get_info(struct net *net, void __user *user, 89360 static int get_info(struct net *net, void __user *user,
@@ -89980,7 +89372,7 @@ index 341b54a..591e8ed 100644
89980 sizeof(struct ip6t_getinfo)); 89372 sizeof(struct ip6t_getinfo));
89981 return -EINVAL; 89373 return -EINVAL;
89982 } 89374 }
89983@@ -1120,7 +1120,7 @@ static int get_info(struct net *net, void __user *user, 89375@@ -1122,7 +1122,7 @@ static int get_info(struct net *net, void __user *user,
89984 info.size = private->size; 89376 info.size = private->size;
89985 strcpy(info.name, name); 89377 strcpy(info.name, name);
89986 89378
@@ -89989,7 +89381,7 @@ index 341b54a..591e8ed 100644
89989 ret = -EFAULT; 89381 ret = -EFAULT;
89990 else 89382 else
89991 ret = 0; 89383 ret = 0;
89992@@ -1974,7 +1974,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len) 89384@@ -1976,7 +1976,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
89993 89385
89994 switch (cmd) { 89386 switch (cmd) {
89995 case IP6T_SO_GET_INFO: 89387 case IP6T_SO_GET_INFO:
@@ -89998,7 +89390,7 @@ index 341b54a..591e8ed 100644
89998 break; 89390 break;
89999 case IP6T_SO_GET_ENTRIES: 89391 case IP6T_SO_GET_ENTRIES:
90000 ret = compat_get_entries(sock_net(sk), user, len); 89392 ret = compat_get_entries(sock_net(sk), user, len);
90001@@ -2021,7 +2021,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len) 89393@@ -2023,7 +2023,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
90002 89394
90003 switch (cmd) { 89395 switch (cmd) {
90004 case IP6T_SO_GET_INFO: 89396 case IP6T_SO_GET_INFO:
@@ -90008,10 +89400,10 @@ index 341b54a..591e8ed 100644
90008 89400
90009 case IP6T_SO_GET_ENTRIES: 89401 case IP6T_SO_GET_ENTRIES:
90010diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c 89402diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
90011index 6700069..1e50f42 100644 89403index dffdc1a..ccc6678 100644
90012--- a/net/ipv6/netfilter/nf_conntrack_reasm.c 89404--- a/net/ipv6/netfilter/nf_conntrack_reasm.c
90013+++ b/net/ipv6/netfilter/nf_conntrack_reasm.c 89405+++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
90014@@ -89,12 +89,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = { 89406@@ -90,12 +90,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
90015 89407
90016 static int nf_ct_frag6_sysctl_register(struct net *net) 89408 static int nf_ct_frag6_sysctl_register(struct net *net)
90017 { 89409 {
@@ -90026,7 +89418,7 @@ index 6700069..1e50f42 100644
90026 GFP_KERNEL); 89418 GFP_KERNEL);
90027 if (table == NULL) 89419 if (table == NULL)
90028 goto err_alloc; 89420 goto err_alloc;
90029@@ -102,9 +101,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net) 89421@@ -103,9 +102,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
90030 table[0].data = &net->nf_frag.frags.timeout; 89422 table[0].data = &net->nf_frag.frags.timeout;
90031 table[1].data = &net->nf_frag.frags.low_thresh; 89423 table[1].data = &net->nf_frag.frags.low_thresh;
90032 table[2].data = &net->nf_frag.frags.high_thresh; 89424 table[2].data = &net->nf_frag.frags.high_thresh;
@@ -90039,7 +89431,7 @@ index 6700069..1e50f42 100644
90039 if (hdr == NULL) 89431 if (hdr == NULL)
90040 goto err_reg; 89432 goto err_reg;
90041 89433
90042@@ -112,8 +111,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net) 89434@@ -113,8 +112,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
90043 return 0; 89435 return 0;
90044 89436
90045 err_reg: 89437 err_reg:
@@ -90050,7 +89442,7 @@ index 6700069..1e50f42 100644
90050 return -ENOMEM; 89442 return -ENOMEM;
90051 } 89443 }
90052diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c 89444diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
90053index 330b5e7..796fbf1 100644 89445index eedff8c..6e13a47 100644
90054--- a/net/ipv6/raw.c 89446--- a/net/ipv6/raw.c
90055+++ b/net/ipv6/raw.c 89447+++ b/net/ipv6/raw.c
90056@@ -378,7 +378,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb) 89448@@ -378,7 +378,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
@@ -90080,7 +89472,7 @@ index 330b5e7..796fbf1 100644
90080 kfree_skb(skb); 89472 kfree_skb(skb);
90081 return NET_RX_DROP; 89473 return NET_RX_DROP;
90082 } 89474 }
90083@@ -603,7 +603,7 @@ out: 89475@@ -602,7 +602,7 @@ out:
90084 return err; 89476 return err;
90085 } 89477 }
90086 89478
@@ -90089,7 +89481,7 @@ index 330b5e7..796fbf1 100644
90089 struct flowi6 *fl6, struct dst_entry **dstp, 89481 struct flowi6 *fl6, struct dst_entry **dstp,
90090 unsigned int flags) 89482 unsigned int flags)
90091 { 89483 {
90092@@ -915,12 +915,15 @@ do_confirm: 89484@@ -914,12 +914,15 @@ do_confirm:
90093 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname, 89485 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
90094 char __user *optval, int optlen) 89486 char __user *optval, int optlen)
90095 { 89487 {
@@ -90106,7 +89498,7 @@ index 330b5e7..796fbf1 100644
90106 return 0; 89498 return 0;
90107 default: 89499 default:
90108 return -ENOPROTOOPT; 89500 return -ENOPROTOOPT;
90109@@ -933,6 +936,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname, 89501@@ -932,6 +935,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
90110 char __user *optval, int __user *optlen) 89502 char __user *optval, int __user *optlen)
90111 { 89503 {
90112 int len; 89504 int len;
@@ -90114,7 +89506,7 @@ index 330b5e7..796fbf1 100644
90114 89506
90115 switch (optname) { 89507 switch (optname) {
90116 case ICMPV6_FILTER: 89508 case ICMPV6_FILTER:
90117@@ -944,7 +948,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname, 89509@@ -943,7 +947,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
90118 len = sizeof(struct icmp6_filter); 89510 len = sizeof(struct icmp6_filter);
90119 if (put_user(len, optlen)) 89511 if (put_user(len, optlen))
90120 return -EFAULT; 89512 return -EFAULT;
@@ -90124,7 +89516,7 @@ index 330b5e7..796fbf1 100644
90124 return -EFAULT; 89516 return -EFAULT;
90125 return 0; 89517 return 0;
90126 default: 89518 default:
90127@@ -1252,7 +1257,7 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i) 89519@@ -1251,7 +1256,7 @@ static void raw6_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
90128 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)), 89520 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
90129 0, 89521 0,
90130 sock_i_ino(sp), 89522 sock_i_ino(sp),
@@ -90134,10 +89526,10 @@ index 330b5e7..796fbf1 100644
90134 89526
90135 static int raw6_seq_show(struct seq_file *seq, void *v) 89527 static int raw6_seq_show(struct seq_file *seq, void *v)
90136diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c 89528diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
90137index 0ba10e5..c14a4f6 100644 89529index 790d9f4..68ae078 100644
90138--- a/net/ipv6/reassembly.c 89530--- a/net/ipv6/reassembly.c
90139+++ b/net/ipv6/reassembly.c 89531+++ b/net/ipv6/reassembly.c
90140@@ -602,12 +602,11 @@ static struct ctl_table ip6_frags_ctl_table[] = { 89532@@ -621,12 +621,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
90141 89533
90142 static int __net_init ip6_frags_ns_sysctl_register(struct net *net) 89534 static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
90143 { 89535 {
@@ -90152,7 +89544,7 @@ index 0ba10e5..c14a4f6 100644
90152 if (table == NULL) 89544 if (table == NULL)
90153 goto err_alloc; 89545 goto err_alloc;
90154 89546
90155@@ -618,9 +617,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) 89547@@ -637,9 +636,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
90156 /* Don't export sysctls to unprivileged users */ 89548 /* Don't export sysctls to unprivileged users */
90157 if (net->user_ns != &init_user_ns) 89549 if (net->user_ns != &init_user_ns)
90158 table[0].procname = NULL; 89550 table[0].procname = NULL;
@@ -90165,7 +89557,7 @@ index 0ba10e5..c14a4f6 100644
90165 if (hdr == NULL) 89557 if (hdr == NULL)
90166 goto err_reg; 89558 goto err_reg;
90167 89559
90168@@ -628,8 +628,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net) 89560@@ -647,8 +647,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
90169 return 0; 89561 return 0;
90170 89562
90171 err_reg: 89563 err_reg:
@@ -90176,172 +89568,10 @@ index 0ba10e5..c14a4f6 100644
90176 return -ENOMEM; 89568 return -ENOMEM;
90177 } 89569 }
90178diff --git a/net/ipv6/route.c b/net/ipv6/route.c 89570diff --git a/net/ipv6/route.c b/net/ipv6/route.c
90179index e5fe004..d8ed9b0 100644 89571index bacce6c..9d1741a 100644
90180--- a/net/ipv6/route.c 89572--- a/net/ipv6/route.c
90181+++ b/net/ipv6/route.c 89573+++ b/net/ipv6/route.c
90182@@ -65,6 +65,12 @@ 89574@@ -2903,7 +2903,7 @@ ctl_table ipv6_route_table_template[] = {
90183 #include <linux/sysctl.h>
90184 #endif
90185
90186+enum rt6_nud_state {
90187+ RT6_NUD_FAIL_HARD = -2,
90188+ RT6_NUD_FAIL_SOFT = -1,
90189+ RT6_NUD_SUCCEED = 1
90190+};
90191+
90192 static struct rt6_info *ip6_rt_copy(struct rt6_info *ort,
90193 const struct in6_addr *dest);
90194 static struct dst_entry *ip6_dst_check(struct dst_entry *dst, u32 cookie);
90195@@ -527,26 +533,29 @@ static inline int rt6_check_dev(struct rt6_info *rt, int oif)
90196 return 0;
90197 }
90198
90199-static inline bool rt6_check_neigh(struct rt6_info *rt)
90200+static inline enum rt6_nud_state rt6_check_neigh(struct rt6_info *rt)
90201 {
90202 struct neighbour *neigh;
90203- bool ret = false;
90204+ enum rt6_nud_state ret = RT6_NUD_FAIL_HARD;
90205
90206 if (rt->rt6i_flags & RTF_NONEXTHOP ||
90207 !(rt->rt6i_flags & RTF_GATEWAY))
90208- return true;
90209+ return RT6_NUD_SUCCEED;
90210
90211 rcu_read_lock_bh();
90212 neigh = __ipv6_neigh_lookup_noref(rt->dst.dev, &rt->rt6i_gateway);
90213 if (neigh) {
90214 read_lock(&neigh->lock);
90215 if (neigh->nud_state & NUD_VALID)
90216- ret = true;
90217+ ret = RT6_NUD_SUCCEED;
90218 #ifdef CONFIG_IPV6_ROUTER_PREF
90219 else if (!(neigh->nud_state & NUD_FAILED))
90220- ret = true;
90221+ ret = RT6_NUD_SUCCEED;
90222 #endif
90223 read_unlock(&neigh->lock);
90224+ } else {
90225+ ret = IS_ENABLED(CONFIG_IPV6_ROUTER_PREF) ?
90226+ RT6_NUD_SUCCEED : RT6_NUD_FAIL_SOFT;
90227 }
90228 rcu_read_unlock_bh();
90229
90230@@ -560,43 +569,52 @@ static int rt6_score_route(struct rt6_info *rt, int oif,
90231
90232 m = rt6_check_dev(rt, oif);
90233 if (!m && (strict & RT6_LOOKUP_F_IFACE))
90234- return -1;
90235+ return RT6_NUD_FAIL_HARD;
90236 #ifdef CONFIG_IPV6_ROUTER_PREF
90237 m |= IPV6_DECODE_PREF(IPV6_EXTRACT_PREF(rt->rt6i_flags)) << 2;
90238 #endif
90239- if (!rt6_check_neigh(rt) && (strict & RT6_LOOKUP_F_REACHABLE))
90240- return -1;
90241+ if (strict & RT6_LOOKUP_F_REACHABLE) {
90242+ int n = rt6_check_neigh(rt);
90243+ if (n < 0)
90244+ return n;
90245+ }
90246 return m;
90247 }
90248
90249 static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict,
90250- int *mpri, struct rt6_info *match)
90251+ int *mpri, struct rt6_info *match,
90252+ bool *do_rr)
90253 {
90254 int m;
90255+ bool match_do_rr = false;
90256
90257 if (rt6_check_expired(rt))
90258 goto out;
90259
90260 m = rt6_score_route(rt, oif, strict);
90261- if (m < 0)
90262+ if (m == RT6_NUD_FAIL_SOFT && !IS_ENABLED(CONFIG_IPV6_ROUTER_PREF)) {
90263+ match_do_rr = true;
90264+ m = 0; /* lowest valid score */
90265+ } else if (m < 0) {
90266 goto out;
90267+ }
90268+
90269+ if (strict & RT6_LOOKUP_F_REACHABLE)
90270+ rt6_probe(rt);
90271
90272 if (m > *mpri) {
90273- if (strict & RT6_LOOKUP_F_REACHABLE)
90274- rt6_probe(match);
90275+ *do_rr = match_do_rr;
90276 *mpri = m;
90277 match = rt;
90278- } else if (strict & RT6_LOOKUP_F_REACHABLE) {
90279- rt6_probe(rt);
90280 }
90281-
90282 out:
90283 return match;
90284 }
90285
90286 static struct rt6_info *find_rr_leaf(struct fib6_node *fn,
90287 struct rt6_info *rr_head,
90288- u32 metric, int oif, int strict)
90289+ u32 metric, int oif, int strict,
90290+ bool *do_rr)
90291 {
90292 struct rt6_info *rt, *match;
90293 int mpri = -1;
90294@@ -604,10 +622,10 @@ static struct rt6_info *find_rr_leaf(struct fib6_node *fn,
90295 match = NULL;
90296 for (rt = rr_head; rt && rt->rt6i_metric == metric;
90297 rt = rt->dst.rt6_next)
90298- match = find_match(rt, oif, strict, &mpri, match);
90299+ match = find_match(rt, oif, strict, &mpri, match, do_rr);
90300 for (rt = fn->leaf; rt && rt != rr_head && rt->rt6i_metric == metric;
90301 rt = rt->dst.rt6_next)
90302- match = find_match(rt, oif, strict, &mpri, match);
90303+ match = find_match(rt, oif, strict, &mpri, match, do_rr);
90304
90305 return match;
90306 }
90307@@ -616,15 +634,16 @@ static struct rt6_info *rt6_select(struct fib6_node *fn, int oif, int strict)
90308 {
90309 struct rt6_info *match, *rt0;
90310 struct net *net;
90311+ bool do_rr = false;
90312
90313 rt0 = fn->rr_ptr;
90314 if (!rt0)
90315 fn->rr_ptr = rt0 = fn->leaf;
90316
90317- match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict);
90318+ match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict,
90319+ &do_rr);
90320
90321- if (!match &&
90322- (strict & RT6_LOOKUP_F_REACHABLE)) {
90323+ if (do_rr) {
90324 struct rt6_info *next = rt0->dst.rt6_next;
90325
90326 /* no entries matched; do round-robin */
90327@@ -1074,10 +1093,13 @@ static void ip6_link_failure(struct sk_buff *skb)
90328
90329 rt = (struct rt6_info *) skb_dst(skb);
90330 if (rt) {
90331- if (rt->rt6i_flags & RTF_CACHE)
90332- rt6_update_expires(rt, 0);
90333- else if (rt->rt6i_node && (rt->rt6i_flags & RTF_DEFAULT))
90334+ if (rt->rt6i_flags & RTF_CACHE) {
90335+ dst_hold(&rt->dst);
90336+ if (ip6_del_rt(rt))
90337+ dst_free(&rt->dst);
90338+ } else if (rt->rt6i_node && (rt->rt6i_flags & RTF_DEFAULT)) {
90339 rt->rt6i_node->fn_sernum = -1;
90340+ }
90341 }
90342 }
90343
90344@@ -2881,7 +2903,7 @@ ctl_table ipv6_route_table_template[] = {
90345 89575
90346 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net) 89576 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
90347 { 89577 {
@@ -90351,7 +89581,7 @@ index e5fe004..d8ed9b0 100644
90351 table = kmemdup(ipv6_route_table_template, 89581 table = kmemdup(ipv6_route_table_template,
90352 sizeof(ipv6_route_table_template), 89582 sizeof(ipv6_route_table_template),
90353diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c 89583diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
90354index 02f96dc..58dd9e8 100644 89584index 60df36d..f3ab7c8 100644
90355--- a/net/ipv6/sit.c 89585--- a/net/ipv6/sit.c
90356+++ b/net/ipv6/sit.c 89586+++ b/net/ipv6/sit.c
90357@@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev); 89587@@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
@@ -90363,16 +89593,7 @@ index 02f96dc..58dd9e8 100644
90363 89593
90364 static int sit_net_id __read_mostly; 89594 static int sit_net_id __read_mostly;
90365 struct sit_net { 89595 struct sit_net {
90366@@ -624,7 +624,7 @@ static int ipip6_rcv(struct sk_buff *skb) 89596@@ -1453,7 +1453,7 @@ static const struct nla_policy ipip6_policy[IFLA_IPTUN_MAX + 1] = {
90367 tunnel->dev->stats.rx_errors++;
90368 goto out;
90369 }
90370- } else {
90371+ } else if (!(tunnel->dev->flags&IFF_POINTOPOINT)) {
90372 if (is_spoofed_6rd(tunnel, iph->saddr,
90373 &ipv6_hdr(skb)->saddr) ||
90374 is_spoofed_6rd(tunnel, iph->daddr,
90375@@ -1486,7 +1486,7 @@ static const struct nla_policy ipip6_policy[IFLA_IPTUN_MAX + 1] = {
90376 #endif 89597 #endif
90377 }; 89598 };
90378 89599
@@ -90395,7 +89616,7 @@ index e85c48b..b8268d3 100644
90395 struct ctl_table *ipv6_icmp_table; 89616 struct ctl_table *ipv6_icmp_table;
90396 int err; 89617 int err;
90397diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c 89618diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
90398index 0fce928..c52a518 100644 89619index 0a17ed9..2526cc3 100644
90399--- a/net/ipv6/tcp_ipv6.c 89620--- a/net/ipv6/tcp_ipv6.c
90400+++ b/net/ipv6/tcp_ipv6.c 89621+++ b/net/ipv6/tcp_ipv6.c
90401@@ -103,6 +103,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb) 89622@@ -103,6 +103,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
@@ -90409,7 +89630,7 @@ index 0fce928..c52a518 100644
90409 static void tcp_v6_hash(struct sock *sk) 89630 static void tcp_v6_hash(struct sock *sk)
90410 { 89631 {
90411 if (sk->sk_state != TCP_CLOSE) { 89632 if (sk->sk_state != TCP_CLOSE) {
90412@@ -1446,6 +1450,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) 89633@@ -1398,6 +1402,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
90413 return 0; 89634 return 0;
90414 89635
90415 reset: 89636 reset:
@@ -90419,7 +89640,7 @@ index 0fce928..c52a518 100644
90419 tcp_v6_send_reset(sk, skb); 89640 tcp_v6_send_reset(sk, skb);
90420 discard: 89641 discard:
90421 if (opt_skb) 89642 if (opt_skb)
90422@@ -1527,12 +1534,20 @@ static int tcp_v6_rcv(struct sk_buff *skb) 89643@@ -1480,12 +1487,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
90423 TCP_SKB_CB(skb)->sacked = 0; 89644 TCP_SKB_CB(skb)->sacked = 0;
90424 89645
90425 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest); 89646 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
@@ -90442,7 +89663,7 @@ index 0fce928..c52a518 100644
90442 89663
90443 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) { 89664 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
90444 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP); 89665 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
90445@@ -1581,6 +1596,10 @@ no_tcp_socket: 89666@@ -1536,6 +1551,10 @@ csum_error:
90446 bad_packet: 89667 bad_packet:
90447 TCP_INC_STATS_BH(net, TCP_MIB_INERRS); 89668 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
90448 } else { 89669 } else {
@@ -90454,7 +89675,7 @@ index 0fce928..c52a518 100644
90454 } 89675 }
90455 89676
90456diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c 89677diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
90457index 27f0f8e..a8928b5 100644 89678index e7b28f9..d09c290 100644
90458--- a/net/ipv6/udp.c 89679--- a/net/ipv6/udp.c
90459+++ b/net/ipv6/udp.c 89680+++ b/net/ipv6/udp.c
90460@@ -52,6 +52,10 @@ 89681@@ -52,6 +52,10 @@
@@ -90477,8 +89698,8 @@ index 27f0f8e..a8928b5 100644
90477 if (is_udp4) 89698 if (is_udp4)
90478 UDP_INC_STATS_USER(sock_net(sk), 89699 UDP_INC_STATS_USER(sock_net(sk),
90479 UDP_MIB_INERRORS, 89700 UDP_MIB_INERRORS,
90480@@ -657,7 +661,7 @@ int udpv6_queue_rcv_skb(struct sock *sk, struct sk_buff *skb) 89701@@ -665,7 +669,7 @@ csum_error:
90481 return rc; 89702 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
90482 drop: 89703 drop:
90483 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite); 89704 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
90484- atomic_inc(&sk->sk_drops); 89705- atomic_inc(&sk->sk_drops);
@@ -90486,7 +89707,7 @@ index 27f0f8e..a8928b5 100644
90486 kfree_skb(skb); 89707 kfree_skb(skb);
90487 return -1; 89708 return -1;
90488 } 89709 }
90489@@ -715,7 +719,7 @@ static void flush_stack(struct sock **stack, unsigned int count, 89710@@ -723,7 +727,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
90490 if (likely(skb1 == NULL)) 89711 if (likely(skb1 == NULL))
90491 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC); 89712 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
90492 if (!skb1) { 89713 if (!skb1) {
@@ -90495,8 +89716,8 @@ index 27f0f8e..a8928b5 100644
90495 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS, 89716 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
90496 IS_UDPLITE(sk)); 89717 IS_UDPLITE(sk));
90497 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, 89718 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
90498@@ -852,6 +856,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable, 89719@@ -860,6 +864,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
90499 goto discard; 89720 goto csum_error;
90500 89721
90501 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE); 89722 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
90502+#ifdef CONFIG_GRKERNSEC_BLACKHOLE 89723+#ifdef CONFIG_GRKERNSEC_BLACKHOLE
@@ -90505,25 +89726,7 @@ index 27f0f8e..a8928b5 100644
90505 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0); 89726 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
90506 89727
90507 kfree_skb(skb); 89728 kfree_skb(skb);
90508@@ -945,11 +952,16 @@ static int udp_v6_push_pending_frames(struct sock *sk) 89729@@ -1392,7 +1399,7 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
90509 struct udphdr *uh;
90510 struct udp_sock *up = udp_sk(sk);
90511 struct inet_sock *inet = inet_sk(sk);
90512- struct flowi6 *fl6 = &inet->cork.fl.u.ip6;
90513+ struct flowi6 *fl6;
90514 int err = 0;
90515 int is_udplite = IS_UDPLITE(sk);
90516 __wsum csum = 0;
90517
90518+ if (up->pending == AF_INET)
90519+ return udp_push_pending_frames(sk);
90520+
90521+ fl6 = &inet->cork.fl.u.ip6;
90522+
90523 /* Grab the skbuff where UDP header space exists. */
90524 if ((skb = skb_peek(&sk->sk_write_queue)) == NULL)
90525 goto out;
90526@@ -1377,7 +1389,7 @@ static void udp6_sock_seq_show(struct seq_file *seq, struct sock *sp, int bucket
90527 0, 89730 0,
90528 sock_i_ino(sp), 89731 sock_i_ino(sp),
90529 atomic_read(&sp->sk_refcnt), sp, 89732 atomic_read(&sp->sk_refcnt), sp,
@@ -90572,7 +89775,7 @@ index 23ed03d..465a71d 100644
90572 return -ENOMEM; 89775 return -ENOMEM;
90573 } 89776 }
90574diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c 89777diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
90575index 362ba47..66196f4 100644 89778index 41ac7938..75e3bb1 100644
90576--- a/net/irda/ircomm/ircomm_tty.c 89779--- a/net/irda/ircomm/ircomm_tty.c
90577+++ b/net/irda/ircomm/ircomm_tty.c 89780+++ b/net/irda/ircomm/ircomm_tty.c
90578@@ -319,11 +319,11 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self, 89781@@ -319,11 +319,11 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
@@ -90646,21 +89849,8 @@ index 362ba47..66196f4 100644
90646 seq_printf(m, "Max data size: %d\n", self->max_data_size); 89849 seq_printf(m, "Max data size: %d\n", self->max_data_size);
90647 seq_printf(m, "Max header size: %d\n", self->max_header_size); 89850 seq_printf(m, "Max header size: %d\n", self->max_header_size);
90648 89851
90649diff --git a/net/irda/irlap_frame.c b/net/irda/irlap_frame.c
90650index 8c00416..9ea0c93 100644
90651--- a/net/irda/irlap_frame.c
90652+++ b/net/irda/irlap_frame.c
90653@@ -544,7 +544,7 @@ static void irlap_recv_discovery_xid_cmd(struct irlap_cb *self,
90654 /*
90655 * We now have some discovery info to deliver!
90656 */
90657- discovery = kmalloc(sizeof(discovery_t), GFP_ATOMIC);
90658+ discovery = kzalloc(sizeof(discovery_t), GFP_ATOMIC);
90659 if (!discovery) {
90660 IRDA_WARNING("%s: unable to malloc!\n", __func__);
90661 return;
90662diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c 89852diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
90663index 206ce6d..cfb27cd 100644 89853index ae69165..c8b82d8 100644
90664--- a/net/iucv/af_iucv.c 89854--- a/net/iucv/af_iucv.c
90665+++ b/net/iucv/af_iucv.c 89855+++ b/net/iucv/af_iucv.c
90666@@ -773,10 +773,10 @@ static int iucv_sock_autobind(struct sock *sk) 89856@@ -773,10 +773,10 @@ static int iucv_sock_autobind(struct sock *sk)
@@ -90690,26 +89880,10 @@ index 4fe76ff..426a904 100644
90690 }; 89880 };
90691 89881
90692diff --git a/net/key/af_key.c b/net/key/af_key.c 89882diff --git a/net/key/af_key.c b/net/key/af_key.c
90693index 5b1e5af..1b929e7 100644 89883index 9da8620..97070ad 100644
90694--- a/net/key/af_key.c 89884--- a/net/key/af_key.c
90695+++ b/net/key/af_key.c 89885+++ b/net/key/af_key.c
90696@@ -1710,6 +1710,7 @@ static int key_notify_sa_flush(const struct km_event *c) 89886@@ -3047,10 +3047,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
90697 hdr->sadb_msg_version = PF_KEY_V2;
90698 hdr->sadb_msg_errno = (uint8_t) 0;
90699 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
90700+ hdr->sadb_msg_reserved = 0;
90701
90702 pfkey_broadcast(skb, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
90703
90704@@ -2695,6 +2696,7 @@ static int key_notify_policy_flush(const struct km_event *c)
90705 hdr->sadb_msg_errno = (uint8_t) 0;
90706 hdr->sadb_msg_satype = SADB_SATYPE_UNSPEC;
90707 hdr->sadb_msg_len = (sizeof(struct sadb_msg) / sizeof(uint64_t));
90708+ hdr->sadb_msg_reserved = 0;
90709 pfkey_broadcast(skb_out, GFP_ATOMIC, BROADCAST_ALL, NULL, c->net);
90710 return 0;
90711
90712@@ -3041,10 +3043,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
90713 static u32 get_acqseq(void) 89887 static u32 get_acqseq(void)
90714 { 89888 {
90715 u32 res; 89889 u32 res;
@@ -90722,34 +89896,20 @@ index 5b1e5af..1b929e7 100644
90722 } while (!res); 89896 } while (!res);
90723 return res; 89897 return res;
90724 } 89898 }
90725diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c
90726index 8dec687..5ebee2d 100644
90727--- a/net/l2tp/l2tp_ppp.c
90728+++ b/net/l2tp/l2tp_ppp.c
90729@@ -1793,7 +1793,8 @@ static const struct proto_ops pppol2tp_ops = {
90730
90731 static const struct pppox_proto pppol2tp_proto = {
90732 .create = pppol2tp_create,
90733- .ioctl = pppol2tp_ioctl
90734+ .ioctl = pppol2tp_ioctl,
90735+ .owner = THIS_MODULE,
90736 };
90737
90738 #ifdef CONFIG_L2TP_V3
90739diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c 89899diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
90740index 843d8c4..cb04fa1 100644 89900index 4fdb306e..920086a 100644
90741--- a/net/mac80211/cfg.c 89901--- a/net/mac80211/cfg.c
90742+++ b/net/mac80211/cfg.c 89902+++ b/net/mac80211/cfg.c
90743@@ -799,7 +799,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy, 89903@@ -804,7 +804,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
90744 ret = ieee80211_vif_use_channel(sdata, chandef, 89904 ret = ieee80211_vif_use_channel(sdata, chandef,
90745 IEEE80211_CHANCTX_EXCLUSIVE); 89905 IEEE80211_CHANCTX_EXCLUSIVE);
90746 } 89906 }
90747- } else if (local->open_count == local->monitors) { 89907- } else if (local->open_count == local->monitors) {
90748+ } else if (local_read(&local->open_count) == local->monitors) { 89908+ } else if (local_read(&local->open_count) == local->monitors) {
90749 local->_oper_channel = chandef->chan; 89909 local->_oper_chandef = *chandef;
90750 local->_oper_channel_type = cfg80211_get_chandef_type(chandef);
90751 ieee80211_hw_config(local, 0); 89910 ieee80211_hw_config(local, 0);
90752@@ -2834,7 +2834,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy, 89911 }
89912@@ -2920,7 +2920,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
90753 else 89913 else
90754 local->probe_req_reg--; 89914 local->probe_req_reg--;
90755 89915
@@ -90758,7 +89918,7 @@ index 843d8c4..cb04fa1 100644
90758 break; 89918 break;
90759 89919
90760 ieee80211_queue_work(&local->hw, &local->reconfig_filter); 89920 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
90761@@ -3297,8 +3297,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy, 89921@@ -3383,8 +3383,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
90762 if (chanctx_conf) { 89922 if (chanctx_conf) {
90763 *chandef = chanctx_conf->def; 89923 *chandef = chanctx_conf->def;
90764 ret = 0; 89924 ret = 0;
@@ -90770,7 +89930,7 @@ index 843d8c4..cb04fa1 100644
90770 if (local->use_chanctx) 89930 if (local->use_chanctx)
90771 *chandef = local->monitor_chandef; 89931 *chandef = local->monitor_chandef;
90772diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h 89932diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
90773index 4e74cd6..963b8a1 100644 89933index 9ca8e32..48e4a9b 100644
90774--- a/net/mac80211/ieee80211_i.h 89934--- a/net/mac80211/ieee80211_i.h
90775+++ b/net/mac80211/ieee80211_i.h 89935+++ b/net/mac80211/ieee80211_i.h
90776@@ -28,6 +28,7 @@ 89936@@ -28,6 +28,7 @@
@@ -90781,7 +89941,7 @@ index 4e74cd6..963b8a1 100644
90781 #include "key.h" 89941 #include "key.h"
90782 #include "sta_info.h" 89942 #include "sta_info.h"
90783 #include "debug.h" 89943 #include "debug.h"
90784@@ -897,7 +898,7 @@ struct ieee80211_local { 89944@@ -891,7 +892,7 @@ struct ieee80211_local {
90785 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */ 89945 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
90786 spinlock_t queue_stop_reason_lock; 89946 spinlock_t queue_stop_reason_lock;
90787 89947
@@ -90791,10 +89951,10 @@ index 4e74cd6..963b8a1 100644
90791 /* number of interfaces with corresponding FIF_ flags */ 89951 /* number of interfaces with corresponding FIF_ flags */
90792 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll, 89952 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
90793diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c 89953diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
90794index 9cbebc2..14879bb 100644 89954index 514e90f..56f22bf 100644
90795--- a/net/mac80211/iface.c 89955--- a/net/mac80211/iface.c
90796+++ b/net/mac80211/iface.c 89956+++ b/net/mac80211/iface.c
90797@@ -495,7 +495,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) 89957@@ -502,7 +502,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
90798 break; 89958 break;
90799 } 89959 }
90800 89960
@@ -90803,7 +89963,7 @@ index 9cbebc2..14879bb 100644
90803 res = drv_start(local); 89963 res = drv_start(local);
90804 if (res) 89964 if (res)
90805 goto err_del_bss; 89965 goto err_del_bss;
90806@@ -540,7 +540,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) 89966@@ -545,7 +545,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
90807 break; 89967 break;
90808 } 89968 }
90809 89969
@@ -90812,7 +89972,7 @@ index 9cbebc2..14879bb 100644
90812 res = ieee80211_add_virtual_monitor(local); 89972 res = ieee80211_add_virtual_monitor(local);
90813 if (res) 89973 if (res)
90814 goto err_stop; 89974 goto err_stop;
90815@@ -649,7 +649,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) 89975@@ -653,7 +653,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
90816 atomic_inc(&local->iff_promiscs); 89976 atomic_inc(&local->iff_promiscs);
90817 89977
90818 if (coming_up) 89978 if (coming_up)
@@ -90821,7 +89981,7 @@ index 9cbebc2..14879bb 100644
90821 89981
90822 if (hw_reconf_flags) 89982 if (hw_reconf_flags)
90823 ieee80211_hw_config(local, hw_reconf_flags); 89983 ieee80211_hw_config(local, hw_reconf_flags);
90824@@ -663,7 +663,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up) 89984@@ -691,7 +691,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
90825 err_del_interface: 89985 err_del_interface:
90826 drv_remove_interface(local, sdata); 89986 drv_remove_interface(local, sdata);
90827 err_stop: 89987 err_stop:
@@ -90830,7 +89990,7 @@ index 9cbebc2..14879bb 100644
90830 drv_stop(local); 89990 drv_stop(local);
90831 err_del_bss: 89991 err_del_bss:
90832 sdata->bss = NULL; 89992 sdata->bss = NULL;
90833@@ -806,7 +806,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, 89993@@ -828,7 +828,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
90834 } 89994 }
90835 89995
90836 if (going_down) 89996 if (going_down)
@@ -90839,29 +89999,38 @@ index 9cbebc2..14879bb 100644
90839 89999
90840 switch (sdata->vif.type) { 90000 switch (sdata->vif.type) {
90841 case NL80211_IFTYPE_AP_VLAN: 90001 case NL80211_IFTYPE_AP_VLAN:
90842@@ -871,7 +871,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, 90002@@ -895,7 +895,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
90003 }
90004 spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
90005
90006- if (local->open_count == 0)
90007+ if (local_read(&local->open_count) == 0)
90008 ieee80211_clear_tx_pending(local);
90009
90010 /*
90011@@ -931,7 +931,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
90843 90012
90844 ieee80211_recalc_ps(local, -1); 90013 ieee80211_recalc_ps(local, -1);
90845 90014
90846- if (local->open_count == 0) { 90015- if (local->open_count == 0) {
90847+ if (local_read(&local->open_count) == 0) { 90016+ if (local_read(&local->open_count) == 0) {
90848 if (local->ops->napi_poll) 90017 ieee80211_stop_device(local);
90849 napi_disable(&local->napi);
90850 ieee80211_clear_tx_pending(local);
90851@@ -897,7 +897,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
90852 }
90853 spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
90854 90018
90855- if (local->monitors == local->open_count && local->monitors > 0) 90019 /* no reconfiguring after stop! */
90856+ if (local->monitors == local_read(&local->open_count) && local->monitors > 0) 90020@@ -942,7 +942,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
90021 ieee80211_configure_filter(local);
90022 ieee80211_hw_config(local, hw_reconf_flags);
90023
90024- if (local->monitors == local->open_count)
90025+ if (local->monitors == local_read(&local->open_count))
90857 ieee80211_add_virtual_monitor(local); 90026 ieee80211_add_virtual_monitor(local);
90858 } 90027 }
90859 90028
90860diff --git a/net/mac80211/main.c b/net/mac80211/main.c 90029diff --git a/net/mac80211/main.c b/net/mac80211/main.c
90861index 1a8591b..ef5db54 100644 90030index 8a7bfc4..4407cd0 100644
90862--- a/net/mac80211/main.c 90031--- a/net/mac80211/main.c
90863+++ b/net/mac80211/main.c 90032+++ b/net/mac80211/main.c
90864@@ -180,7 +180,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) 90033@@ -181,7 +181,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
90865 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL | 90034 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL |
90866 IEEE80211_CONF_CHANGE_POWER); 90035 IEEE80211_CONF_CHANGE_POWER);
90867 90036
@@ -90871,19 +90040,19 @@ index 1a8591b..ef5db54 100644
90871 /* 90040 /*
90872 * Goal: 90041 * Goal:
90873diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c 90042diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
90874index 835584c..be46e67 100644 90043index 7fc5d0d..07ea536 100644
90875--- a/net/mac80211/pm.c 90044--- a/net/mac80211/pm.c
90876+++ b/net/mac80211/pm.c 90045+++ b/net/mac80211/pm.c
90877@@ -33,7 +33,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan) 90046@@ -12,7 +12,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
90047 struct ieee80211_sub_if_data *sdata;
90878 struct sta_info *sta; 90048 struct sta_info *sta;
90879 struct ieee80211_chanctx *ctx;
90880 90049
90881- if (!local->open_count) 90050- if (!local->open_count)
90882+ if (!local_read(&local->open_count)) 90051+ if (!local_read(&local->open_count))
90883 goto suspend; 90052 goto suspend;
90884 90053
90885 ieee80211_scan_cancel(local); 90054 ieee80211_scan_cancel(local);
90886@@ -75,7 +75,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan) 90055@@ -59,7 +59,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
90887 cancel_work_sync(&local->dynamic_ps_enable_work); 90056 cancel_work_sync(&local->dynamic_ps_enable_work);
90888 del_timer_sync(&local->dynamic_ps_timer); 90057 del_timer_sync(&local->dynamic_ps_timer);
90889 90058
@@ -90892,8 +90061,8 @@ index 835584c..be46e67 100644
90892 if (local->wowlan) { 90061 if (local->wowlan) {
90893 int err = drv_suspend(local, wowlan); 90062 int err = drv_suspend(local, wowlan);
90894 if (err < 0) { 90063 if (err < 0) {
90895@@ -214,7 +214,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan) 90064@@ -113,7 +113,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
90896 mutex_unlock(&local->chanctx_mtx); 90065 WARN_ON(!list_empty(&local->chanctx_list));
90897 90066
90898 /* stop hardware - this must stop RX */ 90067 /* stop hardware - this must stop RX */
90899- if (local->open_count) 90068- if (local->open_count)
@@ -90902,10 +90071,10 @@ index 835584c..be46e67 100644
90902 90071
90903 suspend: 90072 suspend:
90904diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c 90073diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
90905index dd88381..eef4dd6 100644 90074index a02bef3..f2f38dd 100644
90906--- a/net/mac80211/rate.c 90075--- a/net/mac80211/rate.c
90907+++ b/net/mac80211/rate.c 90076+++ b/net/mac80211/rate.c
90908@@ -493,7 +493,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local, 90077@@ -712,7 +712,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
90909 90078
90910 ASSERT_RTNL(); 90079 ASSERT_RTNL();
90911 90080
@@ -90928,10 +90097,10 @@ index c97a065..ff61928 100644
90928 90097
90929 return p; 90098 return p;
90930diff --git a/net/mac80211/util.c b/net/mac80211/util.c 90099diff --git a/net/mac80211/util.c b/net/mac80211/util.c
90931index 1f4b908..c4def45 100644 90100index 72e6292..e6319eb 100644
90932--- a/net/mac80211/util.c 90101--- a/net/mac80211/util.c
90933+++ b/net/mac80211/util.c 90102+++ b/net/mac80211/util.c
90934@@ -1388,7 +1388,7 @@ int ieee80211_reconfig(struct ieee80211_local *local) 90103@@ -1472,7 +1472,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
90935 } 90104 }
90936 #endif 90105 #endif
90937 /* everything else happens only if HW was up & running */ 90106 /* everything else happens only if HW was up & running */
@@ -90940,6 +90109,15 @@ index 1f4b908..c4def45 100644
90940 goto wake_up; 90109 goto wake_up;
90941 90110
90942 /* 90111 /*
90112@@ -1696,7 +1696,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
90113 local->in_reconfig = false;
90114 barrier();
90115
90116- if (local->monitors == local->open_count && local->monitors > 0)
90117+ if (local->monitors == local_read(&local->open_count) && local->monitors > 0)
90118 ieee80211_add_virtual_monitor(local);
90119
90120 /*
90943diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig 90121diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
90944index 56d22ca..87c778f 100644 90122index 56d22ca..87c778f 100644
90945--- a/net/netfilter/Kconfig 90123--- a/net/netfilter/Kconfig
@@ -90974,10 +90152,10 @@ index a1abf87..dbcb7ee 100644
90974 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o 90152 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
90975 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o 90153 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
90976diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c 90154diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
90977index 1ba9dbc..e39f4ca 100644 90155index f771390..145b765 100644
90978--- a/net/netfilter/ipset/ip_set_core.c 90156--- a/net/netfilter/ipset/ip_set_core.c
90979+++ b/net/netfilter/ipset/ip_set_core.c 90157+++ b/net/netfilter/ipset/ip_set_core.c
90980@@ -1801,7 +1801,7 @@ done: 90158@@ -1820,7 +1820,7 @@ done:
90981 return ret; 90159 return ret;
90982 } 90160 }
90983 90161
@@ -90987,28 +90165,28 @@ index 1ba9dbc..e39f4ca 100644
90987 .get_optmin = SO_IP_SET, 90165 .get_optmin = SO_IP_SET,
90988 .get_optmax = SO_IP_SET + 1, 90166 .get_optmax = SO_IP_SET + 1,
90989diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c 90167diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
90990index 704e514..d644cc2 100644 90168index a083bda..da661c3 100644
90991--- a/net/netfilter/ipvs/ip_vs_conn.c 90169--- a/net/netfilter/ipvs/ip_vs_conn.c
90992+++ b/net/netfilter/ipvs/ip_vs_conn.c 90170+++ b/net/netfilter/ipvs/ip_vs_conn.c
90993@@ -551,7 +551,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest) 90171@@ -556,7 +556,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
90994 /* Increase the refcnt counter of the dest */ 90172 /* Increase the refcnt counter of the dest */
90995 atomic_inc(&dest->refcnt); 90173 ip_vs_dest_hold(dest);
90996 90174
90997- conn_flags = atomic_read(&dest->conn_flags); 90175- conn_flags = atomic_read(&dest->conn_flags);
90998+ conn_flags = atomic_read_unchecked(&dest->conn_flags); 90176+ conn_flags = atomic_read_unchecked(&dest->conn_flags);
90999 if (cp->protocol != IPPROTO_UDP) 90177 if (cp->protocol != IPPROTO_UDP)
91000 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET; 90178 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET;
91001 flags = cp->flags; 90179 flags = cp->flags;
91002@@ -895,7 +895,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p, 90180@@ -900,7 +900,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p,
91003 atomic_set(&cp->refcnt, 1);
91004 90181
90182 cp->control = NULL;
91005 atomic_set(&cp->n_control, 0); 90183 atomic_set(&cp->n_control, 0);
91006- atomic_set(&cp->in_pkts, 0); 90184- atomic_set(&cp->in_pkts, 0);
91007+ atomic_set_unchecked(&cp->in_pkts, 0); 90185+ atomic_set_unchecked(&cp->in_pkts, 0);
91008 90186
91009 atomic_inc(&ipvs->conn_count); 90187 cp->packet_xmit = NULL;
91010 if (flags & IP_VS_CONN_F_NO_CPORT) 90188 cp->app = NULL;
91011@@ -1174,7 +1174,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp) 90189@@ -1190,7 +1190,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
91012 90190
91013 /* Don't drop the entry if its number of incoming packets is not 90191 /* Don't drop the entry if its number of incoming packets is not
91014 located in [0, 8] */ 90192 located in [0, 8] */
@@ -91018,7 +90196,7 @@ index 704e514..d644cc2 100644
91018 90196
91019 if (!todrop_rate[i]) return 0; 90197 if (!todrop_rate[i]) return 0;
91020diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c 90198diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
91021index 61f49d2..6c8c5bc 100644 90199index 23b8eb5..48a8959 100644
91022--- a/net/netfilter/ipvs/ip_vs_core.c 90200--- a/net/netfilter/ipvs/ip_vs_core.c
91023+++ b/net/netfilter/ipvs/ip_vs_core.c 90201+++ b/net/netfilter/ipvs/ip_vs_core.c
91024@@ -559,7 +559,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb, 90202@@ -559,7 +559,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
@@ -91030,7 +90208,7 @@ index 61f49d2..6c8c5bc 100644
91030 ip_vs_conn_put(cp); 90208 ip_vs_conn_put(cp);
91031 return ret; 90209 return ret;
91032 } 90210 }
91033@@ -1689,7 +1689,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af) 90211@@ -1711,7 +1711,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
91034 if (cp->flags & IP_VS_CONN_F_ONE_PACKET) 90212 if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
91035 pkts = sysctl_sync_threshold(ipvs); 90213 pkts = sysctl_sync_threshold(ipvs);
91036 else 90214 else
@@ -91040,19 +90218,19 @@ index 61f49d2..6c8c5bc 100644
91040 if (ipvs->sync_state & IP_VS_STATE_MASTER) 90218 if (ipvs->sync_state & IP_VS_STATE_MASTER)
91041 ip_vs_sync_conn(net, cp, pkts); 90219 ip_vs_sync_conn(net, cp, pkts);
91042diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c 90220diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
91043index 9e2d1cc..6ed0748 100644 90221index 9e6c2a0..28552e2 100644
91044--- a/net/netfilter/ipvs/ip_vs_ctl.c 90222--- a/net/netfilter/ipvs/ip_vs_ctl.c
91045+++ b/net/netfilter/ipvs/ip_vs_ctl.c 90223+++ b/net/netfilter/ipvs/ip_vs_ctl.c
91046@@ -787,7 +787,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest, 90224@@ -789,7 +789,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
90225 */
91047 ip_vs_rs_hash(ipvs, dest); 90226 ip_vs_rs_hash(ipvs, dest);
91048 write_unlock_bh(&ipvs->rs_lock);
91049 } 90227 }
91050- atomic_set(&dest->conn_flags, conn_flags); 90228- atomic_set(&dest->conn_flags, conn_flags);
91051+ atomic_set_unchecked(&dest->conn_flags, conn_flags); 90229+ atomic_set_unchecked(&dest->conn_flags, conn_flags);
91052 90230
91053 /* bind the service */ 90231 /* bind the service */
91054 if (!dest->svc) { 90232 if (!dest->svc) {
91055@@ -1688,7 +1688,7 @@ proc_do_sync_ports(ctl_table *table, int write, 90233@@ -1657,7 +1657,7 @@ proc_do_sync_ports(ctl_table *table, int write,
91056 * align with netns init in ip_vs_control_net_init() 90234 * align with netns init in ip_vs_control_net_init()
91057 */ 90235 */
91058 90236
@@ -91061,7 +90239,7 @@ index 9e2d1cc..6ed0748 100644
91061 { 90239 {
91062 .procname = "amemthresh", 90240 .procname = "amemthresh",
91063 .maxlen = sizeof(int), 90241 .maxlen = sizeof(int),
91064@@ -2087,7 +2087,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v) 90242@@ -2060,7 +2060,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
91065 " %-7s %-6d %-10d %-10d\n", 90243 " %-7s %-6d %-10d %-10d\n",
91066 &dest->addr.in6, 90244 &dest->addr.in6,
91067 ntohs(dest->port), 90245 ntohs(dest->port),
@@ -91070,7 +90248,7 @@ index 9e2d1cc..6ed0748 100644
91070 atomic_read(&dest->weight), 90248 atomic_read(&dest->weight),
91071 atomic_read(&dest->activeconns), 90249 atomic_read(&dest->activeconns),
91072 atomic_read(&dest->inactconns)); 90250 atomic_read(&dest->inactconns));
91073@@ -2098,7 +2098,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v) 90251@@ -2071,7 +2071,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
91074 "%-7s %-6d %-10d %-10d\n", 90252 "%-7s %-6d %-10d %-10d\n",
91075 ntohl(dest->addr.ip), 90253 ntohl(dest->addr.ip),
91076 ntohs(dest->port), 90254 ntohs(dest->port),
@@ -91079,14 +90257,7 @@ index 9e2d1cc..6ed0748 100644
91079 atomic_read(&dest->weight), 90257 atomic_read(&dest->weight),
91080 atomic_read(&dest->activeconns), 90258 atomic_read(&dest->activeconns),
91081 atomic_read(&dest->inactconns)); 90259 atomic_read(&dest->inactconns));
91082@@ -2562,13 +2562,14 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get, 90260@@ -2549,7 +2549,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
91083 struct ip_vs_dest *dest;
91084 struct ip_vs_dest_entry entry;
91085
91086+ memset(&entry, 0, sizeof(entry));
91087 list_for_each_entry(dest, &svc->destinations, n_list) {
91088 if (count >= get->num_dests)
91089 break;
91090 90261
91091 entry.addr = dest->addr.ip; 90262 entry.addr = dest->addr.ip;
91092 entry.port = dest->port; 90263 entry.port = dest->port;
@@ -91095,16 +90266,16 @@ index 9e2d1cc..6ed0748 100644
91095 entry.weight = atomic_read(&dest->weight); 90266 entry.weight = atomic_read(&dest->weight);
91096 entry.u_threshold = dest->u_threshold; 90267 entry.u_threshold = dest->u_threshold;
91097 entry.l_threshold = dest->l_threshold; 90268 entry.l_threshold = dest->l_threshold;
91098@@ -3104,7 +3105,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest) 90269@@ -3092,7 +3092,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
91099 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) || 90270 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
91100 nla_put_u16(skb, IPVS_DEST_ATTR_PORT, dest->port) || 90271 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
91101 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD, 90272 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
91102- (atomic_read(&dest->conn_flags) & 90273- (atomic_read(&dest->conn_flags) &
91103+ (atomic_read_unchecked(&dest->conn_flags) & 90274+ (atomic_read_unchecked(&dest->conn_flags) &
91104 IP_VS_CONN_F_FWD_MASK)) || 90275 IP_VS_CONN_F_FWD_MASK)) ||
91105 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT, 90276 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
91106 atomic_read(&dest->weight)) || 90277 atomic_read(&dest->weight)) ||
91107@@ -3694,7 +3695,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net) 90278@@ -3682,7 +3682,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
91108 { 90279 {
91109 int idx; 90280 int idx;
91110 struct netns_ipvs *ipvs = net_ipvs(net); 90281 struct netns_ipvs *ipvs = net_ipvs(net);
@@ -91114,10 +90285,10 @@ index 9e2d1cc..6ed0748 100644
91114 atomic_set(&ipvs->dropentry, 0); 90285 atomic_set(&ipvs->dropentry, 0);
91115 spin_lock_init(&ipvs->dropentry_lock); 90286 spin_lock_init(&ipvs->dropentry_lock);
91116diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c 90287diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
91117index fdd89b9..bd96aa9 100644 90288index 5ea26bd..c9bc65f 100644
91118--- a/net/netfilter/ipvs/ip_vs_lblc.c 90289--- a/net/netfilter/ipvs/ip_vs_lblc.c
91119+++ b/net/netfilter/ipvs/ip_vs_lblc.c 90290+++ b/net/netfilter/ipvs/ip_vs_lblc.c
91120@@ -115,7 +115,7 @@ struct ip_vs_lblc_table { 90291@@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
91121 * IPVS LBLC sysctl table 90292 * IPVS LBLC sysctl table
91122 */ 90293 */
91123 #ifdef CONFIG_SYSCTL 90294 #ifdef CONFIG_SYSCTL
@@ -91127,10 +90298,10 @@ index fdd89b9..bd96aa9 100644
91127 .procname = "lblc_expiration", 90298 .procname = "lblc_expiration",
91128 .data = NULL, 90299 .data = NULL,
91129diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c 90300diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
91130index c03b6a3..8ce3681 100644 90301index 50123c2..067c773 100644
91131--- a/net/netfilter/ipvs/ip_vs_lblcr.c 90302--- a/net/netfilter/ipvs/ip_vs_lblcr.c
91132+++ b/net/netfilter/ipvs/ip_vs_lblcr.c 90303+++ b/net/netfilter/ipvs/ip_vs_lblcr.c
91133@@ -288,7 +288,7 @@ struct ip_vs_lblcr_table { 90304@@ -299,7 +299,7 @@ struct ip_vs_lblcr_table {
91134 * IPVS LBLCR sysctl table 90305 * IPVS LBLCR sysctl table
91135 */ 90306 */
91136 90307
@@ -91140,7 +90311,7 @@ index c03b6a3..8ce3681 100644
91140 .procname = "lblcr_expiration", 90311 .procname = "lblcr_expiration",
91141 .data = NULL, 90312 .data = NULL,
91142diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c 90313diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
91143index 44fd10c..2a163b3 100644 90314index f6046d9..4f10cfd 100644
91144--- a/net/netfilter/ipvs/ip_vs_sync.c 90315--- a/net/netfilter/ipvs/ip_vs_sync.c
91145+++ b/net/netfilter/ipvs/ip_vs_sync.c 90316+++ b/net/netfilter/ipvs/ip_vs_sync.c
91146@@ -596,7 +596,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp, 90317@@ -596,7 +596,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
@@ -91161,7 +90332,7 @@ index 44fd10c..2a163b3 100644
91161 else 90332 else
91162 pkts = sysctl_sync_threshold(ipvs); 90333 pkts = sysctl_sync_threshold(ipvs);
91163 goto sloop; 90334 goto sloop;
91164@@ -885,7 +885,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param, 90335@@ -882,7 +882,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
91165 90336
91166 if (opt) 90337 if (opt)
91167 memcpy(&cp->in_seq, opt, sizeof(*opt)); 90338 memcpy(&cp->in_seq, opt, sizeof(*opt));
@@ -91171,10 +90342,10 @@ index 44fd10c..2a163b3 100644
91171 cp->old_state = cp->state; 90342 cp->old_state = cp->state;
91172 /* 90343 /*
91173diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c 90344diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
91174index ee6b7a9..f9a89f6 100644 90345index b75ff64..0c51bbe 100644
91175--- a/net/netfilter/ipvs/ip_vs_xmit.c 90346--- a/net/netfilter/ipvs/ip_vs_xmit.c
91176+++ b/net/netfilter/ipvs/ip_vs_xmit.c 90347+++ b/net/netfilter/ipvs/ip_vs_xmit.c
91177@@ -1210,7 +1210,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, 90348@@ -1102,7 +1102,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
91178 else 90349 else
91179 rc = NF_ACCEPT; 90350 rc = NF_ACCEPT;
91180 /* do not touch skb anymore */ 90351 /* do not touch skb anymore */
@@ -91183,7 +90354,7 @@ index ee6b7a9..f9a89f6 100644
91183 goto out; 90354 goto out;
91184 } 90355 }
91185 90356
91186@@ -1332,7 +1332,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp, 90357@@ -1194,7 +1194,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
91187 else 90358 else
91188 rc = NF_ACCEPT; 90359 rc = NF_ACCEPT;
91189 /* do not touch skb anymore */ 90360 /* do not touch skb anymore */
@@ -91206,10 +90377,10 @@ index 2d3030a..7ba1c0a 100644
91206 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table), 90377 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
91207 GFP_KERNEL); 90378 GFP_KERNEL);
91208diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c 90379diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
91209index c8e001a..f842a8b 100644 90380index 0283bae..5febcb0 100644
91210--- a/net/netfilter/nf_conntrack_core.c 90381--- a/net/netfilter/nf_conntrack_core.c
91211+++ b/net/netfilter/nf_conntrack_core.c 90382+++ b/net/netfilter/nf_conntrack_core.c
91212@@ -1594,6 +1594,10 @@ void nf_conntrack_init_end(void) 90383@@ -1614,6 +1614,10 @@ void nf_conntrack_init_end(void)
91213 #define DYING_NULLS_VAL ((1<<30)+1) 90384 #define DYING_NULLS_VAL ((1<<30)+1)
91214 #define TEMPLATE_NULLS_VAL ((1<<30)+2) 90385 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
91215 90386
@@ -91220,7 +90391,7 @@ index c8e001a..f842a8b 100644
91220 int nf_conntrack_init_net(struct net *net) 90391 int nf_conntrack_init_net(struct net *net)
91221 { 90392 {
91222 int ret; 90393 int ret;
91223@@ -1608,7 +1612,11 @@ int nf_conntrack_init_net(struct net *net) 90394@@ -1628,7 +1632,11 @@ int nf_conntrack_init_net(struct net *net)
91224 goto err_stat; 90395 goto err_stat;
91225 } 90396 }
91226 90397
@@ -91233,10 +90404,10 @@ index c8e001a..f842a8b 100644
91233 ret = -ENOMEM; 90404 ret = -ENOMEM;
91234 goto err_slabname; 90405 goto err_slabname;
91235diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c 90406diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
91236index b5d2eb8..61ef19a 100644 90407index 1df1761..ce8b88a 100644
91237--- a/net/netfilter/nf_conntrack_ecache.c 90408--- a/net/netfilter/nf_conntrack_ecache.c
91238+++ b/net/netfilter/nf_conntrack_ecache.c 90409+++ b/net/netfilter/nf_conntrack_ecache.c
91239@@ -186,7 +186,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = { 90410@@ -188,7 +188,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = {
91240 #ifdef CONFIG_SYSCTL 90411 #ifdef CONFIG_SYSCTL
91241 static int nf_conntrack_event_init_sysctl(struct net *net) 90412 static int nf_conntrack_event_init_sysctl(struct net *net)
91242 { 90413 {
@@ -91246,10 +90417,10 @@ index b5d2eb8..61ef19a 100644
91246 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table), 90417 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table),
91247 GFP_KERNEL); 90418 GFP_KERNEL);
91248diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c 90419diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
91249index 94b4b98..97cf0ad 100644 90420index 974a2a4..52cc6ff 100644
91250--- a/net/netfilter/nf_conntrack_helper.c 90421--- a/net/netfilter/nf_conntrack_helper.c
91251+++ b/net/netfilter/nf_conntrack_helper.c 90422+++ b/net/netfilter/nf_conntrack_helper.c
91252@@ -56,7 +56,7 @@ static struct ctl_table helper_sysctl_table[] = { 90423@@ -57,7 +57,7 @@ static struct ctl_table helper_sysctl_table[] = {
91253 90424
91254 static int nf_conntrack_helper_init_sysctl(struct net *net) 90425 static int nf_conntrack_helper_init_sysctl(struct net *net)
91255 { 90426 {
@@ -91259,10 +90430,10 @@ index 94b4b98..97cf0ad 100644
91259 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table), 90430 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table),
91260 GFP_KERNEL); 90431 GFP_KERNEL);
91261diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c 90432diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
91262index 58ab405..50eb8d3 100644 90433index 0ab9636..cea3c6a 100644
91263--- a/net/netfilter/nf_conntrack_proto.c 90434--- a/net/netfilter/nf_conntrack_proto.c
91264+++ b/net/netfilter/nf_conntrack_proto.c 90435+++ b/net/netfilter/nf_conntrack_proto.c
91265@@ -51,7 +51,7 @@ nf_ct_register_sysctl(struct net *net, 90436@@ -52,7 +52,7 @@ nf_ct_register_sysctl(struct net *net,
91266 90437
91267 static void 90438 static void
91268 nf_ct_unregister_sysctl(struct ctl_table_header **header, 90439 nf_ct_unregister_sysctl(struct ctl_table_header **header,
@@ -91272,32 +90443,32 @@ index 58ab405..50eb8d3 100644
91272 { 90443 {
91273 if (users > 0) 90444 if (users > 0)
91274diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c 90445diff --git a/net/netfilter/nf_conntrack_proto_dccp.c b/net/netfilter/nf_conntrack_proto_dccp.c
91275index ba65b20..2a4d937 100644 90446index a99b6c3..3841268 100644
91276--- a/net/netfilter/nf_conntrack_proto_dccp.c 90447--- a/net/netfilter/nf_conntrack_proto_dccp.c
91277+++ b/net/netfilter/nf_conntrack_proto_dccp.c 90448+++ b/net/netfilter/nf_conntrack_proto_dccp.c
91278@@ -456,7 +456,7 @@ static bool dccp_new(struct nf_conn *ct, const struct sk_buff *skb, 90449@@ -457,7 +457,7 @@ static bool dccp_new(struct nf_conn *ct, const struct sk_buff *skb,
91279
91280 out_invalid: 90450 out_invalid:
91281 if (LOG_INVALID(net, IPPROTO_DCCP)) 90451 if (LOG_INVALID(net, IPPROTO_DCCP))
91282- nf_log_packet(nf_ct_l3num(ct), 0, skb, NULL, NULL, NULL, msg); 90452 nf_log_packet(net, nf_ct_l3num(ct), 0, skb, NULL, NULL,
91283+ nf_log_packet(nf_ct_l3num(ct), 0, skb, NULL, NULL, NULL, "%s", msg); 90453- NULL, msg);
90454+ NULL, "%s", msg);
91284 return false; 90455 return false;
91285 } 90456 }
91286 90457
91287@@ -613,7 +613,7 @@ static int dccp_error(struct net *net, struct nf_conn *tmpl, 90458@@ -614,7 +614,7 @@ static int dccp_error(struct net *net, struct nf_conn *tmpl,
91288 90459
91289 out_invalid: 90460 out_invalid:
91290 if (LOG_INVALID(net, IPPROTO_DCCP)) 90461 if (LOG_INVALID(net, IPPROTO_DCCP))
91291- nf_log_packet(pf, 0, skb, NULL, NULL, NULL, msg); 90462- nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL, msg);
91292+ nf_log_packet(pf, 0, skb, NULL, NULL, NULL, "%s", msg); 90463+ nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL, "%s", msg);
91293 return -NF_ACCEPT; 90464 return -NF_ACCEPT;
91294 } 90465 }
91295 90466
91296diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c 90467diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
91297index fedee39..d62a93d 100644 90468index bd700b4..4a3dc61 100644
91298--- a/net/netfilter/nf_conntrack_standalone.c 90469--- a/net/netfilter/nf_conntrack_standalone.c
91299+++ b/net/netfilter/nf_conntrack_standalone.c 90470+++ b/net/netfilter/nf_conntrack_standalone.c
91300@@ -470,7 +470,7 @@ static ctl_table nf_ct_netfilter_table[] = { 90471@@ -471,7 +471,7 @@ static ctl_table nf_ct_netfilter_table[] = {
91301 90472
91302 static int nf_conntrack_standalone_init_sysctl(struct net *net) 90473 static int nf_conntrack_standalone_init_sysctl(struct net *net)
91303 { 90474 {
@@ -91320,26 +90491,26 @@ index 902fb0a..87f7fdb 100644
91320 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table), 90491 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table),
91321 GFP_KERNEL); 90492 GFP_KERNEL);
91322diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c 90493diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
91323index 9e31269..bc4c1b7 100644 90494index 3b18dd1..f79e0ca 100644
91324--- a/net/netfilter/nf_log.c 90495--- a/net/netfilter/nf_log.c
91325+++ b/net/netfilter/nf_log.c 90496+++ b/net/netfilter/nf_log.c
91326@@ -215,7 +215,7 @@ static const struct file_operations nflog_file_ops = { 90497@@ -243,7 +243,7 @@ static const struct file_operations nflog_file_ops = {
91327 90498
91328 #ifdef CONFIG_SYSCTL 90499 #ifdef CONFIG_SYSCTL
91329 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3]; 90500 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3];
91330-static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1]; 90501-static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
91331+static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only; 90502+static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only;
91332 static struct ctl_table_header *nf_log_dir_header;
91333 90503
91334 static int nf_log_proc_dostring(ctl_table *table, int write, 90504 static int nf_log_proc_dostring(ctl_table *table, int write,
91335@@ -246,14 +246,16 @@ static int nf_log_proc_dostring(ctl_table *table, int write, 90505 void __user *buffer, size_t *lenp, loff_t *ppos)
91336 rcu_assign_pointer(nf_loggers[tindex], logger); 90506@@ -274,14 +274,16 @@ static int nf_log_proc_dostring(ctl_table *table, int write,
90507 rcu_assign_pointer(net->nf.nf_loggers[tindex], logger);
91337 mutex_unlock(&nf_log_mutex); 90508 mutex_unlock(&nf_log_mutex);
91338 } else { 90509 } else {
91339+ ctl_table_no_const nf_log_table = *table; 90510+ ctl_table_no_const nf_log_table = *table;
91340+ 90511+
91341 mutex_lock(&nf_log_mutex); 90512 mutex_lock(&nf_log_mutex);
91342 logger = rcu_dereference_protected(nf_loggers[tindex], 90513 logger = rcu_dereference_protected(net->nf.nf_loggers[tindex],
91343 lockdep_is_held(&nf_log_mutex)); 90514 lockdep_is_held(&nf_log_mutex));
91344 if (!logger) 90515 if (!logger)
91345- table->data = "NONE"; 90516- table->data = "NONE";
@@ -91352,22 +90523,6 @@ index 9e31269..bc4c1b7 100644
91352 mutex_unlock(&nf_log_mutex); 90523 mutex_unlock(&nf_log_mutex);
91353 } 90524 }
91354 90525
91355diff --git a/net/netfilter/nf_nat_sip.c b/net/netfilter/nf_nat_sip.c
91356index 96ccdf7..dac11f7 100644
91357--- a/net/netfilter/nf_nat_sip.c
91358+++ b/net/netfilter/nf_nat_sip.c
91359@@ -230,9 +230,10 @@ static unsigned int nf_nat_sip(struct sk_buff *skb, unsigned int protoff,
91360 &ct->tuplehash[!dir].tuple.src.u3,
91361 false);
91362 if (!mangle_packet(skb, protoff, dataoff, dptr, datalen,
91363- poff, plen, buffer, buflen))
91364+ poff, plen, buffer, buflen)) {
91365 nf_ct_helper_log(skb, ct, "cannot mangle received");
91366 return NF_DROP;
91367+ }
91368 }
91369
91370 /* The rport= parameter (RFC 3581) contains the port number
91371diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c 90526diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
91372index f042ae5..30ea486 100644 90527index f042ae5..30ea486 100644
91373--- a/net/netfilter/nf_sockopt.c 90528--- a/net/netfilter/nf_sockopt.c
@@ -91391,24 +90546,24 @@ index f042ae5..30ea486 100644
91391 } 90546 }
91392 EXPORT_SYMBOL(nf_unregister_sockopt); 90547 EXPORT_SYMBOL(nf_unregister_sockopt);
91393diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c 90548diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
91394index f248db5..3778ad9 100644 90549index 962e979..d4ae2e9 100644
91395--- a/net/netfilter/nfnetlink_log.c 90550--- a/net/netfilter/nfnetlink_log.c
91396+++ b/net/netfilter/nfnetlink_log.c 90551+++ b/net/netfilter/nfnetlink_log.c
91397@@ -72,7 +72,7 @@ struct nfulnl_instance { 90552@@ -82,7 +82,7 @@ static int nfnl_log_net_id __read_mostly;
90553 struct nfnl_log_net {
90554 spinlock_t instances_lock;
90555 struct hlist_head instance_table[INSTANCE_BUCKETS];
90556- atomic_t global_seq;
90557+ atomic_unchecked_t global_seq;
91398 }; 90558 };
91399 90559
91400 static DEFINE_SPINLOCK(instances_lock); 90560 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
91401-static atomic_t global_seq; 90561@@ -559,7 +559,7 @@ __build_packet_message(struct nfnl_log_net *log,
91402+static atomic_unchecked_t global_seq;
91403
91404 #define INSTANCE_BUCKETS 16
91405 static struct hlist_head instance_table[INSTANCE_BUCKETS];
91406@@ -536,7 +536,7 @@ __build_packet_message(struct nfulnl_instance *inst,
91407 /* global sequence number */ 90562 /* global sequence number */
91408 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) && 90563 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
91409 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL, 90564 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
91410- htonl(atomic_inc_return(&global_seq)))) 90565- htonl(atomic_inc_return(&log->global_seq))))
91411+ htonl(atomic_inc_return_unchecked(&global_seq)))) 90566+ htonl(atomic_inc_return_unchecked(&log->global_seq))))
91412 goto nla_put_failure; 90567 goto nla_put_failure;
91413 90568
91414 if (data_len) { 90569 if (data_len) {
@@ -91504,10 +90659,10 @@ index 4fe4fb4..87a89e5 100644
91504 return 0; 90659 return 0;
91505 } 90660 }
91506diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c 90661diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
91507index 1e3fd5b..ad397ea 100644 90662index 57ee84d..8b99cf5 100644
91508--- a/net/netlink/af_netlink.c 90663--- a/net/netlink/af_netlink.c
91509+++ b/net/netlink/af_netlink.c 90664+++ b/net/netlink/af_netlink.c
91510@@ -781,7 +781,7 @@ static void netlink_overrun(struct sock *sk) 90665@@ -121,7 +121,7 @@ static void netlink_overrun(struct sock *sk)
91511 sk->sk_error_report(sk); 90666 sk->sk_error_report(sk);
91512 } 90667 }
91513 } 90668 }
@@ -91515,8 +90670,8 @@ index 1e3fd5b..ad397ea 100644
91515+ atomic_inc_unchecked(&sk->sk_drops); 90670+ atomic_inc_unchecked(&sk->sk_drops);
91516 } 90671 }
91517 90672
91518 static struct sock *netlink_getsockbyportid(struct sock *ssk, u32 portid) 90673 static void netlink_rcv_wake(struct sock *sk)
91519@@ -2063,7 +2063,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v) 90674@@ -2771,7 +2771,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
91520 sk_wmem_alloc_get(s), 90675 sk_wmem_alloc_get(s),
91521 nlk->cb, 90676 nlk->cb,
91522 atomic_read(&s->sk_refcnt), 90677 atomic_read(&s->sk_refcnt),
@@ -91526,10 +90681,10 @@ index 1e3fd5b..ad397ea 100644
91526 ); 90681 );
91527 90682
91528diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c 90683diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
91529index 5a55be3..7630745 100644 90684index 2fd6dbe..1032269 100644
91530--- a/net/netlink/genetlink.c 90685--- a/net/netlink/genetlink.c
91531+++ b/net/netlink/genetlink.c 90686+++ b/net/netlink/genetlink.c
91532@@ -296,18 +296,20 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops) 90687@@ -310,18 +310,20 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops)
91533 goto errout; 90688 goto errout;
91534 } 90689 }
91535 90690
@@ -91545,41 +90700,33 @@ index 5a55be3..7630745 100644
91545+ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_HASPOL; 90700+ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_HASPOL;
91546+ pax_close_kernel(); 90701+ pax_close_kernel();
91547 90702
91548 genl_lock(); 90703 genl_lock_all();
91549- list_add_tail(&ops->ops_list, &family->ops_list); 90704- list_add_tail(&ops->ops_list, &family->ops_list);
91550+ pax_list_add_tail((struct list_head *)&ops->ops_list, &family->ops_list); 90705+ pax_list_add_tail((struct list_head *)&ops->ops_list, &family->ops_list);
91551 genl_unlock(); 90706 genl_unlock_all();
91552 90707
91553- genl_ctrl_event(CTRL_CMD_NEWOPS, ops); 90708- genl_ctrl_event(CTRL_CMD_NEWOPS, ops);
91554+ genl_ctrl_event(CTRL_CMD_NEWOPS, (void *)ops); 90709+ genl_ctrl_event(CTRL_CMD_NEWOPS, (void *)ops);
91555 err = 0; 90710 err = 0;
91556 errout: 90711 errout:
91557 return err; 90712 return err;
91558@@ -337,9 +339,9 @@ int genl_unregister_ops(struct genl_family *family, struct genl_ops *ops) 90713@@ -351,9 +353,9 @@ int genl_unregister_ops(struct genl_family *family, struct genl_ops *ops)
91559 genl_lock(); 90714 genl_lock_all();
91560 list_for_each_entry(rc, &family->ops_list, ops_list) { 90715 list_for_each_entry(rc, &family->ops_list, ops_list) {
91561 if (rc == ops) { 90716 if (rc == ops) {
91562- list_del(&ops->ops_list); 90717- list_del(&ops->ops_list);
91563+ pax_list_del((struct list_head *)&ops->ops_list); 90718+ pax_list_del((struct list_head *)&ops->ops_list);
91564 genl_unlock(); 90719 genl_unlock_all();
91565- genl_ctrl_event(CTRL_CMD_DELOPS, ops); 90720- genl_ctrl_event(CTRL_CMD_DELOPS, ops);
91566+ genl_ctrl_event(CTRL_CMD_DELOPS, (void *)ops); 90721+ genl_ctrl_event(CTRL_CMD_DELOPS, (void *)ops);
91567 return 0; 90722 return 0;
91568 } 90723 }
91569 } 90724 }
91570diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c 90725diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
91571index 103bd70..f21aad3 100644 90726index ec0c80f..41e1830 100644
91572--- a/net/netrom/af_netrom.c 90727--- a/net/netrom/af_netrom.c
91573+++ b/net/netrom/af_netrom.c 90728+++ b/net/netrom/af_netrom.c
91574@@ -834,6 +834,7 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr, 90729@@ -850,7 +850,6 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
91575 struct sock *sk = sock->sk;
91576 struct nr_sock *nr = nr_sk(sk);
91577
91578+ memset(sax, 0, sizeof(*sax));
91579 lock_sock(sk);
91580 if (peer != 0) {
91581 if (sk->sk_state != TCP_ESTABLISHED) {
91582@@ -848,7 +849,6 @@ static int nr_getname(struct socket *sock, struct sockaddr *uaddr,
91583 *uaddr_len = sizeof(struct full_sockaddr_ax25); 90730 *uaddr_len = sizeof(struct full_sockaddr_ax25);
91584 } else { 90731 } else {
91585 sax->fsa_ax25.sax25_family = AF_NETROM; 90732 sax->fsa_ax25.sax25_family = AF_NETROM;
@@ -91588,28 +90735,28 @@ index 103bd70..f21aad3 100644
91588 *uaddr_len = sizeof(struct sockaddr_ax25); 90735 *uaddr_len = sizeof(struct sockaddr_ax25);
91589 } 90736 }
91590diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c 90737diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
91591index e50f72a..f71867d 100644 90738index 20a1bd0..bb8f1c1 100644
91592--- a/net/packet/af_packet.c 90739--- a/net/packet/af_packet.c
91593+++ b/net/packet/af_packet.c 90740+++ b/net/packet/af_packet.c
91594@@ -1578,7 +1578,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, 90741@@ -1681,7 +1681,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
91595 90742
91596 spin_lock(&sk->sk_receive_queue.lock); 90743 spin_lock(&sk->sk_receive_queue.lock);
91597 po->stats.tp_packets++; 90744 po->stats.stats1.tp_packets++;
91598- skb->dropcount = atomic_read(&sk->sk_drops); 90745- skb->dropcount = atomic_read(&sk->sk_drops);
91599+ skb->dropcount = atomic_read_unchecked(&sk->sk_drops); 90746+ skb->dropcount = atomic_read_unchecked(&sk->sk_drops);
91600 __skb_queue_tail(&sk->sk_receive_queue, skb); 90747 __skb_queue_tail(&sk->sk_receive_queue, skb);
91601 spin_unlock(&sk->sk_receive_queue.lock); 90748 spin_unlock(&sk->sk_receive_queue.lock);
91602 sk->sk_data_ready(sk, skb->len); 90749 sk->sk_data_ready(sk, skb->len);
91603@@ -1587,7 +1587,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, 90750@@ -1690,7 +1690,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
91604 drop_n_acct: 90751 drop_n_acct:
91605 spin_lock(&sk->sk_receive_queue.lock); 90752 spin_lock(&sk->sk_receive_queue.lock);
91606 po->stats.tp_drops++; 90753 po->stats.stats1.tp_drops++;
91607- atomic_inc(&sk->sk_drops); 90754- atomic_inc(&sk->sk_drops);
91608+ atomic_inc_unchecked(&sk->sk_drops); 90755+ atomic_inc_unchecked(&sk->sk_drops);
91609 spin_unlock(&sk->sk_receive_queue.lock); 90756 spin_unlock(&sk->sk_receive_queue.lock);
91610 90757
91611 drop_n_restore: 90758 drop_n_restore:
91612@@ -2579,6 +2579,7 @@ out: 90759@@ -2640,6 +2640,7 @@ out:
91613 90760
91614 static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len) 90761 static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
91615 { 90762 {
@@ -91617,7 +90764,7 @@ index e50f72a..f71867d 100644
91617 struct sock_exterr_skb *serr; 90764 struct sock_exterr_skb *serr;
91618 struct sk_buff *skb, *skb2; 90765 struct sk_buff *skb, *skb2;
91619 int copied, err; 90766 int copied, err;
91620@@ -2600,8 +2601,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len) 90767@@ -2661,8 +2662,9 @@ static int packet_recv_error(struct sock *sk, struct msghdr *msg, int len)
91621 sock_recv_timestamp(msg, sk, skb); 90768 sock_recv_timestamp(msg, sk, skb);
91622 90769
91623 serr = SKB_EXT_ERR(skb); 90770 serr = SKB_EXT_ERR(skb);
@@ -91628,7 +90775,7 @@ index e50f72a..f71867d 100644
91628 90775
91629 msg->msg_flags |= MSG_ERRQUEUE; 90776 msg->msg_flags |= MSG_ERRQUEUE;
91630 err = copied; 90777 err = copied;
91631@@ -3225,7 +3227,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, 90778@@ -3281,7 +3283,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
91632 case PACKET_HDRLEN: 90779 case PACKET_HDRLEN:
91633 if (len > sizeof(int)) 90780 if (len > sizeof(int))
91634 len = sizeof(int); 90781 len = sizeof(int);
@@ -91637,7 +90784,7 @@ index e50f72a..f71867d 100644
91637 return -EFAULT; 90784 return -EFAULT;
91638 switch (val) { 90785 switch (val) {
91639 case TPACKET_V1: 90786 case TPACKET_V1:
91640@@ -3267,7 +3269,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname, 90787@@ -3324,7 +3326,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
91641 len = lv; 90788 len = lv;
91642 if (put_user(len, optlen)) 90789 if (put_user(len, optlen))
91643 return -EFAULT; 90790 return -EFAULT;
@@ -92142,142 +91289,6 @@ index f226709..0e735a8 100644
92142 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial)); 91289 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
92143 91290
92144 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len); 91291 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
92145diff --git a/net/sched/sch_qfq.c b/net/sched/sch_qfq.c
92146index d51852b..5792252 100644
92147--- a/net/sched/sch_qfq.c
92148+++ b/net/sched/sch_qfq.c
92149@@ -113,7 +113,6 @@
92150
92151 #define FRAC_BITS 30 /* fixed point arithmetic */
92152 #define ONE_FP (1UL << FRAC_BITS)
92153-#define IWSUM (ONE_FP/QFQ_MAX_WSUM)
92154
92155 #define QFQ_MTU_SHIFT 16 /* to support TSO/GSO */
92156 #define QFQ_MIN_LMAX 512 /* see qfq_slot_insert */
92157@@ -189,6 +188,7 @@ struct qfq_sched {
92158 struct qfq_aggregate *in_serv_agg; /* Aggregate being served. */
92159 u32 num_active_agg; /* Num. of active aggregates */
92160 u32 wsum; /* weight sum */
92161+ u32 iwsum; /* inverse weight sum */
92162
92163 unsigned long bitmaps[QFQ_MAX_STATE]; /* Group bitmaps. */
92164 struct qfq_group groups[QFQ_MAX_INDEX + 1]; /* The groups. */
92165@@ -314,6 +314,7 @@ static void qfq_update_agg(struct qfq_sched *q, struct qfq_aggregate *agg,
92166
92167 q->wsum +=
92168 (int) agg->class_weight * (new_num_classes - agg->num_classes);
92169+ q->iwsum = ONE_FP / q->wsum;
92170
92171 agg->num_classes = new_num_classes;
92172 }
92173@@ -340,6 +341,10 @@ static void qfq_destroy_agg(struct qfq_sched *q, struct qfq_aggregate *agg)
92174 {
92175 if (!hlist_unhashed(&agg->nonfull_next))
92176 hlist_del_init(&agg->nonfull_next);
92177+ q->wsum -= agg->class_weight;
92178+ if (q->wsum != 0)
92179+ q->iwsum = ONE_FP / q->wsum;
92180+
92181 if (q->in_serv_agg == agg)
92182 q->in_serv_agg = qfq_choose_next_agg(q);
92183 kfree(agg);
92184@@ -827,38 +832,60 @@ static void qfq_make_eligible(struct qfq_sched *q)
92185 }
92186 }
92187
92188-
92189 /*
92190- * The index of the slot in which the aggregate is to be inserted must
92191- * not be higher than QFQ_MAX_SLOTS-2. There is a '-2' and not a '-1'
92192- * because the start time of the group may be moved backward by one
92193- * slot after the aggregate has been inserted, and this would cause
92194- * non-empty slots to be right-shifted by one position.
92195+ * The index of the slot in which the input aggregate agg is to be
92196+ * inserted must not be higher than QFQ_MAX_SLOTS-2. There is a '-2'
92197+ * and not a '-1' because the start time of the group may be moved
92198+ * backward by one slot after the aggregate has been inserted, and
92199+ * this would cause non-empty slots to be right-shifted by one
92200+ * position.
92201+ *
92202+ * QFQ+ fully satisfies this bound to the slot index if the parameters
92203+ * of the classes are not changed dynamically, and if QFQ+ never
92204+ * happens to postpone the service of agg unjustly, i.e., it never
92205+ * happens that the aggregate becomes backlogged and eligible, or just
92206+ * eligible, while an aggregate with a higher approximated finish time
92207+ * is being served. In particular, in this case QFQ+ guarantees that
92208+ * the timestamps of agg are low enough that the slot index is never
92209+ * higher than 2. Unfortunately, QFQ+ cannot provide the same
92210+ * guarantee if it happens to unjustly postpone the service of agg, or
92211+ * if the parameters of some class are changed.
92212+ *
92213+ * As for the first event, i.e., an out-of-order service, the
92214+ * upper bound to the slot index guaranteed by QFQ+ grows to
92215+ * 2 +
92216+ * QFQ_MAX_AGG_CLASSES * ((1<<QFQ_MTU_SHIFT)/QFQ_MIN_LMAX) *
92217+ * (current_max_weight/current_wsum) <= 2 + 8 * 128 * 1.
92218 *
92219- * If the weight and lmax (max_pkt_size) of the classes do not change,
92220- * then QFQ+ does meet the above contraint according to the current
92221- * values of its parameters. In fact, if the weight and lmax of the
92222- * classes do not change, then, from the theory, QFQ+ guarantees that
92223- * the slot index is never higher than
92224- * 2 + QFQ_MAX_AGG_CLASSES * ((1<<QFQ_MTU_SHIFT)/QFQ_MIN_LMAX) *
92225- * (QFQ_MAX_WEIGHT/QFQ_MAX_WSUM) = 2 + 8 * 128 * (1 / 64) = 18
92226+ * The following function deals with this problem by backward-shifting
92227+ * the timestamps of agg, if needed, so as to guarantee that the slot
92228+ * index is never higher than QFQ_MAX_SLOTS-2. This backward-shift may
92229+ * cause the service of other aggregates to be postponed, yet the
92230+ * worst-case guarantees of these aggregates are not violated. In
92231+ * fact, in case of no out-of-order service, the timestamps of agg
92232+ * would have been even lower than they are after the backward shift,
92233+ * because QFQ+ would have guaranteed a maximum value equal to 2 for
92234+ * the slot index, and 2 < QFQ_MAX_SLOTS-2. Hence the aggregates whose
92235+ * service is postponed because of the backward-shift would have
92236+ * however waited for the service of agg before being served.
92237 *
92238- * When the weight of a class is increased or the lmax of the class is
92239- * decreased, a new aggregate with smaller slot size than the original
92240- * parent aggregate of the class may happen to be activated. The
92241- * activation of this aggregate should be properly delayed to when the
92242- * service of the class has finished in the ideal system tracked by
92243- * QFQ+. If the activation of the aggregate is not delayed to this
92244- * reference time instant, then this aggregate may be unjustly served
92245- * before other aggregates waiting for service. This may cause the
92246- * above bound to the slot index to be violated for some of these
92247- * unlucky aggregates.
92248+ * The other event that may cause the slot index to be higher than 2
92249+ * for agg is a recent change of the parameters of some class. If the
92250+ * weight of a class is increased or the lmax (max_pkt_size) of the
92251+ * class is decreased, then a new aggregate with smaller slot size
92252+ * than the original parent aggregate of the class may happen to be
92253+ * activated. The activation of this aggregate should be properly
92254+ * delayed to when the service of the class has finished in the ideal
92255+ * system tracked by QFQ+. If the activation of the aggregate is not
92256+ * delayed to this reference time instant, then this aggregate may be
92257+ * unjustly served before other aggregates waiting for service. This
92258+ * may cause the above bound to the slot index to be violated for some
92259+ * of these unlucky aggregates.
92260 *
92261 * Instead of delaying the activation of the new aggregate, which is
92262- * quite complex, the following inaccurate but simple solution is used:
92263- * if the slot index is higher than QFQ_MAX_SLOTS-2, then the
92264- * timestamps of the aggregate are shifted backward so as to let the
92265- * slot index become equal to QFQ_MAX_SLOTS-2.
92266+ * quite complex, the above-discussed capping of the slot index is
92267+ * used to handle also the consequences of a change of the parameters
92268+ * of a class.
92269 */
92270 static void qfq_slot_insert(struct qfq_group *grp, struct qfq_aggregate *agg,
92271 u64 roundedS)
92272@@ -1077,7 +1104,7 @@ static struct sk_buff *qfq_dequeue(struct Qdisc *sch)
92273 else
92274 in_serv_agg->budget -= len;
92275
92276- q->V += (u64)len * IWSUM;
92277+ q->V += (u64)len * q->iwsum;
92278 pr_debug("qfq dequeue: len %u F %lld now %lld\n",
92279 len, (unsigned long long) in_serv_agg->F,
92280 (unsigned long long) q->V);
92281diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c 91292diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
92282index 391a245..296b3d7 100644 91293index 391a245..296b3d7 100644
92283--- a/net/sctp/ipv6.c 91294--- a/net/sctp/ipv6.c
@@ -92309,24 +91320,11 @@ index 391a245..296b3d7 100644
92309 } 91320 }
92310 91321
92311 /* Initialize IPv6 support and register with socket layer. */ 91322 /* Initialize IPv6 support and register with socket layer. */
92312diff --git a/net/sctp/probe.c b/net/sctp/probe.c
92313index ad0dba8..e62c225 100644
92314--- a/net/sctp/probe.c
92315+++ b/net/sctp/probe.c
92316@@ -63,7 +63,7 @@ static struct {
92317 struct timespec tstart;
92318 } sctpw;
92319
92320-static void printl(const char *fmt, ...)
92321+static __printf(1, 2) void printl(const char *fmt, ...)
92322 {
92323 va_list args;
92324 int len;
92325diff --git a/net/sctp/proc.c b/net/sctp/proc.c 91323diff --git a/net/sctp/proc.c b/net/sctp/proc.c
92326index ab3bba8..2fbab4e 100644 91324index 4e45ee3..e66a031 100644
92327--- a/net/sctp/proc.c 91325--- a/net/sctp/proc.c
92328+++ b/net/sctp/proc.c 91326+++ b/net/sctp/proc.c
92329@@ -336,7 +336,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v) 91327@@ -337,7 +337,8 @@ static int sctp_assocs_seq_show(struct seq_file *seq, void *v)
92330 seq_printf(seq, 91328 seq_printf(seq,
92331 "%8pK %8pK %-3d %-3d %-2d %-4d " 91329 "%8pK %8pK %-3d %-3d %-2d %-4d "
92332 "%4d %8d %8d %7d %5lu %-5d %5d ", 91330 "%4d %8d %8d %7d %5lu %-5d %5d ",
@@ -92337,7 +91335,7 @@ index ab3bba8..2fbab4e 100644
92337 assoc->assoc_id, 91335 assoc->assoc_id,
92338 assoc->sndbuf_used, 91336 assoc->sndbuf_used,
92339diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c 91337diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
92340index 1c2e46c..f91cf5e 100644 91338index eaee00c..97c0afd 100644
92341--- a/net/sctp/protocol.c 91339--- a/net/sctp/protocol.c
92342+++ b/net/sctp/protocol.c 91340+++ b/net/sctp/protocol.c
92343@@ -834,8 +834,10 @@ int sctp_register_af(struct sctp_af *af) 91341@@ -834,8 +834,10 @@ int sctp_register_af(struct sctp_af *af)
@@ -92393,10 +91391,10 @@ index 8aab894..f6b7e7d 100644
92393 sctp_generate_t1_cookie_event, 91391 sctp_generate_t1_cookie_event,
92394 sctp_generate_t1_init_event, 91392 sctp_generate_t1_init_event,
92395diff --git a/net/sctp/socket.c b/net/sctp/socket.c 91393diff --git a/net/sctp/socket.c b/net/sctp/socket.c
92396index 02c43e4..7bea2ca 100644 91394index 6abb1ca..1678f8b 100644
92397--- a/net/sctp/socket.c 91395--- a/net/sctp/socket.c
92398+++ b/net/sctp/socket.c 91396+++ b/net/sctp/socket.c
92399@@ -2166,11 +2166,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval, 91397@@ -2167,11 +2167,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
92400 { 91398 {
92401 struct sctp_association *asoc; 91399 struct sctp_association *asoc;
92402 struct sctp_ulpevent *event; 91400 struct sctp_ulpevent *event;
@@ -92411,7 +91409,7 @@ index 02c43e4..7bea2ca 100644
92411 91409
92412 /* 91410 /*
92413 * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT, 91411 * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
92414@@ -4221,13 +4223,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len, 91412@@ -4222,13 +4224,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
92415 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, 91413 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
92416 int __user *optlen) 91414 int __user *optlen)
92417 { 91415 {
@@ -92429,7 +91427,7 @@ index 02c43e4..7bea2ca 100644
92429 return -EFAULT; 91427 return -EFAULT;
92430 return 0; 91428 return 0;
92431 } 91429 }
92432@@ -4245,6 +4250,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval, 91430@@ -4246,6 +4251,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
92433 */ 91431 */
92434 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen) 91432 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
92435 { 91433 {
@@ -92438,7 +91436,7 @@ index 02c43e4..7bea2ca 100644
92438 /* Applicable to UDP-style socket only */ 91436 /* Applicable to UDP-style socket only */
92439 if (sctp_style(sk, TCP)) 91437 if (sctp_style(sk, TCP))
92440 return -EOPNOTSUPP; 91438 return -EOPNOTSUPP;
92441@@ -4253,7 +4260,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv 91439@@ -4254,7 +4261,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
92442 len = sizeof(int); 91440 len = sizeof(int);
92443 if (put_user(len, optlen)) 91441 if (put_user(len, optlen))
92444 return -EFAULT; 91442 return -EFAULT;
@@ -92448,7 +91446,7 @@ index 02c43e4..7bea2ca 100644
92448 return -EFAULT; 91446 return -EFAULT;
92449 return 0; 91447 return 0;
92450 } 91448 }
92451@@ -4625,12 +4633,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len, 91449@@ -4626,12 +4634,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
92452 */ 91450 */
92453 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen) 91451 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
92454 { 91452 {
@@ -92465,7 +91463,7 @@ index 02c43e4..7bea2ca 100644
92465 return -EFAULT; 91463 return -EFAULT;
92466 return 0; 91464 return 0;
92467 } 91465 }
92468@@ -4671,6 +4682,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len, 91466@@ -4672,6 +4683,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
92469 addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; 91467 addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
92470 if (space_left < addrlen) 91468 if (space_left < addrlen)
92471 return -ENOMEM; 91469 return -ENOMEM;
@@ -92497,7 +91495,7 @@ index bf3c6e8..376d8d0 100644
92497 91495
92498 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL); 91496 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
92499diff --git a/net/socket.c b/net/socket.c 91497diff --git a/net/socket.c b/net/socket.c
92500index e216502..74be616 100644 91498index 4ca1526..df83e47 100644
92501--- a/net/socket.c 91499--- a/net/socket.c
92502+++ b/net/socket.c 91500+++ b/net/socket.c
92503@@ -88,6 +88,7 @@ 91501@@ -88,6 +88,7 @@
@@ -92526,7 +91524,7 @@ index e216502..74be616 100644
92526 91524
92527 static struct file_system_type sock_fs_type = { 91525 static struct file_system_type sock_fs_type = {
92528 .name = "sockfs", 91526 .name = "sockfs",
92529@@ -1268,6 +1271,8 @@ int __sock_create(struct net *net, int family, int type, int protocol, 91527@@ -1246,6 +1249,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
92530 return -EAFNOSUPPORT; 91528 return -EAFNOSUPPORT;
92531 if (type < 0 || type >= SOCK_MAX) 91529 if (type < 0 || type >= SOCK_MAX)
92532 return -EINVAL; 91530 return -EINVAL;
@@ -92535,7 +91533,7 @@ index e216502..74be616 100644
92535 91533
92536 /* Compatibility. 91534 /* Compatibility.
92537 91535
92538@@ -1399,6 +1404,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol) 91536@@ -1377,6 +1382,16 @@ SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
92539 if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK)) 91537 if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK))
92540 flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK; 91538 flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK;
92541 91539
@@ -92552,7 +91550,7 @@ index e216502..74be616 100644
92552 retval = sock_create(family, type, protocol, &sock); 91550 retval = sock_create(family, type, protocol, &sock);
92553 if (retval < 0) 91551 if (retval < 0)
92554 goto out; 91552 goto out;
92555@@ -1526,6 +1541,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen) 91553@@ -1504,6 +1519,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
92556 if (sock) { 91554 if (sock) {
92557 err = move_addr_to_kernel(umyaddr, addrlen, &address); 91555 err = move_addr_to_kernel(umyaddr, addrlen, &address);
92558 if (err >= 0) { 91556 if (err >= 0) {
@@ -92567,7 +91565,7 @@ index e216502..74be616 100644
92567 err = security_socket_bind(sock, 91565 err = security_socket_bind(sock,
92568 (struct sockaddr *)&address, 91566 (struct sockaddr *)&address,
92569 addrlen); 91567 addrlen);
92570@@ -1534,6 +1557,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen) 91568@@ -1512,6 +1535,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
92571 (struct sockaddr *) 91569 (struct sockaddr *)
92572 &address, addrlen); 91570 &address, addrlen);
92573 } 91571 }
@@ -92575,7 +91573,7 @@ index e216502..74be616 100644
92575 fput_light(sock->file, fput_needed); 91573 fput_light(sock->file, fput_needed);
92576 } 91574 }
92577 return err; 91575 return err;
92578@@ -1557,10 +1581,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog) 91576@@ -1535,10 +1559,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
92579 if ((unsigned int)backlog > somaxconn) 91577 if ((unsigned int)backlog > somaxconn)
92580 backlog = somaxconn; 91578 backlog = somaxconn;
92581 91579
@@ -92596,7 +91594,7 @@ index e216502..74be616 100644
92596 fput_light(sock->file, fput_needed); 91594 fput_light(sock->file, fput_needed);
92597 } 91595 }
92598 return err; 91596 return err;
92599@@ -1604,6 +1638,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, 91597@@ -1582,6 +1616,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
92600 newsock->type = sock->type; 91598 newsock->type = sock->type;
92601 newsock->ops = sock->ops; 91599 newsock->ops = sock->ops;
92602 91600
@@ -92615,7 +91613,7 @@ index e216502..74be616 100644
92615 /* 91613 /*
92616 * We don't need try_module_get here, as the listening socket (sock) 91614 * We don't need try_module_get here, as the listening socket (sock)
92617 * has the protocol module (sock->ops->owner) held. 91615 * has the protocol module (sock->ops->owner) held.
92618@@ -1649,6 +1695,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr, 91616@@ -1627,6 +1673,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
92619 fd_install(newfd, newfile); 91617 fd_install(newfd, newfile);
92620 err = newfd; 91618 err = newfd;
92621 91619
@@ -92624,7 +91622,7 @@ index e216502..74be616 100644
92624 out_put: 91622 out_put:
92625 fput_light(sock->file, fput_needed); 91623 fput_light(sock->file, fput_needed);
92626 out: 91624 out:
92627@@ -1681,6 +1729,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr, 91625@@ -1659,6 +1707,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
92628 int, addrlen) 91626 int, addrlen)
92629 { 91627 {
92630 struct socket *sock; 91628 struct socket *sock;
@@ -92632,7 +91630,7 @@ index e216502..74be616 100644
92632 struct sockaddr_storage address; 91630 struct sockaddr_storage address;
92633 int err, fput_needed; 91631 int err, fput_needed;
92634 91632
92635@@ -1691,6 +1740,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr, 91633@@ -1669,6 +1718,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
92636 if (err < 0) 91634 if (err < 0)
92637 goto out_put; 91635 goto out_put;
92638 91636
@@ -92650,7 +91648,7 @@ index e216502..74be616 100644
92650 err = 91648 err =
92651 security_socket_connect(sock, (struct sockaddr *)&address, addrlen); 91649 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
92652 if (err) 91650 if (err)
92653@@ -1772,6 +1832,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr, 91651@@ -1750,6 +1810,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
92654 * the protocol. 91652 * the protocol.
92655 */ 91653 */
92656 91654
@@ -92659,7 +91657,7 @@ index e216502..74be616 100644
92659 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len, 91657 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
92660 unsigned int, flags, struct sockaddr __user *, addr, 91658 unsigned int, flags, struct sockaddr __user *, addr,
92661 int, addr_len) 91659 int, addr_len)
92662@@ -1838,7 +1900,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size, 91660@@ -1816,7 +1878,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
92663 struct socket *sock; 91661 struct socket *sock;
92664 struct iovec iov; 91662 struct iovec iov;
92665 struct msghdr msg; 91663 struct msghdr msg;
@@ -92668,7 +91666,7 @@ index e216502..74be616 100644
92668 int err, err2; 91666 int err, err2;
92669 int fput_needed; 91667 int fput_needed;
92670 91668
92671@@ -2045,7 +2107,7 @@ static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg, 91669@@ -2023,7 +2085,7 @@ static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg,
92672 * checking falls down on this. 91670 * checking falls down on this.
92673 */ 91671 */
92674 if (copy_from_user(ctl_buf, 91672 if (copy_from_user(ctl_buf,
@@ -92677,7 +91675,7 @@ index e216502..74be616 100644
92677 ctl_len)) 91675 ctl_len))
92678 goto out_freectl; 91676 goto out_freectl;
92679 msg_sys->msg_control = ctl_buf; 91677 msg_sys->msg_control = ctl_buf;
92680@@ -2196,7 +2258,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg, 91678@@ -2174,7 +2236,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
92681 int err, total_len, len; 91679 int err, total_len, len;
92682 91680
92683 /* kernel mode address */ 91681 /* kernel mode address */
@@ -92686,7 +91684,7 @@ index e216502..74be616 100644
92686 91684
92687 /* user mode address pointers */ 91685 /* user mode address pointers */
92688 struct sockaddr __user *uaddr; 91686 struct sockaddr __user *uaddr;
92689@@ -2224,7 +2286,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg, 91687@@ -2202,7 +2264,7 @@ static int ___sys_recvmsg(struct socket *sock, struct msghdr __user *msg,
92690 * kernel msghdr to use the kernel address space) 91688 * kernel msghdr to use the kernel address space)
92691 */ 91689 */
92692 91690
@@ -92695,7 +91693,7 @@ index e216502..74be616 100644
92695 uaddr_len = COMPAT_NAMELEN(msg); 91693 uaddr_len = COMPAT_NAMELEN(msg);
92696 if (MSG_CMSG_COMPAT & flags) { 91694 if (MSG_CMSG_COMPAT & flags) {
92697 err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE); 91695 err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
92698@@ -2975,7 +3037,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd, 91696@@ -2955,7 +3017,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
92699 old_fs = get_fs(); 91697 old_fs = get_fs();
92700 set_fs(KERNEL_DS); 91698 set_fs(KERNEL_DS);
92701 err = dev_ioctl(net, cmd, 91699 err = dev_ioctl(net, cmd,
@@ -92704,7 +91702,7 @@ index e216502..74be616 100644
92704 set_fs(old_fs); 91702 set_fs(old_fs);
92705 91703
92706 return err; 91704 return err;
92707@@ -3084,7 +3146,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd, 91705@@ -3064,7 +3126,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
92708 91706
92709 old_fs = get_fs(); 91707 old_fs = get_fs();
92710 set_fs(KERNEL_DS); 91708 set_fs(KERNEL_DS);
@@ -92713,7 +91711,7 @@ index e216502..74be616 100644
92713 set_fs(old_fs); 91711 set_fs(old_fs);
92714 91712
92715 if (cmd == SIOCGIFMAP && !err) { 91713 if (cmd == SIOCGIFMAP && !err) {
92716@@ -3189,7 +3251,7 @@ static int routing_ioctl(struct net *net, struct socket *sock, 91714@@ -3169,7 +3231,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
92717 ret |= __get_user(rtdev, &(ur4->rt_dev)); 91715 ret |= __get_user(rtdev, &(ur4->rt_dev));
92718 if (rtdev) { 91716 if (rtdev) {
92719 ret |= copy_from_user(devname, compat_ptr(rtdev), 15); 91717 ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
@@ -92722,7 +91720,7 @@ index e216502..74be616 100644
92722 devname[15] = 0; 91720 devname[15] = 0;
92723 } else 91721 } else
92724 r4.rt_dev = NULL; 91722 r4.rt_dev = NULL;
92725@@ -3415,8 +3477,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname, 91723@@ -3395,8 +3457,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
92726 int __user *uoptlen; 91724 int __user *uoptlen;
92727 int err; 91725 int err;
92728 91726
@@ -92733,7 +91731,7 @@ index e216502..74be616 100644
92733 91731
92734 set_fs(KERNEL_DS); 91732 set_fs(KERNEL_DS);
92735 if (level == SOL_SOCKET) 91733 if (level == SOL_SOCKET)
92736@@ -3436,7 +3498,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname, 91734@@ -3416,7 +3478,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
92737 char __user *uoptval; 91735 char __user *uoptval;
92738 int err; 91736 int err;
92739 91737
@@ -92743,10 +91741,10 @@ index e216502..74be616 100644
92743 set_fs(KERNEL_DS); 91741 set_fs(KERNEL_DS);
92744 if (level == SOL_SOCKET) 91742 if (level == SOL_SOCKET)
92745diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c 91743diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
92746index d5f35f1..da2680b5 100644 91744index 5a750b9..ca5d7af 100644
92747--- a/net/sunrpc/clnt.c 91745--- a/net/sunrpc/clnt.c
92748+++ b/net/sunrpc/clnt.c 91746+++ b/net/sunrpc/clnt.c
92749@@ -1283,7 +1283,9 @@ call_start(struct rpc_task *task) 91747@@ -1288,7 +1288,9 @@ call_start(struct rpc_task *task)
92750 (RPC_IS_ASYNC(task) ? "async" : "sync")); 91748 (RPC_IS_ASYNC(task) ? "async" : "sync"));
92751 91749
92752 /* Increment call count */ 91750 /* Increment call count */
@@ -93067,7 +92065,7 @@ index 9bc6db0..47ac8c0 100644
93067 int mode = (table->mode >> 6) & 7; 92065 int mode = (table->mode >> 6) & 7;
93068 return (mode << 6) | (mode << 3) | mode; 92066 return (mode << 6) | (mode << 3) | mode;
93069diff --git a/net/tipc/link.c b/net/tipc/link.c 92067diff --git a/net/tipc/link.c b/net/tipc/link.c
93070index daa6080..2bbbe70 100644 92068index a80feee..2bbbe70 100644
93071--- a/net/tipc/link.c 92069--- a/net/tipc/link.c
93072+++ b/net/tipc/link.c 92070+++ b/net/tipc/link.c
93073@@ -1201,7 +1201,7 @@ static int link_send_sections_long(struct tipc_port *sender, 92071@@ -1201,7 +1201,7 @@ static int link_send_sections_long(struct tipc_port *sender,
@@ -93097,38 +92095,6 @@ index daa6080..2bbbe70 100644
93097 sect_crs += sz; 92095 sect_crs += sz;
93098 sect_rest -= sz; 92096 sect_rest -= sz;
93099 fragm_crs += sz; 92097 fragm_crs += sz;
93100@@ -2306,8 +2306,11 @@ static int link_recv_changeover_msg(struct tipc_link **l_ptr,
93101 struct tipc_msg *tunnel_msg = buf_msg(tunnel_buf);
93102 u32 msg_typ = msg_type(tunnel_msg);
93103 u32 msg_count = msg_msgcnt(tunnel_msg);
93104+ u32 bearer_id = msg_bearer_id(tunnel_msg);
93105
93106- dest_link = (*l_ptr)->owner->links[msg_bearer_id(tunnel_msg)];
93107+ if (bearer_id >= MAX_BEARERS)
93108+ goto exit;
93109+ dest_link = (*l_ptr)->owner->links[bearer_id];
93110 if (!dest_link)
93111 goto exit;
93112 if (dest_link == *l_ptr) {
93113@@ -2521,14 +2524,16 @@ int tipc_link_recv_fragment(struct sk_buff **pending, struct sk_buff **fb,
93114 struct tipc_msg *imsg = (struct tipc_msg *)msg_data(fragm);
93115 u32 msg_sz = msg_size(imsg);
93116 u32 fragm_sz = msg_data_sz(fragm);
93117- u32 exp_fragm_cnt = msg_sz/fragm_sz + !!(msg_sz % fragm_sz);
93118+ u32 exp_fragm_cnt;
93119 u32 max = TIPC_MAX_USER_MSG_SIZE + NAMED_H_SIZE;
93120+
93121 if (msg_type(imsg) == TIPC_MCAST_MSG)
93122 max = TIPC_MAX_USER_MSG_SIZE + MCAST_H_SIZE;
93123- if (msg_size(imsg) > max) {
93124+ if (fragm_sz == 0 || msg_size(imsg) > max) {
93125 kfree_skb(fbuf);
93126 return 0;
93127 }
93128+ exp_fragm_cnt = msg_sz / fragm_sz + !!(msg_sz % fragm_sz);
93129 pbuf = tipc_buf_acquire(msg_size(imsg));
93130 if (pbuf != NULL) {
93131 pbuf->next = *pending;
93132diff --git a/net/tipc/msg.c b/net/tipc/msg.c 92098diff --git a/net/tipc/msg.c b/net/tipc/msg.c
93133index f2db8a8..9245aa4 100644 92099index f2db8a8..9245aa4 100644
93134--- a/net/tipc/msg.c 92100--- a/net/tipc/msg.c
@@ -93156,7 +92122,7 @@ index 6b42d47..2ac24d5 100644
93156 92122
93157 sub->evt.event = htohl(event, sub->swap); 92123 sub->evt.event = htohl(event, sub->swap);
93158diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c 92124diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
93159index 2db702d..09a77488 100644 92125index 826e099..4fa8c93 100644
93160--- a/net/unix/af_unix.c 92126--- a/net/unix/af_unix.c
93161+++ b/net/unix/af_unix.c 92127+++ b/net/unix/af_unix.c
93162@@ -783,6 +783,12 @@ static struct sock *unix_find_other(struct net *net, 92128@@ -783,6 +783,12 @@ static struct sock *unix_find_other(struct net *net,
@@ -93205,7 +92171,7 @@ index 2db702d..09a77488 100644
93205 done_path_create(&path, dentry); 92171 done_path_create(&path, dentry);
93206 return err; 92172 return err;
93207 } 92173 }
93208@@ -2323,9 +2342,13 @@ static int unix_seq_show(struct seq_file *seq, void *v) 92174@@ -2324,9 +2343,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
93209 seq_puts(seq, "Num RefCount Protocol Flags Type St " 92175 seq_puts(seq, "Num RefCount Protocol Flags Type St "
93210 "Inode Path\n"); 92176 "Inode Path\n");
93211 else { 92177 else {
@@ -93220,7 +92186,7 @@ index 2db702d..09a77488 100644
93220 92186
93221 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu", 92187 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
93222 s, 92188 s,
93223@@ -2352,8 +2375,10 @@ static int unix_seq_show(struct seq_file *seq, void *v) 92189@@ -2353,8 +2376,10 @@ static int unix_seq_show(struct seq_file *seq, void *v)
93224 } 92190 }
93225 for ( ; i < len; i++) 92191 for ( ; i < len; i++)
93226 seq_putc(seq, u->addr->name->sun_path[i]); 92192 seq_putc(seq, u->addr->name->sun_path[i]);
@@ -93284,7 +92250,7 @@ index c8717c1..08539f5 100644
93284 92250
93285 iwp->length += essid_compat; 92251 iwp->length += essid_compat;
93286diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c 92252diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
93287index 167c67d..3f2ae427 100644 92253index ea970b8..c68edb9f 100644
93288--- a/net/xfrm/xfrm_policy.c 92254--- a/net/xfrm/xfrm_policy.c
93289+++ b/net/xfrm/xfrm_policy.c 92255+++ b/net/xfrm/xfrm_policy.c
93290@@ -334,7 +334,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy) 92256@@ -334,7 +334,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
@@ -93305,7 +92271,7 @@ index 167c67d..3f2ae427 100644
93305 rt_genid_bump(net); 92271 rt_genid_bump(net);
93306 if (delpol) { 92272 if (delpol) {
93307 xfrm_policy_requeue(delpol, policy); 92273 xfrm_policy_requeue(delpol, policy);
93308@@ -1611,7 +1611,7 @@ free_dst: 92274@@ -1629,7 +1629,7 @@ free_dst:
93309 goto out; 92275 goto out;
93310 } 92276 }
93311 92277
@@ -93314,7 +92280,7 @@ index 167c67d..3f2ae427 100644
93314 xfrm_dst_alloc_copy(void **target, const void *src, int size) 92280 xfrm_dst_alloc_copy(void **target, const void *src, int size)
93315 { 92281 {
93316 if (!*target) { 92282 if (!*target) {
93317@@ -1623,7 +1623,7 @@ xfrm_dst_alloc_copy(void **target, const void *src, int size) 92283@@ -1641,7 +1641,7 @@ xfrm_dst_alloc_copy(void **target, const void *src, int size)
93318 return 0; 92284 return 0;
93319 } 92285 }
93320 92286
@@ -93323,7 +92289,7 @@ index 167c67d..3f2ae427 100644
93323 xfrm_dst_update_parent(struct dst_entry *dst, const struct xfrm_selector *sel) 92289 xfrm_dst_update_parent(struct dst_entry *dst, const struct xfrm_selector *sel)
93324 { 92290 {
93325 #ifdef CONFIG_XFRM_SUB_POLICY 92291 #ifdef CONFIG_XFRM_SUB_POLICY
93326@@ -1635,7 +1635,7 @@ xfrm_dst_update_parent(struct dst_entry *dst, const struct xfrm_selector *sel) 92292@@ -1653,7 +1653,7 @@ xfrm_dst_update_parent(struct dst_entry *dst, const struct xfrm_selector *sel)
93327 #endif 92293 #endif
93328 } 92294 }
93329 92295
@@ -93332,7 +92298,7 @@ index 167c67d..3f2ae427 100644
93332 xfrm_dst_update_origin(struct dst_entry *dst, const struct flowi *fl) 92298 xfrm_dst_update_origin(struct dst_entry *dst, const struct flowi *fl)
93333 { 92299 {
93334 #ifdef CONFIG_XFRM_SUB_POLICY 92300 #ifdef CONFIG_XFRM_SUB_POLICY
93335@@ -1729,7 +1729,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols, 92301@@ -1747,7 +1747,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
93336 92302
93337 xdst->num_pols = num_pols; 92303 xdst->num_pols = num_pols;
93338 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy*) * num_pols); 92304 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy*) * num_pols);
@@ -93341,7 +92307,7 @@ index 167c67d..3f2ae427 100644
93341 92307
93342 return xdst; 92308 return xdst;
93343 } 92309 }
93344@@ -2598,7 +2598,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first) 92310@@ -2618,7 +2618,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
93345 if (xdst->xfrm_genid != dst->xfrm->genid) 92311 if (xdst->xfrm_genid != dst->xfrm->genid)
93346 return 0; 92312 return 0;
93347 if (xdst->num_pols > 0 && 92313 if (xdst->num_pols > 0 &&
@@ -93350,7 +92316,7 @@ index 167c67d..3f2ae427 100644
93350 return 0; 92316 return 0;
93351 92317
93352 mtu = dst_mtu(dst->child); 92318 mtu = dst_mtu(dst->child);
93353@@ -2686,8 +2686,11 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo) 92319@@ -2706,8 +2706,11 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
93354 dst_ops->link_failure = xfrm_link_failure; 92320 dst_ops->link_failure = xfrm_link_failure;
93355 if (likely(dst_ops->neigh_lookup == NULL)) 92321 if (likely(dst_ops->neigh_lookup == NULL))
93356 dst_ops->neigh_lookup = xfrm_neigh_lookup; 92322 dst_ops->neigh_lookup = xfrm_neigh_lookup;
@@ -93364,7 +92330,7 @@ index 167c67d..3f2ae427 100644
93364 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo); 92330 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
93365 } 92331 }
93366 spin_unlock(&xfrm_policy_afinfo_lock); 92332 spin_unlock(&xfrm_policy_afinfo_lock);
93367@@ -2741,7 +2744,9 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo) 92333@@ -2761,7 +2764,9 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
93368 dst_ops->check = NULL; 92334 dst_ops->check = NULL;
93369 dst_ops->negative_advice = NULL; 92335 dst_ops->negative_advice = NULL;
93370 dst_ops->link_failure = NULL; 92336 dst_ops->link_failure = NULL;
@@ -93375,7 +92341,7 @@ index 167c67d..3f2ae427 100644
93375 } 92341 }
93376 return err; 92342 return err;
93377 } 92343 }
93378@@ -3124,7 +3129,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol, 92344@@ -3144,7 +3149,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
93379 sizeof(pol->xfrm_vec[i].saddr)); 92345 sizeof(pol->xfrm_vec[i].saddr));
93380 pol->xfrm_vec[i].encap_family = mp->new_family; 92346 pol->xfrm_vec[i].encap_family = mp->new_family;
93381 /* flush bundles */ 92347 /* flush bundles */
@@ -93385,7 +92351,7 @@ index 167c67d..3f2ae427 100644
93385 } 92351 }
93386 92352
93387diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c 92353diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
93388index 2c341bd..4404211 100644 92354index 78f66fa..9286768 100644
93389--- a/net/xfrm/xfrm_state.c 92355--- a/net/xfrm/xfrm_state.c
93390+++ b/net/xfrm/xfrm_state.c 92356+++ b/net/xfrm/xfrm_state.c
93391@@ -177,12 +177,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family) 92357@@ -177,12 +177,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
@@ -93493,7 +92459,7 @@ index 05a6e3d..6716ec9 100644
93493 __xfrm_sysctl_init(net); 92459 __xfrm_sysctl_init(net);
93494 92460
93495diff --git a/scripts/Makefile.build b/scripts/Makefile.build 92461diff --git a/scripts/Makefile.build b/scripts/Makefile.build
93496index 0e801c3..5c8ad3b 100644 92462index d5d859c..781cbcb 100644
93497--- a/scripts/Makefile.build 92463--- a/scripts/Makefile.build
93498+++ b/scripts/Makefile.build 92464+++ b/scripts/Makefile.build
93499@@ -111,7 +111,7 @@ endif 92465@@ -111,7 +111,7 @@ endif
@@ -93591,7 +92557,7 @@ index 1ac414f..38575f7 100644
93591+ $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs) 92557+ $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
93592 92558
93593diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c 92559diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
93594index 7f6425e..9864506 100644 92560index 078fe1d..fbdb363 100644
93595--- a/scripts/basic/fixdep.c 92561--- a/scripts/basic/fixdep.c
93596+++ b/scripts/basic/fixdep.c 92562+++ b/scripts/basic/fixdep.c
93597@@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz) 92563@@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
@@ -93628,7 +92594,7 @@ index 7f6425e..9864506 100644
93628 const char *p, *q; 92594 const char *p, *q;
93629 92595
93630 for (; m < end; m++) { 92596 for (; m < end; m++) {
93631@@ -406,7 +406,7 @@ static void print_deps(void) 92597@@ -435,7 +435,7 @@ static void print_deps(void)
93632 static void traps(void) 92598 static void traps(void)
93633 { 92599 {
93634 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF"; 92600 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
@@ -93660,23 +92626,23 @@ index 0000000..5e0222d
93660+ [[ "$plugincc" =~ "$1" ]] && echo "$1" 92626+ [[ "$plugincc" =~ "$1" ]] && echo "$1"
93661+ [[ "$plugincc" =~ "$2" ]] && echo "$2" 92627+ [[ "$plugincc" =~ "$2" ]] && echo "$2"
93662+fi 92628+fi
93663diff --git a/scripts/headers_install.pl b/scripts/headers_install.pl 92629diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
93664index 581ca99..a6ff02e 100644 92630index 643764f..6cc0137 100644
93665--- a/scripts/headers_install.pl 92631--- a/scripts/headers_install.sh
93666+++ b/scripts/headers_install.pl 92632+++ b/scripts/headers_install.sh
93667@@ -35,6 +35,7 @@ foreach my $filename (@files) { 92633@@ -29,6 +29,7 @@ do
93668 $line =~ s/([\s(])__user\s/$1/g; 92634 FILE="$(basename "$i")"
93669 $line =~ s/([\s(])__force\s/$1/g; 92635 sed -r \
93670 $line =~ s/([\s(])__iomem\s/$1/g; 92636 -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
93671+ $line =~ s/(\s?)__intentional_overflow\([-\d\s,]*\)\s?/$1/g; 92637+ -e 's/__intentional_overflow\([- \t,0-9]*\)//g' \
93672 $line =~ s/\s__attribute_const__\s/ /g; 92638 -e 's/__attribute_const__([ \t]|$)/\1/g' \
93673 $line =~ s/\s__attribute_const__$//g; 92639 -e 's@^#include <linux/compiler.h>@@' \
93674 $line =~ s/\b__packed\b/__attribute__((packed))/g; 92640 -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
93675diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh 92641diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
93676index 3d569d6..0c09522 100644 92642index 0149949..d482a0d 100644
93677--- a/scripts/link-vmlinux.sh 92643--- a/scripts/link-vmlinux.sh
93678+++ b/scripts/link-vmlinux.sh 92644+++ b/scripts/link-vmlinux.sh
93679@@ -159,7 +159,7 @@ else 92645@@ -158,7 +158,7 @@ else
93680 fi; 92646 fi;
93681 92647
93682 # final build of init/ 92648 # final build of init/
@@ -93686,7 +92652,7 @@ index 3d569d6..0c09522 100644
93686 kallsymso="" 92652 kallsymso=""
93687 kallsyms_vmlinux="" 92653 kallsyms_vmlinux=""
93688diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c 92654diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
93689index 771ac17..9f0d3ee 100644 92655index 45f9a33..e4194b3 100644
93690--- a/scripts/mod/file2alias.c 92656--- a/scripts/mod/file2alias.c
93691+++ b/scripts/mod/file2alias.c 92657+++ b/scripts/mod/file2alias.c
93692@@ -140,7 +140,7 @@ static void device_id_check(const char *modname, const char *device_id, 92658@@ -140,7 +140,7 @@ static void device_id_check(const char *modname, const char *device_id,
@@ -93753,10 +92719,10 @@ index 771ac17..9f0d3ee 100644
93753 sprintf(alias, "dmi*"); 92719 sprintf(alias, "dmi*");
93754 92720
93755diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c 92721diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
93756index 78b30c1..536850d 100644 92722index a4be8e1..6e8a5fb 100644
93757--- a/scripts/mod/modpost.c 92723--- a/scripts/mod/modpost.c
93758+++ b/scripts/mod/modpost.c 92724+++ b/scripts/mod/modpost.c
93759@@ -931,6 +931,7 @@ enum mismatch { 92725@@ -933,6 +933,7 @@ enum mismatch {
93760 ANY_INIT_TO_ANY_EXIT, 92726 ANY_INIT_TO_ANY_EXIT,
93761 ANY_EXIT_TO_ANY_INIT, 92727 ANY_EXIT_TO_ANY_INIT,
93762 EXPORT_TO_INIT_EXIT, 92728 EXPORT_TO_INIT_EXIT,
@@ -93764,7 +92730,7 @@ index 78b30c1..536850d 100644
93764 }; 92730 };
93765 92731
93766 struct sectioncheck { 92732 struct sectioncheck {
93767@@ -1045,6 +1046,12 @@ const struct sectioncheck sectioncheck[] = { 92733@@ -1047,6 +1048,12 @@ const struct sectioncheck sectioncheck[] = {
93768 .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL }, 92734 .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
93769 .mismatch = EXPORT_TO_INIT_EXIT, 92735 .mismatch = EXPORT_TO_INIT_EXIT,
93770 .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL }, 92736 .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
@@ -93777,7 +92743,7 @@ index 78b30c1..536850d 100644
93777 } 92743 }
93778 }; 92744 };
93779 92745
93780@@ -1167,10 +1174,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr, 92746@@ -1169,10 +1176,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
93781 continue; 92747 continue;
93782 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION) 92748 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
93783 continue; 92749 continue;
@@ -93790,7 +92756,7 @@ index 78b30c1..536850d 100644
93790 if (d < 0) 92756 if (d < 0)
93791 d = addr - sym->st_value; 92757 d = addr - sym->st_value;
93792 if (d < distance) { 92758 if (d < distance) {
93793@@ -1449,6 +1456,14 @@ static void report_sec_mismatch(const char *modname, 92759@@ -1451,6 +1458,14 @@ static void report_sec_mismatch(const char *modname,
93794 tosym, prl_to, prl_to, tosym); 92760 tosym, prl_to, prl_to, tosym);
93795 free(prl_to); 92761 free(prl_to);
93796 break; 92762 break;
@@ -93805,7 +92771,7 @@ index 78b30c1..536850d 100644
93805 } 92771 }
93806 fprintf(stderr, "\n"); 92772 fprintf(stderr, "\n");
93807 } 92773 }
93808@@ -1683,7 +1698,7 @@ static void section_rel(const char *modname, struct elf_info *elf, 92774@@ -1685,7 +1700,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
93809 static void check_sec_ref(struct module *mod, const char *modname, 92775 static void check_sec_ref(struct module *mod, const char *modname,
93810 struct elf_info *elf) 92776 struct elf_info *elf)
93811 { 92777 {
@@ -93814,7 +92780,7 @@ index 78b30c1..536850d 100644
93814 Elf_Shdr *sechdrs = elf->sechdrs; 92780 Elf_Shdr *sechdrs = elf->sechdrs;
93815 92781
93816 /* Walk through all sections */ 92782 /* Walk through all sections */
93817@@ -1781,7 +1796,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf, 92783@@ -1804,7 +1819,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
93818 va_end(ap); 92784 va_end(ap);
93819 } 92785 }
93820 92786
@@ -93823,7 +92789,7 @@ index 78b30c1..536850d 100644
93823 { 92789 {
93824 if (buf->size - buf->pos < len) { 92790 if (buf->size - buf->pos < len) {
93825 buf->size += len + SZ; 92791 buf->size += len + SZ;
93826@@ -1999,7 +2014,7 @@ static void write_if_changed(struct buffer *b, const char *fname) 92792@@ -2023,7 +2038,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
93827 if (fstat(fileno(file), &st) < 0) 92793 if (fstat(fileno(file), &st) < 0)
93828 goto close_write; 92794 goto close_write;
93829 92795
@@ -93928,10 +92894,10 @@ index f5eb43d..1814de8 100644
93928 shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff)); 92894 shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff));
93929 shstrtab_sec = shdr + r2(&ehdr->e_shstrndx); 92895 shstrtab_sec = shdr + r2(&ehdr->e_shstrndx);
93930diff --git a/security/Kconfig b/security/Kconfig 92896diff --git a/security/Kconfig b/security/Kconfig
93931index e9c6ac7..66bf8e9 100644 92897index e9c6ac7..0d298ea 100644
93932--- a/security/Kconfig 92898--- a/security/Kconfig
93933+++ b/security/Kconfig 92899+++ b/security/Kconfig
93934@@ -4,6 +4,945 @@ 92900@@ -4,6 +4,956 @@
93935 92901
93936 menu "Security options" 92902 menu "Security options"
93937 92903
@@ -94669,21 +93635,32 @@ index e9c6ac7..66bf8e9 100644
94669+ default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY) 93635+ default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
94670+ depends on !HIBERNATION 93636+ depends on !HIBERNATION
94671+ help 93637+ help
94672+ By saying Y here the kernel will erase memory pages as soon as they 93638+ By saying Y here the kernel will erase memory pages and slab objects
94673+ are freed. This in turn reduces the lifetime of data stored in the 93639+ as soon as they are freed. This in turn reduces the lifetime of data
94674+ pages, making it less likely that sensitive information such as 93640+ stored in them, making it less likely that sensitive information such
94675+ passwords, cryptographic secrets, etc stay in memory for too long. 93641+ as passwords, cryptographic secrets, etc stay in memory for too long.
94676+ 93642+
94677+ This is especially useful for programs whose runtime is short, long 93643+ This is especially useful for programs whose runtime is short, long
94678+ lived processes and the kernel itself benefit from this as long as 93644+ lived processes and the kernel itself benefit from this as long as
94679+ they operate on whole memory pages and ensure timely freeing of pages 93645+ they ensure timely freeing of memory that may hold sensitive
94680+ that may hold sensitive information. 93646+ information.
93647+
93648+ A nice side effect of the sanitization of slab objects is the
93649+ reduction of possible info leaks caused by padding bytes within the
93650+ leaky structures. Use-after-free bugs for structures containing
93651+ pointers can also be detected as dereferencing the sanitized pointer
93652+ will generate an access violation.
94681+ 93653+
94682+ The tradeoff is performance impact, on a single CPU system kernel 93654+ The tradeoff is performance impact, on a single CPU system kernel
94683+ compilation sees a 3% slowdown, other systems and workloads may vary 93655+ compilation sees a 3% slowdown, other systems and workloads may vary
94684+ and you are advised to test this feature on your expected workload 93656+ and you are advised to test this feature on your expected workload
94685+ before deploying it. 93657+ before deploying it.
94686+ 93658+
93659+ To reduce the performance penalty by sanitizing pages only, albeit
93660+ limiting the effectiveness of this feature at the same time, slab
93661+ sanitization can be disabled with the kernel commandline parameter
93662+ "pax_sanitize_slab=0".
93663+
94687+ Note that this feature does not protect data stored in live pages, 93664+ Note that this feature does not protect data stored in live pages,
94688+ e.g., process memory swapped to disk may stay there for a long time. 93665+ e.g., process memory swapped to disk may stay there for a long time.
94689+ 93666+
@@ -94877,7 +93854,7 @@ index e9c6ac7..66bf8e9 100644
94877 source security/keys/Kconfig 93854 source security/keys/Kconfig
94878 93855
94879 config SECURITY_DMESG_RESTRICT 93856 config SECURITY_DMESG_RESTRICT
94880@@ -103,7 +1042,7 @@ config INTEL_TXT 93857@@ -103,7 +1053,7 @@ config INTEL_TXT
94881 config LSM_MMAP_MIN_ADDR 93858 config LSM_MMAP_MIN_ADDR
94882 int "Low address space for LSM to protect from user allocation" 93859 int "Low address space for LSM to protect from user allocation"
94883 depends on SECURITY && SECURITY_SELINUX 93860 depends on SECURITY && SECURITY_SELINUX
@@ -95286,10 +94263,10 @@ index d65fa7f..cbfe366 100644
95286 if (iov != iovstack) 94263 if (iov != iovstack)
95287 kfree(iov); 94264 kfree(iov);
95288diff --git a/security/keys/internal.h b/security/keys/internal.h 94265diff --git a/security/keys/internal.h b/security/keys/internal.h
95289index 8bbefc3..299d03f 100644 94266index d4f1468..cc52f92 100644
95290--- a/security/keys/internal.h 94267--- a/security/keys/internal.h
95291+++ b/security/keys/internal.h 94268+++ b/security/keys/internal.h
95292@@ -240,7 +240,7 @@ extern long keyctl_instantiate_key_iov(key_serial_t, 94269@@ -242,7 +242,7 @@ extern long keyctl_instantiate_key_iov(key_serial_t,
95293 extern long keyctl_invalidate_key(key_serial_t); 94270 extern long keyctl_invalidate_key(key_serial_t);
95294 94271
95295 extern long keyctl_instantiate_key_common(key_serial_t, 94272 extern long keyctl_instantiate_key_common(key_serial_t,
@@ -95356,10 +94333,10 @@ index 8fb7c7b..ba3610d 100644
95356 /* record the root user tracking */ 94333 /* record the root user tracking */
95357 rb_link_node(&root_key_user.node, 94334 rb_link_node(&root_key_user.node,
95358diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c 94335diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
95359index 4b5c948..2054dc1 100644 94336index 33cfd27..842fc5a 100644
95360--- a/security/keys/keyctl.c 94337--- a/security/keys/keyctl.c
95361+++ b/security/keys/keyctl.c 94338+++ b/security/keys/keyctl.c
95362@@ -986,7 +986,7 @@ static int keyctl_change_reqkey_auth(struct key *key) 94339@@ -987,7 +987,7 @@ static int keyctl_change_reqkey_auth(struct key *key)
95363 /* 94340 /*
95364 * Copy the iovec data from userspace 94341 * Copy the iovec data from userspace
95365 */ 94342 */
@@ -95368,7 +94345,7 @@ index 4b5c948..2054dc1 100644
95368 unsigned ioc) 94345 unsigned ioc)
95369 { 94346 {
95370 for (; ioc > 0; ioc--) { 94347 for (; ioc > 0; ioc--) {
95371@@ -1008,7 +1008,7 @@ static long copy_from_user_iovec(void *buffer, const struct iovec *iov, 94348@@ -1009,7 +1009,7 @@ static long copy_from_user_iovec(void *buffer, const struct iovec *iov,
95372 * If successful, 0 will be returned. 94349 * If successful, 0 will be returned.
95373 */ 94350 */
95374 long keyctl_instantiate_key_common(key_serial_t id, 94351 long keyctl_instantiate_key_common(key_serial_t id,
@@ -95377,7 +94354,7 @@ index 4b5c948..2054dc1 100644
95377 unsigned ioc, 94354 unsigned ioc,
95378 size_t plen, 94355 size_t plen,
95379 key_serial_t ringid) 94356 key_serial_t ringid)
95380@@ -1103,7 +1103,7 @@ long keyctl_instantiate_key(key_serial_t id, 94357@@ -1104,7 +1104,7 @@ long keyctl_instantiate_key(key_serial_t id,
95381 [0].iov_len = plen 94358 [0].iov_len = plen
95382 }; 94359 };
95383 94360
@@ -95386,7 +94363,7 @@ index 4b5c948..2054dc1 100644
95386 } 94363 }
95387 94364
95388 return keyctl_instantiate_key_common(id, NULL, 0, 0, ringid); 94365 return keyctl_instantiate_key_common(id, NULL, 0, 0, ringid);
95389@@ -1136,7 +1136,7 @@ long keyctl_instantiate_key_iov(key_serial_t id, 94366@@ -1137,7 +1137,7 @@ long keyctl_instantiate_key_iov(key_serial_t id,
95390 if (ret == 0) 94367 if (ret == 0)
95391 goto no_payload_free; 94368 goto no_payload_free;
95392 94369
@@ -95440,7 +94417,7 @@ index f728728..6457a0c 100644
95440 94417
95441 /* 94418 /*
95442diff --git a/security/security.c b/security/security.c 94419diff --git a/security/security.c b/security/security.c
95443index 03f248b..5710c33 100644 94420index a3dce87..9ca1435 100644
95444--- a/security/security.c 94421--- a/security/security.c
95445+++ b/security/security.c 94422+++ b/security/security.c
95446@@ -20,6 +20,7 @@ 94423@@ -20,6 +20,7 @@
@@ -95473,7 +94450,7 @@ index 03f248b..5710c33 100644
95473 94450
95474 /* Save user chosen LSM */ 94451 /* Save user chosen LSM */
95475diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c 94452diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
95476index 7171a95..c35e879 100644 94453index 5c6f2cd..b4f945c 100644
95477--- a/security/selinux/hooks.c 94454--- a/security/selinux/hooks.c
95478+++ b/security/selinux/hooks.c 94455+++ b/security/selinux/hooks.c
95479@@ -96,8 +96,6 @@ 94456@@ -96,8 +96,6 @@
@@ -95485,7 +94462,7 @@ index 7171a95..c35e879 100644
95485 /* SECMARK reference count */ 94462 /* SECMARK reference count */
95486 static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0); 94463 static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
95487 94464
95488@@ -5498,7 +5496,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer) 94465@@ -5529,7 +5527,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
95489 94466
95490 #endif 94467 #endif
95491 94468
@@ -95508,7 +94485,7 @@ index 65f67cb..3f141ef 100644
95508 } 94485 }
95509 #else 94486 #else
95510diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c 94487diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
95511index fa64740..bc95b74 100644 94488index d52c780..6431349 100644
95512--- a/security/smack/smack_lsm.c 94489--- a/security/smack/smack_lsm.c
95513+++ b/security/smack/smack_lsm.c 94490+++ b/security/smack/smack_lsm.c
95514@@ -3392,7 +3392,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) 94491@@ -3392,7 +3392,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
@@ -95536,7 +94513,7 @@ index 390c646..f2f8db3 100644
95536 if (!fstype) { 94513 if (!fstype) {
95537 error = -ENODEV; 94514 error = -ENODEV;
95538diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c 94515diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
95539index a2ee362..5754f34 100644 94516index f0b756e..b129202 100644
95540--- a/security/tomoyo/tomoyo.c 94517--- a/security/tomoyo/tomoyo.c
95541+++ b/security/tomoyo/tomoyo.c 94518+++ b/security/tomoyo/tomoyo.c
95542@@ -503,7 +503,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg, 94519@@ -503,7 +503,7 @@ static int tomoyo_socket_sendmsg(struct socket *sock, struct msghdr *msg,
@@ -95743,10 +94720,10 @@ index af49721..e85058e 100644
95743 if (err < 0) 94720 if (err < 0)
95744 return err; 94721 return err;
95745diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c 94722diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
95746index eb560fa..69a4995 100644 94723index f928181..33fb83d 100644
95747--- a/sound/core/pcm_native.c 94724--- a/sound/core/pcm_native.c
95748+++ b/sound/core/pcm_native.c 94725+++ b/sound/core/pcm_native.c
95749@@ -2806,11 +2806,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream, 94726@@ -2819,11 +2819,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
95750 switch (substream->stream) { 94727 switch (substream->stream) {
95751 case SNDRV_PCM_STREAM_PLAYBACK: 94728 case SNDRV_PCM_STREAM_PLAYBACK:
95752 result = snd_pcm_playback_ioctl1(NULL, substream, cmd, 94729 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
@@ -95801,7 +94778,7 @@ index 040c60e..989a19a 100644
95801 dev->driver_data = NULL; 94778 dev->driver_data = NULL;
95802 ops->num_init_devices--; 94779 ops->num_init_devices--;
95803diff --git a/sound/core/sound.c b/sound/core/sound.c 94780diff --git a/sound/core/sound.c b/sound/core/sound.c
95804index 70ccdab..50f2e10 100644 94781index f002bd9..c462985 100644
95805--- a/sound/core/sound.c 94782--- a/sound/core/sound.c
95806+++ b/sound/core/sound.c 94783+++ b/sound/core/sound.c
95807@@ -86,7 +86,7 @@ static void snd_request_other(int minor) 94784@@ -86,7 +86,7 @@ static void snd_request_other(int minor)
@@ -96070,63 +95047,6 @@ index 7d8803a..559f8d0 100644
96070 95047
96071 list_add(&s->list, &cs4297a_devs); 95048 list_add(&s->list, &cs4297a_devs);
96072 95049
96073diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
96074index dafe04a..660552c 100644
96075--- a/sound/pci/hda/patch_sigmatel.c
96076+++ b/sound/pci/hda/patch_sigmatel.c
96077@@ -418,9 +418,11 @@ static void stac_update_outputs(struct hda_codec *codec)
96078 val &= ~spec->eapd_mask;
96079 else
96080 val |= spec->eapd_mask;
96081- if (spec->gpio_data != val)
96082+ if (spec->gpio_data != val) {
96083+ spec->gpio_data = val;
96084 stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir,
96085 val);
96086+ }
96087 }
96088 }
96089
96090@@ -3228,7 +3230,7 @@ static const struct hda_fixup stac927x_fixups[] = {
96091 /* configure the analog microphone on some laptops */
96092 { 0x0c, 0x90a79130 },
96093 /* correct the front output jack as a hp out */
96094- { 0x0f, 0x0227011f },
96095+ { 0x0f, 0x0221101f },
96096 /* correct the front input jack as a mic */
96097 { 0x0e, 0x02a79130 },
96098 {}
96099@@ -3608,20 +3610,18 @@ static int stac_parse_auto_config(struct hda_codec *codec)
96100 static int stac_init(struct hda_codec *codec)
96101 {
96102 struct sigmatel_spec *spec = codec->spec;
96103- unsigned int gpio;
96104 int i;
96105
96106 /* override some hints */
96107 stac_store_hints(codec);
96108
96109 /* set up GPIO */
96110- gpio = spec->gpio_data;
96111 /* turn on EAPD statically when spec->eapd_switch isn't set.
96112 * otherwise, unsol event will turn it on/off dynamically
96113 */
96114 if (!spec->eapd_switch)
96115- gpio |= spec->eapd_mask;
96116- stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, gpio);
96117+ spec->gpio_data |= spec->eapd_mask;
96118+ stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, spec->gpio_data);
96119
96120 snd_hda_gen_init(codec);
96121
96122@@ -3930,6 +3930,7 @@ static void stac_setup_gpio(struct hda_codec *codec)
96123 {
96124 struct sigmatel_spec *spec = codec->spec;
96125
96126+ spec->gpio_mask |= spec->eapd_mask;
96127 if (spec->gpio_led) {
96128 if (!spec->vref_mute_led_nid) {
96129 spec->gpio_mask |= spec->gpio_led;
96130diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h 95050diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
96131index 4631a23..001ae57 100644 95051index 4631a23..001ae57 100644
96132--- a/sound/pci/ymfpci/ymfpci.h 95052--- a/sound/pci/ymfpci/ymfpci.h
@@ -96185,10 +95105,10 @@ index 22056c5..25d3244 100644
96185 chip->pci = pci; 95105 chip->pci = pci;
96186 chip->irq = -1; 95106 chip->irq = -1;
96187diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c 95107diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
96188index 7decbd9..d17d9d0 100644 95108index 0f0bed6..c161e28 100644
96189--- a/sound/soc/fsl/fsl_ssi.c 95109--- a/sound/soc/fsl/fsl_ssi.c
96190+++ b/sound/soc/fsl/fsl_ssi.c 95110+++ b/sound/soc/fsl/fsl_ssi.c
96191@@ -643,7 +643,7 @@ static int fsl_ssi_probe(struct platform_device *pdev) 95111@@ -657,7 +657,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
96192 { 95112 {
96193 struct fsl_ssi_private *ssi_private; 95113 struct fsl_ssi_private *ssi_private;
96194 int ret = 0; 95114 int ret = 0;
@@ -96198,7 +95118,7 @@ index 7decbd9..d17d9d0 100644
96198 const char *p, *sprop; 95118 const char *p, *sprop;
96199 const uint32_t *iprop; 95119 const uint32_t *iprop;
96200diff --git a/sound/sound_core.c b/sound/sound_core.c 95120diff --git a/sound/sound_core.c b/sound/sound_core.c
96201index bb23009..db346c2 100644 95121index 359753f..45759f4 100644
96202--- a/sound/sound_core.c 95122--- a/sound/sound_core.c
96203+++ b/sound/sound_core.c 95123+++ b/sound/sound_core.c
96204@@ -292,7 +292,7 @@ retry: 95124@@ -292,7 +292,7 @@ retry:
@@ -96210,19 +95130,6 @@ index bb23009..db346c2 100644
96210 return s->unit_minor; 95130 return s->unit_minor;
96211 95131
96212 fail: 95132 fail:
96213diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c
96214index 40dd50a..6d0a6d1 100644
96215--- a/sound/usb/6fire/pcm.c
96216+++ b/sound/usb/6fire/pcm.c
96217@@ -543,7 +543,7 @@ static snd_pcm_uframes_t usb6fire_pcm_pointer(
96218 snd_pcm_uframes_t ret;
96219
96220 if (rt->panic || !sub)
96221- return SNDRV_PCM_STATE_XRUN;
96222+ return SNDRV_PCM_POS_XRUN;
96223
96224 spin_lock_irqsave(&sub->lock, flags);
96225 ret = sub->dma_off;
96226diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore 95133diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
96227new file mode 100644 95134new file mode 100644
96228index 0000000..50f2f2f 95135index 0000000..50f2f2f
@@ -98264,10 +97171,10 @@ index 0000000..b5395ba
98264+} 97171+}
98265diff --git a/tools/gcc/size_overflow_hash.data b/tools/gcc/size_overflow_hash.data 97172diff --git a/tools/gcc/size_overflow_hash.data b/tools/gcc/size_overflow_hash.data
98266new file mode 100644 97173new file mode 100644
98267index 0000000..7982a0c 97174index 0000000..b04803b
98268--- /dev/null 97175--- /dev/null
98269+++ b/tools/gcc/size_overflow_hash.data 97176+++ b/tools/gcc/size_overflow_hash.data
98270@@ -0,0 +1,5893 @@ 97177@@ -0,0 +1,6350 @@
98271+intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL 97178+intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL
98272+batadv_orig_node_del_if_4 batadv_orig_node_del_if 2 4 NULL 97179+batadv_orig_node_del_if_4 batadv_orig_node_del_if 2 4 NULL
98273+storvsc_connect_to_vsp_22 storvsc_connect_to_vsp 2 22 NULL 97180+storvsc_connect_to_vsp_22 storvsc_connect_to_vsp 2 22 NULL
@@ -98293,6 +97200,7 @@ index 0000000..7982a0c
98293+br_port_info_size_268 br_port_info_size 0 268 NULL 97200+br_port_info_size_268 br_port_info_size 0 268 NULL
98294+generic_file_direct_write_291 generic_file_direct_write 0 291 NULL 97201+generic_file_direct_write_291 generic_file_direct_write 0 291 NULL
98295+read_file_war_stats_292 read_file_war_stats 3 292 NULL 97202+read_file_war_stats_292 read_file_war_stats 3 292 NULL
97203+SYSC_connect_304 SYSC_connect 3 304 NULL
98296+syslog_print_307 syslog_print 2 307 NULL 97204+syslog_print_307 syslog_print 2 307 NULL
98297+platform_device_add_data_310 platform_device_add_data 3 310 NULL 97205+platform_device_add_data_310 platform_device_add_data 3 310 NULL
98298+dn_setsockopt_314 dn_setsockopt 5 314 NULL 97206+dn_setsockopt_314 dn_setsockopt 5 314 NULL
@@ -98303,6 +97211,7 @@ index 0000000..7982a0c
98303+snd_ca0106_ptr_read_467 snd_ca0106_ptr_read 0 467 NULL 97211+snd_ca0106_ptr_read_467 snd_ca0106_ptr_read 0 467 NULL
98304+_alloc_get_attr_desc_470 _alloc_get_attr_desc 2 470 NULL 97212+_alloc_get_attr_desc_470 _alloc_get_attr_desc 2 470 NULL
98305+dccp_manip_pkt_476 dccp_manip_pkt 4 476 NULL 97213+dccp_manip_pkt_476 dccp_manip_pkt 4 476 NULL
97214+nvme_trans_modesel_data_488 nvme_trans_modesel_data 4 488 NULL
98306+pidlist_resize_496 pidlist_resize 2 496 NULL 97215+pidlist_resize_496 pidlist_resize 2 496 NULL
98307+read_vbt_r0_503 read_vbt_r0 1 503 NULL 97216+read_vbt_r0_503 read_vbt_r0 1 503 NULL
98308+rx_rx_defrag_end_read_505 rx_rx_defrag_end_read 3 505 NULL 97217+rx_rx_defrag_end_read_505 rx_rx_defrag_end_read 3 505 NULL
@@ -98321,6 +97230,7 @@ index 0000000..7982a0c
98321+compat_sys_shmat_620 compat_sys_shmat 3 620 NULL 97230+compat_sys_shmat_620 compat_sys_shmat 3 620 NULL
98322+isp1760_register_628 isp1760_register 1-2 628 NULL 97231+isp1760_register_628 isp1760_register 1-2 628 NULL
98323+clone_split_bio_633 clone_split_bio 6 633 NULL 97232+clone_split_bio_633 clone_split_bio 6 633 NULL
97233+ceph_osdc_new_request_635 ceph_osdc_new_request 6 635 NULL
98324+remap_to_cache_640 remap_to_cache 3 640 NULL 97234+remap_to_cache_640 remap_to_cache 3 640 NULL
98325+drbd_bm_find_next_643 drbd_bm_find_next 2 643 NULL 97235+drbd_bm_find_next_643 drbd_bm_find_next 2 643 NULL
98326+unlink_queued_645 unlink_queued 3-4 645 NULL 97236+unlink_queued_645 unlink_queued 3-4 645 NULL
@@ -98348,6 +97258,7 @@ index 0000000..7982a0c
98348+pte_prefetch_gfn_to_pfn_997 pte_prefetch_gfn_to_pfn 2 997 NULL nohasharray 97258+pte_prefetch_gfn_to_pfn_997 pte_prefetch_gfn_to_pfn 2 997 NULL nohasharray
98349+hdlcdev_rx_997 hdlcdev_rx 3 997 &pte_prefetch_gfn_to_pfn_997 97259+hdlcdev_rx_997 hdlcdev_rx 3 997 &pte_prefetch_gfn_to_pfn_997
98350+dm_cache_set_dirty_1016 dm_cache_set_dirty 2 1016 NULL 97260+dm_cache_set_dirty_1016 dm_cache_set_dirty 2 1016 NULL
97261+_do_truncate_1019 _do_truncate 2 1019 NULL
98351+smk_write_cipso2_1021 smk_write_cipso2 3 1021 NULL 97262+smk_write_cipso2_1021 smk_write_cipso2 3 1021 NULL
98352+gigaset_initdriver_1060 gigaset_initdriver 2 1060 NULL 97263+gigaset_initdriver_1060 gigaset_initdriver 2 1060 NULL
98353+Read_hfc16_1070 Read_hfc16 0 1070 NULL 97264+Read_hfc16_1070 Read_hfc16 0 1070 NULL
@@ -98360,6 +97271,7 @@ index 0000000..7982a0c
98360+sys_mremap_1107 sys_mremap 5-1-2 1107 NULL 97271+sys_mremap_1107 sys_mremap 5-1-2 1107 NULL
98361+cfg80211_report_obss_beacon_1133 cfg80211_report_obss_beacon 3 1133 NULL 97272+cfg80211_report_obss_beacon_1133 cfg80211_report_obss_beacon 3 1133 NULL
98362+vmalloc_32_1135 vmalloc_32 1 1135 NULL 97273+vmalloc_32_1135 vmalloc_32 1 1135 NULL
97274+dec_zcache_eph_zpages_1138 dec_zcache_eph_zpages 1 1138 NULL
98363+i2400m_rx_ctl_1157 i2400m_rx_ctl 4 1157 NULL 97275+i2400m_rx_ctl_1157 i2400m_rx_ctl 4 1157 NULL
98364+ipc_alloc_1192 ipc_alloc 1 1192 NULL 97276+ipc_alloc_1192 ipc_alloc 1 1192 NULL
98365+ib_create_send_mad_1196 ib_create_send_mad 5 1196 NULL 97277+ib_create_send_mad_1196 ib_create_send_mad 5 1196 NULL
@@ -98377,6 +97289,7 @@ index 0000000..7982a0c
98377+wm_adsp_buf_alloc_1317 wm_adsp_buf_alloc 2 1317 NULL 97289+wm_adsp_buf_alloc_1317 wm_adsp_buf_alloc 2 1317 NULL
98378+compat_put_u64_1319 compat_put_u64 1 1319 NULL 97290+compat_put_u64_1319 compat_put_u64 1 1319 NULL
98379+ffs_1322 ffs 0 1322 NULL 97291+ffs_1322 ffs 0 1322 NULL
97292+qlcnic_pci_sriov_configure_1327 qlcnic_pci_sriov_configure 2 1327 NULL
98380+carl9170_rx_stream_1334 carl9170_rx_stream 3 1334 NULL 97293+carl9170_rx_stream_1334 carl9170_rx_stream 3 1334 NULL
98381+btrfs_submit_compressed_write_1347 btrfs_submit_compressed_write 5 1347 NULL 97294+btrfs_submit_compressed_write_1347 btrfs_submit_compressed_write 5 1347 NULL
98382+gen_pool_best_fit_1348 gen_pool_best_fit 2-3-4 1348 NULL 97295+gen_pool_best_fit_1348 gen_pool_best_fit 2-3-4 1348 NULL
@@ -98394,11 +97307,13 @@ index 0000000..7982a0c
98394+stack_max_size_read_1445 stack_max_size_read 3 1445 NULL 97307+stack_max_size_read_1445 stack_max_size_read 3 1445 NULL
98395+tx_queue_len_read_1463 tx_queue_len_read 3 1463 NULL 97308+tx_queue_len_read_1463 tx_queue_len_read 3 1463 NULL
98396+xprt_alloc_1475 xprt_alloc 2 1475 NULL 97309+xprt_alloc_1475 xprt_alloc 2 1475 NULL
97310+SYSC_syslog_1477 SYSC_syslog 3 1477 NULL
98397+sta_num_ps_buf_frames_read_1488 sta_num_ps_buf_frames_read 3 1488 NULL 97311+sta_num_ps_buf_frames_read_1488 sta_num_ps_buf_frames_read 3 1488 NULL
98398+posix_acl_permission_1495 posix_acl_permission 0 1495 NULL 97312+posix_acl_permission_1495 posix_acl_permission 0 1495 NULL
98399+tomoyo_round2_1518 tomoyo_round2 0 1518 NULL 97313+tomoyo_round2_1518 tomoyo_round2 0 1518 NULL
98400+__vfio_dma_map_1523 __vfio_dma_map 3 1523 NULL 97314+__vfio_dma_map_1523 __vfio_dma_map 3 1523 NULL
98401+alloc_perm_bits_1532 alloc_perm_bits 2 1532 NULL 97315+alloc_perm_bits_1532 alloc_perm_bits 2 1532 NULL
97316+ath6kl_init_get_fwcaps_1557 ath6kl_init_get_fwcaps 3 1557 NULL
98402+ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_1589 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 NULL 97317+ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_1589 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 NULL
98403+fc_frame_alloc_1596 fc_frame_alloc 2 1596 NULL 97318+fc_frame_alloc_1596 fc_frame_alloc 2 1596 NULL
98404+packet_buffer_init_1607 packet_buffer_init 2 1607 NULL 97319+packet_buffer_init_1607 packet_buffer_init 2 1607 NULL
@@ -98406,6 +97321,7 @@ index 0000000..7982a0c
98406+v9fs_fid_xattr_get_1618 v9fs_fid_xattr_get 0 1618 NULL 97321+v9fs_fid_xattr_get_1618 v9fs_fid_xattr_get 0 1618 NULL
98407+btmrvl_hsmode_read_1647 btmrvl_hsmode_read 3 1647 NULL 97322+btmrvl_hsmode_read_1647 btmrvl_hsmode_read 3 1647 NULL
98408+ikconfig_read_current_1658 ikconfig_read_current 3 1658 NULL 97323+ikconfig_read_current_1658 ikconfig_read_current 3 1658 NULL
97324+mei_cl_recv_1665 mei_cl_recv 3 1665 NULL
98409+netdev_feature_string_1667 netdev_feature_string 0 1667 NULL 97325+netdev_feature_string_1667 netdev_feature_string 0 1667 NULL
98410+compat_x25_ioctl_1674 compat_x25_ioctl 3 1674 NULL 97326+compat_x25_ioctl_1674 compat_x25_ioctl 3 1674 NULL
98411+rmap_add_1677 rmap_add 3 1677 NULL 97327+rmap_add_1677 rmap_add 3 1677 NULL
@@ -98419,11 +97335,14 @@ index 0000000..7982a0c
98419+ebt_size_mwt_1768 ebt_size_mwt 0 1768 NULL 97335+ebt_size_mwt_1768 ebt_size_mwt 0 1768 NULL
98420+cosa_write_1774 cosa_write 3 1774 NULL 97336+cosa_write_1774 cosa_write 3 1774 NULL
98421+update_macheader_1775 update_macheader 7 1775 NULL 97337+update_macheader_1775 update_macheader 7 1775 NULL
97338+dec_zcache_pers_zbytes_1779 dec_zcache_pers_zbytes 1 1779 NULL
98422+fcoe_ctlr_device_add_1793 fcoe_ctlr_device_add 3 1793 NULL 97339+fcoe_ctlr_device_add_1793 fcoe_ctlr_device_add 3 1793 NULL
98423+__nodelist_scnprintf_1815 __nodelist_scnprintf 0-2-4 1815 NULL 97340+__nodelist_scnprintf_1815 __nodelist_scnprintf 0-2-4 1815 NULL
98424+alloc_pages_exact_1892 alloc_pages_exact 1 1892 NULL 97341+alloc_pages_exact_1892 alloc_pages_exact 1 1892 NULL
98425+rx_defrag_called_read_1897 rx_defrag_called_read 3 1897 NULL 97342+rx_defrag_called_read_1897 rx_defrag_called_read 3 1897 NULL
98426+nfs_parse_server_name_1899 nfs_parse_server_name 2 1899 NULL 97343+nfs_parse_server_name_1899 nfs_parse_server_name 2 1899 NULL
97344+SyS_add_key_1900 SyS_add_key 4 1900 NULL
97345+isku_sysfs_write_keys_media_1910 isku_sysfs_write_keys_media 6 1910 NULL
98427+tx_tx_retry_data_read_1926 tx_tx_retry_data_read 3 1926 NULL 97346+tx_tx_retry_data_read_1926 tx_tx_retry_data_read 3 1926 NULL
98428+memblock_alloc_base_1938 memblock_alloc_base 1-2 1938 NULL 97347+memblock_alloc_base_1938 memblock_alloc_base 1-2 1938 NULL
98429+cyttsp_probe_1940 cyttsp_probe 4 1940 NULL 97348+cyttsp_probe_1940 cyttsp_probe 4 1940 NULL
@@ -98457,8 +97376,10 @@ index 0000000..7982a0c
98457+mlx4_init_icm_table_2151 mlx4_init_icm_table 5-4 2151 NULL 97376+mlx4_init_icm_table_2151 mlx4_init_icm_table 5-4 2151 NULL
98458+iov_iter_count_2152 iov_iter_count 0 2152 NULL 97377+iov_iter_count_2152 iov_iter_count 0 2152 NULL
98459+_ore_get_io_state_2166 _ore_get_io_state 3-4-5 2166 NULL 97378+_ore_get_io_state_2166 _ore_get_io_state 3-4-5 2166 NULL
97379+bio_integrity_alloc_2194 bio_integrity_alloc 3 2194 NULL
98460+ssb_bus_ssbbus_register_2217 ssb_bus_ssbbus_register 2 2217 NULL 97380+ssb_bus_ssbbus_register_2217 ssb_bus_ssbbus_register 2 2217 NULL
98461+u32_array_read_2219 u32_array_read 3 2219 NULL 97381+mei_dbgfs_read_meclients_2219 mei_dbgfs_read_meclients 3 2219 NULL nohasharray
97382+u32_array_read_2219 u32_array_read 3 2219 &mei_dbgfs_read_meclients_2219
98462+vhci_write_2224 vhci_write 3 2224 NULL 97383+vhci_write_2224 vhci_write 3 2224 NULL
98463+efx_tsoh_page_count_2225 efx_tsoh_page_count 0 2225 NULL 97384+efx_tsoh_page_count_2225 efx_tsoh_page_count 0 2225 NULL
98464+lowpan_get_mac_header_length_2231 lowpan_get_mac_header_length 0 2231 NULL 97385+lowpan_get_mac_header_length_2231 lowpan_get_mac_header_length 0 2231 NULL
@@ -98475,10 +97396,12 @@ index 0000000..7982a0c
98475+__erst_read_to_erange_2341 __erst_read_to_erange 0 2341 NULL 97396+__erst_read_to_erange_2341 __erst_read_to_erange 0 2341 NULL
98476+zr364xx_read_2354 zr364xx_read 3 2354 NULL 97397+zr364xx_read_2354 zr364xx_read 3 2354 NULL
98477+viafb_iga2_odev_proc_write_2363 viafb_iga2_odev_proc_write 3 2363 NULL 97398+viafb_iga2_odev_proc_write_2363 viafb_iga2_odev_proc_write 3 2363 NULL
97399+SyS_mremap_2367 SyS_mremap 1-2-5 2367 NULL
98478+xfs_buf_map_from_irec_2368 xfs_buf_map_from_irec 5 2368 NULL 97400+xfs_buf_map_from_irec_2368 xfs_buf_map_from_irec 5 2368 NULL
98479+il_dbgfs_sensitivity_read_2370 il_dbgfs_sensitivity_read 3 2370 NULL 97401+il_dbgfs_sensitivity_read_2370 il_dbgfs_sensitivity_read 3 2370 NULL
98480+rtl_port_map_2385 rtl_port_map 1-2 2385 NULL 97402+rtl_port_map_2385 rtl_port_map 1-2 2385 NULL
98481+rxpipe_rx_prep_beacon_drop_read_2403 rxpipe_rx_prep_beacon_drop_read 3 2403 NULL 97403+rxpipe_rx_prep_beacon_drop_read_2403 rxpipe_rx_prep_beacon_drop_read 3 2403 NULL
97404+SYSC_mlock_2415 SYSC_mlock 1 2415 NULL
98482+isdn_v110_open_2418 isdn_v110_open 3 2418 NULL 97405+isdn_v110_open_2418 isdn_v110_open 3 2418 NULL
98483+raid1_size_2419 raid1_size 0-2 2419 NULL 97406+raid1_size_2419 raid1_size 0-2 2419 NULL
98484+roccat_common2_send_2422 roccat_common2_send 4 2422 NULL 97407+roccat_common2_send_2422 roccat_common2_send 4 2422 NULL
@@ -98498,6 +97421,7 @@ index 0000000..7982a0c
98498+gspca_dev_probe_2570 gspca_dev_probe 4 2570 NULL 97421+gspca_dev_probe_2570 gspca_dev_probe 4 2570 NULL
98499+i915_next_seqno_write_2572 i915_next_seqno_write 3 2572 NULL 97422+i915_next_seqno_write_2572 i915_next_seqno_write 3 2572 NULL
98500+pcm_sanity_check_2574 pcm_sanity_check 0 2574 NULL 97423+pcm_sanity_check_2574 pcm_sanity_check 0 2574 NULL
97424+slot_bytes_2609 slot_bytes 0 2609 NULL
98501+smk_write_logging_2618 smk_write_logging 3 2618 NULL 97425+smk_write_logging_2618 smk_write_logging 3 2618 NULL
98502+kvm_gfn_to_hva_cache_init_2636 kvm_gfn_to_hva_cache_init 3 2636 NULL 97426+kvm_gfn_to_hva_cache_init_2636 kvm_gfn_to_hva_cache_init 3 2636 NULL
98503+lro_gen_skb_2644 lro_gen_skb 6 2644 NULL 97427+lro_gen_skb_2644 lro_gen_skb 6 2644 NULL
@@ -98505,7 +97429,8 @@ index 0000000..7982a0c
98505+memcpy_fromiovecend_2707 memcpy_fromiovecend 3-4 2707 NULL 97429+memcpy_fromiovecend_2707 memcpy_fromiovecend 3-4 2707 NULL
98506+__xip_file_write_2733 __xip_file_write 4-3 2733 NULL 97430+__xip_file_write_2733 __xip_file_write 4-3 2733 NULL
98507+hid_report_raw_event_2762 hid_report_raw_event 4 2762 NULL 97431+hid_report_raw_event_2762 hid_report_raw_event 4 2762 NULL
98508+mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL 97432+mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL nohasharray
97433+bictcp_update_2771 bictcp_update 2 2771 &mon_bin_ioctl_2771
98509+__next_cpu_2782 __next_cpu 1 2782 NULL 97434+__next_cpu_2782 __next_cpu 1 2782 NULL
98510+set_msr_hyperv_pw_2785 set_msr_hyperv_pw 3 2785 NULL 97435+set_msr_hyperv_pw_2785 set_msr_hyperv_pw 3 2785 NULL
98511+sel_read_enforce_2828 sel_read_enforce 3 2828 NULL 97436+sel_read_enforce_2828 sel_read_enforce 3 2828 NULL
@@ -98521,6 +97446,7 @@ index 0000000..7982a0c
98521+xfs_trans_get_buf_map_2927 xfs_trans_get_buf_map 4 2927 NULL 97446+xfs_trans_get_buf_map_2927 xfs_trans_get_buf_map 4 2927 NULL
98522+nes_read_indexed_2946 nes_read_indexed 0 2946 NULL 97447+nes_read_indexed_2946 nes_read_indexed 0 2946 NULL
98523+tm6000_i2c_recv_regs16_2949 tm6000_i2c_recv_regs16 5 2949 NULL 97448+tm6000_i2c_recv_regs16_2949 tm6000_i2c_recv_regs16 5 2949 NULL
97449+set_fast_connectable_2952 set_fast_connectable 4 2952 NULL
98524+ppp_cp_event_2965 ppp_cp_event 6 2965 NULL 97450+ppp_cp_event_2965 ppp_cp_event 6 2965 NULL
98525+do_strnlen_user_2976 do_strnlen_user 0-2 2976 NULL 97451+do_strnlen_user_2976 do_strnlen_user 0-2 2976 NULL
98526+p9_nr_pages_2992 p9_nr_pages 0-2 2992 NULL 97452+p9_nr_pages_2992 p9_nr_pages 0-2 2992 NULL
@@ -98549,6 +97475,7 @@ index 0000000..7982a0c
98549+mempool_create_node_3191 mempool_create_node 1 3191 NULL 97475+mempool_create_node_3191 mempool_create_node 1 3191 NULL
98550+alloc_context_3194 alloc_context 1 3194 NULL 97476+alloc_context_3194 alloc_context 1 3194 NULL
98551+shmem_pread_slow_3198 shmem_pread_slow 3 3198 NULL 97477+shmem_pread_slow_3198 shmem_pread_slow 3 3198 NULL
97478+SyS_sendto_3219 SyS_sendto 6 3219 NULL
98552+kimage_crash_alloc_3233 kimage_crash_alloc 3 3233 NULL 97479+kimage_crash_alloc_3233 kimage_crash_alloc 3 3233 NULL
98553+do_read_log_to_user_3236 do_read_log_to_user 4 3236 NULL 97480+do_read_log_to_user_3236 do_read_log_to_user 4 3236 NULL
98554+ext3_xattr_find_entry_3237 ext3_xattr_find_entry 0 3237 NULL 97481+ext3_xattr_find_entry_3237 ext3_xattr_find_entry 0 3237 NULL
@@ -98573,6 +97500,7 @@ index 0000000..7982a0c
98573+mei_io_cb_alloc_resp_buf_3414 mei_io_cb_alloc_resp_buf 2 3414 NULL 97500+mei_io_cb_alloc_resp_buf_3414 mei_io_cb_alloc_resp_buf 2 3414 NULL
98574+pci_add_cap_save_buffer_3426 pci_add_cap_save_buffer 3 3426 NULL 97501+pci_add_cap_save_buffer_3426 pci_add_cap_save_buffer 3 3426 NULL
98575+crystalhd_create_dio_pool_3427 crystalhd_create_dio_pool 2 3427 NULL 97502+crystalhd_create_dio_pool_3427 crystalhd_create_dio_pool 2 3427 NULL
97503+SyS_msgsnd_3436 SyS_msgsnd 3 3436 NULL
98576+pipe_iov_copy_to_user_3447 pipe_iov_copy_to_user 3 3447 NULL 97504+pipe_iov_copy_to_user_3447 pipe_iov_copy_to_user 3 3447 NULL
98577+percpu_modalloc_3448 percpu_modalloc 2-3 3448 NULL 97505+percpu_modalloc_3448 percpu_modalloc 2-3 3448 NULL
98578+map_single_3449 map_single 0-2 3449 NULL 97506+map_single_3449 map_single 0-2 3449 NULL
@@ -98584,6 +97512,7 @@ index 0000000..7982a0c
98584+kvm_handle_bad_page_3503 kvm_handle_bad_page 2 3503 NULL 97512+kvm_handle_bad_page_3503 kvm_handle_bad_page 2 3503 NULL
98585+mem_tx_free_mem_blks_read_3521 mem_tx_free_mem_blks_read 3 3521 NULL nohasharray 97513+mem_tx_free_mem_blks_read_3521 mem_tx_free_mem_blks_read 3 3521 NULL nohasharray
98586+ieee80211_wx_set_gen_ie_rsl_3521 ieee80211_wx_set_gen_ie_rsl 3 3521 &mem_tx_free_mem_blks_read_3521 97514+ieee80211_wx_set_gen_ie_rsl_3521 ieee80211_wx_set_gen_ie_rsl 3 3521 &mem_tx_free_mem_blks_read_3521
97515+SyS_readv_3539 SyS_readv 3 3539 NULL
98587+btrfs_dir_name_len_3549 btrfs_dir_name_len 0 3549 NULL 97516+btrfs_dir_name_len_3549 btrfs_dir_name_len 0 3549 NULL
98588+b43legacy_read16_3561 b43legacy_read16 0 3561 NULL 97517+b43legacy_read16_3561 b43legacy_read16 0 3561 NULL
98589+alloc_smp_resp_3566 alloc_smp_resp 1 3566 NULL 97518+alloc_smp_resp_3566 alloc_smp_resp 1 3566 NULL
@@ -98594,12 +97523,13 @@ index 0000000..7982a0c
98594+edac_mc_alloc_3611 edac_mc_alloc 4 3611 NULL 97523+edac_mc_alloc_3611 edac_mc_alloc 4 3611 NULL
98595+tx_tx_starts_read_3617 tx_tx_starts_read 3 3617 NULL 97524+tx_tx_starts_read_3617 tx_tx_starts_read 3 3617 NULL
98596+aligned_kmalloc_3628 aligned_kmalloc 1 3628 NULL 97525+aligned_kmalloc_3628 aligned_kmalloc 1 3628 NULL
98597+cm_copy_private_data_3649 cm_copy_private_data 2 3649 NULL 97526+x86_swiotlb_alloc_coherent_3649 x86_swiotlb_alloc_coherent 2 3649 NULL nohasharray
97527+cm_copy_private_data_3649 cm_copy_private_data 2 3649 &x86_swiotlb_alloc_coherent_3649
98598+ath6kl_disconnect_timeout_read_3650 ath6kl_disconnect_timeout_read 3 3650 NULL 97528+ath6kl_disconnect_timeout_read_3650 ath6kl_disconnect_timeout_read 3 3650 NULL
98599+i915_compat_ioctl_3656 i915_compat_ioctl 2 3656 NULL 97529+i915_compat_ioctl_3656 i915_compat_ioctl 2 3656 NULL
98600+create_irq_3703 create_irq 0 3703 NULL nohasharray 97530+snd_m3_assp_read_3703 snd_m3_assp_read 0 3703 NULL nohasharray
98601+btmrvl_psmode_write_3703 btmrvl_psmode_write 3 3703 &create_irq_3703 nohasharray 97531+create_irq_3703 create_irq 0 3703 &snd_m3_assp_read_3703 nohasharray
98602+snd_m3_assp_read_3703 snd_m3_assp_read 0 3703 &btmrvl_psmode_write_3703 97532+btmrvl_psmode_write_3703 btmrvl_psmode_write 3 3703 &create_irq_3703
98603+videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL 97533+videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL
98604+ci_ll_write_3740 ci_ll_write 4 3740 NULL nohasharray 97534+ci_ll_write_3740 ci_ll_write 4 3740 NULL nohasharray
98605+ath6kl_mgmt_tx_3740 ath6kl_mgmt_tx 7 3740 &ci_ll_write_3740 97535+ath6kl_mgmt_tx_3740 ath6kl_mgmt_tx 7 3740 &ci_ll_write_3740
@@ -98618,6 +97548,7 @@ index 0000000..7982a0c
98618+pipeline_pre_proc_swi_read_3898 pipeline_pre_proc_swi_read 3 3898 NULL 97548+pipeline_pre_proc_swi_read_3898 pipeline_pre_proc_swi_read 3 3898 NULL
98619+comedi_buf_read_n_available_3899 comedi_buf_read_n_available 0 3899 NULL 97549+comedi_buf_read_n_available_3899 comedi_buf_read_n_available 0 3899 NULL
98620+vcs_write_3910 vcs_write 3 3910 NULL 97550+vcs_write_3910 vcs_write 3 3910 NULL
97551+brcmf_debugfs_fws_stats_read_3947 brcmf_debugfs_fws_stats_read 3 3947 NULL
98621+atalk_compat_ioctl_3991 atalk_compat_ioctl 3 3991 NULL 97552+atalk_compat_ioctl_3991 atalk_compat_ioctl 3 3991 NULL
98622+do_add_counters_3992 do_add_counters 3 3992 NULL 97553+do_add_counters_3992 do_add_counters 3 3992 NULL
98623+userspace_status_4004 userspace_status 4 4004 NULL 97554+userspace_status_4004 userspace_status 4 4004 NULL
@@ -98631,6 +97562,7 @@ index 0000000..7982a0c
98631+read_file_queues_4078 read_file_queues 3 4078 NULL 97562+read_file_queues_4078 read_file_queues 3 4078 NULL
98632+fbcon_do_set_font_4079 fbcon_do_set_font 2-3 4079 NULL 97563+fbcon_do_set_font_4079 fbcon_do_set_font 2-3 4079 NULL
98633+da9052_free_irq_4090 da9052_free_irq 2 4090 NULL 97564+da9052_free_irq_4090 da9052_free_irq 2 4090 NULL
97565+C_SYSC_rt_sigpending_4114 C_SYSC_rt_sigpending 2 4114 NULL
98634+ntb_netdev_change_mtu_4147 ntb_netdev_change_mtu 2 4147 NULL 97566+ntb_netdev_change_mtu_4147 ntb_netdev_change_mtu 2 4147 NULL
98635+tm6000_read_4151 tm6000_read 3 4151 NULL 97567+tm6000_read_4151 tm6000_read 3 4151 NULL
98636+mpt_raid_phys_disk_get_num_paths_4155 mpt_raid_phys_disk_get_num_paths 0 4155 NULL 97568+mpt_raid_phys_disk_get_num_paths_4155 mpt_raid_phys_disk_get_num_paths 0 4155 NULL
@@ -98678,6 +97610,7 @@ index 0000000..7982a0c
98678+kone_receive_4690 kone_receive 4 4690 NULL 97610+kone_receive_4690 kone_receive 4 4690 NULL
98679+round_pipe_size_4701 round_pipe_size 0 4701 NULL 97611+round_pipe_size_4701 round_pipe_size 0 4701 NULL
98680+cxgbi_alloc_big_mem_4707 cxgbi_alloc_big_mem 1 4707 NULL 97612+cxgbi_alloc_big_mem_4707 cxgbi_alloc_big_mem 1 4707 NULL
97613+konepure_sysfs_read_4709 konepure_sysfs_read 6 4709 NULL
98681+btmrvl_gpiogap_read_4718 btmrvl_gpiogap_read 3 4718 NULL 97614+btmrvl_gpiogap_read_4718 btmrvl_gpiogap_read 3 4718 NULL
98682+ati_create_gatt_pages_4722 ati_create_gatt_pages 1 4722 NULL nohasharray 97615+ati_create_gatt_pages_4722 ati_create_gatt_pages 1 4722 NULL nohasharray
98683+show_header_4722 show_header 3 4722 &ati_create_gatt_pages_4722 97616+show_header_4722 show_header 3 4722 &ati_create_gatt_pages_4722
@@ -98701,6 +97634,7 @@ index 0000000..7982a0c
98701+skb_network_header_len_4971 skb_network_header_len 0 4971 NULL 97634+skb_network_header_len_4971 skb_network_header_len 0 4971 NULL
98702+ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval_4976 ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval 3 4976 NULL 97635+ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval_4976 ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval 3 4976 NULL
98703+vmw_surface_define_size_4993 vmw_surface_define_size 0 4993 NULL 97636+vmw_surface_define_size_4993 vmw_surface_define_size 0 4993 NULL
97637+compat_SyS_ipc_5000 compat_SyS_ipc 3-4-5-6 5000 NULL
98704+qla82xx_pci_mem_write_direct_5008 qla82xx_pci_mem_write_direct 2 5008 NULL 97638+qla82xx_pci_mem_write_direct_5008 qla82xx_pci_mem_write_direct 2 5008 NULL
98705+do_mincore_5018 do_mincore 0-1 5018 NULL 97639+do_mincore_5018 do_mincore 0-1 5018 NULL
98706+mtd_device_parse_register_5024 mtd_device_parse_register 5 5024 NULL 97640+mtd_device_parse_register_5024 mtd_device_parse_register 5 5024 NULL
@@ -98722,8 +97656,10 @@ index 0000000..7982a0c
98722+skb_network_header_5203 skb_network_header 0 5203 NULL 97656+skb_network_header_5203 skb_network_header 0 5203 NULL
98723+pipe_set_size_5204 pipe_set_size 2 5204 NULL 97657+pipe_set_size_5204 pipe_set_size 2 5204 NULL
98724+ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL 97658+ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL
97659+dwc2_hcd_urb_alloc_5217 dwc2_hcd_urb_alloc 2 5217 NULL
98725+ath6kl_debug_roam_tbl_event_5224 ath6kl_debug_roam_tbl_event 3 5224 NULL 97660+ath6kl_debug_roam_tbl_event_5224 ath6kl_debug_roam_tbl_event 3 5224 NULL
98726+ssb_ioremap_5228 ssb_ioremap 2 5228 NULL 97661+ssb_ioremap_5228 ssb_ioremap 2 5228 NULL nohasharray
97662+konepure_sysfs_write_5228 konepure_sysfs_write 6 5228 &ssb_ioremap_5228
98727+isdn_ppp_skb_push_5236 isdn_ppp_skb_push 2 5236 NULL 97663+isdn_ppp_skb_push_5236 isdn_ppp_skb_push 2 5236 NULL
98728+do_atmif_sioc_5247 do_atmif_sioc 3 5247 NULL 97664+do_atmif_sioc_5247 do_atmif_sioc 3 5247 NULL
98729+gfn_to_hva_memslot_5265 gfn_to_hva_memslot 2 5265 NULL 97665+gfn_to_hva_memslot_5265 gfn_to_hva_memslot 2 5265 NULL
@@ -98748,6 +97684,7 @@ index 0000000..7982a0c
98748+__max_nr_grant_frames_5505 __max_nr_grant_frames 0 5505 NULL 97684+__max_nr_grant_frames_5505 __max_nr_grant_frames 0 5505 NULL
98749+spidev_message_5518 spidev_message 3 5518 NULL 97685+spidev_message_5518 spidev_message 3 5518 NULL
98750+ieee80211_if_fmt_auto_open_plinks_5534 ieee80211_if_fmt_auto_open_plinks 3 5534 NULL 97686+ieee80211_if_fmt_auto_open_plinks_5534 ieee80211_if_fmt_auto_open_plinks 3 5534 NULL
97687+get_entry_msg_len_5552 get_entry_msg_len 0 5552 NULL
98751+brcmu_pkt_buf_get_skb_5556 brcmu_pkt_buf_get_skb 1 5556 NULL 97688+brcmu_pkt_buf_get_skb_5556 brcmu_pkt_buf_get_skb 1 5556 NULL
98752+le_readq_5557 le_readq 0 5557 NULL 97689+le_readq_5557 le_readq 0 5557 NULL
98753+inw_5558 inw 0 5558 NULL 97690+inw_5558 inw 0 5558 NULL
@@ -98757,17 +97694,20 @@ index 0000000..7982a0c
98757+usb_dump_device_descriptor_5599 usb_dump_device_descriptor 0 5599 NULL 97694+usb_dump_device_descriptor_5599 usb_dump_device_descriptor 0 5599 NULL
98758+ldm_frag_add_5611 ldm_frag_add 2 5611 NULL 97695+ldm_frag_add_5611 ldm_frag_add 2 5611 NULL
98759+compat_copy_entries_5617 compat_copy_entries 0 5617 NULL 97696+compat_copy_entries_5617 compat_copy_entries 0 5617 NULL
97697+SYSC_fsetxattr_5639 SYSC_fsetxattr 4 5639 NULL
98760+ext4_xattr_get_5661 ext4_xattr_get 0 5661 NULL 97698+ext4_xattr_get_5661 ext4_xattr_get 0 5661 NULL
98761+posix_clock_register_5662 posix_clock_register 2 5662 NULL 97699+posix_clock_register_5662 posix_clock_register 2 5662 NULL
98762+mthca_map_reg_5664 mthca_map_reg 2-3 5664 NULL 97700+mthca_map_reg_5664 mthca_map_reg 2-3 5664 NULL
98763+__videobuf_alloc_vb_5665 __videobuf_alloc_vb 1 5665 NULL 97701+__videobuf_alloc_vb_5665 __videobuf_alloc_vb 1 5665 NULL
98764+wb_clear_dirty_5684 wb_clear_dirty 2 5684 NULL 97702+wb_clear_dirty_5684 wb_clear_dirty 2 5684 NULL
98765+get_arg_5694 get_arg 3 5694 NULL 97703+get_arg_5694 get_arg 3 5694 NULL
97704+subbuf_read_actor_5708 subbuf_read_actor 3 5708 NULL
98766+vmw_kms_readback_5727 vmw_kms_readback 6 5727 NULL 97705+vmw_kms_readback_5727 vmw_kms_readback 6 5727 NULL
98767+reexecute_instruction_5733 reexecute_instruction 2 5733 NULL 97706+reexecute_instruction_5733 reexecute_instruction 2 5733 NULL
98768+rts51x_transfer_data_partial_5735 rts51x_transfer_data_partial 6 5735 NULL 97707+rts51x_transfer_data_partial_5735 rts51x_transfer_data_partial 6 5735 NULL
98769+ubi_cdev_compat_ioctl_5746 ubi_cdev_compat_ioctl 3 5746 NULL 97708+ubi_cdev_compat_ioctl_5746 ubi_cdev_compat_ioctl 3 5746 NULL
98770+sctp_setsockopt_autoclose_5775 sctp_setsockopt_autoclose 3 5775 NULL 97709+sctp_setsockopt_autoclose_5775 sctp_setsockopt_autoclose 3 5775 NULL nohasharray
97710+qlcnic_83xx_sysfs_flash_read_handler_5775 qlcnic_83xx_sysfs_flash_read_handler 6 5775 &sctp_setsockopt_autoclose_5775
98771+compat_sys_writev_5784 compat_sys_writev 3 5784 NULL 97711+compat_sys_writev_5784 compat_sys_writev 3 5784 NULL
98772+__vxge_hw_blockpool_malloc_5786 __vxge_hw_blockpool_malloc 2 5786 NULL 97712+__vxge_hw_blockpool_malloc_5786 __vxge_hw_blockpool_malloc 2 5786 NULL
98773+skb_copy_datagram_iovec_5806 skb_copy_datagram_iovec 2-4 5806 NULL 97713+skb_copy_datagram_iovec_5806 skb_copy_datagram_iovec 2-4 5806 NULL
@@ -98782,6 +97722,7 @@ index 0000000..7982a0c
98782+uinput_compat_ioctl_5861 uinput_compat_ioctl 3 5861 &compat_sys_move_pages_5861 97722+uinput_compat_ioctl_5861 uinput_compat_ioctl 3 5861 &compat_sys_move_pages_5861
98783+paging64_walk_addr_5887 paging64_walk_addr 3 5887 NULL 97723+paging64_walk_addr_5887 paging64_walk_addr 3 5887 NULL
98784+port_show_regs_5904 port_show_regs 3 5904 NULL 97724+port_show_regs_5904 port_show_regs 3 5904 NULL
97725+rbd_segment_length_5907 rbd_segment_length 0-3-2 5907 NULL
98785+uhci_debug_read_5911 uhci_debug_read 3 5911 NULL 97726+uhci_debug_read_5911 uhci_debug_read 3 5911 NULL
98786+qla82xx_pci_mem_read_2M_5912 qla82xx_pci_mem_read_2M 2 5912 NULL 97727+qla82xx_pci_mem_read_2M_5912 qla82xx_pci_mem_read_2M 2 5912 NULL
98787+ttm_bo_kmap_ttm_5922 ttm_bo_kmap_ttm 3 5922 NULL 97728+ttm_bo_kmap_ttm_5922 ttm_bo_kmap_ttm 3 5922 NULL
@@ -98792,14 +97733,17 @@ index 0000000..7982a0c
98792+__apu_get_register_5967 __apu_get_register 0 5967 NULL 97733+__apu_get_register_5967 __apu_get_register 0 5967 NULL
98793+ieee80211_if_fmt_rc_rateidx_mask_5ghz_5971 ieee80211_if_fmt_rc_rateidx_mask_5ghz 3 5971 NULL 97734+ieee80211_if_fmt_rc_rateidx_mask_5ghz_5971 ieee80211_if_fmt_rc_rateidx_mask_5ghz 3 5971 NULL
98794+native_pte_val_5978 native_pte_val 0 5978 NULL 97735+native_pte_val_5978 native_pte_val 0 5978 NULL
97736+SyS_semop_5980 SyS_semop 3 5980 NULL
98795+ntfs_rl_append_6037 ntfs_rl_append 2-4 6037 NULL 97737+ntfs_rl_append_6037 ntfs_rl_append 2-4 6037 NULL
98796+da9052_request_irq_6058 da9052_request_irq 2 6058 NULL 97738+da9052_request_irq_6058 da9052_request_irq 2 6058 NULL
98797+sctp_setsockopt_connectx_6073 sctp_setsockopt_connectx 3 6073 NULL 97739+sctp_setsockopt_connectx_6073 sctp_setsockopt_connectx 3 6073 NULL
98798+rts51x_ms_rw_multi_sector_6076 rts51x_ms_rw_multi_sector 3-4 6076 NULL 97740+rts51x_ms_rw_multi_sector_6076 rts51x_ms_rw_multi_sector 3-4 6076 NULL
97741+md_trim_bio_6078 md_trim_bio 2 6078 NULL
98799+ipmi_addr_length_6110 ipmi_addr_length 0 6110 NULL 97742+ipmi_addr_length_6110 ipmi_addr_length 0 6110 NULL
98800+dfs_global_file_write_6112 dfs_global_file_write 3 6112 NULL 97743+dfs_global_file_write_6112 dfs_global_file_write 3 6112 NULL
98801+matrix_keypad_build_keymap_6129 matrix_keypad_build_keymap 3 6129 NULL 97744+matrix_keypad_build_keymap_6129 matrix_keypad_build_keymap 3 6129 NULL
98802+nouveau_parent_create__6131 nouveau_parent_create_ 7 6131 NULL 97745+nouveau_parent_create__6131 nouveau_parent_create_ 7 6131 NULL
97746+ieee80211_if_fmt_beacon_timeout_6153 ieee80211_if_fmt_beacon_timeout 3 6153 NULL
98803+ivtv_copy_buf_to_user_6159 ivtv_copy_buf_to_user 4 6159 NULL 97747+ivtv_copy_buf_to_user_6159 ivtv_copy_buf_to_user 4 6159 NULL
98804+vdma_mem_alloc_6171 vdma_mem_alloc 1 6171 NULL 97748+vdma_mem_alloc_6171 vdma_mem_alloc 1 6171 NULL
98805+wl1251_cmd_template_set_6172 wl1251_cmd_template_set 4 6172 NULL 97749+wl1251_cmd_template_set_6172 wl1251_cmd_template_set 4 6172 NULL
@@ -98819,9 +97763,14 @@ index 0000000..7982a0c
98819+nf_nat_ipv6_manip_pkt_6289 nf_nat_ipv6_manip_pkt 2 6289 NULL 97763+nf_nat_ipv6_manip_pkt_6289 nf_nat_ipv6_manip_pkt 2 6289 NULL
98820+nf_nat_sack_adjust_6297 nf_nat_sack_adjust 2 6297 NULL 97764+nf_nat_sack_adjust_6297 nf_nat_sack_adjust 2 6297 NULL
98821+mid_get_vbt_data_r10_6308 mid_get_vbt_data_r10 2 6308 NULL 97765+mid_get_vbt_data_r10_6308 mid_get_vbt_data_r10 2 6308 NULL
97766+qlcnic_sriov_alloc_bc_msg_6309 qlcnic_sriov_alloc_bc_msg 2 6309 NULL
97767+SyS_mincore_6329 SyS_mincore 1 6329 NULL
97768+fuse_get_req_for_background_6337 fuse_get_req_for_background 2 6337 NULL
98822+ucs2_strnlen_6342 ucs2_strnlen 0 6342 NULL 97769+ucs2_strnlen_6342 ucs2_strnlen 0 6342 NULL
97770+mei_dbgfs_read_devstate_6352 mei_dbgfs_read_devstate 3 6352 NULL
98823+_proc_do_string_6376 _proc_do_string 2 6376 NULL 97771+_proc_do_string_6376 _proc_do_string 2 6376 NULL
98824+osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL 97772+osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL
97773+isku_sysfs_write_light_6406 isku_sysfs_write_light 6 6406 NULL
98825+posix_acl_fix_xattr_userns_6420 posix_acl_fix_xattr_userns 4 6420 NULL 97774+posix_acl_fix_xattr_userns_6420 posix_acl_fix_xattr_userns 4 6420 NULL
98826+ipr_change_queue_depth_6431 ipr_change_queue_depth 2 6431 NULL 97775+ipr_change_queue_depth_6431 ipr_change_queue_depth 2 6431 NULL
98827+__alloc_bootmem_node_nopanic_6432 __alloc_bootmem_node_nopanic 2-3 6432 NULL 97776+__alloc_bootmem_node_nopanic_6432 __alloc_bootmem_node_nopanic 2-3 6432 NULL
@@ -98836,9 +97785,13 @@ index 0000000..7982a0c
98836+read_file_disable_ani_6536 read_file_disable_ani 3 6536 NULL 97785+read_file_disable_ani_6536 read_file_disable_ani 3 6536 NULL
98837+rndis_set_oid_6547 rndis_set_oid 4 6547 NULL 97786+rndis_set_oid_6547 rndis_set_oid 4 6547 NULL
98838+wdm_read_6549 wdm_read 3 6549 NULL 97787+wdm_read_6549 wdm_read 3 6549 NULL
97788+isku_sysfs_write_keys_easyzone_6553 isku_sysfs_write_keys_easyzone 6 6553 NULL
98839+fb_alloc_cmap_6554 fb_alloc_cmap 2 6554 NULL 97789+fb_alloc_cmap_6554 fb_alloc_cmap 2 6554 NULL
97790+SyS_semtimedop_6563 SyS_semtimedop 3 6563 NULL
97791+SyS_fcntl64_6582 SyS_fcntl64 3 6582 NULL
98840+snmp_mib_init_6604 snmp_mib_init 2-3 6604 NULL 97792+snmp_mib_init_6604 snmp_mib_init 2-3 6604 NULL
98841+ecryptfs_filldir_6622 ecryptfs_filldir 3 6622 NULL 97793+ecryptfs_filldir_6622 ecryptfs_filldir 3 6622 NULL
97794+compat_SyS_shmat_6642 compat_SyS_shmat 2 6642 NULL
98842+virtscsi_alloc_tgt_6643 virtscsi_alloc_tgt 2 6643 NULL 97795+virtscsi_alloc_tgt_6643 virtscsi_alloc_tgt 2 6643 NULL
98843+aac_srcv_ioremap_6659 aac_srcv_ioremap 2 6659 NULL 97796+aac_srcv_ioremap_6659 aac_srcv_ioremap 2 6659 NULL
98844+process_rcvd_data_6679 process_rcvd_data 3 6679 NULL 97797+process_rcvd_data_6679 process_rcvd_data 3 6679 NULL
@@ -98875,6 +97828,7 @@ index 0000000..7982a0c
98875+rsa_extract_mpi_6973 rsa_extract_mpi 5 6973 NULL 97828+rsa_extract_mpi_6973 rsa_extract_mpi 5 6973 NULL
98876+crypto_authenc_esn_setkey_6985 crypto_authenc_esn_setkey 3 6985 NULL 97829+crypto_authenc_esn_setkey_6985 crypto_authenc_esn_setkey 3 6985 NULL
98877+request_key_async_6990 request_key_async 4 6990 NULL 97830+request_key_async_6990 request_key_async 4 6990 NULL
97831+tpl_write_6998 tpl_write 3 6998 NULL
98878+r871x_set_wpa_ie_7000 r871x_set_wpa_ie 3 7000 NULL 97832+r871x_set_wpa_ie_7000 r871x_set_wpa_ie 3 7000 NULL
98879+cipso_v4_gentag_enum_7006 cipso_v4_gentag_enum 0 7006 NULL 97833+cipso_v4_gentag_enum_7006 cipso_v4_gentag_enum 0 7006 NULL
98880+tracing_cpumask_read_7010 tracing_cpumask_read 3 7010 NULL 97834+tracing_cpumask_read_7010 tracing_cpumask_read 3 7010 NULL
@@ -98888,12 +97842,14 @@ index 0000000..7982a0c
98888+check_header_7108 check_header 0 7108 NULL 97842+check_header_7108 check_header 0 7108 NULL
98889+qlcnic_enable_msix_7144 qlcnic_enable_msix 2 7144 NULL 97843+qlcnic_enable_msix_7144 qlcnic_enable_msix 2 7144 NULL
98890+__alloc_objio_seg_7203 __alloc_objio_seg 1 7203 NULL 97844+__alloc_objio_seg_7203 __alloc_objio_seg 1 7203 NULL
97845+batadv_check_unicast_ttvn_7206 batadv_check_unicast_ttvn 3 7206 NULL
98891+sys32_ipc_7238 sys32_ipc 3-5-6 7238 NULL 97846+sys32_ipc_7238 sys32_ipc 3-5-6 7238 NULL
98892+get_param_h_7247 get_param_h 0 7247 NULL 97847+get_param_h_7247 get_param_h 0 7247 NULL
98893+af_alg_make_sg_7254 af_alg_make_sg 3 7254 NULL 97848+af_alg_make_sg_7254 af_alg_make_sg 3 7254 NULL
98894+vm_mmap_pgoff_7259 vm_mmap_pgoff 0 7259 NULL 97849+vm_mmap_pgoff_7259 vm_mmap_pgoff 0 7259 NULL
98895+dma_ops_alloc_addresses_7272 dma_ops_alloc_addresses 3-4-5 7272 NULL 97850+dma_ops_alloc_addresses_7272 dma_ops_alloc_addresses 3-4-5 7272 NULL
98896+rx_rate_rx_frames_per_rates_read_7282 rx_rate_rx_frames_per_rates_read 3 7282 NULL 97851+rx_rate_rx_frames_per_rates_read_7282 rx_rate_rx_frames_per_rates_read 3 7282 NULL
97852+isku_sysfs_write_macro_7293 isku_sysfs_write_macro 6 7293 NULL
98897+wb_remove_mapping_7307 wb_remove_mapping 2 7307 NULL 97853+wb_remove_mapping_7307 wb_remove_mapping 2 7307 NULL
98898+mgmt_control_7349 mgmt_control 3 7349 NULL 97854+mgmt_control_7349 mgmt_control 3 7349 NULL
98899+ext3_free_blocks_7362 ext3_free_blocks 3-4 7362 NULL 97855+ext3_free_blocks_7362 ext3_free_blocks 3-4 7362 NULL
@@ -98904,6 +97860,7 @@ index 0000000..7982a0c
98904+readb_7401 readb 0 7401 NULL 97860+readb_7401 readb 0 7401 NULL
98905+drm_property_create_blob_7414 drm_property_create_blob 2 7414 NULL 97861+drm_property_create_blob_7414 drm_property_create_blob 2 7414 NULL
98906+ip_options_get_alloc_7448 ip_options_get_alloc 1 7448 NULL 97862+ip_options_get_alloc_7448 ip_options_get_alloc 1 7448 NULL
97863+SYSC_setgroups_7454 SYSC_setgroups 1 7454 NULL
98907+numa_emulation_7466 numa_emulation 2 7466 NULL 97864+numa_emulation_7466 numa_emulation 2 7466 NULL
98908+__mutex_lock_common_7469 __mutex_lock_common 0 7469 NULL 97865+__mutex_lock_common_7469 __mutex_lock_common 0 7469 NULL
98909+garp_request_join_7471 garp_request_join 4 7471 NULL 97866+garp_request_join_7471 garp_request_join 4 7471 NULL
@@ -98914,6 +97871,7 @@ index 0000000..7982a0c
98914+array_zalloc_7519 array_zalloc 1-2 7519 NULL 97871+array_zalloc_7519 array_zalloc 1-2 7519 NULL
98915+goal_in_my_reservation_7553 goal_in_my_reservation 3 7553 NULL 97872+goal_in_my_reservation_7553 goal_in_my_reservation 3 7553 NULL
98916+smk_read_mapped_7562 smk_read_mapped 3 7562 NULL 97873+smk_read_mapped_7562 smk_read_mapped 3 7562 NULL
97874+btrfs_block_rsv_add_7579 btrfs_block_rsv_add 3 7579 NULL
98917+ext3_try_to_allocate_7590 ext3_try_to_allocate 5-3 7590 NULL 97875+ext3_try_to_allocate_7590 ext3_try_to_allocate 5-3 7590 NULL
98918+groups_alloc_7614 groups_alloc 1 7614 NULL 97876+groups_alloc_7614 groups_alloc 1 7614 NULL
98919+sg_virt_7616 sg_virt 0 7616 NULL 97877+sg_virt_7616 sg_virt 0 7616 NULL
@@ -98921,6 +97879,7 @@ index 0000000..7982a0c
98921+acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 2-1 7685 &skb_copy_expand_7685 97879+acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 2-1 7685 &skb_copy_expand_7685
98922+acpi_ns_get_pathname_length_7699 acpi_ns_get_pathname_length 0 7699 NULL 97880+acpi_ns_get_pathname_length_7699 acpi_ns_get_pathname_length 0 7699 NULL
98923+dev_write_7708 dev_write 3 7708 NULL 97881+dev_write_7708 dev_write 3 7708 NULL
97882+unmap_region_7709 unmap_region 1 7709 NULL
98924+brcmf_sdcard_send_buf_7713 brcmf_sdcard_send_buf 6 7713 NULL 97883+brcmf_sdcard_send_buf_7713 brcmf_sdcard_send_buf 6 7713 NULL
98925+set_bypass_pwup_pfs_7742 set_bypass_pwup_pfs 3 7742 NULL 97884+set_bypass_pwup_pfs_7742 set_bypass_pwup_pfs 3 7742 NULL
98926+vxge_device_register_7752 vxge_device_register 4 7752 NULL 97885+vxge_device_register_7752 vxge_device_register 4 7752 NULL
@@ -98939,6 +97898,7 @@ index 0000000..7982a0c
98939+libfc_host_alloc_7917 libfc_host_alloc 2 7917 NULL 97898+libfc_host_alloc_7917 libfc_host_alloc 2 7917 NULL
98940+f_hidg_write_7932 f_hidg_write 3 7932 NULL 97899+f_hidg_write_7932 f_hidg_write 3 7932 NULL
98941+io_apic_setup_irq_pin_once_7934 io_apic_setup_irq_pin_once 1 7934 NULL 97900+io_apic_setup_irq_pin_once_7934 io_apic_setup_irq_pin_once 1 7934 NULL
97901+hash_netiface6_expire_7944 hash_netiface6_expire 3 7944 NULL
98942+integrity_digsig_verify_7956 integrity_digsig_verify 3 7956 NULL 97902+integrity_digsig_verify_7956 integrity_digsig_verify 3 7956 NULL
98943+smk_write_load_self_7958 smk_write_load_self 3 7958 NULL 97903+smk_write_load_self_7958 smk_write_load_self 3 7958 NULL
98944+sys_mbind_7990 sys_mbind 5 7990 NULL 97904+sys_mbind_7990 sys_mbind 5 7990 NULL
@@ -98954,6 +97914,7 @@ index 0000000..7982a0c
98954+venus_lookup_8121 venus_lookup 4 8121 NULL 97914+venus_lookup_8121 venus_lookup 4 8121 NULL
98955+ieee80211_if_fmt_num_buffered_multicast_8127 ieee80211_if_fmt_num_buffered_multicast 3 8127 NULL 97915+ieee80211_if_fmt_num_buffered_multicast_8127 ieee80211_if_fmt_num_buffered_multicast 3 8127 NULL
98956+dma_map_area_8178 dma_map_area 5-2-3 8178 NULL 97916+dma_map_area_8178 dma_map_area 5-2-3 8178 NULL
97917+ore_truncate_8181 ore_truncate 3 8181 NULL
98957+__sk_mem_schedule_8185 __sk_mem_schedule 2 8185 NULL 97918+__sk_mem_schedule_8185 __sk_mem_schedule 2 8185 NULL
98958+ieee80211_if_fmt_dot11MeshHoldingTimeout_8187 ieee80211_if_fmt_dot11MeshHoldingTimeout 3 8187 NULL 97919+ieee80211_if_fmt_dot11MeshHoldingTimeout_8187 ieee80211_if_fmt_dot11MeshHoldingTimeout 3 8187 NULL
98959+recent_mt_proc_write_8206 recent_mt_proc_write 3 8206 NULL 97920+recent_mt_proc_write_8206 recent_mt_proc_write 3 8206 NULL
@@ -98963,6 +97924,7 @@ index 0000000..7982a0c
98963+create_log_8225 create_log 2 8225 NULL nohasharray 97924+create_log_8225 create_log 2 8225 NULL nohasharray
98964+kvm_mmu_page_set_gfn_8225 kvm_mmu_page_set_gfn 2 8225 &create_log_8225 97925+kvm_mmu_page_set_gfn_8225 kvm_mmu_page_set_gfn 2 8225 &create_log_8225
98965+sctp_ssnmap_size_8228 sctp_ssnmap_size 0-1-2 8228 NULL 97926+sctp_ssnmap_size_8228 sctp_ssnmap_size 0-1-2 8228 NULL
97927+ceph_sync_write_8233 ceph_sync_write 4 8233 NULL
98966+bnx2x_iov_get_max_queue_count_8235 bnx2x_iov_get_max_queue_count 0 8235 NULL 97928+bnx2x_iov_get_max_queue_count_8235 bnx2x_iov_get_max_queue_count 0 8235 NULL
98967+check_xattr_ref_inode_8244 check_xattr_ref_inode 0 8244 NULL 97929+check_xattr_ref_inode_8244 check_xattr_ref_inode 0 8244 NULL
98968+add_rx_skb_8257 add_rx_skb 3 8257 NULL 97930+add_rx_skb_8257 add_rx_skb 3 8257 NULL
@@ -98974,11 +97936,13 @@ index 0000000..7982a0c
98974+ipwireless_send_packet_8328 ipwireless_send_packet 4 8328 NULL 97936+ipwireless_send_packet_8328 ipwireless_send_packet 4 8328 NULL
98975+tracing_entries_read_8345 tracing_entries_read 3 8345 NULL 97937+tracing_entries_read_8345 tracing_entries_read 3 8345 NULL
98976+ieee80211_if_fmt_ht_opmode_8347 ieee80211_if_fmt_ht_opmode 3 8347 NULL 97938+ieee80211_if_fmt_ht_opmode_8347 ieee80211_if_fmt_ht_opmode 3 8347 NULL
98977+ping_getfrag_8360 ping_getfrag 4-3 8360 NULL 97939+isku_sysfs_write_talk_8360 isku_sysfs_write_talk 6 8360 NULL nohasharray
97940+ping_getfrag_8360 ping_getfrag 4-3 8360 &isku_sysfs_write_talk_8360
98978+uvc_v4l2_compat_ioctl32_8375 uvc_v4l2_compat_ioctl32 3 8375 NULL 97941+uvc_v4l2_compat_ioctl32_8375 uvc_v4l2_compat_ioctl32 3 8375 NULL
98979+xdi_copy_from_user_8395 xdi_copy_from_user 4 8395 NULL 97942+xdi_copy_from_user_8395 xdi_copy_from_user 4 8395 NULL
98980+zd_rf_scnprint_id_8406 zd_rf_scnprint_id 0-3 8406 NULL 97943+zd_rf_scnprint_id_8406 zd_rf_scnprint_id 0-3 8406 NULL
98981+uvc_v4l2_ioctl_8411 uvc_v4l2_ioctl 2 8411 NULL 97944+smk_write_change_rule_8411 smk_write_change_rule 3 8411 NULL nohasharray
97945+uvc_v4l2_ioctl_8411 uvc_v4l2_ioctl 2 8411 &smk_write_change_rule_8411
98982+pca953x_gpio_to_irq_8424 pca953x_gpio_to_irq 2 8424 NULL 97946+pca953x_gpio_to_irq_8424 pca953x_gpio_to_irq 2 8424 NULL
98983+snd_usb_ctl_msg_8436 snd_usb_ctl_msg 8 8436 NULL 97947+snd_usb_ctl_msg_8436 snd_usb_ctl_msg 8 8436 NULL
98984+irq_create_mapping_8437 irq_create_mapping 2 8437 NULL 97948+irq_create_mapping_8437 irq_create_mapping 2 8437 NULL
@@ -98990,6 +97954,7 @@ index 0000000..7982a0c
98990+pnp_resource_len_8532 pnp_resource_len 0 8532 NULL 97954+pnp_resource_len_8532 pnp_resource_len 0 8532 NULL
98991+alloc_pg_vec_8533 alloc_pg_vec 2 8533 NULL 97955+alloc_pg_vec_8533 alloc_pg_vec 2 8533 NULL
98992+ocfs2_read_virt_blocks_8538 ocfs2_read_virt_blocks 2-3 8538 NULL 97956+ocfs2_read_virt_blocks_8538 ocfs2_read_virt_blocks 2-3 8538 NULL
97957+user_on_off_8552 user_on_off 2 8552 NULL
98993+profile_remove_8556 profile_remove 3 8556 NULL 97958+profile_remove_8556 profile_remove 3 8556 NULL
98994+cache_slow_downcall_8570 cache_slow_downcall 2 8570 NULL 97959+cache_slow_downcall_8570 cache_slow_downcall 2 8570 NULL
98995+mga_ioremap_8571 mga_ioremap 1-2 8571 NULL 97960+mga_ioremap_8571 mga_ioremap 1-2 8571 NULL
@@ -98999,7 +97964,7 @@ index 0000000..7982a0c
98999+shash_setkey_unaligned_8620 shash_setkey_unaligned 3 8620 NULL 97964+shash_setkey_unaligned_8620 shash_setkey_unaligned 3 8620 NULL
99000+it821x_firmware_command_8628 it821x_firmware_command 3 8628 NULL 97965+it821x_firmware_command_8628 it821x_firmware_command 3 8628 NULL
99001+scsi_dma_map_8632 scsi_dma_map 0 8632 NULL 97966+scsi_dma_map_8632 scsi_dma_map 0 8632 NULL
99002+fuse_send_write_pages_8636 fuse_send_write_pages 0 8636 NULL 97967+fuse_send_write_pages_8636 fuse_send_write_pages 0-5 8636 NULL
99003+generic_acl_set_8658 generic_acl_set 4 8658 NULL 97968+generic_acl_set_8658 generic_acl_set 4 8658 NULL
99004+dio_bio_alloc_8677 dio_bio_alloc 5 8677 NULL 97969+dio_bio_alloc_8677 dio_bio_alloc 5 8677 NULL
99005+lbs_bcnmiss_read_8678 lbs_bcnmiss_read 3 8678 NULL 97970+lbs_bcnmiss_read_8678 lbs_bcnmiss_read 3 8678 NULL
@@ -99044,6 +98009,7 @@ index 0000000..7982a0c
99044+vol_cdev_read_8968 vol_cdev_read 3 8968 NULL nohasharray 98009+vol_cdev_read_8968 vol_cdev_read 3 8968 NULL nohasharray
99045+seq_open_net_8968 seq_open_net 4 8968 &vol_cdev_read_8968 98010+seq_open_net_8968 seq_open_net 4 8968 &vol_cdev_read_8968
99046+bio_integrity_get_tag_8974 bio_integrity_get_tag 3 8974 NULL 98011+bio_integrity_get_tag_8974 bio_integrity_get_tag 3 8974 NULL
98012+btrfs_alloc_free_block_8986 btrfs_alloc_free_block 3 8986 NULL
99047+snd_emu10k1_ptr_read_9026 snd_emu10k1_ptr_read 0-2 9026 NULL 98013+snd_emu10k1_ptr_read_9026 snd_emu10k1_ptr_read 0-2 9026 NULL
99048+__pskb_copy_9038 __pskb_copy 2 9038 NULL 98014+__pskb_copy_9038 __pskb_copy 2 9038 NULL
99049+nla_put_9042 nla_put 3 9042 NULL 98015+nla_put_9042 nla_put 3 9042 NULL
@@ -99056,6 +98022,7 @@ index 0000000..7982a0c
99056+caif_stream_sendmsg_9110 caif_stream_sendmsg 4 9110 NULL nohasharray 98022+caif_stream_sendmsg_9110 caif_stream_sendmsg 4 9110 NULL nohasharray
99057+gfn_to_rmap_9110 gfn_to_rmap 2-3 9110 &caif_stream_sendmsg_9110 98023+gfn_to_rmap_9110 gfn_to_rmap 2-3 9110 &caif_stream_sendmsg_9110
99058+pmcraid_change_queue_depth_9116 pmcraid_change_queue_depth 2 9116 NULL 98024+pmcraid_change_queue_depth_9116 pmcraid_change_queue_depth 2 9116 NULL
98025+isku_sysfs_write_keys_macro_9120 isku_sysfs_write_keys_macro 6 9120 NULL
99059+mq_remove_mapping_9124 mq_remove_mapping 2 9124 NULL 98026+mq_remove_mapping_9124 mq_remove_mapping 2 9124 NULL
99060+mlx4_alloc_resize_umem_9132 mlx4_alloc_resize_umem 3 9132 NULL 98027+mlx4_alloc_resize_umem_9132 mlx4_alloc_resize_umem 3 9132 NULL
99061+ext4_list_backups_9138 ext4_list_backups 0 9138 NULL 98028+ext4_list_backups_9138 ext4_list_backups 0 9138 NULL
@@ -99067,6 +98034,7 @@ index 0000000..7982a0c
99067+gx1_gx_base_9198 gx1_gx_base 0 9198 NULL 98034+gx1_gx_base_9198 gx1_gx_base 0 9198 NULL
99068+snd_m3_get_pointer_9206 snd_m3_get_pointer 0 9206 NULL 98035+snd_m3_get_pointer_9206 snd_m3_get_pointer 0 9206 NULL
99069+get_pfn_9207 get_pfn 1 9207 NULL 98036+get_pfn_9207 get_pfn 1 9207 NULL
98037+virtqueue_add_9217 virtqueue_add 5-4 9217 NULL
99070+tx_tx_prepared_descs_read_9221 tx_tx_prepared_descs_read 3 9221 NULL 98038+tx_tx_prepared_descs_read_9221 tx_tx_prepared_descs_read 3 9221 NULL
99071+sctp_getsockopt_delayed_ack_9232 sctp_getsockopt_delayed_ack 2 9232 NULL 98039+sctp_getsockopt_delayed_ack_9232 sctp_getsockopt_delayed_ack 2 9232 NULL
99072+ocfs2_clear_ext_refcount_9256 ocfs2_clear_ext_refcount 4 9256 NULL 98040+ocfs2_clear_ext_refcount_9256 ocfs2_clear_ext_refcount 4 9256 NULL
@@ -99079,7 +98047,10 @@ index 0000000..7982a0c
99079+ceph_sync_setxattr_9310 ceph_sync_setxattr 4 9310 NULL 98047+ceph_sync_setxattr_9310 ceph_sync_setxattr 4 9310 NULL
99080+memblock_find_in_range_node_9328 memblock_find_in_range_node 0-3-4 9328 NULL 98048+memblock_find_in_range_node_9328 memblock_find_in_range_node 0-3-4 9328 NULL
99081+ieee80211_if_fmt_txpower_9334 ieee80211_if_fmt_txpower 3 9334 NULL 98049+ieee80211_if_fmt_txpower_9334 ieee80211_if_fmt_txpower 3 9334 NULL
98050+nvme_trans_fmt_get_parm_header_9340 nvme_trans_fmt_get_parm_header 2 9340 NULL
99082+ocfs2_orphan_for_truncate_9342 ocfs2_orphan_for_truncate 4 9342 NULL 98051+ocfs2_orphan_for_truncate_9342 ocfs2_orphan_for_truncate 4 9342 NULL
98052+sta_beacon_loss_count_read_9370 sta_beacon_loss_count_read 3 9370 NULL
98053+virtqueue_add_outbuf_9395 virtqueue_add_outbuf 3 9395 NULL
99083+read_9397 read 3 9397 NULL 98054+read_9397 read 3 9397 NULL
99084+nf_nat_sip_expect_9418 nf_nat_sip_expect 8 9418 NULL 98055+nf_nat_sip_expect_9418 nf_nat_sip_expect 8 9418 NULL
99085+bm_realloc_pages_9431 bm_realloc_pages 2 9431 NULL 98056+bm_realloc_pages_9431 bm_realloc_pages 2 9431 NULL
@@ -99103,6 +98074,7 @@ index 0000000..7982a0c
99103+f2fs_read_data_pages_9574 f2fs_read_data_pages 4 9574 NULL 98074+f2fs_read_data_pages_9574 f2fs_read_data_pages 4 9574 NULL
99104+biovec_create_pools_9575 biovec_create_pools 2 9575 NULL 98075+biovec_create_pools_9575 biovec_create_pools 2 9575 NULL
99105+ieee80211_tdls_mgmt_9581 ieee80211_tdls_mgmt 8 9581 NULL 98076+ieee80211_tdls_mgmt_9581 ieee80211_tdls_mgmt 8 9581 NULL
98077+use_block_rsv_9597 use_block_rsv 3 9597 NULL
99106+do_sync_9604 do_sync 1 9604 NULL 98078+do_sync_9604 do_sync 1 9604 NULL
99107+snd_emu10k1_fx8010_read_9605 snd_emu10k1_fx8010_read 5-6 9605 NULL 98079+snd_emu10k1_fx8010_read_9605 snd_emu10k1_fx8010_read 5-6 9605 NULL
99108+saa7164_buffer_alloc_user_9627 saa7164_buffer_alloc_user 2 9627 NULL 98080+saa7164_buffer_alloc_user_9627 saa7164_buffer_alloc_user 2 9627 NULL
@@ -99121,6 +98093,7 @@ index 0000000..7982a0c
99121+fnb_9703 fnb 2-3 9703 NULL 98093+fnb_9703 fnb 2-3 9703 NULL
99122+fuse_iter_npages_9705 fuse_iter_npages 0 9705 NULL nohasharray 98094+fuse_iter_npages_9705 fuse_iter_npages 0 9705 NULL nohasharray
99123+ieee80211_if_read_aid_9705 ieee80211_if_read_aid 3 9705 &fuse_iter_npages_9705 98095+ieee80211_if_read_aid_9705 ieee80211_if_read_aid 3 9705 &fuse_iter_npages_9705
98096+nla_get_u8_9736 nla_get_u8 0 9736 NULL
99124+ieee80211_if_fmt_num_mcast_sta_9738 ieee80211_if_fmt_num_mcast_sta 3 9738 NULL 98097+ieee80211_if_fmt_num_mcast_sta_9738 ieee80211_if_fmt_num_mcast_sta 3 9738 NULL
99125+ddb_input_read_9743 ddb_input_read 3 9743 NULL 98098+ddb_input_read_9743 ddb_input_read 3 9743 NULL
99126+sta_last_ack_signal_read_9751 sta_last_ack_signal_read 3 9751 NULL 98099+sta_last_ack_signal_read_9751 sta_last_ack_signal_read 3 9751 NULL
@@ -99152,11 +98125,13 @@ index 0000000..7982a0c
99152+get_free_serial_index_9969 get_free_serial_index 0 9969 NULL 98125+get_free_serial_index_9969 get_free_serial_index 0 9969 NULL
99153+btrfs_add_link_9973 btrfs_add_link 5 9973 NULL 98126+btrfs_add_link_9973 btrfs_add_link 5 9973 NULL
99154+ath6kl_usb_submit_ctrl_out_9978 ath6kl_usb_submit_ctrl_out 6 9978 NULL 98127+ath6kl_usb_submit_ctrl_out_9978 ath6kl_usb_submit_ctrl_out 6 9978 NULL
98128+SYSC_move_pages_9986 SYSC_move_pages 2 9986 NULL
99155+aat2870_dump_reg_10019 aat2870_dump_reg 0 10019 NULL 98129+aat2870_dump_reg_10019 aat2870_dump_reg 0 10019 NULL
99156+handle_request_10024 handle_request 9 10024 NULL 98130+handle_request_10024 handle_request 9 10024 NULL
99157+batadv_orig_hash_add_if_10033 batadv_orig_hash_add_if 2 10033 NULL 98131+batadv_orig_hash_add_if_10033 batadv_orig_hash_add_if 2 10033 NULL
99158+ieee80211_probereq_get_10040 ieee80211_probereq_get 4-5 10040 NULL 98132+ieee80211_probereq_get_10040 ieee80211_probereq_get 4-5 10040 NULL
99159+xen_destroy_contiguous_region_10054 xen_destroy_contiguous_region 1 10054 NULL 98133+xen_destroy_contiguous_region_10054 xen_destroy_contiguous_region 1 10054 NULL
98134+vfio_pci_write_10063 vfio_pci_write 3 10063 NULL
99160+ieee80211_set_probe_resp_10077 ieee80211_set_probe_resp 3 10077 NULL 98135+ieee80211_set_probe_resp_10077 ieee80211_set_probe_resp 3 10077 NULL
99161+ufs_bitmap_search_10105 ufs_bitmap_search 0-3 10105 NULL 98136+ufs_bitmap_search_10105 ufs_bitmap_search 0-3 10105 NULL
99162+get_elem_size_10110 get_elem_size 0-2 10110 NULL nohasharray 98137+get_elem_size_10110 get_elem_size 0-2 10110 NULL nohasharray
@@ -99174,6 +98149,7 @@ index 0000000..7982a0c
99174+jffs2_user_setxattr_10182 jffs2_user_setxattr 4 10182 NULL 98149+jffs2_user_setxattr_10182 jffs2_user_setxattr 4 10182 NULL
99175+do_ioctl_trans_10194 do_ioctl_trans 3 10194 NULL 98150+do_ioctl_trans_10194 do_ioctl_trans 3 10194 NULL
99176+cciss_proc_write_10259 cciss_proc_write 3 10259 NULL 98151+cciss_proc_write_10259 cciss_proc_write 3 10259 NULL
98152+__qlcnic_pci_sriov_enable_10281 __qlcnic_pci_sriov_enable 2 10281 NULL
99177+snd_rme9652_capture_copy_10287 snd_rme9652_capture_copy 5 10287 NULL 98153+snd_rme9652_capture_copy_10287 snd_rme9652_capture_copy 5 10287 NULL
99178+ubi_leb_change_10289 ubi_leb_change 4 10289 NULL 98154+ubi_leb_change_10289 ubi_leb_change 4 10289 NULL
99179+read_emulate_10310 read_emulate 2-4 10310 NULL 98155+read_emulate_10310 read_emulate 2-4 10310 NULL
@@ -99196,6 +98172,8 @@ index 0000000..7982a0c
99196+sel_write_disable_10511 sel_write_disable 3 10511 NULL 98172+sel_write_disable_10511 sel_write_disable 3 10511 NULL
99197+osd_req_write_sg_kern_10514 osd_req_write_sg_kern 5 10514 NULL 98173+osd_req_write_sg_kern_10514 osd_req_write_sg_kern 5 10514 NULL
99198+rds_message_alloc_10517 rds_message_alloc 1 10517 NULL 98174+rds_message_alloc_10517 rds_message_alloc 1 10517 NULL
98175+qlcnic_pci_sriov_enable_10519 qlcnic_pci_sriov_enable 2 10519 NULL nohasharray
98176+hash_netiface4_expire_10519 hash_netiface4_expire 3 10519 &qlcnic_pci_sriov_enable_10519
99199+ocfs2_add_refcounted_extent_10526 ocfs2_add_refcounted_extent 6 10526 NULL 98177+ocfs2_add_refcounted_extent_10526 ocfs2_add_refcounted_extent 6 10526 NULL
99200+get_vm_area_caller_10527 get_vm_area_caller 1 10527 NULL 98178+get_vm_area_caller_10527 get_vm_area_caller 1 10527 NULL
99201+snd_pcm_lib_read_10536 snd_pcm_lib_read 0-3 10536 NULL 98179+snd_pcm_lib_read_10536 snd_pcm_lib_read 0-3 10536 NULL
@@ -99207,6 +98185,7 @@ index 0000000..7982a0c
99207+ima_show_htable_violations_10619 ima_show_htable_violations 3 10619 NULL 98185+ima_show_htable_violations_10619 ima_show_htable_violations 3 10619 NULL
99208+alloc_coherent_10632 alloc_coherent 2 10632 NULL 98186+alloc_coherent_10632 alloc_coherent 2 10632 NULL
99209+nfs_idmap_lookup_id_10660 nfs_idmap_lookup_id 2 10660 NULL 98187+nfs_idmap_lookup_id_10660 nfs_idmap_lookup_id 2 10660 NULL
98188+dtf_read_device_10663 dtf_read_device 3 10663 NULL
99210+parport_write_10669 parport_write 0 10669 NULL 98189+parport_write_10669 parport_write 0 10669 NULL
99211+inl_10708 inl 0 10708 NULL nohasharray 98190+inl_10708 inl 0 10708 NULL nohasharray
99212+selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 &inl_10708 98191+selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 &inl_10708
@@ -99236,6 +98215,7 @@ index 0000000..7982a0c
99236+tifm_alloc_adapter_10903 tifm_alloc_adapter 1 10903 NULL 98215+tifm_alloc_adapter_10903 tifm_alloc_adapter 1 10903 NULL
99237+__copy_from_user_10918 __copy_from_user 3 10918 NULL 98216+__copy_from_user_10918 __copy_from_user 3 10918 NULL
99238+da9052_map_irq_10952 da9052_map_irq 2 10952 NULL 98217+da9052_map_irq_10952 da9052_map_irq 2 10952 NULL
98218+ci_port_test_write_10962 ci_port_test_write 3 10962 NULL
99239+bm_entry_read_10976 bm_entry_read 3 10976 NULL 98219+bm_entry_read_10976 bm_entry_read 3 10976 NULL
99240+i915_min_freq_write_10981 i915_min_freq_write 3 10981 NULL 98220+i915_min_freq_write_10981 i915_min_freq_write 3 10981 NULL
99241+sched_autogroup_write_10984 sched_autogroup_write 3 10984 NULL 98221+sched_autogroup_write_10984 sched_autogroup_write 3 10984 NULL
@@ -99251,7 +98231,9 @@ index 0000000..7982a0c
99251+stmpe_gpio_to_irq_11110 stmpe_gpio_to_irq 2 11110 NULL 98231+stmpe_gpio_to_irq_11110 stmpe_gpio_to_irq 2 11110 NULL
99252+tw_change_queue_depth_11116 tw_change_queue_depth 2 11116 NULL 98232+tw_change_queue_depth_11116 tw_change_queue_depth 2 11116 NULL
99253+page_offset_11120 page_offset 0 11120 NULL 98233+page_offset_11120 page_offset 0 11120 NULL
99254+tracing_buffers_read_11124 tracing_buffers_read 3 11124 NULL 98234+tracing_buffers_read_11124 tracing_buffers_read 3 11124 NULL nohasharray
98235+cea_db_payload_len_11124 cea_db_payload_len 0 11124 &tracing_buffers_read_11124
98236+alloc_alien_cache_11127 alloc_alien_cache 2 11127 NULL
99255+acpi_os_map_memory_11161 acpi_os_map_memory 1-2 11161 NULL 98237+acpi_os_map_memory_11161 acpi_os_map_memory 1-2 11161 NULL
99256+ioat2_alloc_ring_11172 ioat2_alloc_ring 2 11172 NULL nohasharray 98238+ioat2_alloc_ring_11172 ioat2_alloc_ring 2 11172 NULL nohasharray
99257+snd_gf1_pcm_playback_silence_11172 snd_gf1_pcm_playback_silence 3-4 11172 &ioat2_alloc_ring_11172 98239+snd_gf1_pcm_playback_silence_11172 snd_gf1_pcm_playback_silence 3-4 11172 &ioat2_alloc_ring_11172
@@ -99275,6 +98257,7 @@ index 0000000..7982a0c
99275+batadv_skb_head_push_11360 batadv_skb_head_push 2 11360 NULL 98257+batadv_skb_head_push_11360 batadv_skb_head_push 2 11360 NULL
99276+drm_vblank_init_11362 drm_vblank_init 2 11362 NULL 98258+drm_vblank_init_11362 drm_vblank_init 2 11362 NULL
99277+qib_get_base_info_11369 qib_get_base_info 3 11369 NULL 98259+qib_get_base_info_11369 qib_get_base_info 3 11369 NULL
98260+isku_sysfs_read_keys_capslock_11392 isku_sysfs_read_keys_capslock 6 11392 NULL
99278+dev_irnet_write_11398 dev_irnet_write 3 11398 NULL 98261+dev_irnet_write_11398 dev_irnet_write 3 11398 NULL
99279+___alloc_bootmem_11410 ___alloc_bootmem 1-2 11410 NULL 98262+___alloc_bootmem_11410 ___alloc_bootmem 1-2 11410 NULL
99280+str_to_user_11411 str_to_user 2 11411 NULL 98263+str_to_user_11411 str_to_user 2 11411 NULL
@@ -99299,9 +98282,12 @@ index 0000000..7982a0c
99299+oprofilefs_ulong_to_user_11582 oprofilefs_ulong_to_user 3 11582 NULL 98282+oprofilefs_ulong_to_user_11582 oprofilefs_ulong_to_user 3 11582 NULL
99300+snd_pcm_action_11589 snd_pcm_action 0 11589 NULL 98283+snd_pcm_action_11589 snd_pcm_action 0 11589 NULL
99301+fw_device_op_ioctl_11595 fw_device_op_ioctl 2 11595 NULL 98284+fw_device_op_ioctl_11595 fw_device_op_ioctl 2 11595 NULL
98285+SYSC_mq_timedsend_11607 SYSC_mq_timedsend 3 11607 NULL
98286+add_new_bitmap_11644 add_new_bitmap 3 11644 NULL
99302+sisusb_send_bridge_packet_11649 sisusb_send_bridge_packet 2 11649 NULL 98287+sisusb_send_bridge_packet_11649 sisusb_send_bridge_packet 2 11649 NULL
99303+nla_total_size_11658 nla_total_size 0-1 11658 NULL 98288+nla_total_size_11658 nla_total_size 0-1 11658 NULL
99304+ide_queue_pc_tail_11673 ide_queue_pc_tail 5 11673 NULL 98289+ide_queue_pc_tail_11673 ide_queue_pc_tail 5 11673 NULL
98290+compat_SyS_msgsnd_11675 compat_SyS_msgsnd 2-3 11675 NULL
99305+btrfs_alloc_delayed_item_11678 btrfs_alloc_delayed_item 1 11678 NULL 98291+btrfs_alloc_delayed_item_11678 btrfs_alloc_delayed_item 1 11678 NULL
99306+dsp_buffer_alloc_11684 dsp_buffer_alloc 2 11684 NULL 98292+dsp_buffer_alloc_11684 dsp_buffer_alloc 2 11684 NULL
99307+sctp_setsockopt_hmac_ident_11687 sctp_setsockopt_hmac_ident 3 11687 NULL 98293+sctp_setsockopt_hmac_ident_11687 sctp_setsockopt_hmac_ident 3 11687 NULL
@@ -99354,6 +98340,7 @@ index 0000000..7982a0c
99354+compat_do_arpt_set_ctl_12184 compat_do_arpt_set_ctl 4 12184 NULL 98340+compat_do_arpt_set_ctl_12184 compat_do_arpt_set_ctl 4 12184 NULL
99355+ip_generic_getfrag_12187 ip_generic_getfrag 3-4 12187 NULL 98341+ip_generic_getfrag_12187 ip_generic_getfrag 3-4 12187 NULL
99356+bl_is_sector_init_12199 bl_is_sector_init 2 12199 NULL 98342+bl_is_sector_init_12199 bl_is_sector_init 2 12199 NULL
98343+scaled_div_12201 scaled_div 1-2 12201 NULL
99357+free_initrd_mem_12203 free_initrd_mem 1 12203 NULL 98344+free_initrd_mem_12203 free_initrd_mem 1 12203 NULL
99358+receive_copy_12216 receive_copy 3 12216 NULL 98345+receive_copy_12216 receive_copy 3 12216 NULL
99359+snd_pcm_kernel_ioctl_12219 snd_pcm_kernel_ioctl 0 12219 NULL 98346+snd_pcm_kernel_ioctl_12219 snd_pcm_kernel_ioctl 0 12219 NULL
@@ -99368,6 +98355,7 @@ index 0000000..7982a0c
99368+roundup_to_multiple_of_64_12288 roundup_to_multiple_of_64 0-1 12288 NULL nohasharray 98355+roundup_to_multiple_of_64_12288 roundup_to_multiple_of_64 0-1 12288 NULL nohasharray
99369+il_dbgfs_nvm_read_12288 il_dbgfs_nvm_read 3 12288 &roundup_to_multiple_of_64_12288 98356+il_dbgfs_nvm_read_12288 il_dbgfs_nvm_read 3 12288 &roundup_to_multiple_of_64_12288
99370+vxge_get_num_vfs_12302 vxge_get_num_vfs 0 12302 NULL 98357+vxge_get_num_vfs_12302 vxge_get_num_vfs 0 12302 NULL
98358+wrap_min_12303 wrap_min 0-1-2 12303 NULL
99371+tipc_msg_build_12326 tipc_msg_build 4 12326 NULL 98359+tipc_msg_build_12326 tipc_msg_build 4 12326 NULL
99372+pcbit_writecmd_12332 pcbit_writecmd 2 12332 NULL 98360+pcbit_writecmd_12332 pcbit_writecmd 2 12332 NULL
99373+mptctl_ioctl_12355 mptctl_ioctl 2 12355 NULL 98361+mptctl_ioctl_12355 mptctl_ioctl 2 12355 NULL
@@ -99375,6 +98363,7 @@ index 0000000..7982a0c
99375+__nf_ct_ext_add_length_12364 __nf_ct_ext_add_length 3 12364 NULL 98363+__nf_ct_ext_add_length_12364 __nf_ct_ext_add_length 3 12364 NULL
99376+xfs_iext_inline_to_direct_12384 xfs_iext_inline_to_direct 2 12384 NULL 98364+xfs_iext_inline_to_direct_12384 xfs_iext_inline_to_direct 2 12384 NULL
99377+btrfs_file_extent_ram_bytes_12391 btrfs_file_extent_ram_bytes 0 12391 NULL 98365+btrfs_file_extent_ram_bytes_12391 btrfs_file_extent_ram_bytes 0 12391 NULL
98366+hbucket_elem_add_12416 hbucket_elem_add 3 12416 NULL
99378+ieee80211_if_read_num_mcast_sta_12419 ieee80211_if_read_num_mcast_sta 3 12419 NULL 98367+ieee80211_if_read_num_mcast_sta_12419 ieee80211_if_read_num_mcast_sta 3 12419 NULL
99379+skb_do_copy_data_nocache_12465 skb_do_copy_data_nocache 5 12465 NULL 98368+skb_do_copy_data_nocache_12465 skb_do_copy_data_nocache 5 12465 NULL
99380+qla4_82xx_pci_mem_write_direct_12479 qla4_82xx_pci_mem_write_direct 2 12479 NULL 98369+qla4_82xx_pci_mem_write_direct_12479 qla4_82xx_pci_mem_write_direct 2 12479 NULL
@@ -99395,6 +98384,7 @@ index 0000000..7982a0c
99395+pwr_rcvd_awake_bcns_cnt_read_12632 pwr_rcvd_awake_bcns_cnt_read 3 12632 NULL 98384+pwr_rcvd_awake_bcns_cnt_read_12632 pwr_rcvd_awake_bcns_cnt_read 3 12632 NULL
99396+ctrl_cdev_compat_ioctl_12634 ctrl_cdev_compat_ioctl 3 12634 NULL 98385+ctrl_cdev_compat_ioctl_12634 ctrl_cdev_compat_ioctl 3 12634 NULL
99397+pn_sendmsg_12640 pn_sendmsg 4 12640 NULL 98386+pn_sendmsg_12640 pn_sendmsg 4 12640 NULL
98387+dwc3_link_state_write_12641 dwc3_link_state_write 3 12641 NULL
99398+wb_create_12651 wb_create 1 12651 NULL 98388+wb_create_12651 wb_create 1 12651 NULL
99399+ocfs2_read_block_12659 ocfs2_read_block 0 12659 NULL 98389+ocfs2_read_block_12659 ocfs2_read_block 0 12659 NULL
99400+sel_read_class_12669 sel_read_class 3 12669 NULL nohasharray 98390+sel_read_class_12669 sel_read_class 3 12669 NULL nohasharray
@@ -99402,12 +98392,14 @@ index 0000000..7982a0c
99402+ieee80211_if_read_num_buffered_multicast_12716 ieee80211_if_read_num_buffered_multicast 3 12716 NULL 98392+ieee80211_if_read_num_buffered_multicast_12716 ieee80211_if_read_num_buffered_multicast 3 12716 NULL
99403+ivtv_write_12721 ivtv_write 3 12721 NULL 98393+ivtv_write_12721 ivtv_write 3 12721 NULL
99404+key_rx_spec_read_12736 key_rx_spec_read 3 12736 NULL 98394+key_rx_spec_read_12736 key_rx_spec_read 3 12736 NULL
98395+__mei_cl_async_send_12737 __mei_cl_async_send 3 12737 NULL
99405+__videobuf_alloc_cached_12740 __videobuf_alloc_cached 1 12740 NULL 98396+__videobuf_alloc_cached_12740 __videobuf_alloc_cached 1 12740 NULL
99406+ieee80211_if_read_dot11MeshMaxRetries_12756 ieee80211_if_read_dot11MeshMaxRetries 3 12756 NULL 98397+ieee80211_if_read_dot11MeshMaxRetries_12756 ieee80211_if_read_dot11MeshMaxRetries 3 12756 NULL
99407+listxattr_12769 listxattr 3 12769 NULL 98398+listxattr_12769 listxattr 3 12769 NULL
99408+sctp_ssnmap_init_12772 sctp_ssnmap_init 2-3 12772 NULL 98399+sctp_ssnmap_init_12772 sctp_ssnmap_init 2-3 12772 NULL
99409+ieee80211_rx_mgmt_beacon_12780 ieee80211_rx_mgmt_beacon 3 12780 NULL 98400+ieee80211_rx_mgmt_beacon_12780 ieee80211_rx_mgmt_beacon 3 12780 NULL
99410+platform_create_bundle_12785 platform_create_bundle 4-6 12785 NULL 98401+platform_create_bundle_12785 platform_create_bundle 4-6 12785 NULL
98402+btrfs_remove_free_space_12793 btrfs_remove_free_space 2 12793 NULL
99411+scsi_adjust_queue_depth_12802 scsi_adjust_queue_depth 3 12802 NULL 98403+scsi_adjust_queue_depth_12802 scsi_adjust_queue_depth 3 12802 NULL
99412+xfs_inumbers_fmt_12817 xfs_inumbers_fmt 3 12817 NULL 98404+xfs_inumbers_fmt_12817 xfs_inumbers_fmt 3 12817 NULL
99413+readq_12825 readq 0 12825 NULL 98405+readq_12825 readq 0 12825 NULL
@@ -99431,6 +98423,7 @@ index 0000000..7982a0c
99431+generic_segment_checks_13041 generic_segment_checks 0 13041 NULL 98423+generic_segment_checks_13041 generic_segment_checks 0 13041 NULL
99432+ocfs2_write_begin_13045 ocfs2_write_begin 3-4 13045 NULL 98424+ocfs2_write_begin_13045 ocfs2_write_begin 3-4 13045 NULL
99433+__dn_setsockopt_13060 __dn_setsockopt 5 13060 NULL 98425+__dn_setsockopt_13060 __dn_setsockopt 5 13060 NULL
98426+biovec_create_pool_13079 biovec_create_pool 2 13079 NULL
99434+irq_set_chip_and_handler_13088 irq_set_chip_and_handler 1 13088 NULL 98427+irq_set_chip_and_handler_13088 irq_set_chip_and_handler 1 13088 NULL
99435+xattr_getsecurity_13090 xattr_getsecurity 0 13090 NULL 98428+xattr_getsecurity_13090 xattr_getsecurity 0 13090 NULL
99436+blk_rq_map_sg_13092 blk_rq_map_sg 0 13092 NULL 98429+blk_rq_map_sg_13092 blk_rq_map_sg 0 13092 NULL
@@ -99465,6 +98458,7 @@ index 0000000..7982a0c
99465+lpfc_idiag_mbxacc_get_setup_13282 lpfc_idiag_mbxacc_get_setup 0 13282 NULL 98458+lpfc_idiag_mbxacc_get_setup_13282 lpfc_idiag_mbxacc_get_setup 0 13282 NULL
99466+platform_device_add_resources_13289 platform_device_add_resources 3 13289 NULL 98459+platform_device_add_resources_13289 platform_device_add_resources 3 13289 NULL
99467+i915_drop_caches_write_13308 i915_drop_caches_write 3 13308 NULL 98460+i915_drop_caches_write_13308 i915_drop_caches_write 3 13308 NULL
98461+reexecute_instruction_13321 reexecute_instruction 2 13321 NULL
99468+us122l_ctl_msg_13330 us122l_ctl_msg 8 13330 NULL 98462+us122l_ctl_msg_13330 us122l_ctl_msg 8 13330 NULL
99469+__clone_and_map_data_bio_13334 __clone_and_map_data_bio 4-8 13334 NULL 98463+__clone_and_map_data_bio_13334 __clone_and_map_data_bio 4-8 13334 NULL
99470+kvm_read_nested_guest_page_13337 kvm_read_nested_guest_page 5-2 13337 NULL 98464+kvm_read_nested_guest_page_13337 kvm_read_nested_guest_page 5-2 13337 NULL
@@ -99472,6 +98466,7 @@ index 0000000..7982a0c
99472+mthca_alloc_mtt_range_13371 mthca_alloc_mtt_range 2 13371 NULL 98466+mthca_alloc_mtt_range_13371 mthca_alloc_mtt_range 2 13371 NULL
99473+iso_sched_alloc_13377 iso_sched_alloc 1 13377 NULL nohasharray 98467+iso_sched_alloc_13377 iso_sched_alloc 1 13377 NULL nohasharray
99474+wep_key_not_found_read_13377 wep_key_not_found_read 3 13377 &iso_sched_alloc_13377 98468+wep_key_not_found_read_13377 wep_key_not_found_read 3 13377 &iso_sched_alloc_13377
98469+dis_bypass_write_13388 dis_bypass_write 3 13388 NULL
99475+carl9170_rx_untie_data_13405 carl9170_rx_untie_data 3 13405 NULL 98470+carl9170_rx_untie_data_13405 carl9170_rx_untie_data 3 13405 NULL
99476+sky2_receive_13407 sky2_receive 2 13407 NULL 98471+sky2_receive_13407 sky2_receive 2 13407 NULL
99477+netxen_alloc_sds_rings_13417 netxen_alloc_sds_rings 2 13417 NULL 98472+netxen_alloc_sds_rings_13417 netxen_alloc_sds_rings 2 13417 NULL
@@ -99484,7 +98479,8 @@ index 0000000..7982a0c
99484+core_status_13515 core_status 4 13515 NULL 98479+core_status_13515 core_status 4 13515 NULL
99485+smk_write_mapped_13519 smk_write_mapped 3 13519 NULL 98480+smk_write_mapped_13519 smk_write_mapped 3 13519 NULL
99486+bm_init_13529 bm_init 2 13529 NULL 98481+bm_init_13529 bm_init 2 13529 NULL
99487+non_atomic_pte_lookup_13540 non_atomic_pte_lookup 2 13540 NULL 98482+non_atomic_pte_lookup_13540 non_atomic_pte_lookup 2 13540 NULL nohasharray
98483+SYSC_remap_file_pages_13540 SYSC_remap_file_pages 1 13540 &non_atomic_pte_lookup_13540
99488+ieee80211_if_read_ap_power_level_13558 ieee80211_if_read_ap_power_level 3 13558 NULL 98484+ieee80211_if_read_ap_power_level_13558 ieee80211_if_read_ap_power_level 3 13558 NULL
99489+ubifs_get_idx_gc_leb_13566 ubifs_get_idx_gc_leb 0 13566 NULL 98485+ubifs_get_idx_gc_leb_13566 ubifs_get_idx_gc_leb 0 13566 NULL
99490+sys_madvise_13569 sys_madvise 1 13569 NULL 98486+sys_madvise_13569 sys_madvise 1 13569 NULL
@@ -99509,6 +98505,7 @@ index 0000000..7982a0c
99509+ath6kl_mgmt_powersave_ap_13791 ath6kl_mgmt_powersave_ap 6 13791 NULL 98505+ath6kl_mgmt_powersave_ap_13791 ath6kl_mgmt_powersave_ap 6 13791 NULL
99510+random_read_13815 random_read 3 13815 NULL 98506+random_read_13815 random_read 3 13815 NULL
99511+hsi_register_board_info_13820 hsi_register_board_info 2 13820 NULL 98507+hsi_register_board_info_13820 hsi_register_board_info 2 13820 NULL
98508+___mei_cl_send_13821 ___mei_cl_send 3 13821 NULL
99512+evdev_ioctl_compat_13851 evdev_ioctl_compat 2-3 13851 NULL 98509+evdev_ioctl_compat_13851 evdev_ioctl_compat 2-3 13851 NULL
99513+compat_ip_setsockopt_13870 compat_ip_setsockopt 5 13870 NULL nohasharray 98510+compat_ip_setsockopt_13870 compat_ip_setsockopt 5 13870 NULL nohasharray
99514+alloc_trace_uprobe_13870 alloc_trace_uprobe 3 13870 &compat_ip_setsockopt_13870 98511+alloc_trace_uprobe_13870 alloc_trace_uprobe 3 13870 &compat_ip_setsockopt_13870
@@ -99528,7 +98525,9 @@ index 0000000..7982a0c
99528+bm_block_bits_13981 bm_block_bits 0 13981 NULL nohasharray 98525+bm_block_bits_13981 bm_block_bits 0 13981 NULL nohasharray
99529+dvb_demux_read_13981 dvb_demux_read 3 13981 &bm_block_bits_13981 98526+dvb_demux_read_13981 dvb_demux_read 3 13981 &bm_block_bits_13981
99530+btrfs_get_blocks_direct_14016 btrfs_get_blocks_direct 2 14016 NULL 98527+btrfs_get_blocks_direct_14016 btrfs_get_blocks_direct 2 14016 NULL
98528+dmi_format_ids_14018 dmi_format_ids 2 14018 NULL
99531+_rtl92s_firmware_downloadcode_14021 _rtl92s_firmware_downloadcode 3 14021 NULL 98529+_rtl92s_firmware_downloadcode_14021 _rtl92s_firmware_downloadcode 3 14021 NULL
98530+iscsi_create_flashnode_conn_14022 iscsi_create_flashnode_conn 4 14022 NULL
99532+dvb_usercopy_14036 dvb_usercopy 2 14036 NULL 98531+dvb_usercopy_14036 dvb_usercopy 2 14036 NULL
99533+read_def_modal_eeprom_14041 read_def_modal_eeprom 3 14041 NULL 98532+read_def_modal_eeprom_14041 read_def_modal_eeprom 3 14041 NULL
99534+ieee80211_if_fmt_aid_14055 ieee80211_if_fmt_aid 3 14055 NULL 98533+ieee80211_if_fmt_aid_14055 ieee80211_if_fmt_aid 3 14055 NULL
@@ -99539,6 +98538,7 @@ index 0000000..7982a0c
99539+nlmsg_len_14115 nlmsg_len 0 14115 NULL 98538+nlmsg_len_14115 nlmsg_len 0 14115 NULL
99540+vfio_fops_compat_ioctl_14130 vfio_fops_compat_ioctl 3 14130 NULL 98539+vfio_fops_compat_ioctl_14130 vfio_fops_compat_ioctl 3 14130 NULL
99541+ntfs_rl_replace_14136 ntfs_rl_replace 2-4 14136 NULL 98540+ntfs_rl_replace_14136 ntfs_rl_replace 2-4 14136 NULL
98541+isku_sysfs_read_light_14140 isku_sysfs_read_light 6 14140 NULL
99542+em_canid_change_14150 em_canid_change 3 14150 NULL 98542+em_canid_change_14150 em_canid_change 3 14150 NULL
99543+gsm_dlci_data_14155 gsm_dlci_data 3 14155 NULL 98543+gsm_dlci_data_14155 gsm_dlci_data 3 14155 NULL
99544+print_input_mask_14168 print_input_mask 3-0 14168 NULL 98544+print_input_mask_14168 print_input_mask 3-0 14168 NULL
@@ -99577,6 +98577,7 @@ index 0000000..7982a0c
99577+drm_vmalloc_dma_14550 drm_vmalloc_dma 1 14550 NULL 98577+drm_vmalloc_dma_14550 drm_vmalloc_dma 1 14550 NULL
99578+usb_dump_desc_14553 usb_dump_desc 0 14553 NULL 98578+usb_dump_desc_14553 usb_dump_desc 0 14553 NULL
99579+qp_host_alloc_queue_14566 qp_host_alloc_queue 1 14566 NULL 98579+qp_host_alloc_queue_14566 qp_host_alloc_queue 1 14566 NULL
98580+SyS_setdomainname_14569 SyS_setdomainname 2 14569 NULL
99580+remap_to_origin_then_cache_14583 remap_to_origin_then_cache 3 14583 NULL 98581+remap_to_origin_then_cache_14583 remap_to_origin_then_cache 3 14583 NULL
99581+idmap_pipe_downcall_14591 idmap_pipe_downcall 3 14591 NULL 98582+idmap_pipe_downcall_14591 idmap_pipe_downcall 3 14591 NULL
99582+ceph_osdc_alloc_request_14597 ceph_osdc_alloc_request 3 14597 NULL 98583+ceph_osdc_alloc_request_14597 ceph_osdc_alloc_request 3 14597 NULL
@@ -99586,6 +98587,8 @@ index 0000000..7982a0c
99586+pipeline_enc_tx_stat_fifo_int_read_14680 pipeline_enc_tx_stat_fifo_int_read 3 14680 NULL 98587+pipeline_enc_tx_stat_fifo_int_read_14680 pipeline_enc_tx_stat_fifo_int_read 3 14680 NULL
99587+ieee80211_if_fmt_rc_rateidx_mask_2ghz_14683 ieee80211_if_fmt_rc_rateidx_mask_2ghz 3 14683 NULL 98588+ieee80211_if_fmt_rc_rateidx_mask_2ghz_14683 ieee80211_if_fmt_rc_rateidx_mask_2ghz 3 14683 NULL
99588+tsi148_master_set_14685 tsi148_master_set 4 14685 NULL 98589+tsi148_master_set_14685 tsi148_master_set 4 14685 NULL
98590+SyS_fsetxattr_14702 SyS_fsetxattr 4 14702 NULL
98591+persistent_ram_ecc_string_14704 persistent_ram_ecc_string 0 14704 NULL
99589+u_audio_playback_14709 u_audio_playback 3 14709 NULL 98592+u_audio_playback_14709 u_audio_playback 3 14709 NULL
99590+get_bio_block_14714 get_bio_block 0 14714 NULL 98593+get_bio_block_14714 get_bio_block 0 14714 NULL
99591+vfd_write_14717 vfd_write 3 14717 NULL 98594+vfd_write_14717 vfd_write 3 14717 NULL
@@ -99600,6 +98603,7 @@ index 0000000..7982a0c
99600+hpet_readl_14801 hpet_readl 0 14801 NULL nohasharray 98603+hpet_readl_14801 hpet_readl 0 14801 NULL nohasharray
99601+snd_als300_gcr_read_14801 snd_als300_gcr_read 0 14801 &hpet_readl_14801 98604+snd_als300_gcr_read_14801 snd_als300_gcr_read 0 14801 &hpet_readl_14801
99602+bcma_scan_read32_14802 bcma_scan_read32 0 14802 NULL 98605+bcma_scan_read32_14802 bcma_scan_read32 0 14802 NULL
98606+do_tune_cpucache_14828 do_tune_cpucache 2 14828 NULL
99603+__mutex_fastpath_lock_retval_14844 __mutex_fastpath_lock_retval 0 14844 NULL 98607+__mutex_fastpath_lock_retval_14844 __mutex_fastpath_lock_retval 0 14844 NULL
99604+mrp_attr_create_14853 mrp_attr_create 3 14853 NULL 98608+mrp_attr_create_14853 mrp_attr_create 3 14853 NULL
99605+lcd_write_14857 lcd_write 3 14857 NULL nohasharray 98609+lcd_write_14857 lcd_write 3 14857 NULL nohasharray
@@ -99608,6 +98612,7 @@ index 0000000..7982a0c
99608+sriov_enable_migration_14889 sriov_enable_migration 2 14889 NULL 98612+sriov_enable_migration_14889 sriov_enable_migration 2 14889 NULL
99609+acpi_os_allocate_14892 acpi_os_allocate 1 14892 NULL 98613+acpi_os_allocate_14892 acpi_os_allocate 1 14892 NULL
99610+unifi_read_14899 unifi_read 3 14899 NULL 98614+unifi_read_14899 unifi_read 3 14899 NULL
98615+SYSC_readv_14901 SYSC_readv 3 14901 NULL
99611+krealloc_14908 krealloc 2 14908 NULL 98616+krealloc_14908 krealloc 2 14908 NULL
99612+regmap_irq_get_virq_14910 regmap_irq_get_virq 2 14910 NULL 98617+regmap_irq_get_virq_14910 regmap_irq_get_virq 2 14910 NULL
99613+__arch_hweight64_14923 __arch_hweight64 0 14923 NULL nohasharray 98618+__arch_hweight64_14923 __arch_hweight64 0 14923 NULL nohasharray
@@ -99618,6 +98623,7 @@ index 0000000..7982a0c
99618+mce_flush_rx_buffer_14976 mce_flush_rx_buffer 2 14976 NULL 98623+mce_flush_rx_buffer_14976 mce_flush_rx_buffer 2 14976 NULL
99619+setkey_14987 setkey 3 14987 NULL nohasharray 98624+setkey_14987 setkey 3 14987 NULL nohasharray
99620+gpio_twl4030_write_14987 gpio_twl4030_write 1 14987 &setkey_14987 98625+gpio_twl4030_write_14987 gpio_twl4030_write 1 14987 &setkey_14987
98626+xfs_dinode_size_14996 xfs_dinode_size 0 14996 NULL
99621+vmap_15025 vmap 2 15025 NULL 98627+vmap_15025 vmap 2 15025 NULL
99622+blk_integrity_tuple_size_15027 blk_integrity_tuple_size 0 15027 NULL 98628+blk_integrity_tuple_size_15027 blk_integrity_tuple_size 0 15027 NULL
99623+irq_get_next_irq_15053 irq_get_next_irq 1 15053 NULL 98629+irq_get_next_irq_15053 irq_get_next_irq 1 15053 NULL
@@ -99625,15 +98631,18 @@ index 0000000..7982a0c
99625+ieee80211_if_read_uapsd_max_sp_len_15067 ieee80211_if_read_uapsd_max_sp_len 3 15067 NULL 98631+ieee80211_if_read_uapsd_max_sp_len_15067 ieee80211_if_read_uapsd_max_sp_len 3 15067 NULL
99626+nfs4_write_cached_acl_15070 nfs4_write_cached_acl 4 15070 NULL 98632+nfs4_write_cached_acl_15070 nfs4_write_cached_acl 4 15070 NULL
99627+ntfs_copy_from_user_15072 ntfs_copy_from_user 3-5 15072 NULL 98633+ntfs_copy_from_user_15072 ntfs_copy_from_user 3-5 15072 NULL
98634+compat_SyS_preadv_15105 compat_SyS_preadv 3 15105 NULL
99628+hex_dump_to_buffer_15121 hex_dump_to_buffer 6 15121 NULL 98635+hex_dump_to_buffer_15121 hex_dump_to_buffer 6 15121 NULL
99629+start_port_15124 start_port 0 15124 NULL 98636+start_port_15124 start_port 0 15124 NULL
99630+memchr_15126 memchr 0 15126 NULL 98637+memchr_15126 memchr 0 15126 NULL
99631+ipwireless_ppp_mru_15153 ipwireless_ppp_mru 0 15153 NULL 98638+ipwireless_ppp_mru_15153 ipwireless_ppp_mru 0 15153 NULL
99632+self_check_not_bad_15175 self_check_not_bad 0 15175 NULL 98639+self_check_not_bad_15175 self_check_not_bad 0 15175 NULL
98640+SYSC_setdomainname_15180 SYSC_setdomainname 2 15180 NULL
99633+iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL 98641+iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL
99634+reserve_resources_15194 reserve_resources 3 15194 NULL 98642+reserve_resources_15194 reserve_resources 3 15194 NULL
99635+bfad_debugfs_write_regrd_15218 bfad_debugfs_write_regrd 3 15218 NULL 98643+bfad_debugfs_write_regrd_15218 bfad_debugfs_write_regrd 3 15218 NULL
99636+il_dbgfs_rx_stats_read_15243 il_dbgfs_rx_stats_read 3 15243 NULL 98644+il_dbgfs_rx_stats_read_15243 il_dbgfs_rx_stats_read 3 15243 NULL
98645+div64_u64_15263 div64_u64 0-1-2 15263 NULL
99637+compat_raw_ioctl_15290 compat_raw_ioctl 3 15290 NULL 98646+compat_raw_ioctl_15290 compat_raw_ioctl 3 15290 NULL
99638+sys_connect_15291 sys_connect 3 15291 NULL nohasharray 98647+sys_connect_15291 sys_connect 3 15291 NULL nohasharray
99639+xlate_dev_mem_ptr_15291 xlate_dev_mem_ptr 1 15291 &sys_connect_15291 98648+xlate_dev_mem_ptr_15291 xlate_dev_mem_ptr 1 15291 &sys_connect_15291
@@ -99694,7 +98703,8 @@ index 0000000..7982a0c
99694+gx1_read_conf_reg_15817 gx1_read_conf_reg 0 15817 NULL nohasharray 98703+gx1_read_conf_reg_15817 gx1_read_conf_reg 0 15817 NULL nohasharray
99695+nameseq_list_15817 nameseq_list 3 15817 &gx1_read_conf_reg_15817 nohasharray 98704+nameseq_list_15817 nameseq_list 3 15817 &gx1_read_conf_reg_15817 nohasharray
99696+gnttab_expand_15817 gnttab_expand 1 15817 &nameseq_list_15817 98705+gnttab_expand_15817 gnttab_expand 1 15817 &nameseq_list_15817
99697+afs_proc_rootcell_write_15822 afs_proc_rootcell_write 3 15822 NULL 98706+afs_proc_rootcell_write_15822 afs_proc_rootcell_write 3 15822 NULL nohasharray
98707+firmware_upload_15822 firmware_upload 3 15822 &afs_proc_rootcell_write_15822
99698+brcmf_sdbrcm_died_dump_15841 brcmf_sdbrcm_died_dump 3 15841 NULL 98708+brcmf_sdbrcm_died_dump_15841 brcmf_sdbrcm_died_dump 3 15841 NULL
99699+table_size_15851 table_size 0-1-2 15851 NULL 98709+table_size_15851 table_size 0-1-2 15851 NULL
99700+ubi_io_write_15870 ubi_io_write 5-4 15870 NULL nohasharray 98710+ubi_io_write_15870 ubi_io_write 5-4 15870 NULL nohasharray
@@ -99707,6 +98717,7 @@ index 0000000..7982a0c
99707+lpfc_idiag_drbacc_read_15948 lpfc_idiag_drbacc_read 3 15948 NULL 98717+lpfc_idiag_drbacc_read_15948 lpfc_idiag_drbacc_read 3 15948 NULL
99708+snd_pcm_lib_read_transfer_15952 snd_pcm_lib_read_transfer 4-2-5 15952 NULL 98718+snd_pcm_lib_read_transfer_15952 snd_pcm_lib_read_transfer 4-2-5 15952 NULL
99709+remap_pci_mem_15966 remap_pci_mem 1-2 15966 NULL 98719+remap_pci_mem_15966 remap_pci_mem 1-2 15966 NULL
98720+tfrc_calc_x_15975 tfrc_calc_x 1-2 15975 NULL
99710+frame_alloc_15981 frame_alloc 4 15981 NULL 98721+frame_alloc_15981 frame_alloc 4 15981 NULL
99711+alloc_vm_area_15989 alloc_vm_area 1 15989 NULL 98722+alloc_vm_area_15989 alloc_vm_area 1 15989 NULL
99712+hdpvr_register_videodev_16010 hdpvr_register_videodev 3 16010 NULL 98723+hdpvr_register_videodev_16010 hdpvr_register_videodev 3 16010 NULL
@@ -99725,6 +98736,7 @@ index 0000000..7982a0c
99725+bnx2i_get_cid_num_16166 bnx2i_get_cid_num 0 16166 NULL 98736+bnx2i_get_cid_num_16166 bnx2i_get_cid_num 0 16166 NULL
99726+mapping_level_16188 mapping_level 2 16188 NULL 98737+mapping_level_16188 mapping_level 2 16188 NULL
99727+cipso_v4_map_cat_rng_hton_16203 cipso_v4_map_cat_rng_hton 0 16203 NULL 98738+cipso_v4_map_cat_rng_hton_16203 cipso_v4_map_cat_rng_hton 0 16203 NULL
98739+SyS_pselect6_16210 SyS_pselect6 1 16210 NULL
99728+create_table_16213 create_table 2 16213 NULL 98740+create_table_16213 create_table 2 16213 NULL
99729+atomic_read_file_16227 atomic_read_file 3 16227 NULL 98741+atomic_read_file_16227 atomic_read_file 3 16227 NULL
99730+BcmGetSectionValStartOffset_16235 BcmGetSectionValStartOffset 0 16235 NULL 98742+BcmGetSectionValStartOffset_16235 BcmGetSectionValStartOffset 0 16235 NULL
@@ -99741,8 +98753,11 @@ index 0000000..7982a0c
99741+mirror_status_16283 mirror_status 5 16283 &account_16283 98753+mirror_status_16283 mirror_status 5 16283 &account_16283
99742+retry_instruction_16285 retry_instruction 2 16285 NULL 98754+retry_instruction_16285 retry_instruction 2 16285 NULL
99743+stk_allocate_buffers_16291 stk_allocate_buffers 2 16291 NULL 98755+stk_allocate_buffers_16291 stk_allocate_buffers 2 16291 NULL
98756+rbd_segment_offset_16293 rbd_segment_offset 0-2 16293 NULL
98757+tfrc_invert_loss_event_rate_16295 tfrc_invert_loss_event_rate 1 16295 NULL
99744+rsc_mgr_init_16299 rsc_mgr_init 3 16299 NULL 98758+rsc_mgr_init_16299 rsc_mgr_init 3 16299 NULL
99745+wb_map_16301 wb_map 2 16301 NULL 98759+wb_map_16301 wb_map 2 16301 NULL
98760+ext4_blocks_count_16320 ext4_blocks_count 0 16320 NULL
99746+vmw_cursor_update_image_16332 vmw_cursor_update_image 3-4 16332 NULL 98761+vmw_cursor_update_image_16332 vmw_cursor_update_image 3-4 16332 NULL
99747+total_ps_buffered_read_16365 total_ps_buffered_read 3 16365 NULL 98762+total_ps_buffered_read_16365 total_ps_buffered_read 3 16365 NULL
99748+iscsi_tcp_conn_setup_16376 iscsi_tcp_conn_setup 2 16376 NULL 98763+iscsi_tcp_conn_setup_16376 iscsi_tcp_conn_setup 2 16376 NULL
@@ -99772,6 +98787,7 @@ index 0000000..7982a0c
99772+drm_malloc_ab_16831 drm_malloc_ab 1-2 16831 NULL 98787+drm_malloc_ab_16831 drm_malloc_ab 1-2 16831 NULL
99773+scsi_mode_sense_16835 scsi_mode_sense 5 16835 NULL 98788+scsi_mode_sense_16835 scsi_mode_sense 5 16835 NULL
99774+hfsplus_min_io_size_16859 hfsplus_min_io_size 0 16859 NULL 98789+hfsplus_min_io_size_16859 hfsplus_min_io_size 0 16859 NULL
98790+vfio_pci_rw_16861 vfio_pci_rw 3 16861 NULL
99775+alloc_idx_lebs_16872 alloc_idx_lebs 2 16872 NULL 98791+alloc_idx_lebs_16872 alloc_idx_lebs 2 16872 NULL
99776+carl9170_debugfs_ampdu_state_read_16873 carl9170_debugfs_ampdu_state_read 3 16873 NULL 98792+carl9170_debugfs_ampdu_state_read_16873 carl9170_debugfs_ampdu_state_read 3 16873 NULL
99777+st_write_16874 st_write 3 16874 NULL 98793+st_write_16874 st_write 3 16874 NULL
@@ -99826,6 +98842,7 @@ index 0000000..7982a0c
99826+_fd_dma_mem_free_17406 _fd_dma_mem_free 1 17406 NULL 98842+_fd_dma_mem_free_17406 _fd_dma_mem_free 1 17406 NULL
99827+lpfc_debugfs_dif_err_write_17424 lpfc_debugfs_dif_err_write 3 17424 NULL 98843+lpfc_debugfs_dif_err_write_17424 lpfc_debugfs_dif_err_write 3 17424 NULL
99828+sta_connected_time_read_17435 sta_connected_time_read 3 17435 NULL 98844+sta_connected_time_read_17435 sta_connected_time_read 3 17435 NULL
98845+SYSC_fcntl_17441 SYSC_fcntl 3 17441 NULL
99829+nla_get_u32_17455 nla_get_u32 0 17455 NULL 98846+nla_get_u32_17455 nla_get_u32 0 17455 NULL
99830+__ref_totlen_17461 __ref_totlen 0 17461 NULL 98847+__ref_totlen_17461 __ref_totlen 0 17461 NULL
99831+compat_cmd_17465 compat_cmd 2 17465 NULL 98848+compat_cmd_17465 compat_cmd 2 17465 NULL
@@ -99845,16 +98862,22 @@ index 0000000..7982a0c
99845+ocfs2_mark_extent_written_17615 ocfs2_mark_extent_written 6 17615 NULL 98862+ocfs2_mark_extent_written_17615 ocfs2_mark_extent_written 6 17615 NULL
99846+ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_17618 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout 3 17618 NULL 98863+ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_17618 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout 3 17618 NULL
99847+twl4030_set_gpio_direction_17645 twl4030_set_gpio_direction 1 17645 NULL 98864+twl4030_set_gpio_direction_17645 twl4030_set_gpio_direction 1 17645 NULL
98865+SYSC_migrate_pages_17657 SYSC_migrate_pages 2 17657 NULL
99848+packet_setsockopt_17662 packet_setsockopt 5 17662 NULL nohasharray 98866+packet_setsockopt_17662 packet_setsockopt 5 17662 NULL nohasharray
99849+ubi_io_read_data_17662 ubi_io_read_data 0 17662 &packet_setsockopt_17662 98867+ubi_io_read_data_17662 ubi_io_read_data 0 17662 &packet_setsockopt_17662
99850+pwr_enable_ps_read_17686 pwr_enable_ps_read 3 17686 NULL 98868+pwr_enable_ps_read_17686 pwr_enable_ps_read 3 17686 NULL
99851+gfn_to_pfn_memslot_17693 gfn_to_pfn_memslot 2 17693 NULL 98869+gfn_to_pfn_memslot_17693 gfn_to_pfn_memslot 2 17693 NULL
99852+__einj_error_trigger_17707 __einj_error_trigger 1 17707 NULL nohasharray 98870+__einj_error_trigger_17707 __einj_error_trigger 1 17707 NULL nohasharray
99853+venus_rename_17707 venus_rename 5-4 17707 &__einj_error_trigger_17707 98871+venus_rename_17707 venus_rename 5-4 17707 &__einj_error_trigger_17707
98872+isku_sysfs_write_keys_function_17726 isku_sysfs_write_keys_function 6 17726 NULL
99854+exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL 98873+exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL
99855+sctpprobe_read_17741 sctpprobe_read 3 17741 NULL 98874+sctpprobe_read_17741 sctpprobe_read 3 17741 NULL
99856+mark_unsafe_pages_17759 mark_unsafe_pages 0 17759 NULL 98875+mark_unsafe_pages_17759 mark_unsafe_pages 0 17759 NULL
99857+brcmf_usb_attach_17766 brcmf_usb_attach 2-3 17766 NULL 98876+brcmf_usb_attach_17766 brcmf_usb_attach 2-3 17766 NULL
98877+dtf_read_run_17768 dtf_read_run 3 17768 NULL
98878+brcmf_sdio_chip_verifynvram_17776 brcmf_sdio_chip_verifynvram 4 17776 NULL
98879+hash_ipport6_expire_17784 hash_ipport6_expire 3 17784 NULL
98880+perf_clock_17787 perf_clock 0 17787 NULL
99858+ubifs_leb_change_17789 ubifs_leb_change 4 17789 NULL 98881+ubifs_leb_change_17789 ubifs_leb_change 4 17789 NULL
99859+_snd_pcm_lib_alloc_vmalloc_buffer_17820 _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 NULL 98882+_snd_pcm_lib_alloc_vmalloc_buffer_17820 _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 NULL
99860+gnet_stats_copy_app_17821 gnet_stats_copy_app 3 17821 NULL 98883+gnet_stats_copy_app_17821 gnet_stats_copy_app 3 17821 NULL
@@ -99890,7 +98913,9 @@ index 0000000..7982a0c
99890+hex_byte_pack_18064 hex_byte_pack 0 18064 NULL 98913+hex_byte_pack_18064 hex_byte_pack 0 18064 NULL
99891+packet_came_18072 packet_came 3 18072 NULL 98914+packet_came_18072 packet_came 3 18072 NULL
99892+kvm_read_guest_page_18074 kvm_read_guest_page 5-2 18074 NULL 98915+kvm_read_guest_page_18074 kvm_read_guest_page 5-2 18074 NULL
98916+SYSC_pselect6_18076 SYSC_pselect6 1 18076 NULL
99893+get_vm_area_18080 get_vm_area 1 18080 NULL 98917+get_vm_area_18080 get_vm_area 1 18080 NULL
98918+SYSC_semtimedop_18091 SYSC_semtimedop 3 18091 NULL
99894+mpi_alloc_18094 mpi_alloc 1 18094 NULL 98919+mpi_alloc_18094 mpi_alloc 1 18094 NULL
99895+dfs_file_read_18116 dfs_file_read 3 18116 NULL 98920+dfs_file_read_18116 dfs_file_read 3 18116 NULL
99896+svc_getnl_18120 svc_getnl 0 18120 NULL 98921+svc_getnl_18120 svc_getnl 0 18120 NULL
@@ -99903,6 +98928,7 @@ index 0000000..7982a0c
99903+gsm_control_message_18209 gsm_control_message 4 18209 NULL 98928+gsm_control_message_18209 gsm_control_message 4 18209 NULL
99904+do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5 18215 NULL 98929+do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5 18215 NULL
99905+gnttab_alloc_grant_references_18240 gnttab_alloc_grant_references 1 18240 NULL 98930+gnttab_alloc_grant_references_18240 gnttab_alloc_grant_references 1 18240 NULL
98931+alloc_trace_uprobe_18247 alloc_trace_uprobe 3 18247 NULL
99906+snd_ctl_ioctl_compat_18250 snd_ctl_ioctl_compat 3 18250 NULL 98932+snd_ctl_ioctl_compat_18250 snd_ctl_ioctl_compat 3 18250 NULL
99907+qdisc_class_hash_alloc_18262 qdisc_class_hash_alloc 1 18262 NULL 98933+qdisc_class_hash_alloc_18262 qdisc_class_hash_alloc 1 18262 NULL
99908+gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL 98934+gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL
@@ -99920,13 +98946,17 @@ index 0000000..7982a0c
99920+bio_integrity_advance_18324 bio_integrity_advance 2 18324 NULL 98946+bio_integrity_advance_18324 bio_integrity_advance 2 18324 NULL
99921+pwr_power_save_off_read_18355 pwr_power_save_off_read 3 18355 NULL 98947+pwr_power_save_off_read_18355 pwr_power_save_off_read 3 18355 NULL
99922+xlbd_reserve_minors_18365 xlbd_reserve_minors 1-2 18365 NULL 98948+xlbd_reserve_minors_18365 xlbd_reserve_minors 1-2 18365 NULL
98949+SyS_process_vm_readv_18366 SyS_process_vm_readv 3-5 18366 NULL
99923+ep_io_18367 ep_io 0 18367 NULL 98950+ep_io_18367 ep_io 0 18367 NULL
99924+qib_user_sdma_num_pages_18371 qib_user_sdma_num_pages 0 18371 NULL 98951+qib_user_sdma_num_pages_18371 qib_user_sdma_num_pages 0 18371 NULL
98952+ci_role_write_18388 ci_role_write 3 18388 NULL
99925+__video_register_device_18399 __video_register_device 3 18399 NULL 98953+__video_register_device_18399 __video_register_device 3 18399 NULL
99926+adis16136_show_serial_18402 adis16136_show_serial 3 18402 NULL 98954+hash_ip4_expire_18402 hash_ip4_expire 3 18402 NULL nohasharray
98955+adis16136_show_serial_18402 adis16136_show_serial 3 18402 &hash_ip4_expire_18402
99927+crystalhd_user_data_18407 crystalhd_user_data 3 18407 NULL 98956+crystalhd_user_data_18407 crystalhd_user_data 3 18407 NULL
99928+usbnet_write_cmd_nopm_18426 usbnet_write_cmd_nopm 7 18426 NULL 98957+usbnet_write_cmd_nopm_18426 usbnet_write_cmd_nopm 7 18426 NULL
99929+batadv_orig_node_add_if_18433 batadv_orig_node_add_if 2 18433 NULL 98958+batadv_orig_node_add_if_18433 batadv_orig_node_add_if 2 18433 NULL nohasharray
98959+iscsi_create_flashnode_sess_18433 iscsi_create_flashnode_sess 4 18433 &batadv_orig_node_add_if_18433
99930+snd_hda_get_connections_18437 snd_hda_get_connections 0 18437 NULL 98960+snd_hda_get_connections_18437 snd_hda_get_connections 0 18437 NULL
99931+fuse_perform_write_18457 fuse_perform_write 4 18457 NULL 98961+fuse_perform_write_18457 fuse_perform_write 4 18457 NULL
99932+regset_tls_set_18459 regset_tls_set 4 18459 NULL 98962+regset_tls_set_18459 regset_tls_set 4 18459 NULL
@@ -99942,7 +98972,8 @@ index 0000000..7982a0c
99942+debug_output_18575 debug_output 3 18575 NULL 98972+debug_output_18575 debug_output 3 18575 NULL
99943+check_lpt_type_18577 check_lpt_type 0 18577 NULL 98973+check_lpt_type_18577 check_lpt_type 0 18577 NULL
99944+__netdev_alloc_skb_18595 __netdev_alloc_skb 2 18595 NULL 98974+__netdev_alloc_skb_18595 __netdev_alloc_skb 2 18595 NULL
99945+filemap_fdatawait_range_18600 filemap_fdatawait_range 0 18600 NULL 98975+filemap_fdatawait_range_18600 filemap_fdatawait_range 0 18600 NULL nohasharray
98976+slabinfo_write_18600 slabinfo_write 3 18600 &filemap_fdatawait_range_18600
99946+iowarrior_write_18604 iowarrior_write 3 18604 NULL 98977+iowarrior_write_18604 iowarrior_write 3 18604 NULL
99947+batadv_arp_get_type_18609 batadv_arp_get_type 3 18609 NULL 98978+batadv_arp_get_type_18609 batadv_arp_get_type 3 18609 NULL
99948+from_buffer_18625 from_buffer 3 18625 NULL 98979+from_buffer_18625 from_buffer 3 18625 NULL
@@ -99951,9 +98982,11 @@ index 0000000..7982a0c
99951+unmap_page_18665 unmap_page 2-3 18665 NULL 98982+unmap_page_18665 unmap_page 2-3 18665 NULL
99952+xfs_iext_insert_18667 xfs_iext_insert 3 18667 NULL 98983+xfs_iext_insert_18667 xfs_iext_insert 3 18667 NULL
99953+replay_log_leb_18704 replay_log_leb 3 18704 NULL 98984+replay_log_leb_18704 replay_log_leb 3 18704 NULL
99954+iwl_dbgfs_rx_handlers_read_18708 iwl_dbgfs_rx_handlers_read 3 18708 NULL 98985+unlocked_compat_ipmi_ioctl_18708 unlocked_compat_ipmi_ioctl 3 18708 NULL nohasharray
98986+iwl_dbgfs_rx_handlers_read_18708 iwl_dbgfs_rx_handlers_read 3 18708 &unlocked_compat_ipmi_ioctl_18708
99955+ceph_alloc_page_vector_18710 ceph_alloc_page_vector 1 18710 NULL 98987+ceph_alloc_page_vector_18710 ceph_alloc_page_vector 1 18710 NULL
99956+ocfs2_trim_extent_18711 ocfs2_trim_extent 4-3 18711 NULL 98988+ocfs2_trim_extent_18711 ocfs2_trim_extent 4-3 18711 NULL
98989+compat_SyS_writev_18712 compat_SyS_writev 3 18712 NULL
99957+blk_rq_bytes_18715 blk_rq_bytes 0 18715 NULL 98990+blk_rq_bytes_18715 blk_rq_bytes 0 18715 NULL
99958+snd_als4k_gcr_read_addr_18741 snd_als4k_gcr_read_addr 0 18741 NULL 98991+snd_als4k_gcr_read_addr_18741 snd_als4k_gcr_read_addr 0 18741 NULL
99959+o2hb_debug_create_18744 o2hb_debug_create 4 18744 NULL 98992+o2hb_debug_create_18744 o2hb_debug_create 4 18744 NULL
@@ -99962,6 +98995,7 @@ index 0000000..7982a0c
99962+md_compat_ioctl_18764 md_compat_ioctl 4 18764 NULL 98995+md_compat_ioctl_18764 md_compat_ioctl 4 18764 NULL
99963+read_file_dump_nfcal_18766 read_file_dump_nfcal 3 18766 NULL 98996+read_file_dump_nfcal_18766 read_file_dump_nfcal 3 18766 NULL
99964+ffs_epfile_read_18775 ffs_epfile_read 3 18775 NULL 98997+ffs_epfile_read_18775 ffs_epfile_read 3 18775 NULL
98998+SyS_lsetxattr_18776 SyS_lsetxattr 4 18776 NULL
99965+alloc_fcdev_18780 alloc_fcdev 1 18780 NULL 98999+alloc_fcdev_18780 alloc_fcdev 1 18780 NULL
99966+fat_compat_dir_ioctl_18800 fat_compat_dir_ioctl 3 18800 NULL 99000+fat_compat_dir_ioctl_18800 fat_compat_dir_ioctl 3 18800 NULL
99967+ieee80211_auth_challenge_18810 ieee80211_auth_challenge 3 18810 NULL 99001+ieee80211_auth_challenge_18810 ieee80211_auth_challenge 3 18810 NULL
@@ -99978,6 +99012,7 @@ index 0000000..7982a0c
99978+ceph_setxattr_18913 ceph_setxattr 4 18913 NULL 99012+ceph_setxattr_18913 ceph_setxattr 4 18913 NULL
99979+mangle_packet_18920 mangle_packet 7-9 18920 NULL 99013+mangle_packet_18920 mangle_packet 7-9 18920 NULL
99980+snapshot_write_next_18937 snapshot_write_next 0 18937 NULL 99014+snapshot_write_next_18937 snapshot_write_next 0 18937 NULL
99015+regcache_sync_block_18963 regcache_sync_block 3-4 18963 NULL
99981+__nla_reserve_18974 __nla_reserve 3 18974 NULL 99016+__nla_reserve_18974 __nla_reserve 3 18974 NULL
99982+gfn_to_pfn_atomic_18981 gfn_to_pfn_atomic 2 18981 NULL 99017+gfn_to_pfn_atomic_18981 gfn_to_pfn_atomic 2 18981 NULL
99983+find_dirtiest_idx_leb_19001 find_dirtiest_idx_leb 0 19001 NULL 99018+find_dirtiest_idx_leb_19001 find_dirtiest_idx_leb 0 19001 NULL
@@ -99989,6 +99024,8 @@ index 0000000..7982a0c
99989+drm_fb_helper_init_19044 drm_fb_helper_init 3-4 19044 NULL 99024+drm_fb_helper_init_19044 drm_fb_helper_init 3-4 19044 NULL
99990+create_gpadl_header_19064 create_gpadl_header 2 19064 NULL 99025+create_gpadl_header_19064 create_gpadl_header 2 19064 NULL
99991+ieee80211_key_alloc_19065 ieee80211_key_alloc 3 19065 NULL 99026+ieee80211_key_alloc_19065 ieee80211_key_alloc 3 19065 NULL
99027+msix_map_region_19072 msix_map_region 2 19072 NULL
99028+ceph_create_snap_context_19082 ceph_create_snap_context 1 19082 NULL
99992+sys_process_vm_readv_19090 sys_process_vm_readv 3-5 19090 NULL nohasharray 99029+sys_process_vm_readv_19090 sys_process_vm_readv 3-5 19090 NULL nohasharray
99993+brcmf_usbdev_qinit_19090 brcmf_usbdev_qinit 2 19090 &sys_process_vm_readv_19090 99030+brcmf_usbdev_qinit_19090 brcmf_usbdev_qinit 2 19090 &sys_process_vm_readv_19090
99994+sta_last_seq_ctrl_read_19106 sta_last_seq_ctrl_read 3 19106 NULL 99031+sta_last_seq_ctrl_read_19106 sta_last_seq_ctrl_read 3 19106 NULL
@@ -100016,11 +99053,14 @@ index 0000000..7982a0c
100016+gfn_to_gpa_19320 gfn_to_gpa 0-1 19320 NULL 99053+gfn_to_gpa_19320 gfn_to_gpa 0-1 19320 NULL
100017+debug_read_19322 debug_read 3 19322 NULL 99054+debug_read_19322 debug_read 3 19322 NULL
100018+cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 NULL 99055+cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 NULL
99056+closure_sub_19359 closure_sub 2 19359 NULL
100019+read_zero_19366 read_zero 3 19366 NULL 99057+read_zero_19366 read_zero 3 19366 NULL
100020+interpret_user_input_19393 interpret_user_input 2 19393 NULL 99058+interpret_user_input_19393 interpret_user_input 2 19393 NULL
99059+sync_fill_pt_info_19397 sync_fill_pt_info 0 19397 NULL
100021+get_n_events_by_type_19401 get_n_events_by_type 0 19401 NULL 99060+get_n_events_by_type_19401 get_n_events_by_type 0 19401 NULL
100022+dvbdmx_write_19423 dvbdmx_write 3 19423 NULL 99061+dvbdmx_write_19423 dvbdmx_write 3 19423 NULL
100023+__phys_addr_19434 __phys_addr 0 19434 NULL 99062+__phys_addr_19434 __phys_addr 0 19434 NULL
99063+SyS_sched_getaffinity_19444 SyS_sched_getaffinity 2 19444 NULL
100024+xfrm_alg_auth_len_19454 xfrm_alg_auth_len 0 19454 NULL 99064+xfrm_alg_auth_len_19454 xfrm_alg_auth_len 0 19454 NULL
100025+hpet_compat_ioctl_19455 hpet_compat_ioctl 3 19455 NULL 99065+hpet_compat_ioctl_19455 hpet_compat_ioctl 3 19455 NULL
100026+gnet_stats_copy_19458 gnet_stats_copy 4 19458 NULL 99066+gnet_stats_copy_19458 gnet_stats_copy 4 19458 NULL
@@ -100039,10 +99079,12 @@ index 0000000..7982a0c
100039+bm_status_read_19583 bm_status_read 3 19583 NULL 99079+bm_status_read_19583 bm_status_read 3 19583 NULL
100040+batadv_tt_update_orig_19586 batadv_tt_update_orig 4 19586 NULL 99080+batadv_tt_update_orig_19586 batadv_tt_update_orig 4 19586 NULL
100041+load_xattr_datum_19594 load_xattr_datum 0 19594 NULL 99081+load_xattr_datum_19594 load_xattr_datum 0 19594 NULL
99082+__mei_cl_recv_19636 __mei_cl_recv 3 19636 NULL
100042+usbvision_rvmalloc_19655 usbvision_rvmalloc 1 19655 NULL 99083+usbvision_rvmalloc_19655 usbvision_rvmalloc 1 19655 NULL
100043+LoadBitmap_19658 LoadBitmap 2 19658 NULL 99084+LoadBitmap_19658 LoadBitmap 2 19658 NULL
100044+usbnet_write_cmd_19679 usbnet_write_cmd 7 19679 NULL 99085+usbnet_write_cmd_19679 usbnet_write_cmd 7 19679 NULL
100045+bio_detain_19690 bio_detain 2 19690 NULL 99086+bio_detain_19690 bio_detain 2 19690 NULL
99087+mem_cgroup_swappiness_19718 mem_cgroup_swappiness 0 19718 NULL
100046+read_reg_19723 read_reg 0 19723 NULL 99088+read_reg_19723 read_reg 0 19723 NULL
100047+wm8350_block_write_19727 wm8350_block_write 3-2 19727 NULL 99089+wm8350_block_write_19727 wm8350_block_write 3-2 19727 NULL
100048+memcpy_toiovecend_19736 memcpy_toiovecend 4-3 19736 NULL 99090+memcpy_toiovecend_19736 memcpy_toiovecend 4-3 19736 NULL
@@ -100068,8 +99110,10 @@ index 0000000..7982a0c
100068+iwl_dbgfs_rx_queue_read_19943 iwl_dbgfs_rx_queue_read 3 19943 NULL 99110+iwl_dbgfs_rx_queue_read_19943 iwl_dbgfs_rx_queue_read 3 19943 NULL
100069+attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL 99111+attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL
100070+diva_um_idi_read_20003 diva_um_idi_read 0 20003 NULL 99112+diva_um_idi_read_20003 diva_um_idi_read 0 20003 NULL
99113+SYSC_fgetxattr_20027 SYSC_fgetxattr 4 20027 NULL
100071+split_scan_timeout_read_20029 split_scan_timeout_read 3 20029 NULL 99114+split_scan_timeout_read_20029 split_scan_timeout_read 3 20029 NULL
100072+alloc_ieee80211_20063 alloc_ieee80211 1 20063 NULL 99115+alloc_ieee80211_20063 alloc_ieee80211 1 20063 NULL
99116+btrfs_pin_extent_for_log_replay_20069 btrfs_pin_extent_for_log_replay 2 20069 NULL
100073+rawv6_sendmsg_20080 rawv6_sendmsg 4 20080 NULL 99117+rawv6_sendmsg_20080 rawv6_sendmsg 4 20080 NULL
100074+fuse_conn_limit_read_20084 fuse_conn_limit_read 3 20084 NULL 99118+fuse_conn_limit_read_20084 fuse_conn_limit_read 3 20084 NULL
100075+team_options_register_20091 team_options_register 3 20091 NULL 99119+team_options_register_20091 team_options_register 3 20091 NULL
@@ -100097,6 +99141,7 @@ index 0000000..7982a0c
100097+__kfifo_from_user_20399 __kfifo_from_user 3 20399 NULL 99141+__kfifo_from_user_20399 __kfifo_from_user 3 20399 NULL
100098+xen_create_contiguous_region_20457 xen_create_contiguous_region 1 20457 NULL 99142+xen_create_contiguous_region_20457 xen_create_contiguous_region 1 20457 NULL
100099+nfs3_setxattr_20458 nfs3_setxattr 4 20458 NULL 99143+nfs3_setxattr_20458 nfs3_setxattr 4 20458 NULL
99144+dec_zcache_pers_zpages_20465 dec_zcache_pers_zpages 1 20465 NULL
100100+compat_ipv6_setsockopt_20468 compat_ipv6_setsockopt 5 20468 NULL 99145+compat_ipv6_setsockopt_20468 compat_ipv6_setsockopt 5 20468 NULL
100101+read_buf_20469 read_buf 2 20469 NULL 99146+read_buf_20469 read_buf 2 20469 NULL
100102+btrfs_get_32_20476 btrfs_get_32 0 20476 NULL 99147+btrfs_get_32_20476 btrfs_get_32 0 20476 NULL
@@ -100114,6 +99159,7 @@ index 0000000..7982a0c
100114+crypto_ahash_reqsize_20569 crypto_ahash_reqsize 0 20569 NULL 99159+crypto_ahash_reqsize_20569 crypto_ahash_reqsize 0 20569 NULL
100115+i915_max_freq_read_20581 i915_max_freq_read 3 20581 NULL 99160+i915_max_freq_read_20581 i915_max_freq_read 3 20581 NULL
100116+batadv_tt_append_diff_20588 batadv_tt_append_diff 4 20588 NULL 99161+batadv_tt_append_diff_20588 batadv_tt_append_diff 4 20588 NULL
99162+sync_timeline_create_20601 sync_timeline_create 2 20601 NULL
100117+lirc_write_20604 lirc_write 3 20604 NULL 99163+lirc_write_20604 lirc_write 3 20604 NULL
100118+qib_qsfp_write_20614 qib_qsfp_write 0-4-2 20614 NULL 99164+qib_qsfp_write_20614 qib_qsfp_write 0-4-2 20614 NULL
100119+snd_pcm_oss_prepare_20641 snd_pcm_oss_prepare 0 20641 NULL 99165+snd_pcm_oss_prepare_20641 snd_pcm_oss_prepare 0 20641 NULL
@@ -100139,12 +99185,15 @@ index 0000000..7982a0c
100139+ocfs2_align_bytes_to_clusters_20754 ocfs2_align_bytes_to_clusters 2 20754 NULL 99185+ocfs2_align_bytes_to_clusters_20754 ocfs2_align_bytes_to_clusters 2 20754 NULL
100140+brcmf_p2p_escan_20763 brcmf_p2p_escan 2 20763 NULL 99186+brcmf_p2p_escan_20763 brcmf_p2p_escan 2 20763 NULL
100141+ubi_io_read_20767 ubi_io_read 0 20767 NULL 99187+ubi_io_read_20767 ubi_io_read 0 20767 NULL
99188+ext4_r_blocks_count_20768 ext4_r_blocks_count 0 20768 NULL
100142+fb_alloc_cmap_gfp_20792 fb_alloc_cmap_gfp 2 20792 NULL 99189+fb_alloc_cmap_gfp_20792 fb_alloc_cmap_gfp 2 20792 NULL
100143+iommu_range_alloc_20794 iommu_range_alloc 3 20794 NULL 99190+iommu_range_alloc_20794 iommu_range_alloc 3 20794 NULL
100144+iwl_dbgfs_rxon_flags_read_20795 iwl_dbgfs_rxon_flags_read 3 20795 NULL 99191+iwl_dbgfs_rxon_flags_read_20795 iwl_dbgfs_rxon_flags_read 3 20795 NULL
100145+sys_sendto_20809 sys_sendto 6 20809 NULL 99192+sys_sendto_20809 sys_sendto 6 20809 NULL
99193+cfv_alloc_and_copy_skb_20812 cfv_alloc_and_copy_skb 4 20812 NULL
100146+strndup_user_20819 strndup_user 2 20819 NULL 99194+strndup_user_20819 strndup_user 2 20819 NULL
100147+calc_layout_20829 calc_layout 3 20829 NULL 99195+calc_layout_20829 calc_layout 3 20829 NULL
99196+dtf_read_channel_20831 dtf_read_channel 3 20831 NULL
100148+wl1271_format_buffer_20834 wl1271_format_buffer 2 20834 NULL 99197+wl1271_format_buffer_20834 wl1271_format_buffer 2 20834 NULL
100149+uvc_alloc_entity_20836 uvc_alloc_entity 3-4 20836 NULL 99198+uvc_alloc_entity_20836 uvc_alloc_entity 3-4 20836 NULL
100150+snd_pcm_capture_avail_20867 snd_pcm_capture_avail 0 20867 NULL 99199+snd_pcm_capture_avail_20867 snd_pcm_capture_avail 0 20867 NULL
@@ -100177,10 +99226,13 @@ index 0000000..7982a0c
100177+i2400m_rx_trace_21127 i2400m_rx_trace 3 21127 NULL 99226+i2400m_rx_trace_21127 i2400m_rx_trace 3 21127 NULL
100178+tps6586x_irq_init_21144 tps6586x_irq_init 3 21144 NULL 99227+tps6586x_irq_init_21144 tps6586x_irq_init 3 21144 NULL
100179+ocfs2_block_check_validate_21149 ocfs2_block_check_validate 2 21149 NULL 99228+ocfs2_block_check_validate_21149 ocfs2_block_check_validate 2 21149 NULL
99229+alloc_pg_vec_21159 alloc_pg_vec 3 21159 NULL
100180+cx18_v4l2_read_21196 cx18_v4l2_read 3 21196 NULL 99230+cx18_v4l2_read_21196 cx18_v4l2_read 3 21196 NULL
100181+ipc_rcu_alloc_21208 ipc_rcu_alloc 1 21208 NULL 99231+ipc_rcu_alloc_21208 ipc_rcu_alloc 1 21208 NULL
99232+scsi_execute_req_flags_21215 scsi_execute_req_flags 5 21215 NULL
100182+_ocfs2_free_clusters_21220 _ocfs2_free_clusters 4 21220 NULL 99233+_ocfs2_free_clusters_21220 _ocfs2_free_clusters 4 21220 NULL
100183+get_numpages_21227 get_numpages 0-1-2 21227 NULL 99234+get_numpages_21227 get_numpages 0-1-2 21227 NULL
99235+SyS_mlock_21238 SyS_mlock 1 21238 NULL
100184+input_ff_create_21240 input_ff_create 2 21240 NULL 99236+input_ff_create_21240 input_ff_create 2 21240 NULL
100185+cfg80211_notify_new_peer_candidate_21242 cfg80211_notify_new_peer_candidate 4 21242 NULL 99237+cfg80211_notify_new_peer_candidate_21242 cfg80211_notify_new_peer_candidate 4 21242 NULL
100186+ocfs2_blocks_for_bytes_21268 ocfs2_blocks_for_bytes 0-2 21268 NULL 99238+ocfs2_blocks_for_bytes_21268 ocfs2_blocks_for_bytes 0-2 21268 NULL
@@ -100194,6 +99246,7 @@ index 0000000..7982a0c
100194+gfs2_ea_get_copy_21353 gfs2_ea_get_copy 0 21353 NULL 99246+gfs2_ea_get_copy_21353 gfs2_ea_get_copy 0 21353 NULL
100195+max77693_irq_domain_map_21357 max77693_irq_domain_map 2 21357 NULL 99247+max77693_irq_domain_map_21357 max77693_irq_domain_map 2 21357 NULL
100196+alloc_orinocodev_21371 alloc_orinocodev 1 21371 NULL 99248+alloc_orinocodev_21371 alloc_orinocodev 1 21371 NULL
99249+SYSC_rt_sigpending_21379 SYSC_rt_sigpending 2 21379 NULL
100197+video_ioctl2_21380 video_ioctl2 2 21380 NULL 99250+video_ioctl2_21380 video_ioctl2 2 21380 NULL
100198+diva_get_driver_dbg_mask_21399 diva_get_driver_dbg_mask 0 21399 NULL 99251+diva_get_driver_dbg_mask_21399 diva_get_driver_dbg_mask 0 21399 NULL
100199+snd_m3_inw_21406 snd_m3_inw 0 21406 NULL 99252+snd_m3_inw_21406 snd_m3_inw 0 21406 NULL
@@ -100203,6 +99256,7 @@ index 0000000..7982a0c
100203+aggr_size_tx_agg_vs_rate_read_21438 aggr_size_tx_agg_vs_rate_read 3 21438 NULL 99256+aggr_size_tx_agg_vs_rate_read_21438 aggr_size_tx_agg_vs_rate_read 3 21438 NULL
100204+__ertm_hdr_size_21450 __ertm_hdr_size 0 21450 NULL 99257+__ertm_hdr_size_21450 __ertm_hdr_size 0 21450 NULL
100205+concat_writev_21451 concat_writev 3 21451 NULL 99258+concat_writev_21451 concat_writev 3 21451 NULL
99259+mei_nfc_send_21477 mei_nfc_send 3 21477 NULL
100206+read_file_xmit_21487 read_file_xmit 3 21487 NULL 99260+read_file_xmit_21487 read_file_xmit 3 21487 NULL
100207+mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL 99261+mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL
100208+btrfs_file_aio_write_21520 btrfs_file_aio_write 4 21520 NULL 99262+btrfs_file_aio_write_21520 btrfs_file_aio_write 4 21520 NULL
@@ -100212,6 +99266,7 @@ index 0000000..7982a0c
100212+rx_rx_beacon_early_term_read_21559 rx_rx_beacon_early_term_read 3 21559 NULL 99266+rx_rx_beacon_early_term_read_21559 rx_rx_beacon_early_term_read 3 21559 NULL
100213+xfs_buf_read_uncached_21585 xfs_buf_read_uncached 3 21585 NULL 99267+xfs_buf_read_uncached_21585 xfs_buf_read_uncached 3 21585 NULL
100214+ocfs2_acl_from_xattr_21604 ocfs2_acl_from_xattr 2 21604 NULL 99268+ocfs2_acl_from_xattr_21604 ocfs2_acl_from_xattr 2 21604 NULL
99269+compat_SyS_pwritev64_21606 compat_SyS_pwritev64 3 21606 NULL
100215+__jfs_getxattr_21631 __jfs_getxattr 0 21631 NULL 99270+__jfs_getxattr_21631 __jfs_getxattr 0 21631 NULL
100216+validate_nnode_21638 validate_nnode 0 21638 NULL 99271+validate_nnode_21638 validate_nnode 0 21638 NULL
100217+__irq_alloc_descs_21639 __irq_alloc_descs 2-1-3 21639 NULL 99272+__irq_alloc_descs_21639 __irq_alloc_descs 2-1-3 21639 NULL
@@ -100244,9 +99299,12 @@ index 0000000..7982a0c
100244+qsfp_1_read_21915 qsfp_1_read 3 21915 NULL 99299+qsfp_1_read_21915 qsfp_1_read 3 21915 NULL
100245+security_mmap_addr_21970 security_mmap_addr 0 21970 NULL 99300+security_mmap_addr_21970 security_mmap_addr 0 21970 NULL
100246+alloc_ldt_21972 alloc_ldt 2 21972 NULL 99301+alloc_ldt_21972 alloc_ldt 2 21972 NULL
99302+SYSC_prctl_21980 SYSC_prctl 4 21980 NULL
100247+rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 NULL nohasharray 99303+rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 NULL nohasharray
100248+compat_rw_copy_check_uvector_22001 compat_rw_copy_check_uvector 0-3 22001 &rxpipe_descr_host_int_trig_rx_data_read_22001 99304+compat_rw_copy_check_uvector_22001 compat_rw_copy_check_uvector 0-3 22001 &rxpipe_descr_host_int_trig_rx_data_read_22001
99305+regcache_sync_block_raw_flush_22021 regcache_sync_block_raw_flush 3-4 22021 NULL
100249+btrfs_get_16_22023 btrfs_get_16 0 22023 NULL 99306+btrfs_get_16_22023 btrfs_get_16 0 22023 NULL
99307+_sp2d_min_pg_22032 _sp2d_min_pg 0 22032 NULL
100250+zd_usb_read_fw_22049 zd_usb_read_fw 4 22049 NULL 99308+zd_usb_read_fw_22049 zd_usb_read_fw 4 22049 NULL
100251+ieee80211_if_fmt_dropped_frames_ttl_22054 ieee80211_if_fmt_dropped_frames_ttl 3 22054 NULL 99309+ieee80211_if_fmt_dropped_frames_ttl_22054 ieee80211_if_fmt_dropped_frames_ttl 3 22054 NULL
100252+btrfs_reloc_clone_csums_22077 btrfs_reloc_clone_csums 2 22077 NULL 99310+btrfs_reloc_clone_csums_22077 btrfs_reloc_clone_csums 2 22077 NULL
@@ -100254,6 +99312,8 @@ index 0000000..7982a0c
100254+mem_rw_22085 mem_rw 3 22085 NULL 99312+mem_rw_22085 mem_rw 3 22085 NULL
100255+is_swbp_at_addr_22089 is_swbp_at_addr 2 22089 NULL 99313+is_swbp_at_addr_22089 is_swbp_at_addr 2 22089 NULL
100256+lowpan_fragment_xmit_22095 lowpan_fragment_xmit 3-4 22095 NULL 99314+lowpan_fragment_xmit_22095 lowpan_fragment_xmit 3-4 22095 NULL
99315+sched_clock_cpu_22098 sched_clock_cpu 0 22098 NULL
99316+qlcnic_sriov_pf_enable_22103 qlcnic_sriov_pf_enable 2 22103 NULL
100257+sys_remap_file_pages_22124 sys_remap_file_pages 1 22124 NULL 99317+sys_remap_file_pages_22124 sys_remap_file_pages 1 22124 NULL
100258+__bitmap_size_22138 __bitmap_size 0 22138 NULL 99318+__bitmap_size_22138 __bitmap_size 0 22138 NULL
100259+compat_insn_22142 compat_insn 2 22142 NULL 99319+compat_insn_22142 compat_insn 2 22142 NULL
@@ -100270,6 +99330,7 @@ index 0000000..7982a0c
100270+__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 &pci_vpd_srdt_size_22300 99330+__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 &pci_vpd_srdt_size_22300
100271+extend_brk_22301 extend_brk 0 22301 NULL 99331+extend_brk_22301 extend_brk 0 22301 NULL
100272+mesh_table_alloc_22305 mesh_table_alloc 1 22305 NULL 99332+mesh_table_alloc_22305 mesh_table_alloc 1 22305 NULL
99333+C_SYSC_msgrcv_22320 C_SYSC_msgrcv 2-3 22320 NULL
100273+get_segment_base_22324 get_segment_base 0 22324 NULL 99334+get_segment_base_22324 get_segment_base 0 22324 NULL
100274+radix_tree_find_next_bit_22334 radix_tree_find_next_bit 2-3 22334 NULL 99335+radix_tree_find_next_bit_22334 radix_tree_find_next_bit 2-3 22334 NULL
100275+atomic_read_22342 atomic_read 0 22342 NULL 99336+atomic_read_22342 atomic_read 0 22342 NULL
@@ -100289,6 +99350,7 @@ index 0000000..7982a0c
100289+handle_received_packet_22457 handle_received_packet 3 22457 NULL 99350+handle_received_packet_22457 handle_received_packet 3 22457 NULL
100290+mem_cgroup_read_22461 mem_cgroup_read 5 22461 NULL 99351+mem_cgroup_read_22461 mem_cgroup_read 5 22461 NULL
100291+batadv_check_unicast_packet_22468 batadv_check_unicast_packet 3 22468 NULL 99352+batadv_check_unicast_packet_22468 batadv_check_unicast_packet 3 22468 NULL
99353+dtf_write_device_22471 dtf_write_device 3 22471 NULL
100292+cache_write_procfs_22491 cache_write_procfs 3 22491 NULL 99354+cache_write_procfs_22491 cache_write_procfs 3 22491 NULL
100293+mp_find_ioapic_pin_22499 mp_find_ioapic_pin 0-2 22499 NULL 99355+mp_find_ioapic_pin_22499 mp_find_ioapic_pin 0-2 22499 NULL
100294+mutex_lock_interruptible_22505 mutex_lock_interruptible 0 22505 NULL 99356+mutex_lock_interruptible_22505 mutex_lock_interruptible 0 22505 NULL
@@ -100307,15 +99369,19 @@ index 0000000..7982a0c
100307+wl1271_rx_filter_get_fields_size_22638 wl1271_rx_filter_get_fields_size 0 22638 NULL 99369+wl1271_rx_filter_get_fields_size_22638 wl1271_rx_filter_get_fields_size 0 22638 NULL
100308+pwr_wake_on_timer_exp_read_22640 pwr_wake_on_timer_exp_read 3 22640 NULL 99370+pwr_wake_on_timer_exp_read_22640 pwr_wake_on_timer_exp_read 3 22640 NULL
100309+iwl_dbgfs_calib_disabled_read_22649 iwl_dbgfs_calib_disabled_read 3 22649 NULL 99371+iwl_dbgfs_calib_disabled_read_22649 iwl_dbgfs_calib_disabled_read 3 22649 NULL
99372+compat_SyS_msgrcv_22661 compat_SyS_msgrcv 2-3 22661 NULL
100310+ubifs_leb_write_22679 ubifs_leb_write 4-5 22679 NULL 99373+ubifs_leb_write_22679 ubifs_leb_write 4-5 22679 NULL
99374+qlcnic_83xx_sysfs_flash_write_handler_22680 qlcnic_83xx_sysfs_flash_write_handler 6 22680 NULL
100311+ocfs2_get_block_22687 ocfs2_get_block 2 22687 NULL 99375+ocfs2_get_block_22687 ocfs2_get_block 2 22687 NULL
100312+compat_fd_ioctl_22694 compat_fd_ioctl 4 22694 NULL 99376+compat_fd_ioctl_22694 compat_fd_ioctl 4 22694 NULL
100313+map_22700 map 2 22700 NULL 99377+map_22700 map 2 22700 NULL
100314+alloc_libipw_22708 alloc_libipw 1 22708 NULL 99378+alloc_libipw_22708 alloc_libipw 1 22708 NULL
100315+brcmf_sdbrcm_read_control_22721 brcmf_sdbrcm_read_control 3 22721 NULL 99379+brcmf_sdbrcm_read_control_22721 brcmf_sdbrcm_read_control 3 22721 NULL
100316+cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4 22735 NULL 99380+cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4 22735 NULL
100317+ceph_decode_32_22738 ceph_decode_32 0 22738 NULL 99381+ceph_decode_32_22738 ceph_decode_32 0 22738 NULL nohasharray
99382+__mei_cl_send_22738 __mei_cl_send 3 22738 &ceph_decode_32_22738
100318+iio_debugfs_write_reg_22742 iio_debugfs_write_reg 3 22742 NULL 99383+iio_debugfs_write_reg_22742 iio_debugfs_write_reg 3 22742 NULL
99384+qlcnic_sriov_init_22762 qlcnic_sriov_init 2 22762 NULL
100319+print_frame_22769 print_frame 0 22769 NULL 99385+print_frame_22769 print_frame 0 22769 NULL
100320+ftrace_arch_read_dyn_info_22773 ftrace_arch_read_dyn_info 0 22773 NULL 99386+ftrace_arch_read_dyn_info_22773 ftrace_arch_read_dyn_info 0 22773 NULL
100321+compat_blkdev_ioctl_22841 compat_blkdev_ioctl 3 22841 NULL 99387+compat_blkdev_ioctl_22841 compat_blkdev_ioctl 3 22841 NULL
@@ -100336,14 +99402,17 @@ index 0000000..7982a0c
100336+usb_get_langid_22983 usb_get_langid 0 22983 NULL 99402+usb_get_langid_22983 usb_get_langid 0 22983 NULL
100337+set_msr_hyperv_22985 set_msr_hyperv 3 22985 NULL 99403+set_msr_hyperv_22985 set_msr_hyperv 3 22985 NULL
100338+remote_settings_file_write_22987 remote_settings_file_write 3 22987 NULL 99404+remote_settings_file_write_22987 remote_settings_file_write 3 22987 NULL
99405+brcmf_sdio_chip_exit_download_23001 brcmf_sdio_chip_exit_download 4 23001 NULL
100339+viafb_dvp0_proc_write_23023 viafb_dvp0_proc_write 3 23023 NULL 99406+viafb_dvp0_proc_write_23023 viafb_dvp0_proc_write 3 23023 NULL
100340+cifs_local_to_utf16_bytes_23025 cifs_local_to_utf16_bytes 0 23025 NULL 99407+cifs_local_to_utf16_bytes_23025 cifs_local_to_utf16_bytes 0 23025 NULL
100341+st_status_23032 st_status 5 23032 NULL 99408+st_status_23032 st_status 5 23032 NULL
100342+nv50_disp_chan_create__23056 nv50_disp_chan_create_ 5 23056 NULL 99409+nv50_disp_chan_create__23056 nv50_disp_chan_create_ 5 23056 NULL
100343+reiserfs_add_entry_23062 reiserfs_add_entry 4 23062 NULL 99410+reiserfs_add_entry_23062 reiserfs_add_entry 4 23062 NULL
99411+mei_cl_send_23068 mei_cl_send 3 23068 NULL
100344+kvm_mmu_gva_to_gpa_write_23075 kvm_mmu_gva_to_gpa_write 0 23075 NULL 99412+kvm_mmu_gva_to_gpa_write_23075 kvm_mmu_gva_to_gpa_write 0 23075 NULL
100345+vm_map_ram_23078 vm_map_ram 2 23078 NULL nohasharray 99413+vm_map_ram_23078 vm_map_ram 2 23078 NULL nohasharray
100346+raw_sendmsg_23078 raw_sendmsg 4 23078 &vm_map_ram_23078 99414+raw_sendmsg_23078 raw_sendmsg 4 23078 &vm_map_ram_23078
99415+get_user_hdr_len_23079 get_user_hdr_len 0 23079 NULL
100347+qla4_82xx_pci_mem_read_2M_23081 qla4_82xx_pci_mem_read_2M 2 23081 NULL 99416+qla4_82xx_pci_mem_read_2M_23081 qla4_82xx_pci_mem_read_2M 2 23081 NULL
100348+isr_tx_procs_read_23084 isr_tx_procs_read 3 23084 NULL 99417+isr_tx_procs_read_23084 isr_tx_procs_read 3 23084 NULL
100349+lnw_gpio_irq_map_23087 lnw_gpio_irq_map 2 23087 NULL 99418+lnw_gpio_irq_map_23087 lnw_gpio_irq_map 2 23087 NULL
@@ -100359,6 +99428,7 @@ index 0000000..7982a0c
100359+ca91cx42_master_set_23146 ca91cx42_master_set 4 23146 NULL 99428+ca91cx42_master_set_23146 ca91cx42_master_set 4 23146 NULL
100360+read_file_ani_23161 read_file_ani 3 23161 NULL 99429+read_file_ani_23161 read_file_ani 3 23161 NULL
100361+ioremap_23172 ioremap 1-2 23172 NULL 99430+ioremap_23172 ioremap 1-2 23172 NULL
99431+tg_get_cfs_quota_23176 tg_get_cfs_quota 0 23176 NULL
100362+usblp_write_23178 usblp_write 3 23178 NULL 99432+usblp_write_23178 usblp_write 3 23178 NULL
100363+msnd_fifo_alloc_23179 msnd_fifo_alloc 2 23179 NULL 99433+msnd_fifo_alloc_23179 msnd_fifo_alloc 2 23179 NULL
100364+gss_pipe_downcall_23182 gss_pipe_downcall 3 23182 NULL 99434+gss_pipe_downcall_23182 gss_pipe_downcall 3 23182 NULL
@@ -100404,18 +99474,22 @@ index 0000000..7982a0c
100404+__i2400mu_send_barker_23652 __i2400mu_send_barker 3 23652 NULL 99474+__i2400mu_send_barker_23652 __i2400mu_send_barker 3 23652 NULL
100405+ext3_compat_ioctl_23659 ext3_compat_ioctl 3 23659 NULL 99475+ext3_compat_ioctl_23659 ext3_compat_ioctl 3 23659 NULL
100406+sInW_23663 sInW 0 23663 NULL 99476+sInW_23663 sInW 0 23663 NULL
99477+SyS_connect_23669 SyS_connect 3 23669 NULL
100407+proc_ioctl_compat_23682 proc_ioctl_compat 2 23682 NULL 99478+proc_ioctl_compat_23682 proc_ioctl_compat 2 23682 NULL
100408+nftl_partscan_23688 nftl_partscan 0 23688 NULL 99479+nftl_partscan_23688 nftl_partscan 0 23688 NULL
100409+cx18_read_23699 cx18_read 3 23699 NULL 99480+cx18_read_23699 cx18_read 3 23699 NULL
99481+isku_sysfs_write_control_23718 isku_sysfs_write_control 6 23718 NULL
100410+mp_config_acpi_gsi_23728 mp_config_acpi_gsi 2 23728 NULL 99482+mp_config_acpi_gsi_23728 mp_config_acpi_gsi 2 23728 NULL
100411+pack_sg_list_p_23739 pack_sg_list_p 0-2 23739 NULL 99483+pack_sg_list_p_23739 pack_sg_list_p 0-2 23739 NULL
100412+rx_rx_dropped_frame_read_23748 rx_rx_dropped_frame_read 3 23748 NULL 99484+rx_rx_dropped_frame_read_23748 rx_rx_dropped_frame_read 3 23748 NULL
100413+__kfifo_max_r_23768 __kfifo_max_r 0-2-1 23768 NULL 99485+__kfifo_max_r_23768 __kfifo_max_r 0-2-1 23768 NULL
99486+__build_packet_message_23778 __build_packet_message 10-4 23778 NULL
100414+security_inode_getxattr_23781 security_inode_getxattr 0 23781 NULL 99487+security_inode_getxattr_23781 security_inode_getxattr 0 23781 NULL
100415+diva_alloc_dma_map_23798 diva_alloc_dma_map 2 23798 NULL 99488+diva_alloc_dma_map_23798 diva_alloc_dma_map 2 23798 NULL
100416+rx_path_reset_read_23801 rx_path_reset_read 3 23801 NULL 99489+rx_path_reset_read_23801 rx_path_reset_read 3 23801 NULL
100417+__earlyonly_bootmem_alloc_23824 __earlyonly_bootmem_alloc 2-3 23824 NULL 99490+__earlyonly_bootmem_alloc_23824 __earlyonly_bootmem_alloc 2-3 23824 NULL
100418+ceph_copy_page_vector_to_user_23829 ceph_copy_page_vector_to_user 3-4 23829 NULL 99491+ceph_copy_page_vector_to_user_23829 ceph_copy_page_vector_to_user 3-4 23829 NULL
99492+tfrc_binsearch_23833 tfrc_binsearch 0 23833 NULL
100419+xfs_dir2_leaf_getdents_23841 xfs_dir2_leaf_getdents 3 23841 NULL 99493+xfs_dir2_leaf_getdents_23841 xfs_dir2_leaf_getdents 3 23841 NULL
100420+pgdat_end_pfn_23842 pgdat_end_pfn 0 23842 NULL 99494+pgdat_end_pfn_23842 pgdat_end_pfn 0 23842 NULL
100421+iwl_dbgfs_nvm_read_23845 iwl_dbgfs_nvm_read 3 23845 NULL 99495+iwl_dbgfs_nvm_read_23845 iwl_dbgfs_nvm_read 3 23845 NULL
@@ -100441,6 +99515,7 @@ index 0000000..7982a0c
100441+ocfs2_mark_extent_refcounted_24035 ocfs2_mark_extent_refcounted 6 24035 NULL 99515+ocfs2_mark_extent_refcounted_24035 ocfs2_mark_extent_refcounted 6 24035 NULL
100442+adis16400_show_serial_number_24037 adis16400_show_serial_number 3 24037 NULL 99516+adis16400_show_serial_number_24037 adis16400_show_serial_number 3 24037 NULL
100443+afs_cell_alloc_24052 afs_cell_alloc 2 24052 NULL 99517+afs_cell_alloc_24052 afs_cell_alloc 2 24052 NULL
99518+brcmf_sdio_ramrw_24074 brcmf_sdio_ramrw 5 24074 NULL
100444+blkcipher_copy_iv_24075 blkcipher_copy_iv 3 24075 NULL 99519+blkcipher_copy_iv_24075 blkcipher_copy_iv 3 24075 NULL
100445+vb2_fop_read_24080 vb2_fop_read 3 24080 NULL 99520+vb2_fop_read_24080 vb2_fop_read 3 24080 NULL
100446+pipeline_post_proc_swi_read_24108 pipeline_post_proc_swi_read 3 24108 NULL 99521+pipeline_post_proc_swi_read_24108 pipeline_post_proc_swi_read 3 24108 NULL
@@ -100466,8 +99541,11 @@ index 0000000..7982a0c
100466+ext2_free_blocks_24292 ext2_free_blocks 2-3 24292 NULL 99541+ext2_free_blocks_24292 ext2_free_blocks 2-3 24292 NULL
100467+map_page_24298 map_page 3-4 24298 NULL 99542+map_page_24298 map_page 3-4 24298 NULL
100468+btmrvl_pscmd_read_24308 btmrvl_pscmd_read 3 24308 NULL 99543+btmrvl_pscmd_read_24308 btmrvl_pscmd_read 3 24308 NULL
99544+reserve_metadata_bytes_24313 reserve_metadata_bytes 3 24313 NULL
100469+ath6kl_add_bss_if_needed_24317 ath6kl_add_bss_if_needed 6 24317 NULL 99545+ath6kl_add_bss_if_needed_24317 ath6kl_add_bss_if_needed 6 24317 NULL
100470+ocfs2_direct_IO_get_blocks_24333 ocfs2_direct_IO_get_blocks 2 24333 NULL 99546+ocfs2_direct_IO_get_blocks_24333 ocfs2_direct_IO_get_blocks 2 24333 NULL
99547+si476x_radio_read_acf_blob_24336 si476x_radio_read_acf_blob 3 24336 NULL
99548+C_SYSC_pwritev_24345 C_SYSC_pwritev 3 24345 NULL
100471+kzalloc_node_24352 kzalloc_node 1 24352 NULL 99549+kzalloc_node_24352 kzalloc_node 1 24352 NULL
100472+qla2x00_handle_queue_full_24365 qla2x00_handle_queue_full 2 24365 NULL 99550+qla2x00_handle_queue_full_24365 qla2x00_handle_queue_full 2 24365 NULL
100473+cfi_read_pri_24366 cfi_read_pri 3 24366 NULL 99551+cfi_read_pri_24366 cfi_read_pri 3 24366 NULL
@@ -100519,7 +99597,8 @@ index 0000000..7982a0c
100519+l2cap_create_basic_pdu_24869 l2cap_create_basic_pdu 3 24869 &pnp_alloc_24869 99597+l2cap_create_basic_pdu_24869 l2cap_create_basic_pdu 3 24869 &pnp_alloc_24869
100520+setup_buffering_24872 setup_buffering 3 24872 NULL 99598+setup_buffering_24872 setup_buffering 3 24872 NULL
100521+bnx2fc_cmd_mgr_alloc_24873 bnx2fc_cmd_mgr_alloc 3-2 24873 NULL 99599+bnx2fc_cmd_mgr_alloc_24873 bnx2fc_cmd_mgr_alloc 3-2 24873 NULL
100522+queues_read_24877 queues_read 3 24877 NULL 99600+queues_read_24877 queues_read 3 24877 NULL nohasharray
99601+symbol_string_24877 symbol_string 0 24877 &queues_read_24877
100523+codec_list_read_file_24910 codec_list_read_file 3 24910 NULL 99602+codec_list_read_file_24910 codec_list_read_file 3 24910 NULL
100524+v4l2_ctrl_new_24927 v4l2_ctrl_new 7 24927 NULL 99603+v4l2_ctrl_new_24927 v4l2_ctrl_new 7 24927 NULL
100525+next_token_24929 next_token 0 24929 NULL 99604+next_token_24929 next_token 0 24929 NULL
@@ -100536,6 +99615,7 @@ index 0000000..7982a0c
100536+ni_660x_num_counters_25031 ni_660x_num_counters 0 25031 NULL 99615+ni_660x_num_counters_25031 ni_660x_num_counters 0 25031 NULL
100537+nfs_dns_resolve_name_25036 nfs_dns_resolve_name 3 25036 NULL 99616+nfs_dns_resolve_name_25036 nfs_dns_resolve_name 3 25036 NULL
100538+gs_buf_alloc_25067 gs_buf_alloc 2 25067 NULL 99617+gs_buf_alloc_25067 gs_buf_alloc 2 25067 NULL
99618+SYSC_listxattr_25072 SYSC_listxattr 3 25072 NULL
100539+ceph_osdc_writepages_25085 ceph_osdc_writepages 5 25085 NULL 99619+ceph_osdc_writepages_25085 ceph_osdc_writepages 5 25085 NULL
100540+snd_rawmidi_kernel_write_25106 snd_rawmidi_kernel_write 3 25106 NULL 99620+snd_rawmidi_kernel_write_25106 snd_rawmidi_kernel_write 3 25106 NULL
100541+sys_fgetxattr_25166 sys_fgetxattr 4 25166 NULL 99621+sys_fgetxattr_25166 sys_fgetxattr 4 25166 NULL
@@ -100544,6 +99624,7 @@ index 0000000..7982a0c
100544+ks8851_rdreg32_25187 ks8851_rdreg32 0 25187 NULL 99624+ks8851_rdreg32_25187 ks8851_rdreg32 0 25187 NULL
100545+ocfs2_block_check_compute_25223 ocfs2_block_check_compute 2 25223 NULL 99625+ocfs2_block_check_compute_25223 ocfs2_block_check_compute 2 25223 NULL
100546+free_memcg_kmem_pages_25228 free_memcg_kmem_pages 1 25228 NULL 99626+free_memcg_kmem_pages_25228 free_memcg_kmem_pages 1 25228 NULL
99627+dtf_write_string_25232 dtf_write_string 5 25232 NULL
100547+mon_stat_read_25238 mon_stat_read 3 25238 NULL 99628+mon_stat_read_25238 mon_stat_read 3 25238 NULL
100548+tcf_csum_ipv6_udp_25241 tcf_csum_ipv6_udp 4 25241 NULL 99629+tcf_csum_ipv6_udp_25241 tcf_csum_ipv6_udp 4 25241 NULL
100549+nilfs_palloc_find_available_slot_25245 nilfs_palloc_find_available_slot 3-5 25245 NULL 99630+nilfs_palloc_find_available_slot_25245 nilfs_palloc_find_available_slot 3-5 25245 NULL
@@ -100556,6 +99637,7 @@ index 0000000..7982a0c
100556+help_25316 help 5 25316 NULL nohasharray 99637+help_25316 help 5 25316 NULL nohasharray
100557+ath9k_debugfs_read_buf_25316 ath9k_debugfs_read_buf 3 25316 &help_25316 99638+ath9k_debugfs_read_buf_25316 ath9k_debugfs_read_buf 3 25316 &help_25316
100558+rng_buffer_size_25348 rng_buffer_size 0 25348 NULL 99639+rng_buffer_size_25348 rng_buffer_size 0 25348 NULL
99640+SYSC_kexec_load_25361 SYSC_kexec_load 2 25361 NULL
100559+rio_destid_next_25368 rio_destid_next 2 25368 NULL nohasharray 99641+rio_destid_next_25368 rio_destid_next 2 25368 NULL nohasharray
100560+unix_mkname_25368 unix_mkname 0-2 25368 &rio_destid_next_25368 99642+unix_mkname_25368 unix_mkname 0-2 25368 &rio_destid_next_25368
100561+sel_read_mls_25369 sel_read_mls 3 25369 NULL 99643+sel_read_mls_25369 sel_read_mls 3 25369 NULL
@@ -100593,6 +99675,7 @@ index 0000000..7982a0c
100593+ext2_find_near_25734 ext2_find_near 0 25734 NULL 99675+ext2_find_near_25734 ext2_find_near 0 25734 NULL
100594+__set_clear_dirty_25744 __set_clear_dirty 2 25744 NULL 99676+__set_clear_dirty_25744 __set_clear_dirty 2 25744 NULL
100595+cxgbi_device_portmap_create_25747 cxgbi_device_portmap_create 3 25747 NULL 99677+cxgbi_device_portmap_create_25747 cxgbi_device_portmap_create 3 25747 NULL
99678+dtf_write_channel_25748 dtf_write_channel 3 25748 NULL
100596+event_rx_pool_read_25792 event_rx_pool_read 3 25792 NULL 99679+event_rx_pool_read_25792 event_rx_pool_read 3 25792 NULL
100597+sg_read_25799 sg_read 3 25799 NULL 99680+sg_read_25799 sg_read 3 25799 NULL
100598+system_enable_read_25815 system_enable_read 3 25815 NULL 99681+system_enable_read_25815 system_enable_read 3 25815 NULL
@@ -100602,10 +99685,12 @@ index 0000000..7982a0c
100602+parport_read_25855 parport_read 0 25855 NULL 99685+parport_read_25855 parport_read 0 25855 NULL
100603+xfs_dir2_sf_hdr_size_25858 xfs_dir2_sf_hdr_size 0 25858 NULL 99686+xfs_dir2_sf_hdr_size_25858 xfs_dir2_sf_hdr_size 0 25858 NULL
100604+uf_ap_process_data_pdu_25860 uf_ap_process_data_pdu 7 25860 NULL 99687+uf_ap_process_data_pdu_25860 uf_ap_process_data_pdu 7 25860 NULL
99688+key_attr_size_25865 key_attr_size 0 25865 NULL
100605+ath6kl_regread_read_25884 ath6kl_regread_read 3 25884 NULL 99689+ath6kl_regread_read_25884 ath6kl_regread_read 3 25884 NULL
100606+run_delalloc_nocow_25896 run_delalloc_nocow 3 25896 NULL 99690+run_delalloc_nocow_25896 run_delalloc_nocow 3 25896 NULL
100607+sisusbcon_scroll_area_25899 sisusbcon_scroll_area 4-3 25899 NULL 99691+sisusbcon_scroll_area_25899 sisusbcon_scroll_area 4-3 25899 NULL
100608+lpfc_change_queue_depth_25905 lpfc_change_queue_depth 2 25905 NULL 99692+lpfc_change_queue_depth_25905 lpfc_change_queue_depth 2 25905 NULL
99693+nvme_trans_mode_page_create_25908 nvme_trans_mode_page_create 7 25908 NULL
100609+do_jffs2_setxattr_25910 do_jffs2_setxattr 5 25910 NULL 99694+do_jffs2_setxattr_25910 do_jffs2_setxattr 5 25910 NULL
100610+rcname_read_25919 rcname_read 3 25919 NULL 99695+rcname_read_25919 rcname_read 3 25919 NULL
100611+snd_es1938_capture_copy_25930 snd_es1938_capture_copy 5 25930 NULL 99696+snd_es1938_capture_copy_25930 snd_es1938_capture_copy 5 25930 NULL
@@ -100630,6 +99715,7 @@ index 0000000..7982a0c
100630+copy_oldmem_page_26164 copy_oldmem_page 3-1 26164 NULL 99715+copy_oldmem_page_26164 copy_oldmem_page 3-1 26164 NULL
100631+gfs2_xattr_acl_get_26166 gfs2_xattr_acl_get 0 26166 NULL nohasharray 99716+gfs2_xattr_acl_get_26166 gfs2_xattr_acl_get 0 26166 NULL nohasharray
100632+ath6kl_roam_table_read_26166 ath6kl_roam_table_read 3 26166 &gfs2_xattr_acl_get_26166 99717+ath6kl_roam_table_read_26166 ath6kl_roam_table_read 3 26166 &gfs2_xattr_acl_get_26166
99718+perf_adjust_period_26168 perf_adjust_period 2-3 26168 NULL
100633+mid_get_vbt_data_r1_26170 mid_get_vbt_data_r1 2 26170 NULL 99719+mid_get_vbt_data_r1_26170 mid_get_vbt_data_r1 2 26170 NULL
100634+disk_devt_26180 disk_devt 0 26180 NULL 99720+disk_devt_26180 disk_devt 0 26180 NULL
100635+get_registers_26187 get_registers 3 26187 NULL 99721+get_registers_26187 get_registers 3 26187 NULL
@@ -100645,6 +99731,7 @@ index 0000000..7982a0c
100645+snd_pcm_plug_client_channels_buf_26309 snd_pcm_plug_client_channels_buf 0-3 26309 NULL nohasharray 99731+snd_pcm_plug_client_channels_buf_26309 snd_pcm_plug_client_channels_buf 0-3 26309 NULL nohasharray
100646+pax_get_random_long_26309 pax_get_random_long 0 26309 &snd_pcm_plug_client_channels_buf_26309 99732+pax_get_random_long_26309 pax_get_random_long 0 26309 &snd_pcm_plug_client_channels_buf_26309
100647+pwr_wake_on_host_read_26321 pwr_wake_on_host_read 3 26321 NULL 99733+pwr_wake_on_host_read_26321 pwr_wake_on_host_read 3 26321 NULL
99734+efx_rx_mk_skb_26342 efx_rx_mk_skb 5 26342 NULL
100648+ocfs2_duplicate_clusters_by_page_26357 ocfs2_duplicate_clusters_by_page 5 26357 NULL 99735+ocfs2_duplicate_clusters_by_page_26357 ocfs2_duplicate_clusters_by_page 5 26357 NULL
100649+cifs_readdata_alloc_26360 cifs_readdata_alloc 1 26360 NULL 99736+cifs_readdata_alloc_26360 cifs_readdata_alloc 1 26360 NULL
100650+dup_to_netobj_26363 dup_to_netobj 3 26363 NULL 99737+dup_to_netobj_26363 dup_to_netobj 3 26363 NULL
@@ -100662,6 +99749,7 @@ index 0000000..7982a0c
100662+rts51x_read_mem_26577 rts51x_read_mem 4 26577 NULL nohasharray 99749+rts51x_read_mem_26577 rts51x_read_mem 4 26577 NULL nohasharray
100663+batadv_receive_server_sync_packet_26577 batadv_receive_server_sync_packet 3 26577 &rts51x_read_mem_26577 99750+batadv_receive_server_sync_packet_26577 batadv_receive_server_sync_packet 3 26577 &rts51x_read_mem_26577
100664+cirrusfb_get_memsize_26597 cirrusfb_get_memsize 0 26597 NULL 99751+cirrusfb_get_memsize_26597 cirrusfb_get_memsize 0 26597 NULL
99752+regcache_set_reg_present_26598 regcache_set_reg_present 2 26598 NULL
100665+__unmap_single_26604 __unmap_single 2-3 26604 NULL 99753+__unmap_single_26604 __unmap_single 2-3 26604 NULL
100666+iommu_alloc_26621 iommu_alloc 4 26621 NULL 99754+iommu_alloc_26621 iommu_alloc 4 26621 NULL
100667+pack_value_26625 pack_value 1 26625 NULL 99755+pack_value_26625 pack_value 1 26625 NULL
@@ -100673,6 +99761,7 @@ index 0000000..7982a0c
100673+rtllib_authentication_req_26713 rtllib_authentication_req 3 26713 NULL 99761+rtllib_authentication_req_26713 rtllib_authentication_req 3 26713 NULL
100674+aty_ld_le32_26720 aty_ld_le32 0 26720 NULL 99762+aty_ld_le32_26720 aty_ld_le32 0 26720 NULL
100675+nouveau_namedb_create__26732 nouveau_namedb_create_ 7 26732 NULL 99763+nouveau_namedb_create__26732 nouveau_namedb_create_ 7 26732 NULL
99764+SyS_fcntl_26737 SyS_fcntl 3 26737 NULL
100676+pipeline_tcp_rx_stat_fifo_int_read_26745 pipeline_tcp_rx_stat_fifo_int_read 3 26745 NULL 99765+pipeline_tcp_rx_stat_fifo_int_read_26745 pipeline_tcp_rx_stat_fifo_int_read 3 26745 NULL
100677+srp_ring_alloc_26760 srp_ring_alloc 2 26760 NULL 99766+srp_ring_alloc_26760 srp_ring_alloc 2 26760 NULL
100678+snd_hda_get_raw_connections_26762 snd_hda_get_raw_connections 0 26762 NULL 99767+snd_hda_get_raw_connections_26762 snd_hda_get_raw_connections 0 26762 NULL
@@ -100706,10 +99795,12 @@ index 0000000..7982a0c
100706+snd_pcm_lib_period_bytes_27071 snd_pcm_lib_period_bytes 0 27071 NULL 99795+snd_pcm_lib_period_bytes_27071 snd_pcm_lib_period_bytes 0 27071 NULL
100707+paravirt_read_msr_27077 paravirt_read_msr 0 27077 NULL 99796+paravirt_read_msr_27077 paravirt_read_msr 0 27077 NULL
100708+alloc_fdmem_27083 alloc_fdmem 1 27083 NULL 99797+alloc_fdmem_27083 alloc_fdmem 1 27083 NULL
99798+compat_SyS_rt_sigpending_27084 compat_SyS_rt_sigpending 2 27084 NULL
100709+find_first_bit_27088 find_first_bit 0-2 27088 NULL 99799+find_first_bit_27088 find_first_bit 0-2 27088 NULL
100710+btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL 99800+btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL
100711+nes_reg_user_mr_27106 nes_reg_user_mr 2-3 27106 NULL 99801+nes_reg_user_mr_27106 nes_reg_user_mr 2-3 27106 NULL
100712+__devcgroup_inode_permission_27108 __devcgroup_inode_permission 0 27108 NULL 99802+__devcgroup_inode_permission_27108 __devcgroup_inode_permission 0 27108 NULL
99803+SYSC_ipc_27123 SYSC_ipc 3 27123 NULL
100713+get_kernel_page_27133 get_kernel_page 0 27133 NULL 99804+get_kernel_page_27133 get_kernel_page 0 27133 NULL
100714+drbd_get_capacity_27141 drbd_get_capacity 0 27141 NULL 99805+drbd_get_capacity_27141 drbd_get_capacity 0 27141 NULL
100715+pms_capture_27142 pms_capture 4 27142 NULL 99806+pms_capture_27142 pms_capture 4 27142 NULL
@@ -100724,10 +99815,12 @@ index 0000000..7982a0c
100724+__dma_map_cont_27289 __dma_map_cont 5 27289 NULL 99815+__dma_map_cont_27289 __dma_map_cont 5 27289 NULL
100725+hpi_read_reg_27302 hpi_read_reg 0 27302 NULL 99816+hpi_read_reg_27302 hpi_read_reg 0 27302 NULL
100726+copy_from_buf_27308 copy_from_buf 4-2 27308 NULL 99817+copy_from_buf_27308 copy_from_buf 4-2 27308 NULL
100727+ath6kl_wmi_test_cmd_27312 ath6kl_wmi_test_cmd 3 27312 NULL 99818+virtqueue_add_inbuf_27312 virtqueue_add_inbuf 3 27312 NULL nohasharray
99819+ath6kl_wmi_test_cmd_27312 ath6kl_wmi_test_cmd 3 27312 &virtqueue_add_inbuf_27312
100728+ocfs2_blocks_to_clusters_27327 ocfs2_blocks_to_clusters 0-2 27327 NULL 99820+ocfs2_blocks_to_clusters_27327 ocfs2_blocks_to_clusters 0-2 27327 NULL
100729+snd_pcm_oss_write2_27332 snd_pcm_oss_write2 3-0 27332 NULL 99821+snd_pcm_oss_write2_27332 snd_pcm_oss_write2 3-0 27332 NULL
100730+afs_cell_create_27346 afs_cell_create 2 27346 NULL 99822+afs_cell_create_27346 afs_cell_create 2 27346 NULL
99823+compat_SyS_semctl_27349 compat_SyS_semctl 4 27349 NULL
100731+pcbit_stat_27364 pcbit_stat 2 27364 NULL 99824+pcbit_stat_27364 pcbit_stat 2 27364 NULL
100732+init_memory_mapping_27395 init_memory_mapping 0 27395 NULL 99825+init_memory_mapping_27395 init_memory_mapping 0 27395 NULL
100733+phys_pte_init_27411 phys_pte_init 0-3-2 27411 NULL 99826+phys_pte_init_27411 phys_pte_init 0-3-2 27411 NULL
@@ -100735,6 +99828,7 @@ index 0000000..7982a0c
100735+acpi_os_get_root_pointer_27416 acpi_os_get_root_pointer 0 27416 NULL nohasharray 99828+acpi_os_get_root_pointer_27416 acpi_os_get_root_pointer 0 27416 NULL nohasharray
100736+ieee80211_if_read_smps_27416 ieee80211_if_read_smps 3 27416 &acpi_os_get_root_pointer_27416 99829+ieee80211_if_read_smps_27416 ieee80211_if_read_smps 3 27416 &acpi_os_get_root_pointer_27416
100737+pack_sg_list_27425 pack_sg_list 0-2 27425 NULL 99830+pack_sg_list_27425 pack_sg_list 0-2 27425 NULL
99831+ktime_to_us_27455 ktime_to_us 0 27455 NULL
100738+v4l2_ctrl_new_std_menu_items_27487 v4l2_ctrl_new_std_menu_items 4 27487 NULL 99832+v4l2_ctrl_new_std_menu_items_27487 v4l2_ctrl_new_std_menu_items 4 27487 NULL
100739+set_tpl_pfs_27490 set_tpl_pfs 3 27490 NULL 99833+set_tpl_pfs_27490 set_tpl_pfs 3 27490 NULL
100740+hcd_buffer_alloc_27495 hcd_buffer_alloc 2 27495 NULL 99834+hcd_buffer_alloc_27495 hcd_buffer_alloc 2 27495 NULL
@@ -100745,6 +99839,7 @@ index 0000000..7982a0c
100745+garmin_read_process_27509 garmin_read_process 3 27509 NULL 99839+garmin_read_process_27509 garmin_read_process 3 27509 NULL
100746+ib_copy_to_udata_27525 ib_copy_to_udata 3 27525 NULL 99840+ib_copy_to_udata_27525 ib_copy_to_udata 3 27525 NULL
100747+snd_sonicvibes_getdmaa_27552 snd_sonicvibes_getdmaa 0 27552 NULL 99841+snd_sonicvibes_getdmaa_27552 snd_sonicvibes_getdmaa 0 27552 NULL
99842+SyS_fgetxattr_27571 SyS_fgetxattr 4 27571 NULL
100748+libipw_alloc_txb_27579 libipw_alloc_txb 1-2-3 27579 NULL 99843+libipw_alloc_txb_27579 libipw_alloc_txb 1-2-3 27579 NULL
100749+read_flush_procfs_27642 read_flush_procfs 3 27642 NULL nohasharray 99844+read_flush_procfs_27642 read_flush_procfs 3 27642 NULL nohasharray
100750+nl80211_send_connect_result_27642 nl80211_send_connect_result 5-7 27642 &read_flush_procfs_27642 nohasharray 99845+nl80211_send_connect_result_27642 nl80211_send_connect_result 5-7 27642 &read_flush_procfs_27642 nohasharray
@@ -100756,11 +99851,13 @@ index 0000000..7982a0c
100756+qword_get_27670 qword_get 0 27670 NULL 99851+qword_get_27670 qword_get 0 27670 NULL
100757+ocfs2_extend_dir_27695 ocfs2_extend_dir 4 27695 NULL 99852+ocfs2_extend_dir_27695 ocfs2_extend_dir 4 27695 NULL
100758+fs_path_add_from_extent_buffer_27702 fs_path_add_from_extent_buffer 4 27702 NULL 99853+fs_path_add_from_extent_buffer_27702 fs_path_add_from_extent_buffer 4 27702 NULL
99854+inc_zcache_eph_zbytes_27704 inc_zcache_eph_zbytes 1 27704 NULL
100759+evm_write_key_27715 evm_write_key 3 27715 NULL 99855+evm_write_key_27715 evm_write_key 3 27715 NULL
100760+ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol_27722 ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol 3 27722 NULL 99856+ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol_27722 ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol 3 27722 NULL
100761+reg_w_buf_27724 reg_w_buf 3 27724 NULL 99857+reg_w_buf_27724 reg_w_buf 3 27724 NULL
100762+xfs_dir2_block_sfsize_27727 xfs_dir2_block_sfsize 0 27727 NULL 99858+xfs_dir2_block_sfsize_27727 xfs_dir2_block_sfsize 0 27727 NULL
100763+a4t_cs_init_27734 a4t_cs_init 3 27734 NULL 99859+a4t_cs_init_27734 a4t_cs_init 3 27734 NULL
99860+SyS_setsockopt_27759 SyS_setsockopt 5 27759 NULL
100764+kcalloc_27770 kcalloc 1-2 27770 NULL 99861+kcalloc_27770 kcalloc 1-2 27770 NULL
100765+twl4030_set_gpio_dataout_27792 twl4030_set_gpio_dataout 1 27792 NULL 99862+twl4030_set_gpio_dataout_27792 twl4030_set_gpio_dataout 1 27792 NULL
100766+DivaSTraceGetMemotyRequirement_27797 DivaSTraceGetMemotyRequirement 0-1 27797 NULL 99863+DivaSTraceGetMemotyRequirement_27797 DivaSTraceGetMemotyRequirement 0-1 27797 NULL
@@ -100774,6 +99871,7 @@ index 0000000..7982a0c
100774+ieee80211_if_read_dot11MeshHWMProotInterval_27873 ieee80211_if_read_dot11MeshHWMProotInterval 3 27873 NULL 99871+ieee80211_if_read_dot11MeshHWMProotInterval_27873 ieee80211_if_read_dot11MeshHWMProotInterval 3 27873 NULL
100775+unix_seqpacket_sendmsg_27893 unix_seqpacket_sendmsg 4 27893 NULL 99872+unix_seqpacket_sendmsg_27893 unix_seqpacket_sendmsg 4 27893 NULL
100776+gluebi_write_27905 gluebi_write 3 27905 NULL 99873+gluebi_write_27905 gluebi_write 3 27905 NULL
99874+SyS_ptrace_27924 SyS_ptrace 3-4 27924 NULL
100777+bm_find_next_27929 bm_find_next 2 27929 NULL 99875+bm_find_next_27929 bm_find_next 2 27929 NULL
100778+tracing_clock_write_27961 tracing_clock_write 3 27961 NULL 99876+tracing_clock_write_27961 tracing_clock_write 3 27961 NULL
100779+tipc_media_addr_printf_27971 tipc_media_addr_printf 2 27971 NULL 99877+tipc_media_addr_printf_27971 tipc_media_addr_printf 2 27971 NULL
@@ -100782,6 +99880,7 @@ index 0000000..7982a0c
100782+edt_ft5x06_debugfs_raw_data_read_28002 edt_ft5x06_debugfs_raw_data_read 3 28002 NULL 99880+edt_ft5x06_debugfs_raw_data_read_28002 edt_ft5x06_debugfs_raw_data_read 3 28002 NULL
100783+snd_rawmidi_write_28008 snd_rawmidi_write 3 28008 NULL 99881+snd_rawmidi_write_28008 snd_rawmidi_write 3 28008 NULL
100784+serial8250_port_size_28019 serial8250_port_size 0 28019 NULL 99882+serial8250_port_size_28019 serial8250_port_size 0 28019 NULL
99883+alloc_one_pg_vec_page_28031 alloc_one_pg_vec_page 1 28031 NULL
100785+sctp_setsockopt_maxburst_28041 sctp_setsockopt_maxburst 3 28041 NULL 99884+sctp_setsockopt_maxburst_28041 sctp_setsockopt_maxburst 3 28041 NULL
100786+rts51x_xd_rw_28046 rts51x_xd_rw 3-4 28046 NULL 99885+rts51x_xd_rw_28046 rts51x_xd_rw 3-4 28046 NULL
100787+cx231xx_init_vbi_isoc_28053 cx231xx_init_vbi_isoc 3-2 28053 NULL 99886+cx231xx_init_vbi_isoc_28053 cx231xx_init_vbi_isoc 3-2 28053 NULL
@@ -100819,6 +99918,7 @@ index 0000000..7982a0c
100819+dlmfs_file_read_28385 dlmfs_file_read 3 28385 NULL 99918+dlmfs_file_read_28385 dlmfs_file_read 3 28385 NULL
100820+tx_frag_cache_miss_read_28394 tx_frag_cache_miss_read 3 28394 NULL 99919+tx_frag_cache_miss_read_28394 tx_frag_cache_miss_read 3 28394 NULL
100821+set_bypass_pfs_28395 set_bypass_pfs 3 28395 NULL 99920+set_bypass_pfs_28395 set_bypass_pfs 3 28395 NULL
99921+bypass_pwup_write_28416 bypass_pwup_write 3 28416 NULL
100822+subdev_ioctl_28417 subdev_ioctl 2 28417 NULL 99922+subdev_ioctl_28417 subdev_ioctl 2 28417 NULL
100823+__split_large_page_28429 __split_large_page 2 28429 NULL 99923+__split_large_page_28429 __split_large_page 2 28429 NULL
100824+mpage_readpages_28436 mpage_readpages 3 28436 NULL 99924+mpage_readpages_28436 mpage_readpages 3 28436 NULL
@@ -100858,13 +99958,16 @@ index 0000000..7982a0c
100858+snd_pcm_aio_write_28738 snd_pcm_aio_write 3 28738 NULL nohasharray 99958+snd_pcm_aio_write_28738 snd_pcm_aio_write 3 28738 NULL nohasharray
100859+phantom_compat_ioctl_28738 phantom_compat_ioctl 3 28738 &snd_pcm_aio_write_28738 99959+phantom_compat_ioctl_28738 phantom_compat_ioctl 3 28738 &snd_pcm_aio_write_28738
100860+read_file_btcoex_28743 read_file_btcoex 3 28743 NULL 99960+read_file_btcoex_28743 read_file_btcoex 3 28743 NULL
99961+max_hw_blocks_28748 max_hw_blocks 0 28748 NULL
100861+ath6kl_get_num_reg_28780 ath6kl_get_num_reg 0 28780 NULL 99962+ath6kl_get_num_reg_28780 ath6kl_get_num_reg 0 28780 NULL
100862+dvb_net_sec_callback_28786 dvb_net_sec_callback 2 28786 NULL 99963+dvb_net_sec_callback_28786 dvb_net_sec_callback 2 28786 NULL
100863+sel_write_member_28800 sel_write_member 3 28800 NULL 99964+btrfs_block_rsv_refill_28800 btrfs_block_rsv_refill 3 28800 NULL nohasharray
99965+sel_write_member_28800 sel_write_member 3 28800 &btrfs_block_rsv_refill_28800
100864+cgroup_file_read_28804 cgroup_file_read 3 28804 NULL 99966+cgroup_file_read_28804 cgroup_file_read 3 28804 NULL
100865+btrfs_ref_to_path_28809 btrfs_ref_to_path 0 28809 NULL 99967+btrfs_ref_to_path_28809 btrfs_ref_to_path 0 28809 NULL
100866+memory_bm_create_28814 memory_bm_create 0 28814 NULL 99968+memory_bm_create_28814 memory_bm_create 0 28814 NULL
100867+iwl_dbgfs_rxon_filter_flags_read_28832 iwl_dbgfs_rxon_filter_flags_read 3 28832 NULL 99969+iwl_dbgfs_rxon_filter_flags_read_28832 iwl_dbgfs_rxon_filter_flags_read 3 28832 NULL
99970+C_SYSC_shmat_28843 C_SYSC_shmat 2 28843 NULL
100868+vp_request_msix_vectors_28849 vp_request_msix_vectors 2 28849 NULL 99971+vp_request_msix_vectors_28849 vp_request_msix_vectors 2 28849 NULL
100869+ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL 99972+ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL
100870+packet_sendmsg_spkt_28885 packet_sendmsg_spkt 4 28885 NULL 99973+packet_sendmsg_spkt_28885 packet_sendmsg_spkt 4 28885 NULL
@@ -100877,6 +99980,7 @@ index 0000000..7982a0c
100877+alloc_sched_domains_28972 alloc_sched_domains 1 28972 NULL 99980+alloc_sched_domains_28972 alloc_sched_domains 1 28972 NULL
100878+ext4_mb_add_groupinfo_28988 ext4_mb_add_groupinfo 2 28988 NULL 99981+ext4_mb_add_groupinfo_28988 ext4_mb_add_groupinfo 2 28988 NULL
100879+bin_uuid_28999 bin_uuid 3 28999 NULL 99982+bin_uuid_28999 bin_uuid 3 28999 NULL
99983+offset_to_bitmap_29004 offset_to_bitmap 2 29004 NULL
100880+xz_dec_init_29029 xz_dec_init 2 29029 NULL 99984+xz_dec_init_29029 xz_dec_init 2 29029 NULL
100881+sys_fcntl64_29031 sys_fcntl64 3 29031 NULL 99985+sys_fcntl64_29031 sys_fcntl64 3 29031 NULL
100882+ieee80211_if_read_ht_opmode_29044 ieee80211_if_read_ht_opmode 3 29044 NULL 99986+ieee80211_if_read_ht_opmode_29044 ieee80211_if_read_ht_opmode 3 29044 NULL
@@ -100886,6 +99990,7 @@ index 0000000..7982a0c
100886+memblock_alloc_base_nid_29072 memblock_alloc_base_nid 1-2 29072 NULL 99990+memblock_alloc_base_nid_29072 memblock_alloc_base_nid 1-2 29072 NULL
100887+sctp_getsockopt_assoc_stats_29074 sctp_getsockopt_assoc_stats 2 29074 NULL 99991+sctp_getsockopt_assoc_stats_29074 sctp_getsockopt_assoc_stats 2 29074 NULL
100888+mark_extents_written_29082 mark_extents_written 2 29082 NULL 99992+mark_extents_written_29082 mark_extents_written 2 29082 NULL
99993+i915_error_object_create_sized_29091 i915_error_object_create_sized 3 29091 NULL
100889+isdn_ppp_write_29109 isdn_ppp_write 4 29109 NULL 99994+isdn_ppp_write_29109 isdn_ppp_write 4 29109 NULL
100890+snprintf_29125 snprintf 0 29125 NULL 99995+snprintf_29125 snprintf 0 29125 NULL
100891+iov_shorten_29130 iov_shorten 0 29130 NULL 99996+iov_shorten_29130 iov_shorten 0 29130 NULL
@@ -100899,6 +100004,7 @@ index 0000000..7982a0c
100899+comedi_alloc_subdevices_29207 comedi_alloc_subdevices 2 29207 NULL 100004+comedi_alloc_subdevices_29207 comedi_alloc_subdevices 2 29207 NULL
100900+do_shrinker_shrink_29208 do_shrinker_shrink 0 29208 NULL 100005+do_shrinker_shrink_29208 do_shrinker_shrink 0 29208 NULL
100901+iwl_dbgfs_temperature_read_29224 iwl_dbgfs_temperature_read 3 29224 NULL 100006+iwl_dbgfs_temperature_read_29224 iwl_dbgfs_temperature_read 3 29224 NULL
100007+nvme_trans_copy_from_user_29227 nvme_trans_copy_from_user 3 29227 NULL
100902+devm_ioremap_29235 devm_ioremap 2-3 29235 NULL 100008+devm_ioremap_29235 devm_ioremap 2-3 29235 NULL
100903+irq_domain_add_linear_29236 irq_domain_add_linear 2 29236 NULL 100009+irq_domain_add_linear_29236 irq_domain_add_linear 2 29236 NULL
100904+recover_peb_29238 recover_peb 6-7 29238 NULL 100010+recover_peb_29238 recover_peb 6-7 29238 NULL
@@ -100907,18 +100013,22 @@ index 0000000..7982a0c
100907+prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL 100013+prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL
100908+bitmap_ord_to_pos_29279 bitmap_ord_to_pos 3 29279 NULL 100014+bitmap_ord_to_pos_29279 bitmap_ord_to_pos 3 29279 NULL
100909+sn9c102_read_29305 sn9c102_read 3 29305 NULL 100015+sn9c102_read_29305 sn9c102_read 3 29305 NULL
100016+__fuse_get_req_29315 __fuse_get_req 2 29315 NULL
100910+lo_compat_ioctl_29336 lo_compat_ioctl 4 29336 NULL 100017+lo_compat_ioctl_29336 lo_compat_ioctl 4 29336 NULL
100911+tun_put_user_29337 tun_put_user 5 29337 NULL 100018+tun_put_user_29337 tun_put_user 5 29337 NULL
100912+__alloc_ei_netdev_29338 __alloc_ei_netdev 1 29338 NULL 100019+__alloc_ei_netdev_29338 __alloc_ei_netdev 1 29338 NULL
100913+alloc_and_copy_ftrace_hash_29368 alloc_and_copy_ftrace_hash 1 29368 NULL 100020+alloc_and_copy_ftrace_hash_29368 alloc_and_copy_ftrace_hash 1 29368 NULL
100021+ktime_us_delta_29375 ktime_us_delta 0 29375 NULL
100914+mwifiex_cfg80211_mgmt_tx_29387 mwifiex_cfg80211_mgmt_tx 7 29387 NULL 100022+mwifiex_cfg80211_mgmt_tx_29387 mwifiex_cfg80211_mgmt_tx 7 29387 NULL
100915+pca953x_irq_setup_29407 pca953x_irq_setup 3 29407 NULL 100023+pca953x_irq_setup_29407 pca953x_irq_setup 3 29407 NULL
100916+mempool_create_29437 mempool_create 1 29437 NULL 100024+mempool_create_29437 mempool_create 1 29437 NULL
100917+crypto_ahash_alignmask_29445 crypto_ahash_alignmask 0 29445 NULL 100025+crypto_ahash_alignmask_29445 crypto_ahash_alignmask 0 29445 NULL
100918+apei_exec_ctx_get_output_29457 apei_exec_ctx_get_output 0 29457 NULL 100026+apei_exec_ctx_get_output_29457 apei_exec_ctx_get_output 0 29457 NULL
100919+validate_scan_freqs_29462 validate_scan_freqs 0 29462 NULL 100027+validate_scan_freqs_29462 validate_scan_freqs 0 29462 NULL
100028+SyS_flistxattr_29474 SyS_flistxattr 3 29474 NULL
100920+do_register_entry_29478 do_register_entry 4 29478 NULL 100029+do_register_entry_29478 do_register_entry 4 29478 NULL
100921+simple_strtoul_29480 simple_strtoul 0 29480 NULL 100030+simple_strtoul_29480 simple_strtoul 0 29480 NULL
100031+sched_clock_local_29498 sched_clock_local 0 29498 NULL
100922+btmrvl_pscmd_write_29504 btmrvl_pscmd_write 3 29504 NULL 100032+btmrvl_pscmd_write_29504 btmrvl_pscmd_write 3 29504 NULL
100923+btrfs_file_extent_disk_bytenr_29505 btrfs_file_extent_disk_bytenr 0 29505 NULL 100033+btrfs_file_extent_disk_bytenr_29505 btrfs_file_extent_disk_bytenr 0 29505 NULL
100924+atk_debugfs_ggrp_read_29522 atk_debugfs_ggrp_read 3 29522 NULL 100034+atk_debugfs_ggrp_read_29522 atk_debugfs_ggrp_read 3 29522 NULL
@@ -100944,13 +100054,16 @@ index 0000000..7982a0c
100944+probes_write_29711 probes_write 3 29711 NULL 100054+probes_write_29711 probes_write 3 29711 NULL
100945+emi62_writememory_29731 emi62_writememory 4 29731 NULL 100055+emi62_writememory_29731 emi62_writememory 4 29731 NULL
100946+read_cis_cache_29735 read_cis_cache 4 29735 NULL 100056+read_cis_cache_29735 read_cis_cache 4 29735 NULL
100057+std_nic_write_29752 std_nic_write 3 29752 NULL
100947+ip_vs_conn_fill_param_sync_29771 ip_vs_conn_fill_param_sync 6 29771 NULL 100058+ip_vs_conn_fill_param_sync_29771 ip_vs_conn_fill_param_sync 6 29771 NULL
100059+tcf_csum_ipv6_icmp_29777 tcf_csum_ipv6_icmp 3 29777 NULL
100948+dbAlloc_29794 dbAlloc 0 29794 NULL 100060+dbAlloc_29794 dbAlloc 0 29794 NULL
100949+ext4_trim_all_free_29806 ext4_trim_all_free 4-3-2 29806 NULL 100061+ext4_trim_all_free_29806 ext4_trim_all_free 4-3-2 29806 NULL
100950+tcp_sendpage_29829 tcp_sendpage 4 29829 NULL 100062+tcp_sendpage_29829 tcp_sendpage 4 29829 NULL
100951+scan_bitmap_block_29840 scan_bitmap_block 4 29840 NULL 100063+scan_bitmap_block_29840 scan_bitmap_block 4 29840 NULL
100952+__probe_kernel_write_29842 __probe_kernel_write 3 29842 NULL 100064+__probe_kernel_write_29842 __probe_kernel_write 3 29842 NULL
100953+kvm_read_hva_atomic_29848 kvm_read_hva_atomic 3 29848 NULL 100065+kvm_read_hva_atomic_29848 kvm_read_hva_atomic 3 29848 NULL
100066+solo_enc_alloc_29860 solo_enc_alloc 3 29860 NULL
100954+ipv6_setsockopt_29871 ipv6_setsockopt 5 29871 NULL 100067+ipv6_setsockopt_29871 ipv6_setsockopt 5 29871 NULL
100955+scsi_end_request_29876 scsi_end_request 3 29876 NULL 100068+scsi_end_request_29876 scsi_end_request 3 29876 NULL
100956+crypto_aead_alignmask_29885 crypto_aead_alignmask 0 29885 NULL 100069+crypto_aead_alignmask_29885 crypto_aead_alignmask 0 29885 NULL
@@ -100975,6 +100088,7 @@ index 0000000..7982a0c
100975+calgary_unmap_page_30130 calgary_unmap_page 2-3 30130 NULL 100088+calgary_unmap_page_30130 calgary_unmap_page 2-3 30130 NULL
100976+_osd_req_sizeof_alist_header_30134 _osd_req_sizeof_alist_header 0 30134 NULL 100089+_osd_req_sizeof_alist_header_30134 _osd_req_sizeof_alist_header 0 30134 NULL
100977+u_memcpya_30139 u_memcpya 2-3 30139 NULL 100090+u_memcpya_30139 u_memcpya 2-3 30139 NULL
100091+btrfs_start_transaction_lflush_30178 btrfs_start_transaction_lflush 2 30178 NULL
100978+cx25821_video_ioctl_30188 cx25821_video_ioctl 2 30188 NULL 100092+cx25821_video_ioctl_30188 cx25821_video_ioctl 2 30188 NULL
100979+mempool_create_page_pool_30189 mempool_create_page_pool 1 30189 NULL 100093+mempool_create_page_pool_30189 mempool_create_page_pool 1 30189 NULL
100980+drm_property_create_bitmask_30195 drm_property_create_bitmask 5 30195 NULL 100094+drm_property_create_bitmask_30195 drm_property_create_bitmask 5 30195 NULL
@@ -100993,6 +100107,7 @@ index 0000000..7982a0c
100993+generic_ptrace_pokedata_30338 generic_ptrace_pokedata 2 30338 NULL 100107+generic_ptrace_pokedata_30338 generic_ptrace_pokedata 2 30338 NULL
100994+resource_from_user_30341 resource_from_user 3 30341 NULL 100108+resource_from_user_30341 resource_from_user 3 30341 NULL
100995+__vmalloc_node_flags_30352 __vmalloc_node_flags 1 30352 NULL 100109+__vmalloc_node_flags_30352 __vmalloc_node_flags 1 30352 NULL
100110+C_SYSC_readv_30369 C_SYSC_readv 3 30369 NULL
100996+sys_get_mempolicy_30379 sys_get_mempolicy 3-4 30379 NULL 100111+sys_get_mempolicy_30379 sys_get_mempolicy 3-4 30379 NULL
100997+mangle_sdp_packet_30381 mangle_sdp_packet 10 30381 NULL 100112+mangle_sdp_packet_30381 mangle_sdp_packet 10 30381 NULL
100998+c4iw_init_resource_30393 c4iw_init_resource 2-3 30393 NULL 100113+c4iw_init_resource_30393 c4iw_init_resource 2-3 30393 NULL
@@ -101008,6 +100123,7 @@ index 0000000..7982a0c
101008+ocrdma_reg_user_mr_30474 ocrdma_reg_user_mr 2-3 30474 NULL 100123+ocrdma_reg_user_mr_30474 ocrdma_reg_user_mr 2-3 30474 NULL
101009+write_head_30481 write_head 4 30481 NULL 100124+write_head_30481 write_head 4 30481 NULL
101010+adu_write_30487 adu_write 3 30487 NULL 100125+adu_write_30487 adu_write 3 30487 NULL
100126+dwc3_testmode_write_30516 dwc3_testmode_write 3 30516 NULL
101011+debug_debug2_read_30526 debug_debug2_read 3 30526 NULL 100127+debug_debug2_read_30526 debug_debug2_read 3 30526 NULL
101012+batadv_dat_snoop_incoming_arp_request_30548 batadv_dat_snoop_incoming_arp_request 3 30548 NULL 100128+batadv_dat_snoop_incoming_arp_request_30548 batadv_dat_snoop_incoming_arp_request 3 30548 NULL
101013+disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL 100129+disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL
@@ -101016,6 +100132,7 @@ index 0000000..7982a0c
101016+blk_init_tags_30592 blk_init_tags 1 30592 NULL 100132+blk_init_tags_30592 blk_init_tags 1 30592 NULL
101017+i2c_hid_get_report_length_30598 i2c_hid_get_report_length 0 30598 NULL 100133+i2c_hid_get_report_length_30598 i2c_hid_get_report_length 0 30598 NULL
101018+sgl_map_user_pages_30610 sgl_map_user_pages 2-3-4 30610 NULL 100134+sgl_map_user_pages_30610 sgl_map_user_pages 2-3-4 30610 NULL
100135+SyS_msgrcv_30611 SyS_msgrcv 3 30611 NULL
101019+macvtap_sendmsg_30629 macvtap_sendmsg 4 30629 NULL 100136+macvtap_sendmsg_30629 macvtap_sendmsg 4 30629 NULL
101020+ieee80211_if_read_dot11MeshAwakeWindowDuration_30631 ieee80211_if_read_dot11MeshAwakeWindowDuration 3 30631 NULL 100137+ieee80211_if_read_dot11MeshAwakeWindowDuration_30631 ieee80211_if_read_dot11MeshAwakeWindowDuration 3 30631 NULL
101021+compat_raw_setsockopt_30634 compat_raw_setsockopt 5 30634 NULL 100138+compat_raw_setsockopt_30634 compat_raw_setsockopt 5 30634 NULL
@@ -101032,6 +100149,7 @@ index 0000000..7982a0c
101032+sctp_setsockopt_auth_chunk_30843 sctp_setsockopt_auth_chunk 3 30843 NULL 100149+sctp_setsockopt_auth_chunk_30843 sctp_setsockopt_auth_chunk 3 30843 NULL
101033+cfg80211_rx_mgmt_30844 cfg80211_rx_mgmt 5 30844 NULL 100150+cfg80211_rx_mgmt_30844 cfg80211_rx_mgmt 5 30844 NULL
101034+hda_hwdep_ioctl_compat_30847 hda_hwdep_ioctl_compat 4 30847 NULL 100151+hda_hwdep_ioctl_compat_30847 hda_hwdep_ioctl_compat 4 30847 NULL
100152+trace_probe_nr_files_30882 trace_probe_nr_files 0 30882 NULL
101035+ieee80211_if_fmt_dropped_frames_no_route_30884 ieee80211_if_fmt_dropped_frames_no_route 3 30884 NULL 100153+ieee80211_if_fmt_dropped_frames_no_route_30884 ieee80211_if_fmt_dropped_frames_no_route 3 30884 NULL
101036+iommu_map_mmio_space_30919 iommu_map_mmio_space 1 30919 NULL 100154+iommu_map_mmio_space_30919 iommu_map_mmio_space 1 30919 NULL
101037+sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3 30941 NULL 100155+sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3 30941 NULL
@@ -101069,6 +100187,7 @@ index 0000000..7982a0c
101069+sisusbcon_scroll_31315 sisusbcon_scroll 5-2-3 31315 NULL 100187+sisusbcon_scroll_31315 sisusbcon_scroll 5-2-3 31315 NULL
101070+command_file_write_31318 command_file_write 3 31318 NULL 100188+command_file_write_31318 command_file_write 3 31318 NULL
101071+em28xx_init_usb_xfer_31337 em28xx_init_usb_xfer 4-6 31337 NULL 100189+em28xx_init_usb_xfer_31337 em28xx_init_usb_xfer 4-6 31337 NULL
100190+__cpu_to_node_31345 __cpu_to_node 0 31345 NULL
101072+xprt_rdma_allocate_31372 xprt_rdma_allocate 2 31372 NULL 100191+xprt_rdma_allocate_31372 xprt_rdma_allocate 2 31372 NULL
101073+vb2_vmalloc_get_userptr_31374 vb2_vmalloc_get_userptr 3-2 31374 NULL 100192+vb2_vmalloc_get_userptr_31374 vb2_vmalloc_get_userptr 3-2 31374 NULL
101074+trace_parser_get_init_31379 trace_parser_get_init 2 31379 NULL 100193+trace_parser_get_init_31379 trace_parser_get_init 2 31379 NULL
@@ -101114,6 +100233,7 @@ index 0000000..7982a0c
101114+shmem_pwrite_slow_31741 shmem_pwrite_slow 3 31741 NULL 100233+shmem_pwrite_slow_31741 shmem_pwrite_slow 3 31741 NULL
101115+NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 NULL nohasharray 100234+NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 NULL nohasharray
101116+input_abs_get_max_31742 input_abs_get_max 0 31742 &NCR_700_change_queue_depth_31742 100235+input_abs_get_max_31742 input_abs_get_max 0 31742 &NCR_700_change_queue_depth_31742
100236+muldiv64_31743 muldiv64 2-3 31743 NULL
101117+bcm_char_read_31750 bcm_char_read 3 31750 NULL 100237+bcm_char_read_31750 bcm_char_read 3 31750 NULL
101118+snd_seq_device_new_31753 snd_seq_device_new 4 31753 NULL 100238+snd_seq_device_new_31753 snd_seq_device_new 4 31753 NULL
101119+set_memory_wb_31761 set_memory_wb 1 31761 NULL 100239+set_memory_wb_31761 set_memory_wb 1 31761 NULL
@@ -101129,9 +100249,11 @@ index 0000000..7982a0c
101129+new_dir_31919 new_dir 3 31919 NULL 100249+new_dir_31919 new_dir 3 31919 NULL
101130+kmem_alloc_31920 kmem_alloc 1 31920 NULL 100250+kmem_alloc_31920 kmem_alloc 1 31920 NULL
101131+guestwidth_to_adjustwidth_31937 guestwidth_to_adjustwidth 0-1 31937 NULL 100251+guestwidth_to_adjustwidth_31937 guestwidth_to_adjustwidth 0-1 31937 NULL
100252+SYSC_sethostname_31940 SYSC_sethostname 2 31940 NULL
101132+iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4 31942 NULL 100253+iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4 31942 NULL
101133+vb2_write_31948 vb2_write 3 31948 NULL 100254+vb2_write_31948 vb2_write 3 31948 NULL
101134+pvr2_ctrl_get_valname_31951 pvr2_ctrl_get_valname 4 31951 NULL 100255+pvr2_ctrl_get_valname_31951 pvr2_ctrl_get_valname 4 31951 NULL
100256+regcache_rbtree_sync_31964 regcache_rbtree_sync 2 31964 NULL
101135+copy_from_user_toio_31966 copy_from_user_toio 3 31966 NULL 100257+copy_from_user_toio_31966 copy_from_user_toio 3 31966 NULL
101136+mtd_add_partition_31971 mtd_add_partition 3 31971 NULL 100258+mtd_add_partition_31971 mtd_add_partition 3 31971 NULL
101137+find_next_zero_bit_31990 find_next_zero_bit 0-2-3 31990 NULL 100259+find_next_zero_bit_31990 find_next_zero_bit 0-2-3 31990 NULL
@@ -101142,8 +100264,10 @@ index 0000000..7982a0c
101142+aead_len_32021 aead_len 0 32021 NULL 100264+aead_len_32021 aead_len 0 32021 NULL
101143+ocfs2_remove_extent_32032 ocfs2_remove_extent 4-3 32032 NULL 100265+ocfs2_remove_extent_32032 ocfs2_remove_extent 4-3 32032 NULL
101144+posix_acl_set_32037 posix_acl_set 4 32037 NULL 100266+posix_acl_set_32037 posix_acl_set 4 32037 NULL
100267+stk_read_32038 stk_read 3 32038 NULL
101145+vmw_cursor_update_dmabuf_32045 vmw_cursor_update_dmabuf 3-4 32045 NULL 100268+vmw_cursor_update_dmabuf_32045 vmw_cursor_update_dmabuf 3-4 32045 NULL
101146+sys_sched_setaffinity_32046 sys_sched_setaffinity 2 32046 NULL 100269+sys_sched_setaffinity_32046 sys_sched_setaffinity 2 32046 NULL
100270+SYSC_llistxattr_32061 SYSC_llistxattr 3 32061 NULL
101147+proc_scsi_devinfo_write_32064 proc_scsi_devinfo_write 3 32064 NULL 100271+proc_scsi_devinfo_write_32064 proc_scsi_devinfo_write 3 32064 NULL
101148+cfg80211_send_unprot_deauth_32080 cfg80211_send_unprot_deauth 3 32080 NULL 100272+cfg80211_send_unprot_deauth_32080 cfg80211_send_unprot_deauth 3 32080 NULL
101149+bio_alloc_32095 bio_alloc 2 32095 NULL 100273+bio_alloc_32095 bio_alloc 2 32095 NULL
@@ -101162,6 +100286,7 @@ index 0000000..7982a0c
101162+fb_compat_ioctl_32265 fb_compat_ioctl 3 32265 NULL 100286+fb_compat_ioctl_32265 fb_compat_ioctl 3 32265 NULL
101163+vmalloc_user_32308 vmalloc_user 1 32308 NULL 100287+vmalloc_user_32308 vmalloc_user 1 32308 NULL
101164+hex_string_32310 hex_string 0 32310 NULL 100288+hex_string_32310 hex_string 0 32310 NULL
100289+SyS_select_32319 SyS_select 1 32319 NULL
101165+nouveau_bar_create__32332 nouveau_bar_create_ 4 32332 NULL 100290+nouveau_bar_create__32332 nouveau_bar_create_ 4 32332 NULL
101166+nl80211_send_mlme_event_32337 nl80211_send_mlme_event 4 32337 NULL 100291+nl80211_send_mlme_event_32337 nl80211_send_mlme_event 4 32337 NULL
101167+t4_alloc_mem_32342 t4_alloc_mem 1 32342 NULL 100292+t4_alloc_mem_32342 t4_alloc_mem 1 32342 NULL
@@ -101169,6 +100294,7 @@ index 0000000..7982a0c
101169+sel_read_initcon_32362 sel_read_initcon 3 32362 NULL 100294+sel_read_initcon_32362 sel_read_initcon 3 32362 NULL
101170+_drbd_bm_find_next_32372 _drbd_bm_find_next 2 32372 NULL 100295+_drbd_bm_find_next_32372 _drbd_bm_find_next 2 32372 NULL
101171+usbtmc_read_32377 usbtmc_read 3 32377 NULL 100296+usbtmc_read_32377 usbtmc_read 3 32377 NULL
100297+local_clock_32385 local_clock 0 32385 NULL
101172+qla4_82xx_pci_mem_write_2M_32398 qla4_82xx_pci_mem_write_2M 2 32398 NULL 100298+qla4_82xx_pci_mem_write_2M_32398 qla4_82xx_pci_mem_write_2M 2 32398 NULL
101173+xfs_iext_add_indirect_multi_32400 xfs_iext_add_indirect_multi 3 32400 NULL 100299+xfs_iext_add_indirect_multi_32400 xfs_iext_add_indirect_multi 3 32400 NULL
101174+vmci_qp_alloc_32405 vmci_qp_alloc 3-5 32405 NULL 100300+vmci_qp_alloc_32405 vmci_qp_alloc 3-5 32405 NULL
@@ -101178,6 +100304,7 @@ index 0000000..7982a0c
101178+cache_status_32462 cache_status 5 32462 NULL 100304+cache_status_32462 cache_status 5 32462 NULL
101179+ieee80211_fill_mesh_addresses_32465 ieee80211_fill_mesh_addresses 0 32465 NULL 100305+ieee80211_fill_mesh_addresses_32465 ieee80211_fill_mesh_addresses 0 32465 NULL
101180+ide_driver_proc_write_32493 ide_driver_proc_write 3 32493 NULL 100306+ide_driver_proc_write_32493 ide_driver_proc_write 3 32493 NULL
100307+bypass_pwoff_write_32499 bypass_pwoff_write 3 32499 NULL
101181+ctrl_std_val_to_sym_32516 ctrl_std_val_to_sym 5 32516 NULL 100308+ctrl_std_val_to_sym_32516 ctrl_std_val_to_sym 5 32516 NULL
101182+disconnect_32521 disconnect 4 32521 NULL 100309+disconnect_32521 disconnect 4 32521 NULL
101183+qsfp_read_32522 qsfp_read 0-4-2 32522 NULL 100310+qsfp_read_32522 qsfp_read 0-4-2 32522 NULL
@@ -101201,6 +100328,7 @@ index 0000000..7982a0c
101201+ib_sg_dma_len_32649 ib_sg_dma_len 0 32649 NULL 100328+ib_sg_dma_len_32649 ib_sg_dma_len 0 32649 NULL
101202+generic_readlink_32654 generic_readlink 3 32654 NULL 100329+generic_readlink_32654 generic_readlink 3 32654 NULL
101203+move_addr_to_kernel_32673 move_addr_to_kernel 2 32673 NULL 100330+move_addr_to_kernel_32673 move_addr_to_kernel 2 32673 NULL
100331+compat_SyS_pwritev_32680 compat_SyS_pwritev 3 32680 NULL
101204+jfs_readpages_32702 jfs_readpages 4 32702 NULL 100332+jfs_readpages_32702 jfs_readpages 4 32702 NULL
101205+snd_hwdep_ioctl_compat_32736 snd_hwdep_ioctl_compat 3 32736 NULL 100333+snd_hwdep_ioctl_compat_32736 snd_hwdep_ioctl_compat 3 32736 NULL
101206+get_arg_page_32746 get_arg_page 2 32746 NULL 100334+get_arg_page_32746 get_arg_page 2 32746 NULL
@@ -101216,14 +100344,17 @@ index 0000000..7982a0c
101216+ath6kl_usb_submit_ctrl_in_32880 ath6kl_usb_submit_ctrl_in 6 32880 NULL nohasharray 100344+ath6kl_usb_submit_ctrl_in_32880 ath6kl_usb_submit_ctrl_in 6 32880 NULL nohasharray
101217+cifs_writedata_alloc_32880 cifs_writedata_alloc 1 32880 &ath6kl_usb_submit_ctrl_in_32880 100345+cifs_writedata_alloc_32880 cifs_writedata_alloc 1 32880 &ath6kl_usb_submit_ctrl_in_32880
101218+ath6kl_usb_post_recv_transfers_32892 ath6kl_usb_post_recv_transfers 2 32892 NULL 100346+ath6kl_usb_post_recv_transfers_32892 ath6kl_usb_post_recv_transfers 2 32892 NULL
100347+ext4_get_group_number_32899 ext4_get_group_number 0 32899 NULL
101219+il_dbgfs_tx_stats_read_32913 il_dbgfs_tx_stats_read 3 32913 NULL 100348+il_dbgfs_tx_stats_read_32913 il_dbgfs_tx_stats_read 3 32913 NULL
101220+zlib_inflate_workspacesize_32927 zlib_inflate_workspacesize 0 32927 NULL 100349+zlib_inflate_workspacesize_32927 zlib_inflate_workspacesize 0 32927 NULL
101221+rmap_recycle_32938 rmap_recycle 3 32938 NULL 100350+rmap_recycle_32938 rmap_recycle 3 32938 NULL
101222+irq_reserve_irqs_32946 irq_reserve_irqs 1-2 32946 NULL 100351+irq_reserve_irqs_32946 irq_reserve_irqs 1-2 32946 NULL
101223+ext4_valid_block_bitmap_32958 ext4_valid_block_bitmap 3 32958 NULL 100352+ext4_valid_block_bitmap_32958 ext4_valid_block_bitmap 3 32958 NULL
101224+arch_ptrace_32981 arch_ptrace 3 32981 NULL 100353+arch_ptrace_32981 arch_ptrace 3-4 32981 NULL
101225+compat_filldir_32999 compat_filldir 3 32999 NULL 100354+compat_filldir_32999 compat_filldir 3 32999 NULL
101226+ext3_alloc_blocks_33007 ext3_alloc_blocks 3 33007 NULL 100355+ext3_alloc_blocks_33007 ext3_alloc_blocks 3 33007 NULL nohasharray
100356+SyS_syslog_33007 SyS_syslog 3 33007 &ext3_alloc_blocks_33007
100357+SYSC_lgetxattr_33049 SYSC_lgetxattr 4 33049 NULL
101227+pipeline_dec_packet_in_fifo_full_read_33052 pipeline_dec_packet_in_fifo_full_read 3 33052 NULL 100358+pipeline_dec_packet_in_fifo_full_read_33052 pipeline_dec_packet_in_fifo_full_read 3 33052 NULL
101228+ebt_compat_match_offset_33053 ebt_compat_match_offset 0-2 33053 NULL 100359+ebt_compat_match_offset_33053 ebt_compat_match_offset 0-2 33053 NULL
101229+bitmap_resize_33054 bitmap_resize 2 33054 NULL 100360+bitmap_resize_33054 bitmap_resize 2 33054 NULL
@@ -101245,7 +100376,9 @@ index 0000000..7982a0c
101245+sched_find_first_bit_33270 sched_find_first_bit 0 33270 NULL 100376+sched_find_first_bit_33270 sched_find_first_bit 0 33270 NULL
101246+cachefiles_cook_key_33274 cachefiles_cook_key 2 33274 NULL 100377+cachefiles_cook_key_33274 cachefiles_cook_key 2 33274 NULL
101247+mei_compat_ioctl_33275 mei_compat_ioctl 3 33275 NULL 100378+mei_compat_ioctl_33275 mei_compat_ioctl 3 33275 NULL
100379+sync_pt_create_33282 sync_pt_create 2 33282 NULL
101248+mcs7830_get_reg_33308 mcs7830_get_reg 3 33308 NULL 100380+mcs7830_get_reg_33308 mcs7830_get_reg 3 33308 NULL
100381+isku_sysfs_read_keys_easyzone_33318 isku_sysfs_read_keys_easyzone 6 33318 NULL
101249+ath6kl_usb_ctrl_msg_exchange_33327 ath6kl_usb_ctrl_msg_exchange 4 33327 NULL 100382+ath6kl_usb_ctrl_msg_exchange_33327 ath6kl_usb_ctrl_msg_exchange 4 33327 NULL
101250+gsm_mux_rx_netchar_33336 gsm_mux_rx_netchar 3 33336 NULL 100383+gsm_mux_rx_netchar_33336 gsm_mux_rx_netchar 3 33336 NULL
101251+joydev_ioctl_33343 joydev_ioctl 2 33343 NULL 100384+joydev_ioctl_33343 joydev_ioctl 2 33343 NULL
@@ -101255,10 +100388,12 @@ index 0000000..7982a0c
101255+ocfs2_quota_read_33382 ocfs2_quota_read 5 33382 NULL 100388+ocfs2_quota_read_33382 ocfs2_quota_read 5 33382 NULL
101256+ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3 33383 NULL 100389+ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3 33383 NULL
101257+scsi_varlen_cdb_length_33385 scsi_varlen_cdb_length 0 33385 NULL 100390+scsi_varlen_cdb_length_33385 scsi_varlen_cdb_length 0 33385 NULL
100391+tg_get_cfs_period_33390 tg_get_cfs_period 0 33390 NULL
101258+ocfs2_allocate_unwritten_extents_33394 ocfs2_allocate_unwritten_extents 2-3 33394 NULL 100392+ocfs2_allocate_unwritten_extents_33394 ocfs2_allocate_unwritten_extents 2-3 33394 NULL
101259+ext4_meta_bg_first_block_no_33408 ext4_meta_bg_first_block_no 2 33408 NULL nohasharray 100393+ext4_meta_bg_first_block_no_33408 ext4_meta_bg_first_block_no 2 33408 NULL nohasharray
101260+snd_pcm_capture_ioctl1_33408 snd_pcm_capture_ioctl1 0 33408 &ext4_meta_bg_first_block_no_33408 100394+snd_pcm_capture_ioctl1_33408 snd_pcm_capture_ioctl1 0 33408 &ext4_meta_bg_first_block_no_33408
101261+ufs_getfrag_block_33409 ufs_getfrag_block 2 33409 NULL 100395+ufs_getfrag_block_33409 ufs_getfrag_block 2 33409 NULL
100396+dis_tap_write_33426 dis_tap_write 3 33426 NULL
101262+ubh_scanc_33436 ubh_scanc 0-4-3 33436 NULL 100397+ubh_scanc_33436 ubh_scanc 0-4-3 33436 NULL
101263+ovs_vport_alloc_33475 ovs_vport_alloc 1 33475 NULL 100398+ovs_vport_alloc_33475 ovs_vport_alloc 1 33475 NULL
101264+create_entry_33479 create_entry 2 33479 NULL 100399+create_entry_33479 create_entry 2 33479 NULL
@@ -101320,11 +100455,13 @@ index 0000000..7982a0c
101320+ppp_write_34034 ppp_write 3 34034 NULL 100455+ppp_write_34034 ppp_write 3 34034 NULL
101321+tty_insert_flip_string_34042 tty_insert_flip_string 3 34042 NULL 100456+tty_insert_flip_string_34042 tty_insert_flip_string 3 34042 NULL
101322+__domain_flush_pages_34045 __domain_flush_pages 2-3 34045 NULL 100457+__domain_flush_pages_34045 __domain_flush_pages 2-3 34045 NULL
100458+is_trap_at_addr_34047 is_trap_at_addr 2 34047 NULL
101323+acpi_dev_get_irqresource_34064 acpi_dev_get_irqresource 2 34064 NULL 100459+acpi_dev_get_irqresource_34064 acpi_dev_get_irqresource 2 34064 NULL
101324+memcg_update_all_caches_34068 memcg_update_all_caches 1 34068 NULL 100460+memcg_update_all_caches_34068 memcg_update_all_caches 1 34068 NULL
101325+read_file_ant_diversity_34071 read_file_ant_diversity 3 34071 NULL 100461+read_file_ant_diversity_34071 read_file_ant_diversity 3 34071 NULL
101326+compat_hdio_ioctl_34088 compat_hdio_ioctl 4 34088 NULL 100462+compat_hdio_ioctl_34088 compat_hdio_ioctl 4 34088 NULL
101327+pipeline_pipeline_fifo_full_read_34095 pipeline_pipeline_fifo_full_read 3 34095 NULL 100463+pipeline_pipeline_fifo_full_read_34095 pipeline_pipeline_fifo_full_read 3 34095 NULL
100464+proc_scsi_host_write_34107 proc_scsi_host_write 3 34107 NULL
101328+is_discarded_oblock_34120 is_discarded_oblock 2 34120 NULL 100465+is_discarded_oblock_34120 is_discarded_oblock 2 34120 NULL
101329+islpci_mgt_transmit_34133 islpci_mgt_transmit 5 34133 NULL 100466+islpci_mgt_transmit_34133 islpci_mgt_transmit 5 34133 NULL
101330+ttm_dma_page_pool_free_34135 ttm_dma_page_pool_free 2 34135 NULL 100467+ttm_dma_page_pool_free_34135 ttm_dma_page_pool_free 2 34135 NULL
@@ -101342,13 +100479,16 @@ index 0000000..7982a0c
101342+crypto_ablkcipher_ivsize_34363 crypto_ablkcipher_ivsize 0 34363 NULL 100479+crypto_ablkcipher_ivsize_34363 crypto_ablkcipher_ivsize 0 34363 NULL
101343+rngapi_reset_34366 rngapi_reset 3 34366 NULL nohasharray 100480+rngapi_reset_34366 rngapi_reset 3 34366 NULL nohasharray
101344+p54_alloc_skb_34366 p54_alloc_skb 3 34366 &rngapi_reset_34366 100481+p54_alloc_skb_34366 p54_alloc_skb 3 34366 &rngapi_reset_34366
100482+i2c_hid_get_raw_report_34376 i2c_hid_get_raw_report 0 34376 NULL
101345+reiserfs_resize_34377 reiserfs_resize 2 34377 NULL 100483+reiserfs_resize_34377 reiserfs_resize 2 34377 NULL
101346+ea_read_34378 ea_read 0 34378 NULL 100484+ea_read_34378 ea_read 0 34378 NULL
100485+fuse_send_read_34379 fuse_send_read 4 34379 NULL
101347+av7110_vbi_write_34384 av7110_vbi_write 3 34384 NULL 100486+av7110_vbi_write_34384 av7110_vbi_write 3 34384 NULL
101348+usbvision_v4l2_read_34386 usbvision_v4l2_read 3 34386 NULL 100487+usbvision_v4l2_read_34386 usbvision_v4l2_read 3 34386 NULL
101349+read_rbu_image_type_34387 read_rbu_image_type 6 34387 NULL 100488+read_rbu_image_type_34387 read_rbu_image_type 6 34387 NULL
101350+iwl_calib_set_34400 iwl_calib_set 3 34400 NULL nohasharray 100489+iwl_calib_set_34400 iwl_calib_set 3 34400 NULL nohasharray
101351+ivtv_read_pos_34400 ivtv_read_pos 3 34400 &iwl_calib_set_34400 100490+ivtv_read_pos_34400 ivtv_read_pos 3 34400 &iwl_calib_set_34400
100491+wd_exp_mode_write_34407 wd_exp_mode_write 3 34407 NULL
101352+nl80211_send_disassoc_34424 nl80211_send_disassoc 4 34424 NULL 100492+nl80211_send_disassoc_34424 nl80211_send_disassoc 4 34424 NULL
101353+usbtest_alloc_urb_34446 usbtest_alloc_urb 3-5 34446 NULL 100493+usbtest_alloc_urb_34446 usbtest_alloc_urb 3-5 34446 NULL
101354+mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3 34472 NULL 100494+mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3 34472 NULL
@@ -101377,6 +100517,7 @@ index 0000000..7982a0c
101377+reg_w_ixbuf_34736 reg_w_ixbuf 4 34736 NULL 100517+reg_w_ixbuf_34736 reg_w_ixbuf 4 34736 NULL
101378+qib_cdev_init_34778 qib_cdev_init 1 34778 NULL 100518+qib_cdev_init_34778 qib_cdev_init 1 34778 NULL
101379+__copy_in_user_34790 __copy_in_user 3 34790 NULL 100519+__copy_in_user_34790 __copy_in_user 3 34790 NULL
100520+SYSC_keyctl_34800 SYSC_keyctl 4 34800 NULL
101380+drbd_get_max_capacity_34804 drbd_get_max_capacity 0 34804 NULL 100521+drbd_get_max_capacity_34804 drbd_get_max_capacity 0 34804 NULL
101381+b43_debugfs_write_34838 b43_debugfs_write 3 34838 NULL 100522+b43_debugfs_write_34838 b43_debugfs_write 3 34838 NULL
101382+nl_portid_hash_zalloc_34843 nl_portid_hash_zalloc 1 34843 NULL 100523+nl_portid_hash_zalloc_34843 nl_portid_hash_zalloc 1 34843 NULL
@@ -101386,9 +100527,12 @@ index 0000000..7982a0c
101386+msg_print_text_34889 msg_print_text 0 34889 NULL 100527+msg_print_text_34889 msg_print_text 0 34889 NULL
101387+ieee80211_if_write_34894 ieee80211_if_write 3 34894 NULL 100528+ieee80211_if_write_34894 ieee80211_if_write 3 34894 NULL
101388+compat_put_uint_34905 compat_put_uint 1 34905 NULL 100529+compat_put_uint_34905 compat_put_uint 1 34905 NULL
100530+si476x_radio_read_rsq_primary_blob_34916 si476x_radio_read_rsq_primary_blob 3 34916 NULL
101389+__inode_permission_34925 __inode_permission 0 34925 NULL nohasharray 100531+__inode_permission_34925 __inode_permission 0 34925 NULL nohasharray
101390+btrfs_super_chunk_root_34925 btrfs_super_chunk_root 0 34925 &__inode_permission_34925 100532+btrfs_super_chunk_root_34925 btrfs_super_chunk_root 0 34925 &__inode_permission_34925
101391+skb_gro_header_slow_34958 skb_gro_header_slow 2 34958 NULL 100533+ceph_aio_write_34930 ceph_aio_write 4 34930 NULL
100534+skb_gro_header_slow_34958 skb_gro_header_slow 2 34958 NULL nohasharray
100535+i2c_transfer_34958 i2c_transfer 0 34958 &skb_gro_header_slow_34958
101392+Realloc_34961 Realloc 2 34961 NULL 100536+Realloc_34961 Realloc 2 34961 NULL
101393+mq_lookup_34990 mq_lookup 2 34990 NULL 100537+mq_lookup_34990 mq_lookup 2 34990 NULL
101394+rx_rx_hdr_overflow_read_35002 rx_rx_hdr_overflow_read 3 35002 NULL 100538+rx_rx_hdr_overflow_read_35002 rx_rx_hdr_overflow_read 3 35002 NULL
@@ -101397,6 +100541,7 @@ index 0000000..7982a0c
101397+sisusb_copy_memory_35016 sisusb_copy_memory 4 35016 NULL 100541+sisusb_copy_memory_35016 sisusb_copy_memory 4 35016 NULL
101398+alloc_p2m_page_35025 alloc_p2m_page 0 35025 NULL 100542+alloc_p2m_page_35025 alloc_p2m_page 0 35025 NULL
101399+coda_psdev_read_35029 coda_psdev_read 3 35029 NULL 100543+coda_psdev_read_35029 coda_psdev_read 3 35029 NULL
100544+brcmf_sdio_chip_writenvram_35042 brcmf_sdio_chip_writenvram 4 35042 NULL
101400+btmrvl_gpiogap_write_35053 btmrvl_gpiogap_write 3 35053 NULL 100545+btmrvl_gpiogap_write_35053 btmrvl_gpiogap_write 3 35053 NULL
101401+pwr_connection_out_of_sync_read_35061 pwr_connection_out_of_sync_read 3 35061 NULL 100546+pwr_connection_out_of_sync_read_35061 pwr_connection_out_of_sync_read 3 35061 NULL
101402+store_ifalias_35088 store_ifalias 4 35088 NULL 100547+store_ifalias_35088 store_ifalias 4 35088 NULL
@@ -101408,6 +100553,7 @@ index 0000000..7982a0c
101408+gntdev_alloc_map_35145 gntdev_alloc_map 2 35145 NULL 100553+gntdev_alloc_map_35145 gntdev_alloc_map 2 35145 NULL
101409+iscsi_conn_setup_35159 iscsi_conn_setup 2 35159 NULL 100554+iscsi_conn_setup_35159 iscsi_conn_setup 2 35159 NULL
101410+ieee80211_if_read_bssid_35161 ieee80211_if_read_bssid 3 35161 NULL 100555+ieee80211_if_read_bssid_35161 ieee80211_if_read_bssid 3 35161 NULL
100556+solo_v4l2_init_35179 solo_v4l2_init 2 35179 NULL
101411+mlx4_ib_get_cq_umem_35184 mlx4_ib_get_cq_umem 5-6 35184 NULL 100557+mlx4_ib_get_cq_umem_35184 mlx4_ib_get_cq_umem 5-6 35184 NULL
101412+iwl_nvm_read_chunk_35198 iwl_nvm_read_chunk 0 35198 NULL 100558+iwl_nvm_read_chunk_35198 iwl_nvm_read_chunk 0 35198 NULL
101413+uprobe_get_swbp_addr_35201 uprobe_get_swbp_addr 0 35201 NULL 100559+uprobe_get_swbp_addr_35201 uprobe_get_swbp_addr 0 35201 NULL
@@ -101418,8 +100564,10 @@ index 0000000..7982a0c
101418+rx_rx_cmplt_task_read_35226 rx_rx_cmplt_task_read 3 35226 NULL nohasharray 100564+rx_rx_cmplt_task_read_35226 rx_rx_cmplt_task_read 3 35226 NULL nohasharray
101419+video_register_device_no_warn_35226 video_register_device_no_warn 3 35226 &rx_rx_cmplt_task_read_35226 100565+video_register_device_no_warn_35226 video_register_device_no_warn 3 35226 &rx_rx_cmplt_task_read_35226
101420+gfn_to_page_many_atomic_35234 gfn_to_page_many_atomic 2 35234 NULL 100566+gfn_to_page_many_atomic_35234 gfn_to_page_many_atomic 2 35234 NULL
100567+SYSC_madvise_35241 SYSC_madvise 1 35241 NULL
101421+set_fd_set_35249 set_fd_set 1 35249 NULL 100568+set_fd_set_35249 set_fd_set 1 35249 NULL
101422+ioapic_setup_resources_35255 ioapic_setup_resources 1 35255 NULL 100569+ioapic_setup_resources_35255 ioapic_setup_resources 1 35255 NULL
100570+dis_disc_write_35265 dis_disc_write 3 35265 NULL
101423+dma_show_regs_35266 dma_show_regs 3 35266 NULL 100571+dma_show_regs_35266 dma_show_regs 3 35266 NULL
101424+irda_recvmsg_stream_35280 irda_recvmsg_stream 4 35280 NULL 100572+irda_recvmsg_stream_35280 irda_recvmsg_stream 4 35280 NULL
101425+i2o_block_end_request_35282 i2o_block_end_request 3 35282 NULL 100573+i2o_block_end_request_35282 i2o_block_end_request 3 35282 NULL
@@ -101435,6 +100583,7 @@ index 0000000..7982a0c
101435+nouveau_devinit_create__35348 nouveau_devinit_create_ 4 35348 NULL 100583+nouveau_devinit_create__35348 nouveau_devinit_create_ 4 35348 NULL
101436+hpi_alloc_control_cache_35351 hpi_alloc_control_cache 1 35351 NULL 100584+hpi_alloc_control_cache_35351 hpi_alloc_control_cache 1 35351 NULL
101437+compat_filldir64_35354 compat_filldir64 3 35354 NULL 100585+compat_filldir64_35354 compat_filldir64 3 35354 NULL
100586+SyS_getxattr_35408 SyS_getxattr 4 35408 NULL
101438+rawv6_send_hdrinc_35425 rawv6_send_hdrinc 3 35425 NULL 100587+rawv6_send_hdrinc_35425 rawv6_send_hdrinc 3 35425 NULL
101439+__set_test_and_free_35436 __set_test_and_free 2 35436 NULL 100588+__set_test_and_free_35436 __set_test_and_free 2 35436 NULL
101440+buffer_to_user_35439 buffer_to_user 3 35439 NULL 100589+buffer_to_user_35439 buffer_to_user 3 35439 NULL
@@ -101458,6 +100607,7 @@ index 0000000..7982a0c
101458+rdmaltWithLock_35669 rdmaltWithLock 0 35669 NULL 100607+rdmaltWithLock_35669 rdmaltWithLock 0 35669 NULL
101459+compat_sys_kexec_load_35674 compat_sys_kexec_load 2 35674 NULL 100608+compat_sys_kexec_load_35674 compat_sys_kexec_load 2 35674 NULL
101460+dm_table_create_35687 dm_table_create 3 35687 NULL 100609+dm_table_create_35687 dm_table_create 3 35687 NULL
100610+SYSC_pwritev_35690 SYSC_pwritev 3 35690 NULL
101461+rds_page_copy_user_35691 rds_page_copy_user 4 35691 NULL 100611+rds_page_copy_user_35691 rds_page_copy_user 4 35691 NULL
101462+pci_enable_sriov_35745 pci_enable_sriov 2 35745 NULL 100612+pci_enable_sriov_35745 pci_enable_sriov 2 35745 NULL
101463+iwl_dbgfs_disable_ht40_read_35761 iwl_dbgfs_disable_ht40_read 3 35761 NULL 100613+iwl_dbgfs_disable_ht40_read_35761 iwl_dbgfs_disable_ht40_read 3 35761 NULL
@@ -101469,6 +100619,7 @@ index 0000000..7982a0c
101469+kvm_dirty_bitmap_bytes_35886 kvm_dirty_bitmap_bytes 0 35886 NULL 100619+kvm_dirty_bitmap_bytes_35886 kvm_dirty_bitmap_bytes 0 35886 NULL
101470+ieee80211_if_fmt_dot11MeshRetryTimeout_35890 ieee80211_if_fmt_dot11MeshRetryTimeout 3 35890 NULL 100620+ieee80211_if_fmt_dot11MeshRetryTimeout_35890 ieee80211_if_fmt_dot11MeshRetryTimeout 3 35890 NULL
101471+uwb_rc_cmd_done_35892 uwb_rc_cmd_done 4 35892 NULL 100621+uwb_rc_cmd_done_35892 uwb_rc_cmd_done 4 35892 NULL
100622+SyS_set_mempolicy_35909 SyS_set_mempolicy 3 35909 NULL
101472+kernel_setsockopt_35913 kernel_setsockopt 5 35913 NULL 100623+kernel_setsockopt_35913 kernel_setsockopt 5 35913 NULL
101473+rbio_nr_pages_35916 rbio_nr_pages 0-1-2 35916 NULL 100624+rbio_nr_pages_35916 rbio_nr_pages 0-1-2 35916 NULL
101474+vol_cdev_compat_ioctl_35923 vol_cdev_compat_ioctl 3 35923 NULL 100625+vol_cdev_compat_ioctl_35923 vol_cdev_compat_ioctl 3 35923 NULL
@@ -101482,6 +100633,7 @@ index 0000000..7982a0c
101482+koneplus_sysfs_write_35993 koneplus_sysfs_write 6 35993 NULL 100633+koneplus_sysfs_write_35993 koneplus_sysfs_write 6 35993 NULL
101483+il3945_ucode_tx_stats_read_36016 il3945_ucode_tx_stats_read 3 36016 NULL 100634+il3945_ucode_tx_stats_read_36016 il3945_ucode_tx_stats_read 3 36016 NULL
101484+ubi_eba_write_leb_36029 ubi_eba_write_leb 5-6 36029 NULL 100635+ubi_eba_write_leb_36029 ubi_eba_write_leb 5-6 36029 NULL
100636+__videobuf_alloc_36031 __videobuf_alloc 1 36031 NULL
101485+account_shadowed_36048 account_shadowed 2 36048 NULL 100637+account_shadowed_36048 account_shadowed 2 36048 NULL
101486+gpio_power_read_36059 gpio_power_read 3 36059 NULL 100638+gpio_power_read_36059 gpio_power_read 3 36059 NULL
101487+write_emulate_36065 write_emulate 2-4 36065 NULL 100639+write_emulate_36065 write_emulate 2-4 36065 NULL
@@ -101501,12 +100653,16 @@ index 0000000..7982a0c
101501+b1_alloc_card_36155 b1_alloc_card 1 36155 NULL 100653+b1_alloc_card_36155 b1_alloc_card 1 36155 NULL
101502+btrfs_file_extent_inline_len_36158 btrfs_file_extent_inline_len 0 36158 NULL 100654+btrfs_file_extent_inline_len_36158 btrfs_file_extent_inline_len 0 36158 NULL
101503+snd_korg1212_copy_from_36169 snd_korg1212_copy_from 6 36169 NULL 100655+snd_korg1212_copy_from_36169 snd_korg1212_copy_from 6 36169 NULL
100656+SyS_kexec_load_36176 SyS_kexec_load 2 36176 NULL
100657+SYSC_sched_getaffinity_36208 SYSC_sched_getaffinity 2 36208 NULL
100658+SYSC_process_vm_readv_36216 SYSC_process_vm_readv 3-5 36216 NULL
101504+ubifs_read_nnode_36221 ubifs_read_nnode 0 36221 NULL 100659+ubifs_read_nnode_36221 ubifs_read_nnode 0 36221 NULL
101505+is_dirty_36223 is_dirty 2 36223 NULL 100660+is_dirty_36223 is_dirty 2 36223 NULL
101506+dma_alloc_attrs_36225 dma_alloc_attrs 0 36225 NULL 100661+dma_alloc_attrs_36225 dma_alloc_attrs 0 36225 NULL
101507+nfqnl_mangle_36226 nfqnl_mangle 4-2 36226 NULL 100662+nfqnl_mangle_36226 nfqnl_mangle 4-2 36226 NULL
101508+atomic_stats_read_36228 atomic_stats_read 3 36228 NULL 100663+atomic_stats_read_36228 atomic_stats_read 3 36228 NULL
101509+viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3 36241 NULL 100664+viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3 36241 NULL
100665+SYSC_getxattr_36242 SYSC_getxattr 4 36242 NULL
101510+rproc_recovery_read_36245 rproc_recovery_read 3 36245 NULL 100666+rproc_recovery_read_36245 rproc_recovery_read 3 36245 NULL
101511+scrub_stripe_36248 scrub_stripe 5-4 36248 NULL 100667+scrub_stripe_36248 scrub_stripe 5-4 36248 NULL
101512+compat_sys_mbind_36256 compat_sys_mbind 5 36256 NULL 100668+compat_sys_mbind_36256 compat_sys_mbind 5 36256 NULL
@@ -101520,13 +100676,17 @@ index 0000000..7982a0c
101520+fat_compat_ioctl_filldir_36328 fat_compat_ioctl_filldir 3 36328 NULL 100676+fat_compat_ioctl_filldir_36328 fat_compat_ioctl_filldir 3 36328 NULL
101521+lc_create_36332 lc_create 4 36332 NULL 100677+lc_create_36332 lc_create 4 36332 NULL
101522+jbd2_journal_init_revoke_table_36336 jbd2_journal_init_revoke_table 1 36336 NULL 100678+jbd2_journal_init_revoke_table_36336 jbd2_journal_init_revoke_table 1 36336 NULL
100679+isku_sysfs_read_key_mask_36343 isku_sysfs_read_key_mask 6 36343 NULL
101523+v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL nohasharray 100680+v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL nohasharray
101524+xz_dec_lzma2_create_36353 xz_dec_lzma2_create 2 36353 &v9fs_file_readn_36353 100681+xz_dec_lzma2_create_36353 xz_dec_lzma2_create 2 36353 &v9fs_file_readn_36353
101525+to_sector_36361 to_sector 0-1 36361 NULL 100682+to_sector_36361 to_sector 0-1 36361 NULL
101526+tunables_read_36385 tunables_read 3 36385 NULL 100683+tunables_read_36385 tunables_read 3 36385 NULL
101527+afs_alloc_flat_call_36399 afs_alloc_flat_call 2-3 36399 NULL 100684+afs_alloc_flat_call_36399 afs_alloc_flat_call 2-3 36399 NULL
100685+SyS_sethostname_36417 SyS_sethostname 2 36417 NULL
101528+sctp_tsnmap_init_36446 sctp_tsnmap_init 2 36446 NULL 100686+sctp_tsnmap_init_36446 sctp_tsnmap_init 2 36446 NULL
101529+alloc_etherdev_mqs_36450 alloc_etherdev_mqs 1 36450 NULL 100687+alloc_etherdev_mqs_36450 alloc_etherdev_mqs 1 36450 NULL
100688+tcf_csum_ipv6_udp_36457 tcf_csum_ipv6_udp 3 36457 NULL
100689+SyS_process_vm_writev_36476 SyS_process_vm_writev 3-5 36476 NULL
101530+b43_nphy_load_samples_36481 b43_nphy_load_samples 3 36481 NULL 100690+b43_nphy_load_samples_36481 b43_nphy_load_samples 3 36481 NULL
101531+tx_tx_checksum_result_read_36490 tx_tx_checksum_result_read 3 36490 NULL 100691+tx_tx_checksum_result_read_36490 tx_tx_checksum_result_read 3 36490 NULL
101532+__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL 100692+__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL
@@ -101549,10 +100709,12 @@ index 0000000..7982a0c
101549+format_decode_36638 format_decode 0 36638 NULL 100709+format_decode_36638 format_decode 0 36638 NULL
101550+ced_ioctl_36647 ced_ioctl 2 36647 NULL 100710+ced_ioctl_36647 ced_ioctl 2 36647 NULL
101551+lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL 100711+lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL
100712+perf_calculate_period_36662 perf_calculate_period 3-2 36662 NULL
101552+osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL 100713+osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL
101553+iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL 100714+iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL
101554+ptr_to_compat_36680 ptr_to_compat 0 36680 NULL 100715+ptr_to_compat_36680 ptr_to_compat 0 36680 NULL
101555+ext4_mb_discard_group_preallocations_36685 ext4_mb_discard_group_preallocations 2 36685 NULL 100716+ext4_mb_discard_group_preallocations_36685 ext4_mb_discard_group_preallocations 2 36685 NULL
100717+sched_clock_36717 sched_clock 0 36717 NULL
101556+extract_icmp6_fields_36732 extract_icmp6_fields 2 36732 NULL 100718+extract_icmp6_fields_36732 extract_icmp6_fields 2 36732 NULL
101557+snd_rawmidi_kernel_read1_36740 snd_rawmidi_kernel_read1 4 36740 NULL 100719+snd_rawmidi_kernel_read1_36740 snd_rawmidi_kernel_read1 4 36740 NULL
101558+cxgbi_device_register_36746 cxgbi_device_register 1-2 36746 NULL 100720+cxgbi_device_register_36746 cxgbi_device_register 1-2 36746 NULL
@@ -101561,6 +100723,7 @@ index 0000000..7982a0c
101561+ptp_filter_init_36780 ptp_filter_init 2 36780 NULL 100723+ptp_filter_init_36780 ptp_filter_init 2 36780 NULL
101562+proc_fault_inject_read_36802 proc_fault_inject_read 3 36802 NULL 100724+proc_fault_inject_read_36802 proc_fault_inject_read 3 36802 NULL
101563+hiddev_ioctl_36816 hiddev_ioctl 2 36816 NULL 100725+hiddev_ioctl_36816 hiddev_ioctl 2 36816 NULL
100726+tcf_csum_ipv6_tcp_36822 tcf_csum_ipv6_tcp 3 36822 NULL
101564+int_hardware_entry_36833 int_hardware_entry 3 36833 NULL 100727+int_hardware_entry_36833 int_hardware_entry 3 36833 NULL
101565+fc_change_queue_depth_36841 fc_change_queue_depth 2 36841 NULL 100728+fc_change_queue_depth_36841 fc_change_queue_depth 2 36841 NULL
101566+keyctl_describe_key_36853 keyctl_describe_key 3 36853 NULL 100729+keyctl_describe_key_36853 keyctl_describe_key 3 36853 NULL
@@ -101582,6 +100745,7 @@ index 0000000..7982a0c
101582+setxattr_37006 setxattr 4 37006 NULL 100745+setxattr_37006 setxattr 4 37006 NULL
101583+qp_broker_create_37053 qp_broker_create 6-5 37053 NULL nohasharray 100746+qp_broker_create_37053 qp_broker_create 6-5 37053 NULL nohasharray
101584+ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 &qp_broker_create_37053 100747+ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 &qp_broker_create_37053
100748+SYSC_setxattr_37078 SYSC_setxattr 4 37078 NULL
101585+parse_command_37079 parse_command 2 37079 NULL 100749+parse_command_37079 parse_command 2 37079 NULL
101586+pipeline_cs_rx_packet_in_read_37089 pipeline_cs_rx_packet_in_read 3 37089 NULL 100750+pipeline_cs_rx_packet_in_read_37089 pipeline_cs_rx_packet_in_read 3 37089 NULL
101587+tun_get_user_37094 tun_get_user 5 37094 NULL 100751+tun_get_user_37094 tun_get_user 5 37094 NULL
@@ -101599,6 +100763,7 @@ index 0000000..7982a0c
101599+nested_svm_map_37268 nested_svm_map 2 37268 NULL 100763+nested_svm_map_37268 nested_svm_map 2 37268 NULL
101600+c101_run_37279 c101_run 2 37279 NULL 100764+c101_run_37279 c101_run 2 37279 NULL
101601+srp_target_alloc_37288 srp_target_alloc 3 37288 NULL 100765+srp_target_alloc_37288 srp_target_alloc 3 37288 NULL
100766+isku_sysfs_write_talkfx_37298 isku_sysfs_write_talkfx 6 37298 NULL
101602+ieee80211_if_read_power_mode_37305 ieee80211_if_read_power_mode 3 37305 NULL 100767+ieee80211_if_read_power_mode_37305 ieee80211_if_read_power_mode 3 37305 NULL
101603+jffs2_write_dirent_37311 jffs2_write_dirent 5 37311 NULL 100768+jffs2_write_dirent_37311 jffs2_write_dirent 5 37311 NULL
101604+send_msg_37323 send_msg 4 37323 NULL 100769+send_msg_37323 send_msg 4 37323 NULL
@@ -101614,6 +100779,7 @@ index 0000000..7982a0c
101614+find_next_bit_37422 find_next_bit 0-2-3 37422 &acpi_os_allocate_zeroed_37422 100779+find_next_bit_37422 find_next_bit 0-2-3 37422 &acpi_os_allocate_zeroed_37422
101615+tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4 37428 NULL 100780+tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4 37428 NULL
101616+iwl_print_last_event_logs_37433 iwl_print_last_event_logs 0-7-9 37433 NULL 100781+iwl_print_last_event_logs_37433 iwl_print_last_event_logs 0-7-9 37433 NULL
100782+tty_audit_log_37440 tty_audit_log 5 37440 NULL
101617+tcp_established_options_37450 tcp_established_options 0 37450 NULL 100783+tcp_established_options_37450 tcp_established_options 0 37450 NULL
101618+brcmf_sdio_dump_console_37455 brcmf_sdio_dump_console 4 37455 NULL 100784+brcmf_sdio_dump_console_37455 brcmf_sdio_dump_console 4 37455 NULL
101619+__remove_37457 __remove 2 37457 NULL 100785+__remove_37457 __remove 2 37457 NULL
@@ -101630,12 +100796,15 @@ index 0000000..7982a0c
101630+xhci_alloc_streams_37586 xhci_alloc_streams 5 37586 NULL 100796+xhci_alloc_streams_37586 xhci_alloc_streams 5 37586 NULL
101631+mlx4_get_mgm_entry_size_37607 mlx4_get_mgm_entry_size 0 37607 NULL 100797+mlx4_get_mgm_entry_size_37607 mlx4_get_mgm_entry_size 0 37607 NULL
101632+kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6-3 37611 NULL 100798+kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6-3 37611 NULL
101633+policy_residency_37629 policy_residency 0 37629 NULL 100799+SYSC_mbind_37622 SYSC_mbind 5 37622 NULL
100800+btrfs_calc_trans_metadata_size_37629 btrfs_calc_trans_metadata_size 0-2 37629 NULL nohasharray
100801+policy_residency_37629 policy_residency 0 37629 &btrfs_calc_trans_metadata_size_37629
101634+check_pt_base_37635 check_pt_base 3 37635 NULL 100802+check_pt_base_37635 check_pt_base 3 37635 NULL
101635+alloc_fd_37637 alloc_fd 1 37637 NULL 100803+alloc_fd_37637 alloc_fd 1 37637 NULL
101636+bio_copy_user_iov_37660 bio_copy_user_iov 4 37660 NULL 100804+bio_copy_user_iov_37660 bio_copy_user_iov 4 37660 NULL
101637+rfcomm_sock_sendmsg_37661 rfcomm_sock_sendmsg 4 37661 NULL nohasharray 100805+rfcomm_sock_sendmsg_37661 rfcomm_sock_sendmsg 4 37661 NULL nohasharray
101638+vmw_framebuffer_dmabuf_dirty_37661 vmw_framebuffer_dmabuf_dirty 6 37661 &rfcomm_sock_sendmsg_37661 100806+vmw_framebuffer_dmabuf_dirty_37661 vmw_framebuffer_dmabuf_dirty 6 37661 &rfcomm_sock_sendmsg_37661
100807+SYSC_get_mempolicy_37664 SYSC_get_mempolicy 4-3 37664 NULL
101639+lnw_gpio_to_irq_37665 lnw_gpio_to_irq 2 37665 NULL 100808+lnw_gpio_to_irq_37665 lnw_gpio_to_irq 2 37665 NULL
101640+ieee80211_if_read_rc_rateidx_mcs_mask_2ghz_37675 ieee80211_if_read_rc_rateidx_mcs_mask_2ghz 3 37675 NULL 100809+ieee80211_if_read_rc_rateidx_mcs_mask_2ghz_37675 ieee80211_if_read_rc_rateidx_mcs_mask_2ghz 3 37675 NULL
101641+regmap_map_read_file_37685 regmap_map_read_file 3 37685 NULL 100810+regmap_map_read_file_37685 regmap_map_read_file 3 37685 NULL
@@ -101655,7 +100824,8 @@ index 0000000..7982a0c
101655+rx_decrypt_key_not_found_read_37820 rx_decrypt_key_not_found_read 3 37820 NULL 100824+rx_decrypt_key_not_found_read_37820 rx_decrypt_key_not_found_read 3 37820 NULL
101656+bitmap_find_next_zero_area_37827 bitmap_find_next_zero_area 2-3-5-4 37827 NULL 100825+bitmap_find_next_zero_area_37827 bitmap_find_next_zero_area 2-3-5-4 37827 NULL
101657+o2hb_debug_read_37851 o2hb_debug_read 3 37851 NULL 100826+o2hb_debug_read_37851 o2hb_debug_read 3 37851 NULL
101658+xfs_dir2_block_to_sf_37868 xfs_dir2_block_to_sf 3 37868 NULL 100827+isku_sysfs_write_last_set_37868 isku_sysfs_write_last_set 6 37868 NULL nohasharray
100828+xfs_dir2_block_to_sf_37868 xfs_dir2_block_to_sf 3 37868 &isku_sysfs_write_last_set_37868
101659+sys_setxattr_37880 sys_setxattr 4 37880 NULL 100829+sys_setxattr_37880 sys_setxattr 4 37880 NULL
101660+dvb_net_sec_37884 dvb_net_sec 3 37884 NULL 100830+dvb_net_sec_37884 dvb_net_sec 3 37884 NULL
101661+max77686_irq_domain_map_37897 max77686_irq_domain_map 2 37897 NULL 100831+max77686_irq_domain_map_37897 max77686_irq_domain_map 2 37897 NULL
@@ -101671,12 +100841,14 @@ index 0000000..7982a0c
101671+aggr_recv_addba_req_evt_38037 aggr_recv_addba_req_evt 4 38037 NULL 100841+aggr_recv_addba_req_evt_38037 aggr_recv_addba_req_evt 4 38037 NULL
101672+klsi_105_prepare_write_buffer_38044 klsi_105_prepare_write_buffer 3 38044 NULL nohasharray 100842+klsi_105_prepare_write_buffer_38044 klsi_105_prepare_write_buffer 3 38044 NULL nohasharray
101673+il_dbgfs_chain_noise_read_38044 il_dbgfs_chain_noise_read 3 38044 &klsi_105_prepare_write_buffer_38044 100843+il_dbgfs_chain_noise_read_38044 il_dbgfs_chain_noise_read 3 38044 &klsi_105_prepare_write_buffer_38044
100844+SyS_llistxattr_38048 SyS_llistxattr 3 38048 NULL
101674+_xfs_buf_alloc_38058 _xfs_buf_alloc 3 38058 NULL nohasharray 100845+_xfs_buf_alloc_38058 _xfs_buf_alloc 3 38058 NULL nohasharray
101675+is_discarded_38058 is_discarded 2 38058 &_xfs_buf_alloc_38058 100846+is_discarded_38058 is_discarded 2 38058 &_xfs_buf_alloc_38058
101676+nsm_create_handle_38060 nsm_create_handle 4 38060 NULL 100847+nsm_create_handle_38060 nsm_create_handle 4 38060 NULL
101677+alloc_ltalkdev_38071 alloc_ltalkdev 1 38071 NULL 100848+alloc_ltalkdev_38071 alloc_ltalkdev 1 38071 NULL
101678+xfs_buf_readahead_map_38081 xfs_buf_readahead_map 3 38081 NULL 100849+xfs_buf_readahead_map_38081 xfs_buf_readahead_map 3 38081 NULL
101679+uwb_mac_addr_print_38085 uwb_mac_addr_print 2 38085 NULL 100850+uwb_mac_addr_print_38085 uwb_mac_addr_print 2 38085 NULL
100851+tcf_csum_ipv4_udp_38089 tcf_csum_ipv4_udp 3 38089 NULL
101680+request_key_auth_new_38092 request_key_auth_new 3 38092 NULL 100852+request_key_auth_new_38092 request_key_auth_new 3 38092 NULL
101681+proc_self_readlink_38094 proc_self_readlink 3 38094 NULL 100853+proc_self_readlink_38094 proc_self_readlink 3 38094 NULL
101682+ep0_read_38095 ep0_read 3 38095 NULL 100854+ep0_read_38095 ep0_read 3 38095 NULL
@@ -101699,7 +100871,8 @@ index 0000000..7982a0c
101699+from_dblock_38256 from_dblock 0-1 38256 NULL 100871+from_dblock_38256 from_dblock 0-1 38256 NULL
101700+vmci_qp_broker_set_page_store_38260 vmci_qp_broker_set_page_store 2-3 38260 NULL 100872+vmci_qp_broker_set_page_store_38260 vmci_qp_broker_set_page_store 2-3 38260 NULL
101701+ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 NULL nohasharray 100873+ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 NULL nohasharray
101702+mthca_alloc_icm_table_38268 mthca_alloc_icm_table 4-3 38268 &ieee80211_if_read_auto_open_plinks_38268 100874+SYSC_msgrcv_38268 SYSC_msgrcv 3 38268 &ieee80211_if_read_auto_open_plinks_38268 nohasharray
100875+mthca_alloc_icm_table_38268 mthca_alloc_icm_table 4-3 38268 &SYSC_msgrcv_38268
101703+xfs_bmbt_to_bmdr_38275 xfs_bmbt_to_bmdr 3 38275 NULL nohasharray 100876+xfs_bmbt_to_bmdr_38275 xfs_bmbt_to_bmdr 3 38275 NULL nohasharray
101704+xfs_bmdr_to_bmbt_38275 xfs_bmdr_to_bmbt 5 38275 &xfs_bmbt_to_bmdr_38275 100877+xfs_bmdr_to_bmbt_38275 xfs_bmdr_to_bmbt 5 38275 &xfs_bmbt_to_bmdr_38275
101705+ftdi_process_packet_38281 ftdi_process_packet 4 38281 NULL nohasharray 100878+ftdi_process_packet_38281 ftdi_process_packet 4 38281 NULL nohasharray
@@ -101722,6 +100895,7 @@ index 0000000..7982a0c
101722+i915_min_freq_read_38470 i915_min_freq_read 3 38470 NULL 100895+i915_min_freq_read_38470 i915_min_freq_read 3 38470 NULL
101723+kvm_arch_setup_async_pf_38481 kvm_arch_setup_async_pf 3 38481 NULL 100896+kvm_arch_setup_async_pf_38481 kvm_arch_setup_async_pf 3 38481 NULL
101724+blk_end_bidi_request_38482 blk_end_bidi_request 3-4 38482 NULL 100897+blk_end_bidi_request_38482 blk_end_bidi_request 3-4 38482 NULL
100898+cpu_to_mem_38501 cpu_to_mem 0 38501 NULL
101725+dev_names_read_38509 dev_names_read 3 38509 NULL 100899+dev_names_read_38509 dev_names_read 3 38509 NULL
101726+iscsi_create_iface_38510 iscsi_create_iface 5 38510 NULL 100900+iscsi_create_iface_38510 iscsi_create_iface 5 38510 NULL
101727+event_rx_mismatch_read_38518 event_rx_mismatch_read 3 38518 NULL 100901+event_rx_mismatch_read_38518 event_rx_mismatch_read 3 38518 NULL
@@ -101729,6 +100903,7 @@ index 0000000..7982a0c
101729+mlx4_ib_db_map_user_38529 mlx4_ib_db_map_user 2 38529 NULL 100903+mlx4_ib_db_map_user_38529 mlx4_ib_db_map_user 2 38529 NULL
101730+ubifs_idx_node_sz_38546 ubifs_idx_node_sz 0-2 38546 NULL 100904+ubifs_idx_node_sz_38546 ubifs_idx_node_sz 0-2 38546 NULL
101731+btrfs_discard_extent_38547 btrfs_discard_extent 2 38547 NULL 100905+btrfs_discard_extent_38547 btrfs_discard_extent 2 38547 NULL
100906+cpu_to_node_38561 cpu_to_node 0 38561 NULL
101732+irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4 38563 NULL 100907+irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4 38563 NULL
101733+il4965_rs_sta_dbgfs_scale_table_read_38564 il4965_rs_sta_dbgfs_scale_table_read 3 38564 NULL 100908+il4965_rs_sta_dbgfs_scale_table_read_38564 il4965_rs_sta_dbgfs_scale_table_read 3 38564 NULL
101734+_ipw_read32_38565 _ipw_read32 0 38565 NULL 100909+_ipw_read32_38565 _ipw_read32 0 38565 NULL
@@ -101743,6 +100918,7 @@ index 0000000..7982a0c
101743+qp_broker_alloc_38646 qp_broker_alloc 5-6 38646 NULL 100918+qp_broker_alloc_38646 qp_broker_alloc 5-6 38646 NULL
101744+mmc_send_cxd_data_38655 mmc_send_cxd_data 5 38655 NULL 100919+mmc_send_cxd_data_38655 mmc_send_cxd_data 5 38655 NULL
101745+nouveau_instmem_create__38664 nouveau_instmem_create_ 4 38664 NULL 100920+nouveau_instmem_create__38664 nouveau_instmem_create_ 4 38664 NULL
100921+skb_tnl_header_len_38669 skb_tnl_header_len 0 38669 NULL
101746+cfg80211_send_disassoc_38678 cfg80211_send_disassoc 3 38678 NULL 100922+cfg80211_send_disassoc_38678 cfg80211_send_disassoc 3 38678 NULL
101747+iscsit_dump_data_payload_38683 iscsit_dump_data_payload 2 38683 NULL 100923+iscsit_dump_data_payload_38683 iscsit_dump_data_payload 2 38683 NULL
101748+ext4_wait_block_bitmap_38695 ext4_wait_block_bitmap 2 38695 NULL 100924+ext4_wait_block_bitmap_38695 ext4_wait_block_bitmap 2 38695 NULL
@@ -101768,7 +100944,8 @@ index 0000000..7982a0c
101768+ext3_trim_all_free_38929 ext3_trim_all_free 3-4-2 38929 NULL 100944+ext3_trim_all_free_38929 ext3_trim_all_free 3-4-2 38929 NULL
101769+sbp_count_se_tpg_luns_38943 sbp_count_se_tpg_luns 0 38943 NULL 100945+sbp_count_se_tpg_luns_38943 sbp_count_se_tpg_luns 0 38943 NULL
101770+__ath6kl_wmi_send_mgmt_cmd_38971 __ath6kl_wmi_send_mgmt_cmd 7 38971 NULL 100946+__ath6kl_wmi_send_mgmt_cmd_38971 __ath6kl_wmi_send_mgmt_cmd 7 38971 NULL
101771+usb_maxpacket_38977 usb_maxpacket 0 38977 NULL 100947+C_SYSC_preadv64_38977 C_SYSC_preadv64 3 38977 NULL nohasharray
100948+usb_maxpacket_38977 usb_maxpacket 0 38977 &C_SYSC_preadv64_38977
101772+OSDSetBlock_38986 OSDSetBlock 4-2 38986 NULL 100949+OSDSetBlock_38986 OSDSetBlock 4-2 38986 NULL
101773+udf_new_block_38999 udf_new_block 4 38999 NULL 100950+udf_new_block_38999 udf_new_block 4 38999 NULL
101774+get_nodes_39012 get_nodes 3 39012 NULL 100951+get_nodes_39012 get_nodes 3 39012 NULL
@@ -101814,6 +100991,7 @@ index 0000000..7982a0c
101814+user_power_read_39414 user_power_read 3 39414 NULL 100991+user_power_read_39414 user_power_read 3 39414 NULL
101815+alloc_agpphysmem_i8xx_39427 alloc_agpphysmem_i8xx 1 39427 NULL 100992+alloc_agpphysmem_i8xx_39427 alloc_agpphysmem_i8xx 1 39427 NULL
101816+sys_semop_39457 sys_semop 3 39457 NULL 100993+sys_semop_39457 sys_semop 3 39457 NULL
100994+ptrace_peek_siginfo_39458 ptrace_peek_siginfo 3 39458 NULL
101817+setkey_unaligned_39474 setkey_unaligned 3 39474 NULL 100995+setkey_unaligned_39474 setkey_unaligned 3 39474 NULL
101818+do_get_mempolicy_39485 do_get_mempolicy 3 39485 NULL 100996+do_get_mempolicy_39485 do_get_mempolicy 3 39485 NULL
101819+ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries_39499 ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries 3 39499 NULL 100997+ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries_39499 ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries 3 39499 NULL
@@ -101860,11 +101038,13 @@ index 0000000..7982a0c
101860+fwnet_pd_new_39947 fwnet_pd_new 4 39947 &error_error_frame_read_39947 101038+fwnet_pd_new_39947 fwnet_pd_new 4 39947 &error_error_frame_read_39947
101861+tty_prepare_flip_string_39955 tty_prepare_flip_string 3 39955 NULL 101039+tty_prepare_flip_string_39955 tty_prepare_flip_string 3 39955 NULL
101862+dma_push_rx_39973 dma_push_rx 2 39973 NULL 101040+dma_push_rx_39973 dma_push_rx 2 39973 NULL
101041+vfio_pci_read_39975 vfio_pci_read 3 39975 NULL
101863+broadsheetfb_write_39976 broadsheetfb_write 3 39976 NULL 101042+broadsheetfb_write_39976 broadsheetfb_write 3 39976 NULL
101864+mthca_array_init_39987 mthca_array_init 2 39987 NULL 101043+mthca_array_init_39987 mthca_array_init 2 39987 NULL
101865+xen_hvm_config_40018 xen_hvm_config 2 40018 NULL 101044+xen_hvm_config_40018 xen_hvm_config 2 40018 NULL
101866+nf_nat_icmpv6_reply_translation_40023 nf_nat_icmpv6_reply_translation 5 40023 NULL nohasharray 101045+nf_nat_icmpv6_reply_translation_40023 nf_nat_icmpv6_reply_translation 5 40023 NULL nohasharray
101867+ivtvfb_write_40023 ivtvfb_write 3 40023 &nf_nat_icmpv6_reply_translation_40023 101046+ivtvfb_write_40023 ivtvfb_write 3 40023 &nf_nat_icmpv6_reply_translation_40023
101047+disc_pwup_write_40027 disc_pwup_write 3 40027 NULL
101868+ea_foreach_i_40028 ea_foreach_i 0 40028 NULL 101048+ea_foreach_i_40028 ea_foreach_i 0 40028 NULL
101869+datablob_hmac_append_40038 datablob_hmac_append 3 40038 NULL 101049+datablob_hmac_append_40038 datablob_hmac_append 3 40038 NULL
101870+regmap_add_irq_chip_40042 regmap_add_irq_chip 4 40042 NULL 101050+regmap_add_irq_chip_40042 regmap_add_irq_chip 4 40042 NULL
@@ -101873,6 +101053,7 @@ index 0000000..7982a0c
101873+atomic_xchg_40070 atomic_xchg 0 40070 NULL 101053+atomic_xchg_40070 atomic_xchg 0 40070 NULL
101874+gen_pool_first_fit_40110 gen_pool_first_fit 2-3-4 40110 NULL 101054+gen_pool_first_fit_40110 gen_pool_first_fit 2-3-4 40110 NULL
101875+sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3 40129 NULL 101055+sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3 40129 NULL
101056+dwc2_max_desc_num_40132 dwc2_max_desc_num 0 40132 NULL
101876+rx_rx_frame_checksum_read_40140 rx_rx_frame_checksum_read 3 40140 NULL 101057+rx_rx_frame_checksum_read_40140 rx_rx_frame_checksum_read 3 40140 NULL
101877+iwch_alloc_fastreg_pbl_40153 iwch_alloc_fastreg_pbl 2 40153 NULL 101058+iwch_alloc_fastreg_pbl_40153 iwch_alloc_fastreg_pbl 2 40153 NULL
101878+pt_write_40159 pt_write 3 40159 NULL 101059+pt_write_40159 pt_write 3 40159 NULL
@@ -101889,6 +101070,7 @@ index 0000000..7982a0c
101889+rs_sta_dbgfs_scale_table_read_40262 rs_sta_dbgfs_scale_table_read 3 40262 NULL 101070+rs_sta_dbgfs_scale_table_read_40262 rs_sta_dbgfs_scale_table_read 3 40262 NULL
101890+usbnet_read_cmd_40275 usbnet_read_cmd 7 40275 NULL 101071+usbnet_read_cmd_40275 usbnet_read_cmd 7 40275 NULL
101891+rx_xfr_hint_trig_read_40283 rx_xfr_hint_trig_read 3 40283 NULL 101072+rx_xfr_hint_trig_read_40283 rx_xfr_hint_trig_read 3 40283 NULL
101073+_calc_trunk_info_40291 _calc_trunk_info 2 40291 NULL
101892+crash_free_reserved_phys_range_40292 crash_free_reserved_phys_range 1 40292 NULL 101074+crash_free_reserved_phys_range_40292 crash_free_reserved_phys_range 1 40292 NULL
101893+ubi_io_write_data_40305 ubi_io_write_data 4-5 40305 NULL 101075+ubi_io_write_data_40305 ubi_io_write_data 4-5 40305 NULL
101894+batadv_tt_changes_fill_buff_40323 batadv_tt_changes_fill_buff 4 40323 NULL 101076+batadv_tt_changes_fill_buff_40323 batadv_tt_changes_fill_buff 4 40323 NULL
@@ -101913,6 +101095,8 @@ index 0000000..7982a0c
101913+ima_write_policy_40548 ima_write_policy 3 40548 NULL 101095+ima_write_policy_40548 ima_write_policy 3 40548 NULL
101914+esp_alloc_tmp_40558 esp_alloc_tmp 3-2 40558 NULL 101096+esp_alloc_tmp_40558 esp_alloc_tmp 3-2 40558 NULL
101915+ufs_inode_getfrag_40560 ufs_inode_getfrag 2-4 40560 NULL 101097+ufs_inode_getfrag_40560 ufs_inode_getfrag 2-4 40560 NULL
101098+bdev_sectors_40564 bdev_sectors 0 40564 NULL
101099+lba_to_map_index_40580 lba_to_map_index 0-1 40580 NULL
101916+skge_rx_get_40598 skge_rx_get 3 40598 NULL 101100+skge_rx_get_40598 skge_rx_get 3 40598 NULL
101917+get_priv_descr_and_size_40612 get_priv_descr_and_size 0 40612 NULL 101101+get_priv_descr_and_size_40612 get_priv_descr_and_size 0 40612 NULL
101918+bl_mark_sectors_init_40613 bl_mark_sectors_init 2-3 40613 NULL 101102+bl_mark_sectors_init_40613 bl_mark_sectors_init 2-3 40613 NULL
@@ -101924,6 +101108,7 @@ index 0000000..7982a0c
101924+alloc_rbio_40676 alloc_rbio 4 40676 NULL 101108+alloc_rbio_40676 alloc_rbio 4 40676 NULL
101925+videobuf_dma_init_user_locked_40678 videobuf_dma_init_user_locked 3 40678 NULL 101109+videobuf_dma_init_user_locked_40678 videobuf_dma_init_user_locked 3 40678 NULL
101926+nfc_hci_set_param_40697 nfc_hci_set_param 5 40697 NULL 101110+nfc_hci_set_param_40697 nfc_hci_set_param 5 40697 NULL
101111+vfio_pci_config_rw_40698 vfio_pci_config_rw 3 40698 NULL
101927+__seq_open_private_40715 __seq_open_private 3 40715 NULL 101112+__seq_open_private_40715 __seq_open_private 3 40715 NULL
101928+fuse_readpages_40737 fuse_readpages 4 40737 NULL 101113+fuse_readpages_40737 fuse_readpages 4 40737 NULL
101929+xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL nohasharray 101114+xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL nohasharray
@@ -101934,12 +101119,15 @@ index 0000000..7982a0c
101934+ad1889_readl_40765 ad1889_readl 0 40765 NULL 101119+ad1889_readl_40765 ad1889_readl 0 40765 NULL
101935+pg_write_40766 pg_write 3 40766 NULL 101120+pg_write_40766 pg_write 3 40766 NULL
101936+show_list_40775 show_list 3 40775 NULL 101121+show_list_40775 show_list 3 40775 NULL
101122+calcu_metadata_size_40782 calcu_metadata_size 0 40782 NULL
101937+kfifo_out_copy_r_40784 kfifo_out_copy_r 0-3 40784 NULL 101123+kfifo_out_copy_r_40784 kfifo_out_copy_r 0-3 40784 NULL
101938+bitmap_weight_40791 bitmap_weight 0-2 40791 NULL 101124+bitmap_weight_40791 bitmap_weight 0-2 40791 NULL
101939+pyra_sysfs_read_40795 pyra_sysfs_read 6 40795 NULL 101125+pyra_sysfs_read_40795 pyra_sysfs_read 6 40795 NULL
101940+netdev_alloc_skb_ip_align_40811 netdev_alloc_skb_ip_align 2 40811 NULL 101126+netdev_alloc_skb_ip_align_40811 netdev_alloc_skb_ip_align 2 40811 NULL
101941+nl80211_send_roamed_40825 nl80211_send_roamed 5-7 40825 NULL 101127+nl80211_send_roamed_40825 nl80211_send_roamed 5-7 40825 NULL
101128+SyS_mbind_40828 SyS_mbind 5 40828 NULL
101942+__mlx4_qp_reserve_range_40847 __mlx4_qp_reserve_range 2-3 40847 NULL 101129+__mlx4_qp_reserve_range_40847 __mlx4_qp_reserve_range 2-3 40847 NULL
101130+isku_sysfs_write_keys_thumbster_40851 isku_sysfs_write_keys_thumbster 6 40851 NULL
101943+ocfs2_zero_partial_clusters_40856 ocfs2_zero_partial_clusters 2-3 40856 NULL 101131+ocfs2_zero_partial_clusters_40856 ocfs2_zero_partial_clusters 2-3 40856 NULL
101944+v9fs_file_read_40858 v9fs_file_read 3 40858 NULL 101132+v9fs_file_read_40858 v9fs_file_read 3 40858 NULL
101945+read_file_queue_40895 read_file_queue 3 40895 NULL 101133+read_file_queue_40895 read_file_queue 3 40895 NULL
@@ -101977,8 +101165,10 @@ index 0000000..7982a0c
101977+hiddev_compat_ioctl_41255 hiddev_compat_ioctl 2-3 41255 NULL 101165+hiddev_compat_ioctl_41255 hiddev_compat_ioctl 2-3 41255 NULL
101978+erst_read_41260 erst_read 0 41260 NULL 101166+erst_read_41260 erst_read 0 41260 NULL
101979+__fprog_create_41263 __fprog_create 2 41263 NULL 101167+__fprog_create_41263 __fprog_create 2 41263 NULL
101168+setup_cluster_bitmap_41270 setup_cluster_bitmap 4 41270 NULL
101980+alloc_context_41283 alloc_context 1 41283 NULL 101169+alloc_context_41283 alloc_context 1 41283 NULL
101981+arch_gnttab_map_shared_41306 arch_gnttab_map_shared 3 41306 NULL 101170+arch_gnttab_map_shared_41306 arch_gnttab_map_shared 3 41306 NULL
101171+objio_alloc_io_state_41316 objio_alloc_io_state 6 41316 NULL
101982+twl_change_queue_depth_41342 twl_change_queue_depth 2 41342 NULL 101172+twl_change_queue_depth_41342 twl_change_queue_depth 2 41342 NULL
101983+cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL 101173+cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL
101984+jbd2_alloc_41359 jbd2_alloc 1 41359 NULL 101174+jbd2_alloc_41359 jbd2_alloc 1 41359 NULL
@@ -101997,6 +101187,7 @@ index 0000000..7982a0c
101997+layout_leb_in_gaps_41470 layout_leb_in_gaps 0 41470 NULL 101187+layout_leb_in_gaps_41470 layout_leb_in_gaps 0 41470 NULL
101998+rt2x00debug_write_rfcsr_41473 rt2x00debug_write_rfcsr 3 41473 NULL 101188+rt2x00debug_write_rfcsr_41473 rt2x00debug_write_rfcsr 3 41473 NULL
101999+wep_interrupt_read_41492 wep_interrupt_read 3 41492 NULL 101189+wep_interrupt_read_41492 wep_interrupt_read 3 41492 NULL
101190+SyS_get_mempolicy_41495 SyS_get_mempolicy 3-4 41495 NULL
102000+hpfs_translate_name_41497 hpfs_translate_name 3 41497 NULL 101191+hpfs_translate_name_41497 hpfs_translate_name 3 41497 NULL
102001+xfrm_hash_new_size_41505 xfrm_hash_new_size 0-1 41505 NULL 101192+xfrm_hash_new_size_41505 xfrm_hash_new_size 0-1 41505 NULL
102002+ldisc_receive_41516 ldisc_receive 4 41516 NULL 101193+ldisc_receive_41516 ldisc_receive 4 41516 NULL
@@ -102010,6 +101201,7 @@ index 0000000..7982a0c
102010+tcp_hdrlen_41610 tcp_hdrlen 0 41610 NULL 101201+tcp_hdrlen_41610 tcp_hdrlen 0 41610 NULL
102011+usb_endpoint_maxp_41613 usb_endpoint_maxp 0 41613 NULL 101202+usb_endpoint_maxp_41613 usb_endpoint_maxp 0 41613 NULL
102012+a2mp_send_41615 a2mp_send 4 41615 NULL 101203+a2mp_send_41615 a2mp_send 4 41615 NULL
101204+btrfs_calc_trunc_metadata_size_41626 btrfs_calc_trunc_metadata_size 0-2 41626 NULL
102013+mempool_create_kmalloc_pool_41650 mempool_create_kmalloc_pool 1 41650 NULL 101205+mempool_create_kmalloc_pool_41650 mempool_create_kmalloc_pool 1 41650 NULL
102014+rx_rx_pre_complt_read_41653 rx_rx_pre_complt_read 3 41653 NULL 101206+rx_rx_pre_complt_read_41653 rx_rx_pre_complt_read 3 41653 NULL
102015+get_std_timing_41654 get_std_timing 0 41654 NULL 101207+get_std_timing_41654 get_std_timing 0 41654 NULL
@@ -102022,7 +101214,9 @@ index 0000000..7982a0c
102022+get_bios_ebda_41730 get_bios_ebda 0 41730 NULL 101214+get_bios_ebda_41730 get_bios_ebda 0 41730 NULL
102023+fillonedir_41746 fillonedir 3 41746 NULL 101215+fillonedir_41746 fillonedir 3 41746 NULL
102024+ocfs2_dx_dir_rebalance_41793 ocfs2_dx_dir_rebalance 7 41793 NULL 101216+ocfs2_dx_dir_rebalance_41793 ocfs2_dx_dir_rebalance 7 41793 NULL
101217+iwl_dbgfs_bt_notif_read_41794 iwl_dbgfs_bt_notif_read 3 41794 NULL
102025+hsi_alloc_controller_41802 hsi_alloc_controller 1 41802 NULL 101218+hsi_alloc_controller_41802 hsi_alloc_controller 1 41802 NULL
101219+regcache_sync_block_raw_41803 regcache_sync_block_raw 3-4 41803 NULL
102026+da9052_enable_irq_41814 da9052_enable_irq 2 41814 NULL 101220+da9052_enable_irq_41814 da9052_enable_irq 2 41814 NULL
102027+sco_send_frame_41815 sco_send_frame 3 41815 NULL 101221+sco_send_frame_41815 sco_send_frame 3 41815 NULL
102028+lp_gpio_to_irq_41822 lp_gpio_to_irq 2 41822 NULL 101222+lp_gpio_to_irq_41822 lp_gpio_to_irq 2 41822 NULL
@@ -102030,11 +101224,13 @@ index 0000000..7982a0c
102030+do_ip_setsockopt_41852 do_ip_setsockopt 5 41852 NULL 101224+do_ip_setsockopt_41852 do_ip_setsockopt 5 41852 NULL
102031+keyctl_instantiate_key_41855 keyctl_instantiate_key 3 41855 NULL 101225+keyctl_instantiate_key_41855 keyctl_instantiate_key 3 41855 NULL
102032+ieee80211_rx_radiotap_space_41870 ieee80211_rx_radiotap_space 0 41870 NULL 101226+ieee80211_rx_radiotap_space_41870 ieee80211_rx_radiotap_space 0 41870 NULL
101227+get_packet_41914 get_packet 3 41914 NULL
102033+get_fdb_entries_41916 get_fdb_entries 3 41916 NULL 101228+get_fdb_entries_41916 get_fdb_entries 3 41916 NULL
102034+find_ge_pid_41918 find_ge_pid 1 41918 NULL 101229+find_ge_pid_41918 find_ge_pid 1 41918 NULL
102035+build_inv_iotlb_pages_41922 build_inv_iotlb_pages 4-5 41922 NULL 101230+build_inv_iotlb_pages_41922 build_inv_iotlb_pages 4-5 41922 NULL
102036+nfsd_getxattr_41934 nfsd_getxattr 0 41934 NULL 101231+nfsd_getxattr_41934 nfsd_getxattr 0 41934 NULL
102037+ext4_da_write_inline_data_begin_41935 ext4_da_write_inline_data_begin 3-4 41935 NULL 101232+ext4_da_write_inline_data_begin_41935 ext4_da_write_inline_data_begin 3-4 41935 NULL
101233+read_gssp_41947 read_gssp 3 41947 NULL
102038+ocfs2_xattr_bucket_get_name_value_41949 ocfs2_xattr_bucket_get_name_value 0 41949 NULL 101234+ocfs2_xattr_bucket_get_name_value_41949 ocfs2_xattr_bucket_get_name_value 0 41949 NULL
102039+portnames_read_41958 portnames_read 3 41958 NULL 101235+portnames_read_41958 portnames_read 3 41958 NULL
102040+ubi_self_check_all_ff_41959 ubi_self_check_all_ff 4 41959 NULL 101236+ubi_self_check_all_ff_41959 ubi_self_check_all_ff 4 41959 NULL
@@ -102079,6 +101275,7 @@ index 0000000..7982a0c
102079+snd_pcm_plug_alloc_42339 snd_pcm_plug_alloc 2 42339 NULL 101275+snd_pcm_plug_alloc_42339 snd_pcm_plug_alloc 2 42339 NULL
102080+ide_raw_taskfile_42355 ide_raw_taskfile 4 42355 NULL 101276+ide_raw_taskfile_42355 ide_raw_taskfile 4 42355 NULL
102081+il_dbgfs_disable_ht40_read_42386 il_dbgfs_disable_ht40_read 3 42386 NULL 101277+il_dbgfs_disable_ht40_read_42386 il_dbgfs_disable_ht40_read 3 42386 NULL
101278+hash_ipportnet4_expire_42391 hash_ipportnet4_expire 3 42391 NULL
102082+msnd_fifo_read_42406 msnd_fifo_read 0-3 42406 NULL 101279+msnd_fifo_read_42406 msnd_fifo_read 0-3 42406 NULL
102083+krng_get_random_42420 krng_get_random 3 42420 NULL 101280+krng_get_random_42420 krng_get_random 3 42420 NULL
102084+gsm_data_alloc_42437 gsm_data_alloc 3 42437 NULL 101281+gsm_data_alloc_42437 gsm_data_alloc 3 42437 NULL
@@ -102091,6 +101288,7 @@ index 0000000..7982a0c
102091+follow_hugetlb_page_42486 follow_hugetlb_page 0-7 42486 NULL 101288+follow_hugetlb_page_42486 follow_hugetlb_page 0-7 42486 NULL
102092+omfs_readpages_42490 omfs_readpages 4 42490 NULL 101289+omfs_readpages_42490 omfs_readpages 4 42490 NULL
102093+brcmf_sdbrcm_bus_txctl_42492 brcmf_sdbrcm_bus_txctl 3 42492 NULL 101290+brcmf_sdbrcm_bus_txctl_42492 brcmf_sdbrcm_bus_txctl 3 42492 NULL
101291+bypass_write_42498 bypass_write 3 42498 NULL
102094+kvm_write_wall_clock_42520 kvm_write_wall_clock 2 42520 NULL 101292+kvm_write_wall_clock_42520 kvm_write_wall_clock 2 42520 NULL
102095+smk_write_netlbladdr_42525 smk_write_netlbladdr 3 42525 NULL 101293+smk_write_netlbladdr_42525 smk_write_netlbladdr 3 42525 NULL
102096+snd_emux_create_port_42533 snd_emux_create_port 3 42533 NULL 101294+snd_emux_create_port_42533 snd_emux_create_port 3 42533 NULL
@@ -102104,11 +101302,13 @@ index 0000000..7982a0c
102104+__pskb_pull_42602 __pskb_pull 2 42602 &map_state_42602 101302+__pskb_pull_42602 __pskb_pull 2 42602 &map_state_42602
102105+nd_get_link_42603 nd_get_link 0 42603 NULL 101303+nd_get_link_42603 nd_get_link 0 42603 NULL
102106+sys_move_pages_42626 sys_move_pages 2 42626 NULL 101304+sys_move_pages_42626 sys_move_pages 2 42626 NULL
101305+resp_write_42628 resp_write 2 42628 NULL
102107+ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout_42635 ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout 3 42635 NULL 101306+ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout_42635 ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout 3 42635 NULL
102108+scsi_activate_tcq_42640 scsi_activate_tcq 2 42640 NULL 101307+scsi_activate_tcq_42640 scsi_activate_tcq 2 42640 NULL
102109+br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL 101308+br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL
102110+l2tp_xmit_skb_42672 l2tp_xmit_skb 3 42672 NULL 101309+l2tp_xmit_skb_42672 l2tp_xmit_skb 3 42672 NULL
102111+request_key_and_link_42693 request_key_and_link 4 42693 NULL 101310+request_key_and_link_42693 request_key_and_link 4 42693 NULL
101311+acpi_dev_get_irqresource_42694 acpi_dev_get_irqresource 2 42694 NULL
102112+vb2_read_42703 vb2_read 3 42703 NULL 101312+vb2_read_42703 vb2_read 3 42703 NULL
102113+sierra_net_send_cmd_42708 sierra_net_send_cmd 3 42708 NULL 101313+sierra_net_send_cmd_42708 sierra_net_send_cmd 3 42708 NULL
102114+__ocfs2_decrease_refcount_42717 __ocfs2_decrease_refcount 4 42717 NULL 101314+__ocfs2_decrease_refcount_42717 __ocfs2_decrease_refcount 4 42717 NULL
@@ -102117,13 +101317,15 @@ index 0000000..7982a0c
102117+ax25_setsockopt_42740 ax25_setsockopt 5 42740 NULL 101317+ax25_setsockopt_42740 ax25_setsockopt 5 42740 NULL
102118+xen_bind_pirq_gsi_to_irq_42750 xen_bind_pirq_gsi_to_irq 1 42750 NULL 101318+xen_bind_pirq_gsi_to_irq_42750 xen_bind_pirq_gsi_to_irq 1 42750 NULL
102119+snd_midi_event_decode_42780 snd_midi_event_decode 0 42780 NULL 101319+snd_midi_event_decode_42780 snd_midi_event_decode 0 42780 NULL
102120+cryptd_hash_setkey_42781 cryptd_hash_setkey 3 42781 NULL 101320+cryptd_hash_setkey_42781 cryptd_hash_setkey 3 42781 NULL nohasharray
101321+isku_sysfs_read_info_42781 isku_sysfs_read_info 6 42781 &cryptd_hash_setkey_42781
102121+koneplus_sysfs_read_42792 koneplus_sysfs_read 6 42792 NULL 101322+koneplus_sysfs_read_42792 koneplus_sysfs_read 6 42792 NULL
102122+ntfs_attr_extend_allocation_42796 ntfs_attr_extend_allocation 0-2 42796 NULL 101323+ntfs_attr_extend_allocation_42796 ntfs_attr_extend_allocation 0-2 42796 NULL
102123+fw_device_op_compat_ioctl_42804 fw_device_op_compat_ioctl 2-3 42804 NULL 101324+fw_device_op_compat_ioctl_42804 fw_device_op_compat_ioctl 2-3 42804 NULL
102124+drm_ioctl_42813 drm_ioctl 2 42813 NULL 101325+drm_ioctl_42813 drm_ioctl 2 42813 NULL
102125+iwl_dbgfs_ucode_bt_stats_read_42820 iwl_dbgfs_ucode_bt_stats_read 3 42820 NULL 101326+iwl_dbgfs_ucode_bt_stats_read_42820 iwl_dbgfs_ucode_bt_stats_read 3 42820 NULL
102126+set_arg_42824 set_arg 3 42824 NULL 101327+set_arg_42824 set_arg 3 42824 NULL
101328+si476x_radio_read_rsq_blob_42827 si476x_radio_read_rsq_blob 3 42827 NULL
102127+ocfs2_desc_bitmap_to_cluster_off_42831 ocfs2_desc_bitmap_to_cluster_off 2 42831 NULL 101329+ocfs2_desc_bitmap_to_cluster_off_42831 ocfs2_desc_bitmap_to_cluster_off 2 42831 NULL
102128+prandom_u32_42853 prandom_u32 0 42853 NULL 101330+prandom_u32_42853 prandom_u32 0 42853 NULL
102129+of_property_count_strings_42863 of_property_count_strings 0 42863 NULL 101331+of_property_count_strings_42863 of_property_count_strings 0 42863 NULL
@@ -102144,12 +101346,14 @@ index 0000000..7982a0c
102144+nfs_idmap_get_desc_42990 nfs_idmap_get_desc 4-2 42990 NULL 101346+nfs_idmap_get_desc_42990 nfs_idmap_get_desc 4-2 42990 NULL
102145+mlx4_qp_reserve_range_43000 mlx4_qp_reserve_range 2-3 43000 NULL 101347+mlx4_qp_reserve_range_43000 mlx4_qp_reserve_range 2-3 43000 NULL
102146+isr_rx_mem_overflow_read_43025 isr_rx_mem_overflow_read 3 43025 NULL 101348+isr_rx_mem_overflow_read_43025 isr_rx_mem_overflow_read 3 43025 NULL
101349+add_bytes_to_bitmap_43026 add_bytes_to_bitmap 0 43026 NULL
102147+wep_default_key_count_read_43035 wep_default_key_count_read 3 43035 NULL 101350+wep_default_key_count_read_43035 wep_default_key_count_read 3 43035 NULL
102148+nouveau_gpuobj_create__43072 nouveau_gpuobj_create_ 9 43072 NULL 101351+nouveau_gpuobj_create__43072 nouveau_gpuobj_create_ 9 43072 NULL
102149+nfs_map_group_to_gid_43082 nfs_map_group_to_gid 3 43082 NULL 101352+nfs_map_group_to_gid_43082 nfs_map_group_to_gid 3 43082 NULL
102150+cpuset_sprintf_memlist_43088 cpuset_sprintf_memlist 0 43088 NULL 101353+cpuset_sprintf_memlist_43088 cpuset_sprintf_memlist 0 43088 NULL
102151+ieee80211_if_fmt_drop_unencrypted_43107 ieee80211_if_fmt_drop_unencrypted 3 43107 NULL 101354+ieee80211_if_fmt_drop_unencrypted_43107 ieee80211_if_fmt_drop_unencrypted 3 43107 NULL
102152+read_file_dfs_43145 read_file_dfs 3 43145 NULL 101355+read_file_dfs_43145 read_file_dfs 3 43145 NULL nohasharray
101356+i2c_hid_get_report_43145 i2c_hid_get_report 0 43145 &read_file_dfs_43145
102153+uuid_string_43154 uuid_string 0 43154 NULL 101357+uuid_string_43154 uuid_string 0 43154 NULL
102154+usb_string_sub_43164 usb_string_sub 0 43164 NULL 101358+usb_string_sub_43164 usb_string_sub 0 43164 NULL
102155+il_dbgfs_power_save_status_read_43165 il_dbgfs_power_save_status_read 3 43165 NULL 101359+il_dbgfs_power_save_status_read_43165 il_dbgfs_power_save_status_read 3 43165 NULL
@@ -102172,8 +101376,10 @@ index 0000000..7982a0c
102172+__ext4_get_inode_loc_43332 __ext4_get_inode_loc 0 43332 NULL 101376+__ext4_get_inode_loc_43332 __ext4_get_inode_loc 0 43332 NULL
102173+kvm_host_page_size_43348 kvm_host_page_size 2 43348 NULL 101377+kvm_host_page_size_43348 kvm_host_page_size 2 43348 NULL
102174+gart_free_coherent_43362 gart_free_coherent 4-2 43362 NULL 101378+gart_free_coherent_43362 gart_free_coherent 4-2 43362 NULL
101379+hash_net4_expire_43378 hash_net4_expire 3 43378 NULL
102175+__alloc_bootmem_low_43423 __alloc_bootmem_low 1-2 43423 NULL nohasharray 101380+__alloc_bootmem_low_43423 __alloc_bootmem_low 1-2 43423 NULL nohasharray
102176+gdm_wimax_netif_rx_43423 gdm_wimax_netif_rx 3 43423 &__alloc_bootmem_low_43423 101381+gdm_wimax_netif_rx_43423 gdm_wimax_netif_rx 3 43423 &__alloc_bootmem_low_43423
101382+isku_sysfs_write_keys_capslock_43432 isku_sysfs_write_keys_capslock 6 43432 NULL
102177+usb_alloc_urb_43436 usb_alloc_urb 1 43436 NULL 101383+usb_alloc_urb_43436 usb_alloc_urb 1 43436 NULL
102178+ucs2_strsize_43438 ucs2_strsize 0 43438 NULL 101384+ucs2_strsize_43438 ucs2_strsize 0 43438 NULL
102179+ath6kl_wmi_roam_tbl_event_rx_43440 ath6kl_wmi_roam_tbl_event_rx 3 43440 NULL 101385+ath6kl_wmi_roam_tbl_event_rx_43440 ath6kl_wmi_roam_tbl_event_rx 3 43440 NULL
@@ -102197,6 +101403,7 @@ index 0000000..7982a0c
102197+dmam_declare_coherent_memory_43679 dmam_declare_coherent_memory 4-2 43679 NULL 101403+dmam_declare_coherent_memory_43679 dmam_declare_coherent_memory 4-2 43679 NULL
102198+calgary_map_page_43686 calgary_map_page 3-4 43686 NULL 101404+calgary_map_page_43686 calgary_map_page 3-4 43686 NULL
102199+max77693_bulk_write_43698 max77693_bulk_write 2-3 43698 NULL 101405+max77693_bulk_write_43698 max77693_bulk_write 2-3 43698 NULL
101406+drbd_md_first_sector_43729 drbd_md_first_sector 0 43729 NULL
102200+snd_rme32_playback_copy_43732 snd_rme32_playback_copy 5 43732 NULL 101407+snd_rme32_playback_copy_43732 snd_rme32_playback_copy 5 43732 NULL
102201+ocfs2_replace_clusters_43733 ocfs2_replace_clusters 5 43733 NULL 101408+ocfs2_replace_clusters_43733 ocfs2_replace_clusters 5 43733 NULL
102202+osdv1_attr_list_elem_size_43747 osdv1_attr_list_elem_size 0-1 43747 NULL 101409+osdv1_attr_list_elem_size_43747 osdv1_attr_list_elem_size 0-1 43747 NULL
@@ -102207,6 +101414,7 @@ index 0000000..7982a0c
102207+byte_pos_43787 byte_pos 0-2 43787 &ocfs2_xattr_get_value_outside_43787 101414+byte_pos_43787 byte_pos 0-2 43787 &ocfs2_xattr_get_value_outside_43787
102208+btrfs_copy_from_user_43806 btrfs_copy_from_user 3-1 43806 NULL 101415+btrfs_copy_from_user_43806 btrfs_copy_from_user 3-1 43806 NULL
102209+ext4_read_block_bitmap_43814 ext4_read_block_bitmap 2 43814 NULL 101416+ext4_read_block_bitmap_43814 ext4_read_block_bitmap 2 43814 NULL
101417+div64_u64_safe_43815 div64_u64_safe 1-2 43815 NULL
102210+ieee80211_if_fmt_element_ttl_43825 ieee80211_if_fmt_element_ttl 3 43825 NULL 101418+ieee80211_if_fmt_element_ttl_43825 ieee80211_if_fmt_element_ttl 3 43825 NULL
102211+ieee80211_alloc_hw_43829 ieee80211_alloc_hw 1 43829 NULL 101419+ieee80211_alloc_hw_43829 ieee80211_alloc_hw 1 43829 NULL
102212+p54_download_eeprom_43842 p54_download_eeprom 4 43842 NULL 101420+p54_download_eeprom_43842 p54_download_eeprom 4 43842 NULL
@@ -102225,6 +101433,7 @@ index 0000000..7982a0c
102225+emit_flags_44006 emit_flags 4-3 44006 NULL 101433+emit_flags_44006 emit_flags 4-3 44006 NULL
102226+write_flush_procfs_44011 write_flush_procfs 3 44011 NULL 101434+write_flush_procfs_44011 write_flush_procfs 3 44011 NULL
102227+swiotlb_unmap_page_44063 swiotlb_unmap_page 2 44063 NULL 101435+swiotlb_unmap_page_44063 swiotlb_unmap_page 2 44063 NULL
101436+SYSC_add_key_44079 SYSC_add_key 4 44079 NULL
102228+load_discard_44083 load_discard 3 44083 NULL 101437+load_discard_44083 load_discard 3 44083 NULL
102229+xlog_recover_add_to_cont_trans_44102 xlog_recover_add_to_cont_trans 4 44102 NULL 101438+xlog_recover_add_to_cont_trans_44102 xlog_recover_add_to_cont_trans 4 44102 NULL
102230+tracing_set_trace_read_44122 tracing_set_trace_read 3 44122 NULL 101439+tracing_set_trace_read_44122 tracing_set_trace_read 3 44122 NULL
@@ -102232,6 +101441,7 @@ index 0000000..7982a0c
102232+scsi_get_resid_44147 scsi_get_resid 0 44147 NULL 101441+scsi_get_resid_44147 scsi_get_resid 0 44147 NULL
102233+ubifs_find_dirty_idx_leb_44169 ubifs_find_dirty_idx_leb 0 44169 NULL 101442+ubifs_find_dirty_idx_leb_44169 ubifs_find_dirty_idx_leb 0 44169 NULL
102234+ocfs2_xattr_bucket_find_44174 ocfs2_xattr_bucket_find 0 44174 NULL 101443+ocfs2_xattr_bucket_find_44174 ocfs2_xattr_bucket_find 0 44174 NULL
101444+SYSC_set_mempolicy_44176 SYSC_set_mempolicy 3 44176 NULL
102235+handle_eviocgbit_44193 handle_eviocgbit 3 44193 NULL 101445+handle_eviocgbit_44193 handle_eviocgbit 3 44193 NULL
102236+IO_APIC_get_PCI_irq_vector_44198 IO_APIC_get_PCI_irq_vector 0 44198 NULL 101446+IO_APIC_get_PCI_irq_vector_44198 IO_APIC_get_PCI_irq_vector 0 44198 NULL
102237+__set_free_44211 __set_free 2 44211 NULL 101447+__set_free_44211 __set_free 2 44211 NULL
@@ -102260,12 +101470,14 @@ index 0000000..7982a0c
102260+___alloc_bootmem_node_nopanic_44461 ___alloc_bootmem_node_nopanic 2-3 44461 NULL 101470+___alloc_bootmem_node_nopanic_44461 ___alloc_bootmem_node_nopanic 2-3 44461 NULL
102261+btrfs_chunk_item_size_44478 btrfs_chunk_item_size 0-1 44478 NULL 101471+btrfs_chunk_item_size_44478 btrfs_chunk_item_size 0-1 44478 NULL
102262+sdio_align_size_44489 sdio_align_size 0-2 44489 NULL 101472+sdio_align_size_44489 sdio_align_size 0-2 44489 NULL
101473+bio_advance_44496 bio_advance 2 44496 NULL
102263+ieee80211_if_read_dropped_frames_ttl_44500 ieee80211_if_read_dropped_frames_ttl 3 44500 NULL 101474+ieee80211_if_read_dropped_frames_ttl_44500 ieee80211_if_read_dropped_frames_ttl 3 44500 NULL
102264+security_getprocattr_44505 security_getprocattr 0 44505 NULL nohasharray 101475+security_getprocattr_44505 security_getprocattr 0 44505 NULL nohasharray
102265+iwl_dbgfs_sram_read_44505 iwl_dbgfs_sram_read 3 44505 &security_getprocattr_44505 101476+iwl_dbgfs_sram_read_44505 iwl_dbgfs_sram_read 3 44505 &security_getprocattr_44505
102266+spidev_write_44510 spidev_write 3 44510 NULL 101477+spidev_write_44510 spidev_write 3 44510 NULL
102267+sys_msgsnd_44537 sys_msgsnd 3 44537 NULL nohasharray 101478+sys_msgsnd_44537 sys_msgsnd 3 44537 NULL nohasharray
102268+comm_write_44537 comm_write 3 44537 &sys_msgsnd_44537 101479+comm_write_44537 comm_write 3 44537 &sys_msgsnd_44537
101480+hash_ipport4_expire_44564 hash_ipport4_expire 3 44564 NULL
102269+dgrp_config_proc_write_44571 dgrp_config_proc_write 3 44571 NULL 101481+dgrp_config_proc_write_44571 dgrp_config_proc_write 3 44571 NULL
102270+snd_pcm_alloc_vmalloc_buffer_44595 snd_pcm_alloc_vmalloc_buffer 2 44595 NULL 101482+snd_pcm_alloc_vmalloc_buffer_44595 snd_pcm_alloc_vmalloc_buffer 2 44595 NULL
102271+slip_compat_ioctl_44599 slip_compat_ioctl 4 44599 NULL 101483+slip_compat_ioctl_44599 slip_compat_ioctl 4 44599 NULL
@@ -102276,6 +101488,7 @@ index 0000000..7982a0c
102276+mpi_resize_44674 mpi_resize 2 44674 NULL 101488+mpi_resize_44674 mpi_resize 2 44674 NULL
102277+ts_read_44687 ts_read 3 44687 NULL 101489+ts_read_44687 ts_read 3 44687 NULL
102278+qib_get_user_pages_44689 qib_get_user_pages 1-2 44689 NULL 101490+qib_get_user_pages_44689 qib_get_user_pages 1-2 44689 NULL
101491+xfer_to_user_44713 xfer_to_user 3 44713 NULL
102279+_zd_iowrite32v_locked_44725 _zd_iowrite32v_locked 3 44725 NULL 101492+_zd_iowrite32v_locked_44725 _zd_iowrite32v_locked 3 44725 NULL
102280+clusterip_proc_write_44729 clusterip_proc_write 3 44729 NULL 101493+clusterip_proc_write_44729 clusterip_proc_write 3 44729 NULL
102281+fib_count_nexthops_44730 fib_count_nexthops 0 44730 NULL 101494+fib_count_nexthops_44730 fib_count_nexthops 0 44730 NULL
@@ -102289,25 +101502,31 @@ index 0000000..7982a0c
102289+sctp_setsockopt_44788 sctp_setsockopt 5 44788 NULL 101502+sctp_setsockopt_44788 sctp_setsockopt 5 44788 NULL
102290+rx_dropped_read_44799 rx_dropped_read 3 44799 NULL 101503+rx_dropped_read_44799 rx_dropped_read 3 44799 NULL
102291+qla4xxx_alloc_work_44813 qla4xxx_alloc_work 2 44813 NULL 101504+qla4xxx_alloc_work_44813 qla4xxx_alloc_work 2 44813 NULL
101505+mei_cl_read_start_44824 mei_cl_read_start 2 44824 NULL
102292+rmap_write_protect_44833 rmap_write_protect 2 44833 NULL 101506+rmap_write_protect_44833 rmap_write_protect 2 44833 NULL
102293+sisusb_write_44834 sisusb_write 3 44834 NULL 101507+sisusb_write_44834 sisusb_write 3 44834 NULL
102294+nl80211_send_unprot_disassoc_44846 nl80211_send_unprot_disassoc 4 44846 NULL 101508+nl80211_send_unprot_disassoc_44846 nl80211_send_unprot_disassoc 4 44846 NULL
102295+kvm_read_hva_44847 kvm_read_hva 3 44847 NULL 101509+kvm_read_hva_44847 kvm_read_hva 3 44847 NULL
101510+cubic_root_44848 cubic_root 1 44848 NULL
101511+copydesc_user_44855 copydesc_user 3 44855 NULL
102296+skb_availroom_44883 skb_availroom 0 44883 NULL 101512+skb_availroom_44883 skb_availroom 0 44883 NULL
102297+nf_bridge_encap_header_len_44890 nf_bridge_encap_header_len 0 44890 NULL 101513+nf_bridge_encap_header_len_44890 nf_bridge_encap_header_len 0 44890 NULL
102298+do_tty_write_44896 do_tty_write 5 44896 NULL 101514+do_tty_write_44896 do_tty_write 5 44896 NULL
102299+tx_queue_status_read_44978 tx_queue_status_read 3 44978 NULL 101515+tx_queue_status_read_44978 tx_queue_status_read 3 44978 NULL
102300+nf_nat_seq_adjust_44989 nf_nat_seq_adjust 4 44989 NULL 101516+nf_nat_seq_adjust_44989 nf_nat_seq_adjust 4 44989 NULL
101517+map_index_to_lba_44993 map_index_to_lba 0-1 44993 NULL
102301+bytepos_delta_45017 bytepos_delta 0 45017 NULL 101518+bytepos_delta_45017 bytepos_delta 0 45017 NULL
102302+read_block_bitmap_45021 read_block_bitmap 2 45021 NULL nohasharray 101519+read_block_bitmap_45021 read_block_bitmap 2 45021 NULL nohasharray
102303+ptrace_writedata_45021 ptrace_writedata 4-3 45021 &read_block_bitmap_45021 101520+ptrace_writedata_45021 ptrace_writedata 4-3 45021 &read_block_bitmap_45021
102304+vhci_get_user_45039 vhci_get_user 3 45039 NULL 101521+vhci_get_user_45039 vhci_get_user 3 45039 NULL
102305+sel_write_user_45060 sel_write_user 3 45060 NULL 101522+sel_write_user_45060 sel_write_user 3 45060 NULL
101523+vmscan_swappiness_45062 vmscan_swappiness 0 45062 NULL
102306+snd_mixart_BA0_read_45069 snd_mixart_BA0_read 5 45069 NULL nohasharray 101524+snd_mixart_BA0_read_45069 snd_mixart_BA0_read 5 45069 NULL nohasharray
102307+do_video_ioctl_45069 do_video_ioctl 3 45069 &snd_mixart_BA0_read_45069 101525+do_video_ioctl_45069 do_video_ioctl 3 45069 &snd_mixart_BA0_read_45069
102308+kvm_mmu_page_get_gfn_45110 kvm_mmu_page_get_gfn 0-2 45110 NULL 101526+kvm_mmu_page_get_gfn_45110 kvm_mmu_page_get_gfn 0-2 45110 NULL
102309+pwr_missing_bcns_cnt_read_45113 pwr_missing_bcns_cnt_read 3 45113 NULL 101527+pwr_missing_bcns_cnt_read_45113 pwr_missing_bcns_cnt_read 3 45113 NULL
102310+usbdev_read_45114 usbdev_read 3 45114 NULL 101528+usbdev_read_45114 usbdev_read 3 45114 NULL
101529+isku_sysfs_write_reset_45133 isku_sysfs_write_reset 6 45133 NULL
102311+send_to_tty_45141 send_to_tty 3 45141 NULL 101530+send_to_tty_45141 send_to_tty 3 45141 NULL
102312+stmpe_irq_map_45146 stmpe_irq_map 2 45146 NULL 101531+stmpe_irq_map_45146 stmpe_irq_map 2 45146 NULL
102313+crypto_aead_blocksize_45148 crypto_aead_blocksize 0 45148 NULL 101532+crypto_aead_blocksize_45148 crypto_aead_blocksize 0 45148 NULL
@@ -102324,17 +101543,20 @@ index 0000000..7982a0c
102324+spi_alloc_master_45223 spi_alloc_master 2 45223 NULL 101543+spi_alloc_master_45223 spi_alloc_master 2 45223 NULL
102325+__dirty_45228 __dirty 2 45228 NULL 101544+__dirty_45228 __dirty 2 45228 NULL
102326+ieee80211_if_read_peer_45233 ieee80211_if_read_peer 3 45233 NULL 101545+ieee80211_if_read_peer_45233 ieee80211_if_read_peer 3 45233 NULL
101546+prism2_pda_proc_read_45246 prism2_pda_proc_read 3 45246 NULL
102327+input_mt_init_slots_45279 input_mt_init_slots 2 45279 NULL 101547+input_mt_init_slots_45279 input_mt_init_slots 2 45279 NULL
102328+vcc_compat_ioctl_45291 vcc_compat_ioctl 3 45291 NULL 101548+vcc_compat_ioctl_45291 vcc_compat_ioctl 3 45291 NULL
102329+snd_pcm_oss_sync1_45298 snd_pcm_oss_sync1 2 45298 NULL 101549+snd_pcm_oss_sync1_45298 snd_pcm_oss_sync1 2 45298 NULL
102330+pte_val_45313 pte_val 0 45313 NULL 101550+pte_val_45313 pte_val 0 45313 NULL
101551+__i2c_hid_command_45321 __i2c_hid_command 0 45321 NULL
102331+copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL 101552+copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL
102332+lane2_associate_req_45398 lane2_associate_req 4 45398 NULL 101553+lane2_associate_req_45398 lane2_associate_req 4 45398 NULL
102333+keymap_store_45406 keymap_store 4 45406 NULL 101554+keymap_store_45406 keymap_store 4 45406 NULL
102334+paging64_gva_to_gpa_45421 paging64_gva_to_gpa 2 45421 NULL nohasharray 101555+paging64_gva_to_gpa_45421 paging64_gva_to_gpa 2 45421 NULL nohasharray
102335+ieee80211_if_fmt_dot11MeshHWMProotInterval_45421 ieee80211_if_fmt_dot11MeshHWMProotInterval 3 45421 &paging64_gva_to_gpa_45421 101556+ieee80211_if_fmt_dot11MeshHWMProotInterval_45421 ieee80211_if_fmt_dot11MeshHWMProotInterval 3 45421 &paging64_gva_to_gpa_45421
102336+tty_buffer_alloc_45437 tty_buffer_alloc 2 45437 NULL 101557+tty_buffer_alloc_45437 tty_buffer_alloc 2 45437 NULL
102337+intel_render_ring_init_dri_45446 intel_render_ring_init_dri 2-3 45446 NULL 101558+intel_render_ring_init_dri_45446 intel_render_ring_init_dri 2-3 45446 NULL nohasharray
101559+SYSC_mremap_45446 SYSC_mremap 5-1-2 45446 &intel_render_ring_init_dri_45446
102338+__node_remap_45458 __node_remap 4 45458 NULL 101560+__node_remap_45458 __node_remap 4 45458 NULL
102339+rds_ib_set_wr_signal_state_45463 rds_ib_set_wr_signal_state 0 45463 NULL 101561+rds_ib_set_wr_signal_state_45463 rds_ib_set_wr_signal_state 0 45463 NULL
102340+udp_manip_pkt_45467 udp_manip_pkt 4 45467 NULL 101562+udp_manip_pkt_45467 udp_manip_pkt 4 45467 NULL
@@ -102391,6 +101613,7 @@ index 0000000..7982a0c
102391+rb_simple_read_45972 rb_simple_read 3 45972 NULL 101613+rb_simple_read_45972 rb_simple_read 3 45972 NULL
102392+ezusb_writememory_45976 ezusb_writememory 4 45976 NULL 101614+ezusb_writememory_45976 ezusb_writememory 4 45976 NULL
102393+ioat2_dca_count_dca_slots_45984 ioat2_dca_count_dca_slots 0 45984 NULL 101615+ioat2_dca_count_dca_slots_45984 ioat2_dca_count_dca_slots 0 45984 NULL
101616+ore_calc_stripe_info_46023 ore_calc_stripe_info 2 46023 NULL
102394+sierra_setup_urb_46029 sierra_setup_urb 5 46029 NULL 101617+sierra_setup_urb_46029 sierra_setup_urb 5 46029 NULL
102395+get_free_entries_46030 get_free_entries 1 46030 NULL 101618+get_free_entries_46030 get_free_entries 1 46030 NULL
102396+__access_remote_vm_46031 __access_remote_vm 0-5-3 46031 NULL 101619+__access_remote_vm_46031 __access_remote_vm 0-5-3 46031 NULL
@@ -102407,8 +101630,10 @@ index 0000000..7982a0c
102407+pkt_ctl_compat_ioctl_46110 pkt_ctl_compat_ioctl 3 46110 NULL 101630+pkt_ctl_compat_ioctl_46110 pkt_ctl_compat_ioctl 3 46110 NULL
102408+memcg_update_array_size_46111 memcg_update_array_size 1 46111 NULL nohasharray 101631+memcg_update_array_size_46111 memcg_update_array_size 1 46111 NULL nohasharray
102409+il3945_ucode_general_stats_read_46111 il3945_ucode_general_stats_read 3 46111 &memcg_update_array_size_46111 101632+il3945_ucode_general_stats_read_46111 il3945_ucode_general_stats_read 3 46111 &memcg_update_array_size_46111
101633+C_SYSC_writev_46113 C_SYSC_writev 3 46113 NULL
102410+mlx4_ib_alloc_fast_reg_page_list_46119 mlx4_ib_alloc_fast_reg_page_list 2 46119 NULL 101634+mlx4_ib_alloc_fast_reg_page_list_46119 mlx4_ib_alloc_fast_reg_page_list 2 46119 NULL
102411+paging32_walk_addr_nested_46121 paging32_walk_addr_nested 3 46121 NULL 101635+paging32_walk_addr_nested_46121 paging32_walk_addr_nested 3 46121 NULL
101636+vb2_dma_sg_get_userptr_46146 vb2_dma_sg_get_userptr 2 46146 NULL
102412+__netlink_change_ngroups_46156 __netlink_change_ngroups 2 46156 NULL 101637+__netlink_change_ngroups_46156 __netlink_change_ngroups 2 46156 NULL
102413+twl_direction_out_46182 twl_direction_out 2 46182 NULL 101638+twl_direction_out_46182 twl_direction_out 2 46182 NULL
102414+vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL 101639+vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL
@@ -102420,6 +101645,7 @@ index 0000000..7982a0c
102420+nf_nat_ftp_46265 nf_nat_ftp 6 46265 NULL 101645+nf_nat_ftp_46265 nf_nat_ftp 6 46265 NULL
102421+ReadReg_46277 ReadReg 0 46277 NULL 101646+ReadReg_46277 ReadReg 0 46277 NULL
102422+batadv_iv_ogm_queue_add_46319 batadv_iv_ogm_queue_add 3 46319 NULL 101647+batadv_iv_ogm_queue_add_46319 batadv_iv_ogm_queue_add 3 46319 NULL
101648+qlcnic_83xx_sysfs_flash_bulk_write_46320 qlcnic_83xx_sysfs_flash_bulk_write 4 46320 NULL
102423+__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 NULL 101649+__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 NULL
102424+iwl_dbgfs_chain_noise_read_46355 iwl_dbgfs_chain_noise_read 3 46355 NULL 101650+iwl_dbgfs_chain_noise_read_46355 iwl_dbgfs_chain_noise_read 3 46355 NULL
102425+smk_write_direct_46363 smk_write_direct 3 46363 NULL 101651+smk_write_direct_46363 smk_write_direct 3 46363 NULL
@@ -102427,6 +101653,7 @@ index 0000000..7982a0c
102427+ubi_dump_flash_46381 ubi_dump_flash 4 46381 NULL 101653+ubi_dump_flash_46381 ubi_dump_flash 4 46381 NULL
102428+fuse_file_aio_write_46399 fuse_file_aio_write 4 46399 NULL 101654+fuse_file_aio_write_46399 fuse_file_aio_write 4 46399 NULL
102429+crypto_ablkcipher_reqsize_46411 crypto_ablkcipher_reqsize 0 46411 NULL 101655+crypto_ablkcipher_reqsize_46411 crypto_ablkcipher_reqsize 0 46411 NULL
101656+hash_ipportip6_expire_46443 hash_ipportip6_expire 3 46443 NULL
102430+cp210x_set_config_46447 cp210x_set_config 4 46447 NULL 101657+cp210x_set_config_46447 cp210x_set_config 4 46447 NULL
102431+filldir64_46469 filldir64 3 46469 NULL 101658+filldir64_46469 filldir64 3 46469 NULL
102432+fill_in_write_vector_46498 fill_in_write_vector 0 46498 NULL 101659+fill_in_write_vector_46498 fill_in_write_vector 0 46498 NULL
@@ -102465,7 +101692,8 @@ index 0000000..7982a0c
102465+xfs_iroot_realloc_46826 xfs_iroot_realloc 2 46826 NULL 101692+xfs_iroot_realloc_46826 xfs_iroot_realloc 2 46826 NULL
102466+shmem_pwrite_fast_46842 shmem_pwrite_fast 3 46842 NULL 101693+shmem_pwrite_fast_46842 shmem_pwrite_fast 3 46842 NULL
102467+spi_async_46857 spi_async 0 46857 NULL 101694+spi_async_46857 spi_async 0 46857 NULL
102468+vsnprintf_46863 vsnprintf 0 46863 NULL 101695+vsnprintf_46863 vsnprintf 0 46863 NULL nohasharray
101696+SyS_move_pages_46863 SyS_move_pages 2 46863 &vsnprintf_46863
102469+nvme_alloc_queue_46865 nvme_alloc_queue 3 46865 NULL 101697+nvme_alloc_queue_46865 nvme_alloc_queue 3 46865 NULL
102470+sip_sprintf_addr_46872 sip_sprintf_addr 0 46872 NULL 101698+sip_sprintf_addr_46872 sip_sprintf_addr 0 46872 NULL
102471+rvmalloc_46873 rvmalloc 1 46873 NULL 101699+rvmalloc_46873 rvmalloc 1 46873 NULL
@@ -102488,6 +101716,7 @@ index 0000000..7982a0c
102488+sel_write_bool_46996 sel_write_bool 3 46996 &gfs2_xattr_system_set_46996 101716+sel_write_bool_46996 sel_write_bool 3 46996 &gfs2_xattr_system_set_46996
102489+ttm_bo_io_47000 ttm_bo_io 5 47000 NULL 101717+ttm_bo_io_47000 ttm_bo_io 5 47000 NULL
102490+blk_rq_map_kern_47004 blk_rq_map_kern 4 47004 NULL 101718+blk_rq_map_kern_47004 blk_rq_map_kern 4 47004 NULL
101719+add_free_space_entry_47005 add_free_space_entry 2 47005 NULL
102491+__map_single_47020 __map_single 3-4-7 47020 NULL 101720+__map_single_47020 __map_single 3-4-7 47020 NULL
102492+cx231xx_init_bulk_47024 cx231xx_init_bulk 3-2 47024 NULL 101721+cx231xx_init_bulk_47024 cx231xx_init_bulk 3-2 47024 NULL
102493+swiotlb_sync_single_47031 swiotlb_sync_single 2 47031 NULL 101722+swiotlb_sync_single_47031 swiotlb_sync_single 2 47031 NULL
@@ -102496,6 +101725,7 @@ index 0000000..7982a0c
102496+ufs_new_fragments_47070 ufs_new_fragments 3-5-4 47070 NULL 101725+ufs_new_fragments_47070 ufs_new_fragments 3-5-4 47070 NULL
102497+pipeline_dec_packet_in_read_47076 pipeline_dec_packet_in_read 3 47076 NULL 101726+pipeline_dec_packet_in_read_47076 pipeline_dec_packet_in_read 3 47076 NULL
102498+scsi_deactivate_tcq_47086 scsi_deactivate_tcq 2 47086 NULL 101727+scsi_deactivate_tcq_47086 scsi_deactivate_tcq 2 47086 NULL
101728+iwl_dump_nic_event_log_47089 iwl_dump_nic_event_log 0 47089 NULL
102499+mousedev_read_47123 mousedev_read 3 47123 NULL 101729+mousedev_read_47123 mousedev_read 3 47123 NULL
102500+ses_recv_diag_47143 ses_recv_diag 4 47143 NULL nohasharray 101730+ses_recv_diag_47143 ses_recv_diag 4 47143 NULL nohasharray
102501+acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 &ses_recv_diag_47143 101731+acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 &ses_recv_diag_47143
@@ -102515,7 +101745,9 @@ index 0000000..7982a0c
102515+tty_audit_log_47280 tty_audit_log 8 47280 NULL 101745+tty_audit_log_47280 tty_audit_log 8 47280 NULL
102516+gfs2_readpages_47285 gfs2_readpages 4 47285 NULL 101746+gfs2_readpages_47285 gfs2_readpages 4 47285 NULL
102517+vsnprintf_47291 vsnprintf 0 47291 NULL 101747+vsnprintf_47291 vsnprintf 0 47291 NULL
101748+SYSC_semop_47292 SYSC_semop 3 47292 NULL
102518+tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3 47300 NULL 101749+tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3 47300 NULL
101750+SyS_madvise_47354 SyS_madvise 1 47354 NULL
102519+ieee80211_if_read_dot11MeshHoldingTimeout_47356 ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 NULL 101751+ieee80211_if_read_dot11MeshHoldingTimeout_47356 ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 NULL
102520+avc_get_hash_stats_47359 avc_get_hash_stats 0 47359 NULL 101752+avc_get_hash_stats_47359 avc_get_hash_stats 0 47359 NULL
102521+find_first_zero_bit_le_47369 find_first_zero_bit_le 2 47369 NULL 101753+find_first_zero_bit_le_47369 find_first_zero_bit_le 2 47369 NULL
@@ -102527,13 +101759,17 @@ index 0000000..7982a0c
102527+pfkey_sendmsg_47394 pfkey_sendmsg 4 47394 NULL 101759+pfkey_sendmsg_47394 pfkey_sendmsg 4 47394 NULL
102528+gfn_to_pfn_prot_47398 gfn_to_pfn_prot 2 47398 NULL 101760+gfn_to_pfn_prot_47398 gfn_to_pfn_prot 2 47398 NULL
102529+ocfs2_resv_end_47408 ocfs2_resv_end 0 47408 NULL 101761+ocfs2_resv_end_47408 ocfs2_resv_end 0 47408 NULL
101762+sta_vht_capa_read_47409 sta_vht_capa_read 3 47409 NULL
102530+crypto_ablkcipher_alignmask_47410 crypto_ablkcipher_alignmask 0 47410 NULL 101763+crypto_ablkcipher_alignmask_47410 crypto_ablkcipher_alignmask 0 47410 NULL
102531+vzalloc_47421 vzalloc 1 47421 NULL 101764+vzalloc_47421 vzalloc 1 47421 NULL
101765+hash_ipportip4_expire_47426 hash_ipportip4_expire 3 47426 NULL
102532+posix_acl_from_disk_47445 posix_acl_from_disk 2 47445 NULL 101766+posix_acl_from_disk_47445 posix_acl_from_disk 2 47445 NULL
102533+__load_mapping_47460 __load_mapping 2 47460 NULL 101767+__load_mapping_47460 __load_mapping 2 47460 NULL
101768+nvme_trans_send_fw_cmd_47479 nvme_trans_send_fw_cmd 4 47479 NULL
102534+wb_force_mapping_47485 wb_force_mapping 2 47485 NULL nohasharray 101769+wb_force_mapping_47485 wb_force_mapping 2 47485 NULL nohasharray
102535+newpart_47485 newpart 6 47485 &wb_force_mapping_47485 101770+newpart_47485 newpart 6 47485 &wb_force_mapping_47485
102536+core_sys_select_47494 core_sys_select 1 47494 NULL 101771+core_sys_select_47494 core_sys_select 1 47494 NULL
101772+alloc_arraycache_47505 alloc_arraycache 2 47505 NULL
102537+unlink_simple_47506 unlink_simple 3 47506 NULL 101773+unlink_simple_47506 unlink_simple 3 47506 NULL
102538+ufs_inode_getblock_47512 ufs_inode_getblock 4 47512 NULL 101774+ufs_inode_getblock_47512 ufs_inode_getblock 4 47512 NULL
102539+vscnprintf_47533 vscnprintf 0-2 47533 NULL nohasharray 101775+vscnprintf_47533 vscnprintf 0-2 47533 NULL nohasharray
@@ -102541,8 +101777,11 @@ index 0000000..7982a0c
102541+oz_events_read_47535 oz_events_read 3 47535 NULL 101777+oz_events_read_47535 oz_events_read 3 47535 NULL
102542+ieee80211_if_fmt_min_discovery_timeout_47539 ieee80211_if_fmt_min_discovery_timeout 3 47539 NULL 101778+ieee80211_if_fmt_min_discovery_timeout_47539 ieee80211_if_fmt_min_discovery_timeout 3 47539 NULL
102543+read_ldt_47570 read_ldt 2 47570 NULL 101779+read_ldt_47570 read_ldt 2 47570 NULL
101780+_rtl_rx_get_padding_47572 _rtl_rx_get_padding 0 47572 NULL nohasharray
101781+isku_sysfs_read_last_set_47572 isku_sysfs_read_last_set 6 47572 &_rtl_rx_get_padding_47572
102544+pci_iomap_47575 pci_iomap 3 47575 NULL 101782+pci_iomap_47575 pci_iomap 3 47575 NULL
102545+rpipe_get_idx_47579 rpipe_get_idx 2 47579 NULL 101783+rpipe_get_idx_47579 rpipe_get_idx 2 47579 NULL
101784+SYSC_fcntl64_47581 SYSC_fcntl64 3 47581 NULL
102546+ext4_kvzalloc_47605 ext4_kvzalloc 1 47605 NULL 101785+ext4_kvzalloc_47605 ext4_kvzalloc 1 47605 NULL
102547+sctp_ssnmap_new_47608 sctp_ssnmap_new 1-2 47608 NULL 101786+sctp_ssnmap_new_47608 sctp_ssnmap_new 1-2 47608 NULL
102548+uea_request_47613 uea_request 4 47613 NULL 101787+uea_request_47613 uea_request 4 47613 NULL
@@ -102550,6 +101789,7 @@ index 0000000..7982a0c
102550+twl4030_clear_set_47624 twl4030_clear_set 4 47624 NULL 101789+twl4030_clear_set_47624 twl4030_clear_set 4 47624 NULL
102551+irq_set_chip_47638 irq_set_chip 1 47638 NULL 101790+irq_set_chip_47638 irq_set_chip 1 47638 NULL
102552+__build_packet_message_47643 __build_packet_message 3-9 47643 NULL 101791+__build_packet_message_47643 __build_packet_message 3-9 47643 NULL
101792+global_rt_runtime_47712 global_rt_runtime 0 47712 NULL
102553+save_microcode_47717 save_microcode 3 47717 NULL 101793+save_microcode_47717 save_microcode 3 47717 NULL
102554+bits_to_user_47733 bits_to_user 2-3 47733 NULL 101794+bits_to_user_47733 bits_to_user 2-3 47733 NULL
102555+carl9170_debugfs_read_47738 carl9170_debugfs_read 3 47738 NULL 101795+carl9170_debugfs_read_47738 carl9170_debugfs_read 3 47738 NULL
@@ -102559,15 +101799,18 @@ index 0000000..7982a0c
102559+alloc_sched_domains_47756 alloc_sched_domains 1 47756 NULL 101799+alloc_sched_domains_47756 alloc_sched_domains 1 47756 NULL
102560+i915_wedged_write_47771 i915_wedged_write 3 47771 NULL 101800+i915_wedged_write_47771 i915_wedged_write 3 47771 NULL
102561+uwb_ie_dump_hex_47774 uwb_ie_dump_hex 4 47774 NULL 101801+uwb_ie_dump_hex_47774 uwb_ie_dump_hex 4 47774 NULL
101802+SyS_setgroups16_47780 SyS_setgroups16 1 47780 NULL
102562+error_error_numll_frame_cts_start_read_47781 error_error_numll_frame_cts_start_read 3 47781 NULL 101803+error_error_numll_frame_cts_start_read_47781 error_error_numll_frame_cts_start_read 3 47781 NULL
102563+posix_acl_fix_xattr_from_user_47793 posix_acl_fix_xattr_from_user 2 47793 NULL 101804+posix_acl_fix_xattr_from_user_47793 posix_acl_fix_xattr_from_user 2 47793 NULL
102564+stmmac_set_bfsize_47834 stmmac_set_bfsize 0 47834 NULL 101805+stmmac_set_bfsize_47834 stmmac_set_bfsize 0 47834 NULL
101806+KEY_SIZE_47855 KEY_SIZE 0 47855 NULL
102565+ubifs_unpack_nnode_47866 ubifs_unpack_nnode 0 47866 NULL 101807+ubifs_unpack_nnode_47866 ubifs_unpack_nnode 0 47866 NULL
102566+vhci_read_47878 vhci_read 3 47878 NULL 101808+vhci_read_47878 vhci_read 3 47878 NULL
102567+keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL 101809+keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL
102568+load_mapping_47904 load_mapping 3 47904 NULL 101810+load_mapping_47904 load_mapping 3 47904 NULL
102569+osd_req_read_sg_47905 osd_req_read_sg 5 47905 NULL 101811+osd_req_read_sg_47905 osd_req_read_sg 5 47905 NULL
102570+comedi_write_47926 comedi_write 3 47926 NULL 101812+comedi_write_47926 comedi_write 3 47926 NULL
101813+nvme_trans_get_blk_desc_len_47946 nvme_trans_get_blk_desc_len 0-2 47946 NULL
102571+lp8788_irq_map_47964 lp8788_irq_map 2 47964 NULL 101814+lp8788_irq_map_47964 lp8788_irq_map 2 47964 NULL
102572+iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 NULL nohasharray 101815+iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 NULL nohasharray
102573+mempool_resize_47983 mempool_resize 2 47983 &iwl_dbgfs_ucode_tracing_read_47983 101816+mempool_resize_47983 mempool_resize 2 47983 &iwl_dbgfs_ucode_tracing_read_47983
@@ -102576,9 +101819,11 @@ index 0000000..7982a0c
102576+ffs_epfile_write_48014 ffs_epfile_write 3 48014 NULL 101819+ffs_epfile_write_48014 ffs_epfile_write 3 48014 NULL
102577+bio_integrity_set_tag_48035 bio_integrity_set_tag 3 48035 NULL 101820+bio_integrity_set_tag_48035 bio_integrity_set_tag 3 48035 NULL
102578+pppoe_sendmsg_48039 pppoe_sendmsg 4 48039 NULL 101821+pppoe_sendmsg_48039 pppoe_sendmsg 4 48039 NULL
101822+SYSC_writev_48040 SYSC_writev 3 48040 NULL
102579+wpan_phy_alloc_48056 wpan_phy_alloc 1 48056 NULL 101823+wpan_phy_alloc_48056 wpan_phy_alloc 1 48056 NULL
102580+posix_acl_alloc_48063 posix_acl_alloc 1 48063 NULL 101824+posix_acl_alloc_48063 posix_acl_alloc 1 48063 NULL
102581+palmas_bulk_write_48068 palmas_bulk_write 2-3-5 48068 NULL 101825+palmas_bulk_write_48068 palmas_bulk_write 2-3-5 48068 NULL
101826+disc_write_48070 disc_write 3 48070 NULL
102582+mmc_alloc_host_48097 mmc_alloc_host 1 48097 NULL 101827+mmc_alloc_host_48097 mmc_alloc_host 1 48097 NULL
102583+skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 4-2-5 48102 NULL 101828+skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 4-2-5 48102 NULL
102584+radio_isa_common_probe_48107 radio_isa_common_probe 3 48107 NULL 101829+radio_isa_common_probe_48107 radio_isa_common_probe 3 48107 NULL
@@ -102588,9 +101833,11 @@ index 0000000..7982a0c
102588+bitmap_onto_48152 bitmap_onto 4 48152 NULL 101833+bitmap_onto_48152 bitmap_onto 4 48152 NULL
102589+isr_dma1_done_read_48159 isr_dma1_done_read 3 48159 NULL 101834+isr_dma1_done_read_48159 isr_dma1_done_read 3 48159 NULL
102590+c4iw_id_table_alloc_48163 c4iw_id_table_alloc 3 48163 NULL 101835+c4iw_id_table_alloc_48163 c4iw_id_table_alloc 3 48163 NULL
102591+ocfs2_find_next_zero_bit_unaligned_48170 ocfs2_find_next_zero_bit_unaligned 2-3 48170 NULL 101836+ocfs2_find_next_zero_bit_unaligned_48170 ocfs2_find_next_zero_bit_unaligned 2-3 48170 NULL nohasharray
101837+rbd_obj_method_sync_48170 rbd_obj_method_sync 8 48170 &ocfs2_find_next_zero_bit_unaligned_48170
102592+alloc_cc770dev_48186 alloc_cc770dev 1 48186 NULL 101838+alloc_cc770dev_48186 alloc_cc770dev 1 48186 NULL
102593+init_ipath_48187 init_ipath 1 48187 NULL 101839+init_ipath_48187 init_ipath 1 48187 NULL
101840+brcmf_sdio_chip_cm3_exitdl_48192 brcmf_sdio_chip_cm3_exitdl 4 48192 NULL
102594+snd_seq_dump_var_event_48209 snd_seq_dump_var_event 0 48209 NULL 101841+snd_seq_dump_var_event_48209 snd_seq_dump_var_event 0 48209 NULL
102595+is_block_in_journal_48223 is_block_in_journal 3 48223 NULL 101842+is_block_in_journal_48223 is_block_in_journal 3 48223 NULL
102596+uv_blade_nr_possible_cpus_48226 uv_blade_nr_possible_cpus 0 48226 NULL 101843+uv_blade_nr_possible_cpus_48226 uv_blade_nr_possible_cpus 0 48226 NULL
@@ -102611,6 +101858,7 @@ index 0000000..7982a0c
102611+lbs_debugfs_write_48413 lbs_debugfs_write 3 48413 NULL 101858+lbs_debugfs_write_48413 lbs_debugfs_write 3 48413 NULL
102612+pwr_tx_without_ps_read_48423 pwr_tx_without_ps_read 3 48423 NULL 101859+pwr_tx_without_ps_read_48423 pwr_tx_without_ps_read 3 48423 NULL
102613+nfs4_alloc_pages_48426 nfs4_alloc_pages 1 48426 NULL 101860+nfs4_alloc_pages_48426 nfs4_alloc_pages 1 48426 NULL
101861+print_filtered_48442 print_filtered 2-0 48442 NULL
102614+tun_recvmsg_48463 tun_recvmsg 4 48463 NULL 101862+tun_recvmsg_48463 tun_recvmsg 4 48463 NULL
102615+r8712_usbctrl_vendorreq_48489 r8712_usbctrl_vendorreq 6 48489 NULL 101863+r8712_usbctrl_vendorreq_48489 r8712_usbctrl_vendorreq 6 48489 NULL
102616+send_control_msg_48498 send_control_msg 6 48498 NULL 101864+send_control_msg_48498 send_control_msg 6 48498 NULL
@@ -102627,6 +101875,7 @@ index 0000000..7982a0c
102627+do_ip_vs_set_ctl_48641 do_ip_vs_set_ctl 4 48641 NULL 101875+do_ip_vs_set_ctl_48641 do_ip_vs_set_ctl 4 48641 NULL
102628+mtd_read_48655 mtd_read 0 48655 NULL 101876+mtd_read_48655 mtd_read 0 48655 NULL
102629+aes_encrypt_packets_read_48666 aes_encrypt_packets_read 3 48666 NULL 101877+aes_encrypt_packets_read_48666 aes_encrypt_packets_read 3 48666 NULL
101878+ore_get_rw_state_48667 ore_get_rw_state 4 48667 NULL
102630+sm501_create_subdev_48668 sm501_create_subdev 3-4 48668 NULL nohasharray 101879+sm501_create_subdev_48668 sm501_create_subdev 3-4 48668 NULL nohasharray
102631+sys_setgroups_48668 sys_setgroups 1 48668 &sm501_create_subdev_48668 101880+sys_setgroups_48668 sys_setgroups 1 48668 &sm501_create_subdev_48668
102632+altera_drscan_48698 altera_drscan 2 48698 NULL 101881+altera_drscan_48698 altera_drscan 2 48698 NULL
@@ -102641,7 +101890,8 @@ index 0000000..7982a0c
102641+efi_memory_uc_48828 efi_memory_uc 1 48828 NULL 101890+efi_memory_uc_48828 efi_memory_uc 1 48828 NULL
102642+azx_get_position_48841 azx_get_position 0 48841 NULL 101891+azx_get_position_48841 azx_get_position 0 48841 NULL
102643+vc_do_resize_48842 vc_do_resize 3-4 48842 NULL 101892+vc_do_resize_48842 vc_do_resize 3-4 48842 NULL
102644+viafb_dvp1_proc_write_48864 viafb_dvp1_proc_write 3 48864 NULL 101893+C_SYSC_pwritev64_48864 C_SYSC_pwritev64 3 48864 NULL nohasharray
101894+viafb_dvp1_proc_write_48864 viafb_dvp1_proc_write 3 48864 &C_SYSC_pwritev64_48864
102645+__ffs_ep0_read_events_48868 __ffs_ep0_read_events 3 48868 NULL 101895+__ffs_ep0_read_events_48868 __ffs_ep0_read_events 3 48868 NULL
102646+sys_setgroups16_48882 sys_setgroups16 1 48882 NULL 101896+sys_setgroups16_48882 sys_setgroups16 1 48882 NULL
102647+ext2_alloc_branch_48889 ext2_alloc_branch 4 48889 NULL 101897+ext2_alloc_branch_48889 ext2_alloc_branch 4 48889 NULL
@@ -102657,6 +101907,7 @@ index 0000000..7982a0c
102657+_alloc_set_attr_list_48991 _alloc_set_attr_list 4 48991 NULL 101907+_alloc_set_attr_list_48991 _alloc_set_attr_list 4 48991 NULL
102658+rds_rm_size_48996 rds_rm_size 0-2 48996 NULL 101908+rds_rm_size_48996 rds_rm_size 0-2 48996 NULL
102659+sel_write_enforce_48998 sel_write_enforce 3 48998 NULL 101909+sel_write_enforce_48998 sel_write_enforce 3 48998 NULL
101910+filemap_check_errors_49022 filemap_check_errors 0 49022 NULL
102660+transient_status_49027 transient_status 4 49027 NULL 101911+transient_status_49027 transient_status 4 49027 NULL
102661+ipath_reg_user_mr_49038 ipath_reg_user_mr 2-3 49038 NULL 101912+ipath_reg_user_mr_49038 ipath_reg_user_mr 2-3 49038 NULL
102662+setup_msi_irq_49052 setup_msi_irq 3-4 49052 NULL 101913+setup_msi_irq_49052 setup_msi_irq 3-4 49052 NULL
@@ -102664,7 +101915,8 @@ index 0000000..7982a0c
102664+scsi_register_49094 scsi_register 2 49094 NULL 101915+scsi_register_49094 scsi_register 2 49094 NULL
102665+paging64_walk_addr_nested_49100 paging64_walk_addr_nested 3 49100 NULL 101916+paging64_walk_addr_nested_49100 paging64_walk_addr_nested 3 49100 NULL
102666+compat_do_readv_writev_49102 compat_do_readv_writev 4 49102 NULL 101917+compat_do_readv_writev_49102 compat_do_readv_writev 4 49102 NULL
102667+xfrm_replay_state_esn_len_49119 xfrm_replay_state_esn_len 0 49119 NULL 101918+check_exists_49119 check_exists 2 49119 NULL nohasharray
101919+xfrm_replay_state_esn_len_49119 xfrm_replay_state_esn_len 0 49119 &check_exists_49119
102668+pt_read_49136 pt_read 3 49136 NULL 101920+pt_read_49136 pt_read 3 49136 NULL
102669+tipc_multicast_49144 tipc_multicast 5 49144 NULL 101921+tipc_multicast_49144 tipc_multicast 5 49144 NULL
102670+atyfb_setup_generic_49151 atyfb_setup_generic 3 49151 NULL 101922+atyfb_setup_generic_49151 atyfb_setup_generic 3 49151 NULL
@@ -102676,14 +101928,18 @@ index 0000000..7982a0c
102676+iwl_dbgfs_ucode_general_stats_read_49199 iwl_dbgfs_ucode_general_stats_read 3 49199 NULL 101928+iwl_dbgfs_ucode_general_stats_read_49199 iwl_dbgfs_ucode_general_stats_read 3 49199 NULL
102677+il4965_rs_sta_dbgfs_stats_table_read_49206 il4965_rs_sta_dbgfs_stats_table_read 3 49206 NULL 101929+il4965_rs_sta_dbgfs_stats_table_read_49206 il4965_rs_sta_dbgfs_stats_table_read 3 49206 NULL
102678+do_jffs2_getxattr_49210 do_jffs2_getxattr 0 49210 NULL 101930+do_jffs2_getxattr_49210 do_jffs2_getxattr 0 49210 NULL
101931+resp_write_same_49217 resp_write_same 2 49217 NULL
102679+nouveau_therm_create__49228 nouveau_therm_create_ 4 49228 NULL 101932+nouveau_therm_create__49228 nouveau_therm_create_ 4 49228 NULL
102680+nouveau_i2c_port_create__49237 nouveau_i2c_port_create_ 6 49237 NULL 101933+nouveau_i2c_port_create__49237 nouveau_i2c_port_create_ 6 49237 NULL
102681+hugetlb_cgroup_read_49259 hugetlb_cgroup_read 5 49259 NULL 101934+hugetlb_cgroup_read_49259 hugetlb_cgroup_read 5 49259 NULL
102682+ieee80211_if_read_rssi_threshold_49260 ieee80211_if_read_rssi_threshold 3 49260 NULL 101935+ieee80211_if_read_rssi_threshold_49260 ieee80211_if_read_rssi_threshold 3 49260 NULL
101936+isku_sysfs_read_keys_media_49268 isku_sysfs_read_keys_media 6 49268 NULL
102683+osd_req_add_get_attr_list_49278 osd_req_add_get_attr_list 3 49278 NULL 101937+osd_req_add_get_attr_list_49278 osd_req_add_get_attr_list 3 49278 NULL
102684+rx_filter_beacon_filter_read_49279 rx_filter_beacon_filter_read 3 49279 NULL 101938+rx_filter_beacon_filter_read_49279 rx_filter_beacon_filter_read 3 49279 NULL
102685+uio_read_49300 uio_read 3 49300 NULL 101939+uio_read_49300 uio_read 3 49300 NULL
102686+ocfs2_resmap_find_free_bits_49301 ocfs2_resmap_find_free_bits 3 49301 NULL 101940+ocfs2_resmap_find_free_bits_49301 ocfs2_resmap_find_free_bits 3 49301 NULL
101941+isku_sysfs_read_keys_macro_49312 isku_sysfs_read_keys_macro 6 49312 NULL
101942+SYSC_mincore_49319 SYSC_mincore 1 49319 NULL
102687+fwtty_port_handler_49327 fwtty_port_handler 9 49327 NULL 101943+fwtty_port_handler_49327 fwtty_port_handler 9 49327 NULL
102688+srpt_alloc_ioctx_ring_49330 srpt_alloc_ioctx_ring 2-3-4 49330 NULL 101944+srpt_alloc_ioctx_ring_49330 srpt_alloc_ioctx_ring 2-3-4 49330 NULL
102689+cfpkt_setlen_49343 cfpkt_setlen 2 49343 NULL 101945+cfpkt_setlen_49343 cfpkt_setlen 2 49343 NULL
@@ -102697,22 +101953,26 @@ index 0000000..7982a0c
102697+samples_to_bytes_49426 samples_to_bytes 0-2 49426 NULL 101953+samples_to_bytes_49426 samples_to_bytes 0-2 49426 NULL
102698+md_domain_init_49432 md_domain_init 2 49432 NULL 101954+md_domain_init_49432 md_domain_init 2 49432 NULL
102699+compat_do_msg_fill_49440 compat_do_msg_fill 3 49440 NULL 101955+compat_do_msg_fill_49440 compat_do_msg_fill 3 49440 NULL
101956+get_lru_size_49441 get_lru_size 0 49441 NULL
102700+agp_3_5_isochronous_node_enable_49465 agp_3_5_isochronous_node_enable 3 49465 NULL 101957+agp_3_5_isochronous_node_enable_49465 agp_3_5_isochronous_node_enable 3 49465 NULL
102701+xfs_iformat_local_49472 xfs_iformat_local 4 49472 NULL 101958+xfs_iformat_local_49472 xfs_iformat_local 4 49472 NULL
102702+savu_sysfs_read_49473 savu_sysfs_read 6 49473 NULL 101959+savu_sysfs_read_49473 savu_sysfs_read 6 49473 NULL
102703+isr_decrypt_done_read_49490 isr_decrypt_done_read 3 49490 NULL 101960+isr_decrypt_done_read_49490 isr_decrypt_done_read 3 49490 NULL
101961+SyS_listxattr_49519 SyS_listxattr 3 49519 NULL
102704+emulator_write_phys_49520 emulator_write_phys 2-4 49520 NULL 101962+emulator_write_phys_49520 emulator_write_phys 2-4 49520 NULL
102705+acpi_os_ioremap_49523 acpi_os_ioremap 1-2 49523 NULL 101963+acpi_os_ioremap_49523 acpi_os_ioremap 1-2 49523 NULL
102706+smk_write_access_49561 smk_write_access 3 49561 NULL 101964+smk_write_access_49561 smk_write_access 3 49561 NULL
102707+ntfs_malloc_nofs_49572 ntfs_malloc_nofs 1 49572 NULL 101965+ntfs_malloc_nofs_49572 ntfs_malloc_nofs 1 49572 NULL
102708+alloc_chunk_49575 alloc_chunk 1 49575 NULL 101966+alloc_chunk_49575 alloc_chunk 1 49575 NULL
102709+sctp_setsockopt_default_send_param_49578 sctp_setsockopt_default_send_param 3 49578 NULL 101967+sctp_setsockopt_default_send_param_49578 sctp_setsockopt_default_send_param 3 49578 NULL
101968+tap_write_49595 tap_write 3 49595 NULL
102710+isr_wakeups_read_49607 isr_wakeups_read 3 49607 NULL 101969+isr_wakeups_read_49607 isr_wakeups_read 3 49607 NULL
102711+btrfs_mksubvol_49616 btrfs_mksubvol 3 49616 NULL 101970+btrfs_mksubvol_49616 btrfs_mksubvol 3 49616 NULL
102712+heap_init_49617 heap_init 2 49617 NULL 101971+heap_init_49617 heap_init 2 49617 NULL
102713+smk_write_doi_49621 smk_write_doi 3 49621 NULL 101972+smk_write_doi_49621 smk_write_doi 3 49621 NULL
102714+btrfsic_cmp_log_and_dev_bytenr_49628 btrfsic_cmp_log_and_dev_bytenr 2 49628 NULL 101973+btrfsic_cmp_log_and_dev_bytenr_49628 btrfsic_cmp_log_and_dev_bytenr 2 49628 NULL
102715+aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 3-4 49683 NULL 101974+aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 3-4 49683 NULL
101975+SyS_pwritev_49688 SyS_pwritev 3 49688 NULL
102716+sys_gethostname_49698 sys_gethostname 2 49698 NULL 101976+sys_gethostname_49698 sys_gethostname 2 49698 NULL
102717+cx2341x_ctrl_new_menu_49700 cx2341x_ctrl_new_menu 3 49700 NULL 101977+cx2341x_ctrl_new_menu_49700 cx2341x_ctrl_new_menu 3 49700 NULL
102718+dm_thin_insert_block_49720 dm_thin_insert_block 2-3 49720 NULL 101978+dm_thin_insert_block_49720 dm_thin_insert_block 2-3 49720 NULL
@@ -102724,16 +101984,18 @@ index 0000000..7982a0c
102724+fuse_wr_pages_49753 fuse_wr_pages 0-1-2 49753 NULL 101984+fuse_wr_pages_49753 fuse_wr_pages 0-1-2 49753 NULL
102725+key_conf_keylen_read_49758 key_conf_keylen_read 3 49758 NULL 101985+key_conf_keylen_read_49758 key_conf_keylen_read 3 49758 NULL
102726+fuse_conn_waiting_read_49762 fuse_conn_waiting_read 3 49762 NULL 101986+fuse_conn_waiting_read_49762 fuse_conn_waiting_read 3 49762 NULL
102727+isku_sysfs_write_49767 isku_sysfs_write 6 49767 NULL 101987+isku_sysfs_write_49767 isku_sysfs_write 6-5 49767 NULL
102728+ceph_osdc_readpages_49789 ceph_osdc_readpages 10-4 49789 NULL 101988+ceph_osdc_readpages_49789 ceph_osdc_readpages 10-4 49789 NULL
102729+nfs4_acl_new_49806 nfs4_acl_new 1 49806 NULL 101989+nfs4_acl_new_49806 nfs4_acl_new 1 49806 NULL
102730+arch_gnttab_map_status_49812 arch_gnttab_map_status 3 49812 NULL 101990+arch_gnttab_map_status_49812 arch_gnttab_map_status 3 49812 NULL
102731+ntfs_copy_from_user_iovec_49829 ntfs_copy_from_user_iovec 3-6-0 49829 NULL 101991+ntfs_copy_from_user_iovec_49829 ntfs_copy_from_user_iovec 3-6-0 49829 NULL
102732+add_uuid_49831 add_uuid 4 49831 NULL 101992+add_uuid_49831 add_uuid 4 49831 NULL
101993+tcf_csum_ipv4_tcp_49834 tcf_csum_ipv4_tcp 3 49834 NULL
102733+ath6kl_fwlog_block_read_49836 ath6kl_fwlog_block_read 3 49836 NULL 101994+ath6kl_fwlog_block_read_49836 ath6kl_fwlog_block_read 3 49836 NULL
102734+twl4030_write_49846 twl4030_write 2 49846 NULL 101995+twl4030_write_49846 twl4030_write 2 49846 NULL
102735+scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3 49848 NULL 101996+scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3 49848 NULL
102736+timeradd_entry_49850 timeradd_entry 3 49850 NULL 101997+timeradd_entry_49850 timeradd_entry 3 49850 NULL
101998+btrfs_subvolume_reserve_metadata_49859 btrfs_subvolume_reserve_metadata 3 49859 NULL
102737+sctp_setsockopt_bindx_49870 sctp_setsockopt_bindx 3 49870 NULL 101999+sctp_setsockopt_bindx_49870 sctp_setsockopt_bindx 3 49870 NULL
102738+ceph_get_caps_49890 ceph_get_caps 0 49890 NULL 102000+ceph_get_caps_49890 ceph_get_caps 0 49890 NULL
102739+__cow_file_range_49901 __cow_file_range 5 49901 NULL 102001+__cow_file_range_49901 __cow_file_range 5 49901 NULL
@@ -102741,6 +102003,7 @@ index 0000000..7982a0c
102741+batadv_tt_realloc_packet_buff_49960 batadv_tt_realloc_packet_buff 4 49960 NULL 102003+batadv_tt_realloc_packet_buff_49960 batadv_tt_realloc_packet_buff 4 49960 NULL
102742+b43legacy_pio_read_49978 b43legacy_pio_read 0 49978 NULL 102004+b43legacy_pio_read_49978 b43legacy_pio_read 0 49978 NULL
102743+ieee80211_if_fmt_dtim_count_49987 ieee80211_if_fmt_dtim_count 3 49987 NULL 102005+ieee80211_if_fmt_dtim_count_49987 ieee80211_if_fmt_dtim_count 3 49987 NULL
102006+sta2x11_swiotlb_alloc_coherent_49994 sta2x11_swiotlb_alloc_coherent 2 49994 NULL
102744+l2cap_chan_send_49995 l2cap_chan_send 3 49995 NULL 102007+l2cap_chan_send_49995 l2cap_chan_send 3 49995 NULL
102745+__module_alloc_50004 __module_alloc 1 50004 NULL 102008+__module_alloc_50004 __module_alloc 1 50004 NULL
102746+dn_mss_from_pmtu_50011 dn_mss_from_pmtu 0-2 50011 NULL 102009+dn_mss_from_pmtu_50011 dn_mss_from_pmtu 0-2 50011 NULL
@@ -102755,6 +102018,7 @@ index 0000000..7982a0c
102755+sock_setsockopt_50088 sock_setsockopt 5 50088 NULL 102018+sock_setsockopt_50088 sock_setsockopt 5 50088 NULL
102756+altera_swap_dr_50090 altera_swap_dr 2 50090 NULL 102019+altera_swap_dr_50090 altera_swap_dr 2 50090 NULL
102757+read_file_slot_50111 read_file_slot 3 50111 NULL 102020+read_file_slot_50111 read_file_slot 3 50111 NULL
102021+SYSC_preadv_50134 SYSC_preadv 3 50134 NULL
102758+copy_items_50140 copy_items 6 50140 NULL 102022+copy_items_50140 copy_items 6 50140 NULL
102759+tx_frag_need_fragmentation_read_50153 tx_frag_need_fragmentation_read 3 50153 NULL 102023+tx_frag_need_fragmentation_read_50153 tx_frag_need_fragmentation_read 3 50153 NULL
102760+set_cmd_header_50155 set_cmd_header 0 50155 NULL 102024+set_cmd_header_50155 set_cmd_header 0 50155 NULL
@@ -102774,6 +102038,8 @@ index 0000000..7982a0c
102774+afs_extract_data_50261 afs_extract_data 5 50261 NULL 102038+afs_extract_data_50261 afs_extract_data 5 50261 NULL
102775+rxrpc_setsockopt_50286 rxrpc_setsockopt 5 50286 NULL 102039+rxrpc_setsockopt_50286 rxrpc_setsockopt 5 50286 NULL
102776+soc_codec_reg_show_50302 soc_codec_reg_show 0 50302 NULL 102040+soc_codec_reg_show_50302 soc_codec_reg_show 0 50302 NULL
102041+SYSC_flistxattr_50307 SYSC_flistxattr 3 50307 NULL
102042+SYSC_sched_setaffinity_50310 SYSC_sched_setaffinity 2 50310 NULL
102777+soc_camera_read_50319 soc_camera_read 3 50319 NULL 102043+soc_camera_read_50319 soc_camera_read 3 50319 NULL
102778+do_launder_page_50329 do_launder_page 0 50329 NULL 102044+do_launder_page_50329 do_launder_page 0 50329 NULL
102779+nouveau_engine_create__50331 nouveau_engine_create_ 7 50331 NULL 102045+nouveau_engine_create__50331 nouveau_engine_create_ 7 50331 NULL
@@ -102782,16 +102048,20 @@ index 0000000..7982a0c
102782+snd_pcm_lib_writev_50337 snd_pcm_lib_writev 0-3 50337 &ocfs2_block_to_cluster_group_50337 102048+snd_pcm_lib_writev_50337 snd_pcm_lib_writev 0-3 50337 &ocfs2_block_to_cluster_group_50337
102783+roccat_common2_send_with_status_50343 roccat_common2_send_with_status 4 50343 NULL 102049+roccat_common2_send_with_status_50343 roccat_common2_send_with_status 4 50343 NULL
102784+tpm_read_50344 tpm_read 3 50344 NULL 102050+tpm_read_50344 tpm_read 3 50344 NULL
102051+sched_clock_remote_50347 sched_clock_remote 0 50347 NULL
102785+kvm_arch_create_memslot_50354 kvm_arch_create_memslot 2 50354 NULL 102052+kvm_arch_create_memslot_50354 kvm_arch_create_memslot 2 50354 NULL
102786+isdn_ppp_read_50356 isdn_ppp_read 4 50356 NULL 102053+isdn_ppp_read_50356 isdn_ppp_read 4 50356 NULL
102787+unpack_u16_chunk_50357 unpack_u16_chunk 0 50357 NULL 102054+unpack_u16_chunk_50357 unpack_u16_chunk 0 50357 NULL
102788+xfrm_send_migrate_50365 xfrm_send_migrate 5 50365 NULL 102055+xfrm_send_migrate_50365 xfrm_send_migrate 5 50365 NULL
102789+roccat_common2_receive_50369 roccat_common2_receive 4 50369 NULL 102056+roccat_common2_receive_50369 roccat_common2_receive 4 50369 NULL
102790+sl_alloc_bufs_50380 sl_alloc_bufs 2 50380 NULL 102057+sl_alloc_bufs_50380 sl_alloc_bufs 2 50380 NULL
102058+hash_ip6_expire_50390 hash_ip6_expire 3 50390 NULL
102791+l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4 50411 NULL 102059+l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4 50411 NULL
102060+ceph_writepages_osd_request_50423 ceph_writepages_osd_request 5 50423 NULL
102792+iscsi_create_conn_50425 iscsi_create_conn 2 50425 NULL 102061+iscsi_create_conn_50425 iscsi_create_conn 2 50425 NULL
102793+validate_acl_mac_addrs_50429 validate_acl_mac_addrs 0 50429 NULL 102062+validate_acl_mac_addrs_50429 validate_acl_mac_addrs 0 50429 NULL
102794+btrfs_error_discard_extent_50444 btrfs_error_discard_extent 2 50444 NULL 102063+btrfs_error_discard_extent_50444 btrfs_error_discard_extent 2 50444 NULL
102064+calc_csum_metadata_size_50448 calc_csum_metadata_size 0 50448 NULL
102795+pgctrl_write_50453 pgctrl_write 3 50453 NULL 102065+pgctrl_write_50453 pgctrl_write 3 50453 NULL
102796+force_mapping_50464 force_mapping 2 50464 NULL 102066+force_mapping_50464 force_mapping 2 50464 NULL
102797+cdrom_read_cdda_50478 cdrom_read_cdda 4 50478 NULL 102067+cdrom_read_cdda_50478 cdrom_read_cdda 4 50478 NULL
@@ -102803,8 +102073,10 @@ index 0000000..7982a0c
102803+fat_readpages_50582 fat_readpages 4 50582 NULL 102073+fat_readpages_50582 fat_readpages 4 50582 NULL
102804+iwl_dbgfs_missed_beacon_read_50584 iwl_dbgfs_missed_beacon_read 3 50584 NULL 102074+iwl_dbgfs_missed_beacon_read_50584 iwl_dbgfs_missed_beacon_read 3 50584 NULL
102805+build_inv_iommu_pages_50589 build_inv_iommu_pages 2-3 50589 NULL 102075+build_inv_iommu_pages_50589 build_inv_iommu_pages 2-3 50589 NULL
102076+sge_rx_50594 sge_rx 3 50594 NULL
102806+rx_rx_checksum_result_read_50617 rx_rx_checksum_result_read 3 50617 NULL 102077+rx_rx_checksum_result_read_50617 rx_rx_checksum_result_read 3 50617 NULL
102807+__ffs_50625 __ffs 0 50625 NULL 102078+__ffs_50625 __ffs 0 50625 NULL
102079+regcache_rbtree_write_50629 regcache_rbtree_write 2 50629 NULL
102808+simple_transaction_get_50633 simple_transaction_get 3 50633 NULL 102080+simple_transaction_get_50633 simple_transaction_get 3 50633 NULL
102809+ath6kl_tm_rx_event_50664 ath6kl_tm_rx_event 3 50664 NULL nohasharray 102081+ath6kl_tm_rx_event_50664 ath6kl_tm_rx_event 3 50664 NULL nohasharray
102810+sys_readv_50664 sys_readv 3 50664 &ath6kl_tm_rx_event_50664 102082+sys_readv_50664 sys_readv 3 50664 &ath6kl_tm_rx_event_50664
@@ -102830,6 +102102,7 @@ index 0000000..7982a0c
102830+videobuf_dma_init_user_50839 videobuf_dma_init_user 3 50839 NULL 102102+videobuf_dma_init_user_50839 videobuf_dma_init_user 3 50839 NULL
102831+self_check_write_50856 self_check_write 5 50856 NULL 102103+self_check_write_50856 self_check_write 5 50856 NULL
102832+carl9170_debugfs_write_50857 carl9170_debugfs_write 3 50857 NULL 102104+carl9170_debugfs_write_50857 carl9170_debugfs_write 3 50857 NULL
102105+SyS_lgetxattr_50889 SyS_lgetxattr 4 50889 NULL
102833+netlbl_secattr_catmap_walk_rng_50894 netlbl_secattr_catmap_walk_rng 0-2 50894 NULL 102106+netlbl_secattr_catmap_walk_rng_50894 netlbl_secattr_catmap_walk_rng 0-2 50894 NULL
102834+osd_req_write_sg_50908 osd_req_write_sg 5 50908 NULL 102107+osd_req_write_sg_50908 osd_req_write_sg 5 50908 NULL
102835+xfs_iext_remove_50909 xfs_iext_remove 3 50909 NULL 102108+xfs_iext_remove_50909 xfs_iext_remove 3 50909 NULL
@@ -102837,6 +102110,7 @@ index 0000000..7982a0c
102837+hash_recvmsg_50924 hash_recvmsg 4 50924 NULL 102110+hash_recvmsg_50924 hash_recvmsg 4 50924 NULL
102838+chd_dec_fetch_cdata_50926 chd_dec_fetch_cdata 3 50926 NULL 102111+chd_dec_fetch_cdata_50926 chd_dec_fetch_cdata 3 50926 NULL
102839+ocfs2_add_refcount_flag_50952 ocfs2_add_refcount_flag 6 50952 NULL 102112+ocfs2_add_refcount_flag_50952 ocfs2_add_refcount_flag 6 50952 NULL
102113+SyS_setxattr_50957 SyS_setxattr 4 50957 NULL
102840+iwl_statistics_flag_50981 iwl_statistics_flag 0-3 50981 NULL 102114+iwl_statistics_flag_50981 iwl_statistics_flag 0-3 50981 NULL
102841+timeout_write_50991 timeout_write 3 50991 NULL 102115+timeout_write_50991 timeout_write 3 50991 NULL
102842+wm831x_irq_map_50995 wm831x_irq_map 2 50995 NULL 102116+wm831x_irq_map_50995 wm831x_irq_map 2 50995 NULL
@@ -102851,6 +102125,7 @@ index 0000000..7982a0c
102851+do_arpt_set_ctl_51053 do_arpt_set_ctl 4 51053 NULL 102125+do_arpt_set_ctl_51053 do_arpt_set_ctl 4 51053 NULL
102852+wusb_prf_64_51065 wusb_prf_64 7 51065 NULL 102126+wusb_prf_64_51065 wusb_prf_64 7 51065 NULL
102853+jbd2_journal_init_revoke_51088 jbd2_journal_init_revoke 2 51088 NULL 102127+jbd2_journal_init_revoke_51088 jbd2_journal_init_revoke 2 51088 NULL
102128+solo_enc_v4l2_init_51094 solo_enc_v4l2_init 2 51094 NULL
102854+__ocfs2_find_path_51096 __ocfs2_find_path 0 51096 NULL 102129+__ocfs2_find_path_51096 __ocfs2_find_path 0 51096 NULL
102855+ti_recv_51110 ti_recv 3 51110 NULL 102130+ti_recv_51110 ti_recv 3 51110 NULL
102856+dgrp_net_read_51113 dgrp_net_read 3 51113 NULL 102131+dgrp_net_read_51113 dgrp_net_read 3 51113 NULL
@@ -102873,6 +102148,7 @@ index 0000000..7982a0c
102873+pvr2_std_id_to_str_51288 pvr2_std_id_to_str 2 51288 NULL 102148+pvr2_std_id_to_str_51288 pvr2_std_id_to_str 2 51288 NULL
102874+bnad_debugfs_read_regrd_51308 bnad_debugfs_read_regrd 3 51308 NULL 102149+bnad_debugfs_read_regrd_51308 bnad_debugfs_read_regrd 3 51308 NULL
102875+get_cell_51316 get_cell 2 51316 NULL 102150+get_cell_51316 get_cell 2 51316 NULL
102151+init_map_ipmac_51317 init_map_ipmac 4-3-5 51317 NULL
102876+alloc_hippi_dev_51320 alloc_hippi_dev 1 51320 NULL 102152+alloc_hippi_dev_51320 alloc_hippi_dev 1 51320 NULL
102877+ext2_xattr_get_51327 ext2_xattr_get 0 51327 NULL 102153+ext2_xattr_get_51327 ext2_xattr_get 0 51327 NULL
102878+alloc_smp_req_51337 alloc_smp_req 1 51337 NULL nohasharray 102154+alloc_smp_req_51337 alloc_smp_req 1 51337 NULL nohasharray
@@ -102890,6 +102166,8 @@ index 0000000..7982a0c
102890+____alloc_ei_netdev_51475 ____alloc_ei_netdev 1 51475 NULL 102166+____alloc_ei_netdev_51475 ____alloc_ei_netdev 1 51475 NULL
102891+xfs_buf_get_uncached_51477 xfs_buf_get_uncached 2 51477 NULL 102167+xfs_buf_get_uncached_51477 xfs_buf_get_uncached 2 51477 NULL
102892+vaddr_51480 vaddr 0 51480 NULL 102168+vaddr_51480 vaddr 0 51480 NULL
102169+skb_inner_mac_header_51482 skb_inner_mac_header 0 51482 NULL nohasharray
102170+btrfs_find_space_cluster_51482 btrfs_find_space_cluster 5 51482 &skb_inner_mac_header_51482
102893+__cpa_process_fault_51502 __cpa_process_fault 2 51502 NULL 102171+__cpa_process_fault_51502 __cpa_process_fault 2 51502 NULL
102894+ieee80211_if_write_uapsd_queues_51526 ieee80211_if_write_uapsd_queues 3 51526 NULL 102172+ieee80211_if_write_uapsd_queues_51526 ieee80211_if_write_uapsd_queues 3 51526 NULL
102895+load_pdptrs_51541 load_pdptrs 3 51541 NULL 102173+load_pdptrs_51541 load_pdptrs 3 51541 NULL
@@ -102919,11 +102197,13 @@ index 0000000..7982a0c
102919+if_write_51756 if_write 3 51756 NULL 102197+if_write_51756 if_write 3 51756 NULL
102920+ioremap_prot_51764 ioremap_prot 1-2 51764 NULL 102198+ioremap_prot_51764 ioremap_prot 1-2 51764 NULL
102921+iio_buffer_add_channel_sysfs_51766 iio_buffer_add_channel_sysfs 0 51766 NULL 102199+iio_buffer_add_channel_sysfs_51766 iio_buffer_add_channel_sysfs 0 51766 NULL
102200+to_ratio_51809 to_ratio 2-1 51809 NULL
102922+qib_alloc_devdata_51819 qib_alloc_devdata 2 51819 NULL 102201+qib_alloc_devdata_51819 qib_alloc_devdata 2 51819 NULL
102923+buffer_from_user_51826 buffer_from_user 3 51826 NULL 102202+buffer_from_user_51826 buffer_from_user 3 51826 NULL
102924+ioread32_51847 ioread32 0 51847 NULL nohasharray 102203+ioread32_51847 ioread32 0 51847 NULL nohasharray
102925+read_file_tgt_tx_stats_51847 read_file_tgt_tx_stats 3 51847 &ioread32_51847 102204+read_file_tgt_tx_stats_51847 read_file_tgt_tx_stats 3 51847 &ioread32_51847
102926+do_readv_writev_51849 do_readv_writev 4 51849 NULL 102205+do_readv_writev_51849 do_readv_writev 4 51849 NULL
102206+SYSC_sendto_51852 SYSC_sendto 6 51852 NULL
102927+pointer_size_read_51863 pointer_size_read 3 51863 NULL 102207+pointer_size_read_51863 pointer_size_read 3 51863 NULL
102928+mlx4_alloc_db_from_pgdir_51865 mlx4_alloc_db_from_pgdir 3 51865 NULL 102208+mlx4_alloc_db_from_pgdir_51865 mlx4_alloc_db_from_pgdir 3 51865 NULL
102929+get_indirect_ea_51869 get_indirect_ea 4 51869 NULL 102209+get_indirect_ea_51869 get_indirect_ea 4 51869 NULL
@@ -102940,6 +102220,7 @@ index 0000000..7982a0c
102940+arizona_free_irq_51969 arizona_free_irq 2 51969 NULL nohasharray 102220+arizona_free_irq_51969 arizona_free_irq 2 51969 NULL nohasharray
102941+snd_mask_min_51969 snd_mask_min 0 51969 &arizona_free_irq_51969 102221+snd_mask_min_51969 snd_mask_min 0 51969 &arizona_free_irq_51969
102942+ath6kl_sdio_alloc_prep_scat_req_51986 ath6kl_sdio_alloc_prep_scat_req 2 51986 NULL 102222+ath6kl_sdio_alloc_prep_scat_req_51986 ath6kl_sdio_alloc_prep_scat_req 2 51986 NULL
102223+dwc3_mode_write_51997 dwc3_mode_write 3 51997 NULL
102943+skb_copy_datagram_from_iovec_52014 skb_copy_datagram_from_iovec 4-2-5 52014 NULL 102224+skb_copy_datagram_from_iovec_52014 skb_copy_datagram_from_iovec 4-2-5 52014 NULL
102944+rdmalt_52022 rdmalt 0 52022 NULL 102225+rdmalt_52022 rdmalt 0 52022 NULL
102945+vxge_rx_alloc_52024 vxge_rx_alloc 3 52024 NULL 102226+vxge_rx_alloc_52024 vxge_rx_alloc 3 52024 NULL
@@ -102952,6 +102233,7 @@ index 0000000..7982a0c
102952+isofs_readpages_52067 isofs_readpages 4 52067 NULL 102233+isofs_readpages_52067 isofs_readpages 4 52067 NULL
102953+nsm_get_handle_52089 nsm_get_handle 4 52089 NULL 102234+nsm_get_handle_52089 nsm_get_handle 4 52089 NULL
102954+o2net_debug_read_52105 o2net_debug_read 3 52105 NULL 102235+o2net_debug_read_52105 o2net_debug_read 3 52105 NULL
102236+smsdvb_stats_read_52114 smsdvb_stats_read 3 52114 NULL
102955+retry_count_read_52129 retry_count_read 3 52129 NULL 102237+retry_count_read_52129 retry_count_read 3 52129 NULL
102956+zram_meta_alloc_52140 zram_meta_alloc 1 52140 NULL 102238+zram_meta_alloc_52140 zram_meta_alloc 1 52140 NULL
102957+hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL nohasharray 102239+hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL nohasharray
@@ -102972,12 +102254,14 @@ index 0000000..7982a0c
102972+shrink_slab_52261 shrink_slab 2-3 52261 NULL 102254+shrink_slab_52261 shrink_slab 2-3 52261 NULL
102973+hva_to_pfn_slow_52262 hva_to_pfn_slow 1 52262 NULL 102255+hva_to_pfn_slow_52262 hva_to_pfn_slow 1 52262 NULL
102974+sisusbcon_do_font_op_52271 sisusbcon_do_font_op 9 52271 NULL 102256+sisusbcon_do_font_op_52271 sisusbcon_do_font_op 9 52271 NULL
102257+atomic64_read_52300 atomic64_read 0 52300 NULL
102975+ath6kl_wmi_get_new_buf_52304 ath6kl_wmi_get_new_buf 1 52304 NULL 102258+ath6kl_wmi_get_new_buf_52304 ath6kl_wmi_get_new_buf 1 52304 NULL
102976+read_file_reset_52310 read_file_reset 3 52310 NULL 102259+read_file_reset_52310 read_file_reset 3 52310 NULL
102977+request_asymmetric_key_52317 request_asymmetric_key 2-4 52317 NULL 102260+request_asymmetric_key_52317 request_asymmetric_key 2-4 52317 NULL
102978+hwflags_read_52318 hwflags_read 3 52318 NULL 102261+hwflags_read_52318 hwflags_read 3 52318 NULL
102979+ntfs_rl_split_52328 ntfs_rl_split 2-4 52328 NULL 102262+ntfs_rl_split_52328 ntfs_rl_split 2-4 52328 NULL
102980+test_unaligned_bulk_52333 test_unaligned_bulk 3 52333 NULL 102263+test_unaligned_bulk_52333 test_unaligned_bulk 3 52333 NULL
102264+compat_SyS_preadv64_52351 compat_SyS_preadv64 3 52351 NULL
102981+bytes_to_frames_52362 bytes_to_frames 0-2 52362 NULL 102265+bytes_to_frames_52362 bytes_to_frames 0-2 52362 NULL
102982+copy_entries_to_user_52367 copy_entries_to_user 1 52367 NULL 102266+copy_entries_to_user_52367 copy_entries_to_user 1 52367 NULL
102983+mq_emit_config_values_52378 mq_emit_config_values 3 52378 NULL 102267+mq_emit_config_values_52378 mq_emit_config_values 3 52378 NULL
@@ -102996,20 +102280,24 @@ index 0000000..7982a0c
102996+skb_cow_head_52495 skb_cow_head 2 52495 &fd_do_rw_52495 102280+skb_cow_head_52495 skb_cow_head 2 52495 &fd_do_rw_52495
102997+qib_user_sdma_pin_pages_52498 qib_user_sdma_pin_pages 3-5 52498 NULL 102281+qib_user_sdma_pin_pages_52498 qib_user_sdma_pin_pages 3-5 52498 NULL
102998+int_tasklet_entry_52500 int_tasklet_entry 3 52500 NULL 102282+int_tasklet_entry_52500 int_tasklet_entry 3 52500 NULL
102283+qlcnic_83xx_sysfs_flash_write_52507 qlcnic_83xx_sysfs_flash_write 4 52507 NULL
102999+pm_qos_power_write_52513 pm_qos_power_write 3 52513 NULL 102284+pm_qos_power_write_52513 pm_qos_power_write 3 52513 NULL
103000+dup_variable_bug_52525 dup_variable_bug 3 52525 NULL 102285+dup_variable_bug_52525 dup_variable_bug 3 52525 NULL
103001+from_oblock_52546 from_oblock 0-1 52546 NULL 102286+from_oblock_52546 from_oblock 0-1 52546 NULL
103002+dccpprobe_read_52549 dccpprobe_read 3 52549 NULL 102287+dccpprobe_read_52549 dccpprobe_read 3 52549 NULL
103003+ocfs2_make_right_split_rec_52562 ocfs2_make_right_split_rec 3 52562 NULL 102288+ocfs2_make_right_split_rec_52562 ocfs2_make_right_split_rec 3 52562 NULL
103004+emit_code_52583 emit_code 0-3 52583 NULL 102289+emit_code_52583 emit_code 0-3 52583 NULL
102290+isku_sysfs_read_macro_52587 isku_sysfs_read_macro 6 52587 NULL
103005+tps80031_writes_52638 tps80031_writes 3-4 52638 NULL 102291+tps80031_writes_52638 tps80031_writes 3-4 52638 NULL
103006+brcmf_sdio_assert_info_52653 brcmf_sdio_assert_info 4 52653 NULL 102292+brcmf_sdio_assert_info_52653 brcmf_sdio_assert_info 4 52653 NULL
102293+SYSC_gethostname_52677 SYSC_gethostname 2 52677 NULL
103007+nvd0_disp_pioc_create__52693 nvd0_disp_pioc_create_ 5 52693 NULL 102294+nvd0_disp_pioc_create__52693 nvd0_disp_pioc_create_ 5 52693 NULL
103008+nouveau_client_create__52715 nouveau_client_create_ 5 52715 NULL 102295+nouveau_client_create__52715 nouveau_client_create_ 5 52715 NULL
103009+cx25840_ir_rx_read_52724 cx25840_ir_rx_read 3 52724 NULL 102296+cx25840_ir_rx_read_52724 cx25840_ir_rx_read 3 52724 NULL
103010+blkcipher_next_slow_52733 blkcipher_next_slow 3-4 52733 NULL 102297+blkcipher_next_slow_52733 blkcipher_next_slow 3-4 52733 NULL
103011+relay_alloc_page_array_52735 relay_alloc_page_array 1 52735 NULL 102298+relay_alloc_page_array_52735 relay_alloc_page_array 1 52735 NULL
103012+carl9170_debugfs_vif_dump_read_52755 carl9170_debugfs_vif_dump_read 3 52755 NULL 102299+carl9170_debugfs_vif_dump_read_52755 carl9170_debugfs_vif_dump_read 3 52755 NULL
102300+ieee80211_if_read_beacon_timeout_52756 ieee80211_if_read_beacon_timeout 3 52756 NULL
103013+copy_ctr_args_52761 copy_ctr_args 2 52761 NULL 102301+copy_ctr_args_52761 copy_ctr_args 2 52761 NULL
103014+pwr_rcvd_beacons_read_52836 pwr_rcvd_beacons_read 3 52836 NULL 102302+pwr_rcvd_beacons_read_52836 pwr_rcvd_beacons_read 3 52836 NULL
103015+ext2_xattr_set_acl_52857 ext2_xattr_set_acl 4 52857 NULL 102303+ext2_xattr_set_acl_52857 ext2_xattr_set_acl 4 52857 NULL
@@ -103043,6 +102331,7 @@ index 0000000..7982a0c
103043+brcmf_usb_dl_cmd_53130 brcmf_usb_dl_cmd 4 53130 NULL 102331+brcmf_usb_dl_cmd_53130 brcmf_usb_dl_cmd 4 53130 NULL
103044+ps_poll_ps_poll_max_ap_turn_read_53140 ps_poll_ps_poll_max_ap_turn_read 3 53140 NULL 102332+ps_poll_ps_poll_max_ap_turn_read_53140 ps_poll_ps_poll_max_ap_turn_read 3 53140 NULL
103045+ieee80211_bss_info_update_53170 ieee80211_bss_info_update 4 53170 NULL 102333+ieee80211_bss_info_update_53170 ieee80211_bss_info_update 4 53170 NULL
102334+btrfs_io_bio_alloc_53179 btrfs_io_bio_alloc 2 53179 NULL
103046+clear_capture_buf_53192 clear_capture_buf 2 53192 NULL 102335+clear_capture_buf_53192 clear_capture_buf 2 53192 NULL
103047+mtdoops_erase_block_53206 mtdoops_erase_block 2 53206 NULL 102336+mtdoops_erase_block_53206 mtdoops_erase_block 2 53206 NULL
103048+fixup_user_fault_53210 fixup_user_fault 3 53210 NULL 102337+fixup_user_fault_53210 fixup_user_fault 3 53210 NULL
@@ -103051,6 +102340,7 @@ index 0000000..7982a0c
103051+xfs_trans_read_buf_map_53258 xfs_trans_read_buf_map 5 53258 NULL 102340+xfs_trans_read_buf_map_53258 xfs_trans_read_buf_map 5 53258 NULL
103052+wil_write_file_ssid_53266 wil_write_file_ssid 3 53266 NULL 102341+wil_write_file_ssid_53266 wil_write_file_ssid 3 53266 NULL
103053+btrfs_file_extent_num_bytes_53269 btrfs_file_extent_num_bytes 0 53269 NULL 102342+btrfs_file_extent_num_bytes_53269 btrfs_file_extent_num_bytes 0 53269 NULL
102343+isku_sysfs_write_key_mask_53305 isku_sysfs_write_key_mask 6 53305 NULL
103054+batadv_interface_rx_53325 batadv_interface_rx 4 53325 NULL 102344+batadv_interface_rx_53325 batadv_interface_rx 4 53325 NULL
103055+gsm_control_reply_53333 gsm_control_reply 4 53333 NULL 102345+gsm_control_reply_53333 gsm_control_reply 4 53333 NULL
103056+vm_mmap_53339 vm_mmap 0 53339 NULL 102346+vm_mmap_53339 vm_mmap 0 53339 NULL
@@ -103072,7 +102362,8 @@ index 0000000..7982a0c
103072+ocfs2_xattr_set_acl_53508 ocfs2_xattr_set_acl 4 53508 NULL 102362+ocfs2_xattr_set_acl_53508 ocfs2_xattr_set_acl 4 53508 NULL
103073+check_acl_53512 check_acl 0 53512 NULL 102363+check_acl_53512 check_acl 0 53512 NULL
103074+alloc_pages_exact_nid_53515 alloc_pages_exact_nid 2 53515 NULL 102364+alloc_pages_exact_nid_53515 alloc_pages_exact_nid 2 53515 NULL
103075+set_registers_53582 set_registers 3 53582 NULL 102365+SYSC_bind_53582 SYSC_bind 3 53582 NULL nohasharray
102366+set_registers_53582 set_registers 3 53582 &SYSC_bind_53582
103076+cifs_utf16_bytes_53593 cifs_utf16_bytes 0 53593 NULL 102367+cifs_utf16_bytes_53593 cifs_utf16_bytes 0 53593 NULL
103077+gfn_to_pfn_async_53597 gfn_to_pfn_async 2 53597 NULL 102368+gfn_to_pfn_async_53597 gfn_to_pfn_async 2 53597 NULL
103078+___alloc_bootmem_nopanic_53626 ___alloc_bootmem_nopanic 1-2 53626 NULL 102369+___alloc_bootmem_nopanic_53626 ___alloc_bootmem_nopanic 1-2 53626 NULL
@@ -103080,6 +102371,7 @@ index 0000000..7982a0c
103080+ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 NULL 102371+ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 NULL
103081+nr_sendmsg_53656 nr_sendmsg 4 53656 NULL 102372+nr_sendmsg_53656 nr_sendmsg 4 53656 NULL
103082+_preload_range_53676 _preload_range 2-3 53676 NULL 102373+_preload_range_53676 _preload_range 2-3 53676 NULL
102374+lowpan_fragment_xmit_53680 lowpan_fragment_xmit 3-4 53680 NULL
103083+fuse_fill_write_pages_53682 fuse_fill_write_pages 4 53682 NULL 102375+fuse_fill_write_pages_53682 fuse_fill_write_pages 4 53682 NULL
103084+v4l2_event_subscribe_53687 v4l2_event_subscribe 3 53687 NULL 102376+v4l2_event_subscribe_53687 v4l2_event_subscribe 3 53687 NULL
103085+bdev_logical_block_size_53690 bdev_logical_block_size 0 53690 NULL nohasharray 102377+bdev_logical_block_size_53690 bdev_logical_block_size 0 53690 NULL nohasharray
@@ -103101,7 +102393,8 @@ index 0000000..7982a0c
103101+nls_nullsize_53815 nls_nullsize 0 53815 NULL 102393+nls_nullsize_53815 nls_nullsize 0 53815 NULL
103102+pms_read_53873 pms_read 3 53873 NULL 102394+pms_read_53873 pms_read 3 53873 NULL
103103+ieee80211_if_fmt_dropped_frames_congestion_53883 ieee80211_if_fmt_dropped_frames_congestion 3 53883 NULL 102395+ieee80211_if_fmt_dropped_frames_congestion_53883 ieee80211_if_fmt_dropped_frames_congestion 3 53883 NULL
103104+ocfs2_rm_xattr_cluster_53900 ocfs2_rm_xattr_cluster 5-4-3 53900 NULL 102396+ocfs2_rm_xattr_cluster_53900 ocfs2_rm_xattr_cluster 5-4-3 53900 NULL nohasharray
102397+SyS_setgroups_53900 SyS_setgroups 1 53900 &ocfs2_rm_xattr_cluster_53900
103105+proc_file_read_53905 proc_file_read 3 53905 NULL 102398+proc_file_read_53905 proc_file_read 3 53905 NULL
103106+early_reserve_e820_53915 early_reserve_e820 1-2 53915 NULL 102399+early_reserve_e820_53915 early_reserve_e820 1-2 53915 NULL
103107+ocfs2_make_clusters_writable_53938 ocfs2_make_clusters_writable 4 53938 NULL 102400+ocfs2_make_clusters_writable_53938 ocfs2_make_clusters_writable 4 53938 NULL
@@ -103117,10 +102410,12 @@ index 0000000..7982a0c
103117+pipeline_dec_packet_out_read_54052 pipeline_dec_packet_out_read 3 54052 NULL 102410+pipeline_dec_packet_out_read_54052 pipeline_dec_packet_out_read 3 54052 NULL
103118+nl80211_send_disconnected_54056 nl80211_send_disconnected 5 54056 NULL 102411+nl80211_send_disconnected_54056 nl80211_send_disconnected 5 54056 NULL
103119+rproc_state_read_54057 rproc_state_read 3 54057 NULL 102412+rproc_state_read_54057 rproc_state_read 3 54057 NULL
102413+btrfs_start_transaction_54066 btrfs_start_transaction 2 54066 NULL
103120+_malloc_54077 _malloc 1 54077 NULL 102414+_malloc_54077 _malloc 1 54077 NULL
103121+bitmap_bitremap_54096 bitmap_bitremap 4 54096 NULL 102415+bitmap_bitremap_54096 bitmap_bitremap 4 54096 NULL
103122+altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL 102416+altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL
103123+create_xattr_54106 create_xattr 5 54106 NULL 102417+create_xattr_54106 create_xattr 5 54106 NULL
102418+inc_zcache_pers_zbytes_54107 inc_zcache_pers_zbytes 1 54107 NULL
103124+strn_len_54122 strn_len 0 54122 NULL 102419+strn_len_54122 strn_len 0 54122 NULL
103125+isku_receive_54130 isku_receive 4 54130 NULL 102420+isku_receive_54130 isku_receive 4 54130 NULL
103126+isr_host_acknowledges_read_54136 isr_host_acknowledges_read 3 54136 NULL 102421+isr_host_acknowledges_read_54136 isr_host_acknowledges_read 3 54136 NULL
@@ -103128,6 +102423,7 @@ index 0000000..7982a0c
103128+memcpy_toiovec_54166 memcpy_toiovec 3 54166 &i2400m_zrealloc_2x_54166 102423+memcpy_toiovec_54166 memcpy_toiovec 3 54166 &i2400m_zrealloc_2x_54166
103129+nouveau_falcon_create__54169 nouveau_falcon_create_ 8 54169 NULL 102424+nouveau_falcon_create__54169 nouveau_falcon_create_ 8 54169 NULL
103130+acpi_os_read_memory_54186 acpi_os_read_memory 1-3 54186 NULL 102425+acpi_os_read_memory_54186 acpi_os_read_memory 1-3 54186 NULL
102426+SyS_ipc_54206 SyS_ipc 3 54206 NULL
103131+__register_chrdev_54223 __register_chrdev 2-3 54223 NULL 102427+__register_chrdev_54223 __register_chrdev 2-3 54223 NULL
103132+_format_mac_addr_54229 _format_mac_addr 2-0 54229 NULL 102428+_format_mac_addr_54229 _format_mac_addr 2-0 54229 NULL
103133+pi_read_regr_54231 pi_read_regr 0 54231 NULL 102429+pi_read_regr_54231 pi_read_regr 0 54231 NULL
@@ -103171,6 +102467,7 @@ index 0000000..7982a0c
103171+unix_dgram_connect_54535 unix_dgram_connect 3 54535 NULL 102467+unix_dgram_connect_54535 unix_dgram_connect 3 54535 NULL
103172+setsockopt_54539 setsockopt 5 54539 NULL 102468+setsockopt_54539 setsockopt 5 54539 NULL
103173+mwifiex_usb_submit_rx_urb_54558 mwifiex_usb_submit_rx_urb 2 54558 NULL 102469+mwifiex_usb_submit_rx_urb_54558 mwifiex_usb_submit_rx_urb 2 54558 NULL
102470+SYSC_setsockopt_54561 SYSC_setsockopt 5 54561 NULL
103174+nfsd_vfs_write_54577 nfsd_vfs_write 6 54577 NULL 102471+nfsd_vfs_write_54577 nfsd_vfs_write 6 54577 NULL
103175+fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL 102472+fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL
103176+nvme_npages_54601 nvme_npages 0-1 54601 NULL 102473+nvme_npages_54601 nvme_npages 0-1 54601 NULL
@@ -103184,7 +102481,8 @@ index 0000000..7982a0c
103184+evm_read_key_54674 evm_read_key 3 54674 NULL 102481+evm_read_key_54674 evm_read_key 3 54674 NULL
103185+resource_string_54699 resource_string 0 54699 NULL 102482+resource_string_54699 resource_string 0 54699 NULL
103186+platform_get_irq_byname_54700 platform_get_irq_byname 0 54700 NULL 102483+platform_get_irq_byname_54700 platform_get_irq_byname 0 54700 NULL
103187+rfkill_fop_read_54711 rfkill_fop_read 3 54711 NULL 102484+rfkill_fop_read_54711 rfkill_fop_read 3 54711 NULL nohasharray
102485+compat_SyS_readv_54711 compat_SyS_readv 3 54711 &rfkill_fop_read_54711
103188+_add_sg_continuation_descriptor_54721 _add_sg_continuation_descriptor 3 54721 NULL 102486+_add_sg_continuation_descriptor_54721 _add_sg_continuation_descriptor 3 54721 NULL
103189+ocfs2_control_write_54737 ocfs2_control_write 3 54737 NULL 102487+ocfs2_control_write_54737 ocfs2_control_write 3 54737 NULL
103190+kzalloc_54740 kzalloc 1 54740 NULL 102488+kzalloc_54740 kzalloc 1 54740 NULL
@@ -103222,6 +102520,7 @@ index 0000000..7982a0c
103222+__proc_file_read_54978 __proc_file_read 3 54978 NULL 102520+__proc_file_read_54978 __proc_file_read 3 54978 NULL
103223+ext3_xattr_get_54989 ext3_xattr_get 0 54989 NULL 102521+ext3_xattr_get_54989 ext3_xattr_get 0 54989 NULL
103224+Bus_to_Virtual_54991 Bus_to_Virtual 1 54991 NULL 102522+Bus_to_Virtual_54991 Bus_to_Virtual 1 54991 NULL
102523+mem_cgroup_get_lru_size_55008 mem_cgroup_get_lru_size 0 55008 NULL
103225+cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3 55014 NULL 102524+cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3 55014 NULL
103226+paging32_get_level1_sp_gpa_55022 paging32_get_level1_sp_gpa 0 55022 NULL 102525+paging32_get_level1_sp_gpa_55022 paging32_get_level1_sp_gpa 0 55022 NULL
103227+error_error_null_Frame_tx_start_read_55024 error_error_null_Frame_tx_start_read 3 55024 NULL 102526+error_error_null_Frame_tx_start_read_55024 error_error_null_Frame_tx_start_read 3 55024 NULL
@@ -103242,12 +102541,16 @@ index 0000000..7982a0c
103242+ht40allow_map_read_55209 ht40allow_map_read 3 55209 NULL 102541+ht40allow_map_read_55209 ht40allow_map_read 3 55209 NULL
103243+__kfifo_dma_out_prepare_r_55211 __kfifo_dma_out_prepare_r 4-5 55211 NULL 102542+__kfifo_dma_out_prepare_r_55211 __kfifo_dma_out_prepare_r 4-5 55211 NULL
103244+do_raw_setsockopt_55215 do_raw_setsockopt 5 55215 NULL 102543+do_raw_setsockopt_55215 do_raw_setsockopt 5 55215 NULL
102544+qxl_alloc_client_monitors_config_55216 qxl_alloc_client_monitors_config 2 55216 NULL
102545+nouveau_mc_create__55217 nouveau_mc_create_ 4 55217 NULL
103245+dump_command_55220 dump_command 1 55220 NULL 102546+dump_command_55220 dump_command 1 55220 NULL
103246+dbAllocDmap_55227 dbAllocDmap 0 55227 NULL 102547+dbAllocDmap_55227 dbAllocDmap 0 55227 NULL
103247+tipc_port_reject_sections_55229 tipc_port_reject_sections 5 55229 NULL 102548+tipc_port_reject_sections_55229 tipc_port_reject_sections 5 55229 NULL
102549+hash_netport6_expire_55232 hash_netport6_expire 3 55232 NULL
103248+register_unifi_sdio_55239 register_unifi_sdio 2 55239 NULL 102550+register_unifi_sdio_55239 register_unifi_sdio 2 55239 NULL
103249+memcpy_fromiovec_55247 memcpy_fromiovec 3 55247 NULL 102551+memcpy_fromiovec_55247 memcpy_fromiovec 3 55247 NULL
103250+ptrace_request_55288 ptrace_request 3 55288 NULL 102552+persistent_ram_new_55286 persistent_ram_new 1-2 55286 NULL
102553+ptrace_request_55288 ptrace_request 3-4 55288 NULL
103251+rx_streaming_interval_read_55291 rx_streaming_interval_read 3 55291 NULL 102554+rx_streaming_interval_read_55291 rx_streaming_interval_read 3 55291 NULL
103252+gsm_control_modem_55303 gsm_control_modem 3 55303 NULL 102555+gsm_control_modem_55303 gsm_control_modem 3 55303 NULL
103253+qp_alloc_guest_work_55305 qp_alloc_guest_work 3-5 55305 NULL nohasharray 102556+qp_alloc_guest_work_55305 qp_alloc_guest_work 3-5 55305 NULL nohasharray
@@ -103260,6 +102563,7 @@ index 0000000..7982a0c
103260+acpi_system_read_event_55362 acpi_system_read_event 3 55362 NULL 102563+acpi_system_read_event_55362 acpi_system_read_event 3 55362 NULL
103261+nf_nat_ipv4_manip_pkt_55387 nf_nat_ipv4_manip_pkt 2 55387 NULL 102564+nf_nat_ipv4_manip_pkt_55387 nf_nat_ipv4_manip_pkt 2 55387 NULL
103262+iwl_dbgfs_plcp_delta_read_55407 iwl_dbgfs_plcp_delta_read 3 55407 NULL 102565+iwl_dbgfs_plcp_delta_read_55407 iwl_dbgfs_plcp_delta_read 3 55407 NULL
102566+si476x_radio_read_rds_blckcnt_blob_55427 si476x_radio_read_rds_blckcnt_blob 3 55427 NULL
103263+alloc_skb_55439 alloc_skb 1 55439 NULL 102567+alloc_skb_55439 alloc_skb 1 55439 NULL
103264+__vxge_hw_channel_allocate_55462 __vxge_hw_channel_allocate 3 55462 NULL 102568+__vxge_hw_channel_allocate_55462 __vxge_hw_channel_allocate 3 55462 NULL
103265+isdnhdlc_decode_55466 isdnhdlc_decode 0 55466 NULL 102569+isdnhdlc_decode_55466 isdnhdlc_decode 0 55466 NULL
@@ -103275,7 +102579,9 @@ index 0000000..7982a0c
103275+buffer_size_55534 buffer_size 0 55534 NULL 102579+buffer_size_55534 buffer_size 0 55534 NULL
103276+set_msr_interception_55538 set_msr_interception 2 55538 NULL 102580+set_msr_interception_55538 set_msr_interception 2 55538 NULL
103277+tty_port_register_device_55543 tty_port_register_device 3 55543 NULL 102581+tty_port_register_device_55543 tty_port_register_device 3 55543 NULL
102582+hash_netport4_expire_55584 hash_netport4_expire 3 55584 NULL
103278+add_partition_55588 add_partition 2 55588 NULL 102583+add_partition_55588 add_partition 2 55588 NULL
102584+SyS_keyctl_55602 SyS_keyctl 4 55602 NULL
103279+free_pages_55603 free_pages 1 55603 NULL 102585+free_pages_55603 free_pages 1 55603 NULL
103280+macvtap_put_user_55609 macvtap_put_user 4 55609 NULL 102586+macvtap_put_user_55609 macvtap_put_user 4 55609 NULL
103281+selinux_setprocattr_55611 selinux_setprocattr 4 55611 NULL 102587+selinux_setprocattr_55611 selinux_setprocattr 4 55611 NULL
@@ -103295,6 +102601,7 @@ index 0000000..7982a0c
103295+__videobuf_alloc_uncached_55711 __videobuf_alloc_uncached 1 55711 NULL 102601+__videobuf_alloc_uncached_55711 __videobuf_alloc_uncached 1 55711 NULL
103296+pm8001_store_update_fw_55716 pm8001_store_update_fw 4 55716 NULL 102602+pm8001_store_update_fw_55716 pm8001_store_update_fw 4 55716 NULL
103297+mtdswap_init_55719 mtdswap_init 2 55719 NULL 102603+mtdswap_init_55719 mtdswap_init 2 55719 NULL
102604+tap_pwup_write_55723 tap_pwup_write 3 55723 NULL
103298+__iio_allocate_kfifo_55738 __iio_allocate_kfifo 2 55738 NULL 102605+__iio_allocate_kfifo_55738 __iio_allocate_kfifo 2 55738 NULL
103299+set_local_name_55757 set_local_name 4 55757 NULL 102606+set_local_name_55757 set_local_name 4 55757 NULL
103300+strlen_55778 strlen 0 55778 NULL 102607+strlen_55778 strlen 0 55778 NULL
@@ -103323,12 +102630,14 @@ index 0000000..7982a0c
103323+kmem_zalloc_large_56128 kmem_zalloc_large 1 56128 NULL 102630+kmem_zalloc_large_56128 kmem_zalloc_large 1 56128 NULL
103324+sel_read_handle_status_56139 sel_read_handle_status 3 56139 NULL 102631+sel_read_handle_status_56139 sel_read_handle_status 3 56139 NULL
103325+map_addr_56144 map_addr 7 56144 NULL 102632+map_addr_56144 map_addr 7 56144 NULL
102633+__i2c_transfer_56162 __i2c_transfer 0 56162 NULL
103326+rawv6_setsockopt_56165 rawv6_setsockopt 5 56165 NULL 102634+rawv6_setsockopt_56165 rawv6_setsockopt 5 56165 NULL
103327+create_irq_nr_56180 create_irq_nr 1 56180 NULL 102635+create_irq_nr_56180 create_irq_nr 1 56180 NULL
103328+ath9k_dump_legacy_btcoex_56194 ath9k_dump_legacy_btcoex 0 56194 NULL 102636+ath9k_dump_legacy_btcoex_56194 ath9k_dump_legacy_btcoex 0 56194 NULL
103329+skb_headroom_56200 skb_headroom 0 56200 NULL 102637+skb_headroom_56200 skb_headroom 0 56200 NULL
103330+usb_dump_iad_descriptor_56204 usb_dump_iad_descriptor 0 56204 NULL 102638+usb_dump_iad_descriptor_56204 usb_dump_iad_descriptor 0 56204 NULL
103331+ncp_read_bounce_size_56221 ncp_read_bounce_size 0-1 56221 NULL 102639+ncp_read_bounce_size_56221 ncp_read_bounce_size 0-1 56221 NULL
102640+vring_add_indirect_56222 vring_add_indirect 4 56222 NULL
103332+ocfs2_find_xe_in_bucket_56224 ocfs2_find_xe_in_bucket 0 56224 NULL 102641+ocfs2_find_xe_in_bucket_56224 ocfs2_find_xe_in_bucket 0 56224 NULL
103333+cp210x_get_config_56229 cp210x_get_config 4 56229 NULL 102642+cp210x_get_config_56229 cp210x_get_config 4 56229 NULL
103334+do_ipt_set_ctl_56238 do_ipt_set_ctl 4 56238 NULL 102643+do_ipt_set_ctl_56238 do_ipt_set_ctl 4 56238 NULL
@@ -103347,6 +102656,7 @@ index 0000000..7982a0c
103347+vxge_os_dma_malloc_async_56348 vxge_os_dma_malloc_async 3 56348 NULL 102656+vxge_os_dma_malloc_async_56348 vxge_os_dma_malloc_async 3 56348 NULL
103348+iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 4 56368 NULL 102657+iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 4 56368 NULL
103349+dev_read_56369 dev_read 3 56369 NULL 102658+dev_read_56369 dev_read 3 56369 NULL
102659+write_gssp_56404 write_gssp 3 56404 NULL
103350+ocfs2_control_read_56405 ocfs2_control_read 3 56405 NULL 102660+ocfs2_control_read_56405 ocfs2_control_read 3 56405 NULL
103351+__get_vm_area_caller_56416 __get_vm_area_caller 1 56416 NULL nohasharray 102661+__get_vm_area_caller_56416 __get_vm_area_caller 1 56416 NULL nohasharray
103352+acpi_os_write_memory_56416 acpi_os_write_memory 1-3 56416 &__get_vm_area_caller_56416 102662+acpi_os_write_memory_56416 acpi_os_write_memory 1-3 56416 &__get_vm_area_caller_56416
@@ -103357,9 +102667,12 @@ index 0000000..7982a0c
103357+cx231xx_init_isoc_56453 cx231xx_init_isoc 3-2 56453 NULL 102667+cx231xx_init_isoc_56453 cx231xx_init_isoc 3-2 56453 NULL
103358+set_connectable_56458 set_connectable 4 56458 NULL 102668+set_connectable_56458 set_connectable 4 56458 NULL
103359+osd_req_list_partition_objects_56464 osd_req_list_partition_objects 5 56464 NULL 102669+osd_req_list_partition_objects_56464 osd_req_list_partition_objects 5 56464 NULL
102670+putused_user_56467 putused_user 3 56467 NULL
103360+calc_linear_pos_56472 calc_linear_pos 0-3 56472 NULL 102671+calc_linear_pos_56472 calc_linear_pos 0-3 56472 NULL
102672+global_rt_period_56476 global_rt_period 0 56476 NULL
103361+crypto_shash_alignmask_56486 crypto_shash_alignmask 0 56486 NULL 102673+crypto_shash_alignmask_56486 crypto_shash_alignmask 0 56486 NULL
103362+ieee80211_rx_mgmt_probe_beacon_56491 ieee80211_rx_mgmt_probe_beacon 3 56491 NULL 102674+ieee80211_rx_mgmt_probe_beacon_56491 ieee80211_rx_mgmt_probe_beacon 3 56491 NULL
102675+init_map_ip_56508 init_map_ip 5 56508 NULL
103363+cfg80211_connect_result_56515 cfg80211_connect_result 4-6 56515 NULL 102676+cfg80211_connect_result_56515 cfg80211_connect_result 4-6 56515 NULL
103364+ip_options_get_56538 ip_options_get 4 56538 NULL 102677+ip_options_get_56538 ip_options_get 4 56538 NULL
103365+ocfs2_change_extent_flag_56549 ocfs2_change_extent_flag 5 56549 NULL 102678+ocfs2_change_extent_flag_56549 ocfs2_change_extent_flag 5 56549 NULL
@@ -103386,6 +102699,7 @@ index 0000000..7982a0c
103386+mtdchar_write_56831 mtdchar_write 3 56831 NULL nohasharray 102699+mtdchar_write_56831 mtdchar_write 3 56831 NULL nohasharray
103387+ntfs_rl_realloc_56831 ntfs_rl_realloc 3 56831 &mtdchar_write_56831 102700+ntfs_rl_realloc_56831 ntfs_rl_realloc 3 56831 &mtdchar_write_56831
103388+snd_rawmidi_kernel_write1_56847 snd_rawmidi_kernel_write1 4 56847 NULL 102701+snd_rawmidi_kernel_write1_56847 snd_rawmidi_kernel_write1 4 56847 NULL
102702+si476x_radio_read_agc_blob_56849 si476x_radio_read_agc_blob 3 56849 NULL
103389+wb_lookup_56858 wb_lookup 2 56858 NULL 102703+wb_lookup_56858 wb_lookup 2 56858 NULL
103390+ext3_xattr_ibody_get_56880 ext3_xattr_ibody_get 0 56880 NULL 102704+ext3_xattr_ibody_get_56880 ext3_xattr_ibody_get 0 56880 NULL
103391+pvr2_debugifc_print_status_56890 pvr2_debugifc_print_status 3 56890 NULL 102705+pvr2_debugifc_print_status_56890 pvr2_debugifc_print_status 3 56890 NULL
@@ -103423,6 +102737,7 @@ index 0000000..7982a0c
103423+rx_hw_stuck_read_57179 rx_hw_stuck_read 3 57179 NULL 102737+rx_hw_stuck_read_57179 rx_hw_stuck_read 3 57179 NULL
103424+tt3650_ci_msg_57219 tt3650_ci_msg 4 57219 NULL 102738+tt3650_ci_msg_57219 tt3650_ci_msg 4 57219 NULL
103425+dma_fifo_alloc_57236 dma_fifo_alloc 5-3-2 57236 NULL 102739+dma_fifo_alloc_57236 dma_fifo_alloc 5-3-2 57236 NULL
102740+flush_space_57241 flush_space 3 57241 NULL
103426+ieee80211_if_fmt_tsf_57249 ieee80211_if_fmt_tsf 3 57249 NULL 102741+ieee80211_if_fmt_tsf_57249 ieee80211_if_fmt_tsf 3 57249 NULL
103427+oprofilefs_ulong_from_user_57251 oprofilefs_ulong_from_user 3 57251 NULL 102742+oprofilefs_ulong_from_user_57251 oprofilefs_ulong_from_user 3 57251 NULL
103428+alloc_flex_gd_57259 alloc_flex_gd 1 57259 NULL 102743+alloc_flex_gd_57259 alloc_flex_gd 1 57259 NULL
@@ -103489,6 +102804,7 @@ index 0000000..7982a0c
103489+nouveau_gpio_create__57735 nouveau_gpio_create_ 4-5 57735 NULL 102804+nouveau_gpio_create__57735 nouveau_gpio_create_ 4-5 57735 NULL
103490+compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 NULL 102805+compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 NULL
103491+ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval_57762 ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval 3 57762 NULL 102806+ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval_57762 ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval 3 57762 NULL
102807+SYSC_process_vm_writev_57776 SYSC_process_vm_writev 3-5 57776 NULL
103492+ld2_57794 ld2 0 57794 NULL 102808+ld2_57794 ld2 0 57794 NULL
103493+ivtv_read_57796 ivtv_read 3 57796 NULL 102809+ivtv_read_57796 ivtv_read 3 57796 NULL
103494+generic_ptrace_peekdata_57806 generic_ptrace_peekdata 2 57806 NULL 102810+generic_ptrace_peekdata_57806 generic_ptrace_peekdata 2 57806 NULL
@@ -103538,9 +102854,11 @@ index 0000000..7982a0c
103538+pcim_iomap_58334 pcim_iomap 3 58334 NULL 102854+pcim_iomap_58334 pcim_iomap 3 58334 NULL
103539+diva_init_dma_map_58336 diva_init_dma_map 3 58336 NULL 102855+diva_init_dma_map_58336 diva_init_dma_map 3 58336 NULL
103540+next_pidmap_58347 next_pidmap 2 58347 NULL 102856+next_pidmap_58347 next_pidmap 2 58347 NULL
102857+SyS_migrate_pages_58348 SyS_migrate_pages 2 58348 NULL
103541+vmalloc_to_sg_58354 vmalloc_to_sg 2 58354 NULL 102858+vmalloc_to_sg_58354 vmalloc_to_sg 2 58354 NULL
103542+save_hint_58359 save_hint 2 58359 NULL 102859+save_hint_58359 save_hint 2 58359 NULL
103543+brcmf_debugfs_sdio_counter_read_58369 brcmf_debugfs_sdio_counter_read 3 58369 NULL 102860+brcmf_debugfs_sdio_counter_read_58369 brcmf_debugfs_sdio_counter_read 3 58369 NULL
102861+hash_ipportnet6_expire_58379 hash_ipportnet6_expire 3 58379 NULL
103544+il_dbgfs_status_read_58388 il_dbgfs_status_read 3 58388 NULL 102862+il_dbgfs_status_read_58388 il_dbgfs_status_read 3 58388 NULL
103545+kvm_mmu_write_protect_pt_masked_58406 kvm_mmu_write_protect_pt_masked 3 58406 NULL 102863+kvm_mmu_write_protect_pt_masked_58406 kvm_mmu_write_protect_pt_masked 3 58406 NULL
103546+i2400m_pld_size_58415 i2400m_pld_size 0 58415 NULL 102864+i2400m_pld_size_58415 i2400m_pld_size 0 58415 NULL
@@ -103556,10 +102874,12 @@ index 0000000..7982a0c
103556+memblock_alloc_try_nid_58493 memblock_alloc_try_nid 1-2 58493 NULL 102874+memblock_alloc_try_nid_58493 memblock_alloc_try_nid 1-2 58493 NULL
103557+rndis_add_response_58544 rndis_add_response 2 58544 NULL 102875+rndis_add_response_58544 rndis_add_response 2 58544 NULL
103558+__clear_discard_58546 __clear_discard 2 58546 NULL 102876+__clear_discard_58546 __clear_discard 2 58546 NULL
102877+wrap_max_58548 wrap_max 0-1-2 58548 NULL
103559+wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3 58567 NULL 102878+wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3 58567 NULL
103560+sip_sprintf_addr_port_58574 sip_sprintf_addr_port 0 58574 NULL 102879+sip_sprintf_addr_port_58574 sip_sprintf_addr_port 0 58574 NULL
103561+scnprint_mac_oui_58578 scnprint_mac_oui 3-0 58578 NULL 102880+scnprint_mac_oui_58578 scnprint_mac_oui 3-0 58578 NULL
103562+ea_read_inline_58589 ea_read_inline 0 58589 NULL 102881+ea_read_inline_58589 ea_read_inline 0 58589 NULL
102882+isku_sysfs_read_keys_thumbster_58590 isku_sysfs_read_keys_thumbster 6 58590 NULL
103563+xip_file_read_58592 xip_file_read 3 58592 NULL 102883+xip_file_read_58592 xip_file_read 3 58592 NULL
103564+gdth_search_isa_58595 gdth_search_isa 1 58595 NULL 102884+gdth_search_isa_58595 gdth_search_isa 1 58595 NULL
103565+ebt_buf_count_58607 ebt_buf_count 0 58607 NULL 102885+ebt_buf_count_58607 ebt_buf_count 0 58607 NULL
@@ -103586,7 +102906,7 @@ index 0000000..7982a0c
103586+__do_config_autodelink_58763 __do_config_autodelink 3 58763 NULL 102906+__do_config_autodelink_58763 __do_config_autodelink 3 58763 NULL
103587+regmap_calc_reg_len_58795 regmap_calc_reg_len 0 58795 NULL 102907+regmap_calc_reg_len_58795 regmap_calc_reg_len 0 58795 NULL
103588+raw_send_hdrinc_58803 raw_send_hdrinc 4 58803 NULL 102908+raw_send_hdrinc_58803 raw_send_hdrinc 4 58803 NULL
103589+isku_sysfs_read_58806 isku_sysfs_read 6 58806 NULL 102909+isku_sysfs_read_58806 isku_sysfs_read 6-5 58806 NULL
103590+ep_read_58813 ep_read 3 58813 NULL 102910+ep_read_58813 ep_read 3 58813 NULL
103591+command_write_58841 command_write 3 58841 NULL 102911+command_write_58841 command_write 3 58841 NULL
103592+ocfs2_truncate_log_append_58850 ocfs2_truncate_log_append 3 58850 NULL 102912+ocfs2_truncate_log_append_58850 ocfs2_truncate_log_append 3 58850 NULL
@@ -103606,6 +102926,7 @@ index 0000000..7982a0c
103606+edac_align_ptr_59003 edac_align_ptr 0 59003 NULL 102926+edac_align_ptr_59003 edac_align_ptr 0 59003 NULL
103607+ep_write_59008 ep_write 3 59008 NULL 102927+ep_write_59008 ep_write 3 59008 NULL
103608+i915_ring_stop_write_59010 i915_ring_stop_write 3 59010 NULL 102928+i915_ring_stop_write_59010 i915_ring_stop_write 3 59010 NULL
102929+SyS_preadv_59029 SyS_preadv 3 59029 NULL
103609+init_pci_cap_msi_perm_59033 init_pci_cap_msi_perm 2 59033 NULL 102930+init_pci_cap_msi_perm_59033 init_pci_cap_msi_perm 2 59033 NULL
103610+selinux_transaction_write_59038 selinux_transaction_write 3 59038 NULL 102931+selinux_transaction_write_59038 selinux_transaction_write 3 59038 NULL
103611+crypto_aead_reqsize_59039 crypto_aead_reqsize 0 59039 NULL 102932+crypto_aead_reqsize_59039 crypto_aead_reqsize 0 59039 NULL
@@ -103639,8 +102960,10 @@ index 0000000..7982a0c
103639+xfs_dir2_sf_entsize_59366 xfs_dir2_sf_entsize 0-2 59366 NULL 102960+xfs_dir2_sf_entsize_59366 xfs_dir2_sf_entsize 0-2 59366 NULL
103640+pvr2_debugifc_print_info_59380 pvr2_debugifc_print_info 3 59380 NULL 102961+pvr2_debugifc_print_info_59380 pvr2_debugifc_print_info 3 59380 NULL
103641+fc_frame_alloc_fill_59394 fc_frame_alloc_fill 2 59394 NULL 102962+fc_frame_alloc_fill_59394 fc_frame_alloc_fill 2 59394 NULL
102963+isku_sysfs_read_keys_function_59412 isku_sysfs_read_keys_function 6 59412 NULL
103642+vxge_hw_ring_rxds_per_block_get_59425 vxge_hw_ring_rxds_per_block_get 0 59425 NULL 102964+vxge_hw_ring_rxds_per_block_get_59425 vxge_hw_ring_rxds_per_block_get 0 59425 NULL
103643+squashfs_read_data_59440 squashfs_read_data 6 59440 NULL 102965+squashfs_read_data_59440 squashfs_read_data 6 59440 NULL
102966+SyS_sched_setaffinity_59442 SyS_sched_setaffinity 2 59442 NULL
103644+fs_path_ensure_buf_59445 fs_path_ensure_buf 2 59445 NULL 102967+fs_path_ensure_buf_59445 fs_path_ensure_buf 2 59445 NULL
103645+descriptor_loc_59446 descriptor_loc 3 59446 NULL 102968+descriptor_loc_59446 descriptor_loc 3 59446 NULL
103646+do_compat_semctl_59449 do_compat_semctl 4 59449 NULL 102969+do_compat_semctl_59449 do_compat_semctl 4 59449 NULL
@@ -103658,7 +102981,9 @@ index 0000000..7982a0c
103658+ubifs_setxattr_59650 ubifs_setxattr 4 59650 NULL nohasharray 102981+ubifs_setxattr_59650 ubifs_setxattr 4 59650 NULL nohasharray
103659+hidraw_read_59650 hidraw_read 3 59650 &ubifs_setxattr_59650 102982+hidraw_read_59650 hidraw_read 3 59650 &ubifs_setxattr_59650
103660+v9fs_xattr_set_acl_59651 v9fs_xattr_set_acl 4 59651 NULL 102983+v9fs_xattr_set_acl_59651 v9fs_xattr_set_acl 4 59651 NULL
102984+paravirt_sched_clock_59660 paravirt_sched_clock 0 59660 NULL
103661+__devcgroup_check_permission_59665 __devcgroup_check_permission 0 59665 NULL 102985+__devcgroup_check_permission_59665 __devcgroup_check_permission 0 59665 NULL
102986+iwl_dbgfs_mac_params_read_59666 iwl_dbgfs_mac_params_read 3 59666 NULL
103662+alloc_dca_provider_59670 alloc_dca_provider 2 59670 NULL 102987+alloc_dca_provider_59670 alloc_dca_provider 2 59670 NULL
103663+can_nocow_odirect_59681 can_nocow_odirect 3 59681 NULL 102988+can_nocow_odirect_59681 can_nocow_odirect 3 59681 NULL
103664+sriov_enable_59689 sriov_enable 2 59689 NULL 102989+sriov_enable_59689 sriov_enable 2 59689 NULL
@@ -103671,6 +102996,8 @@ index 0000000..7982a0c
103671+ext3_acl_count_59754 ext3_acl_count 0-1 59754 NULL 102996+ext3_acl_count_59754 ext3_acl_count 0-1 59754 NULL
103672+long_retry_limit_read_59766 long_retry_limit_read 3 59766 NULL 102997+long_retry_limit_read_59766 long_retry_limit_read 3 59766 NULL
103673+venus_remove_59781 venus_remove 4 59781 NULL 102998+venus_remove_59781 venus_remove 4 59781 NULL
102999+mei_nfc_recv_59784 mei_nfc_recv 3 59784 NULL
103000+C_SYSC_preadv_59801 C_SYSC_preadv 3 59801 NULL
103674+ipw_write_59807 ipw_write 3 59807 NULL 103001+ipw_write_59807 ipw_write 3 59807 NULL
103675+rtllib_wx_set_gen_ie_59808 rtllib_wx_set_gen_ie 3 59808 NULL 103002+rtllib_wx_set_gen_ie_59808 rtllib_wx_set_gen_ie 3 59808 NULL
103676+scsi_init_shared_tag_map_59812 scsi_init_shared_tag_map 2 59812 NULL 103003+scsi_init_shared_tag_map_59812 scsi_init_shared_tag_map 2 59812 NULL
@@ -103678,7 +103005,8 @@ index 0000000..7982a0c
103678+gspca_dev_probe2_59833 gspca_dev_probe2 4 59833 NULL 103005+gspca_dev_probe2_59833 gspca_dev_probe2 4 59833 NULL
103679+regmap_raw_write_async_59849 regmap_raw_write_async 2-4 59849 NULL 103006+regmap_raw_write_async_59849 regmap_raw_write_async 2-4 59849 NULL
103680+pvr2_ioread_set_sync_key_59882 pvr2_ioread_set_sync_key 3 59882 NULL 103007+pvr2_ioread_set_sync_key_59882 pvr2_ioread_set_sync_key 3 59882 NULL
103681+shmem_zero_setup_59885 shmem_zero_setup 0 59885 NULL 103008+shmem_zero_setup_59885 shmem_zero_setup 0 59885 NULL nohasharray
103009+start_transaction_59885 start_transaction 2 59885 &shmem_zero_setup_59885
103682+ffs_prepare_buffer_59892 ffs_prepare_buffer 2 59892 NULL 103010+ffs_prepare_buffer_59892 ffs_prepare_buffer 2 59892 NULL
103683+swiotlb_map_page_59909 swiotlb_map_page 3 59909 NULL 103011+swiotlb_map_page_59909 swiotlb_map_page 3 59909 NULL
103684+il_dbgfs_rxon_flags_read_59950 il_dbgfs_rxon_flags_read 3 59950 NULL nohasharray 103012+il_dbgfs_rxon_flags_read_59950 il_dbgfs_rxon_flags_read 3 59950 NULL nohasharray
@@ -103709,11 +103037,13 @@ index 0000000..7982a0c
103709+mp_register_gsi_60079 mp_register_gsi 2 60079 NULL 103037+mp_register_gsi_60079 mp_register_gsi 2 60079 NULL
103710+rxrpc_kernel_send_data_60083 rxrpc_kernel_send_data 3 60083 NULL 103038+rxrpc_kernel_send_data_60083 rxrpc_kernel_send_data 3 60083 NULL
103711+ieee80211_if_fmt_fwded_frames_60103 ieee80211_if_fmt_fwded_frames 3 60103 NULL 103039+ieee80211_if_fmt_fwded_frames_60103 ieee80211_if_fmt_fwded_frames 3 60103 NULL
103040+SYSC_msgsnd_60113 SYSC_msgsnd 3 60113 NULL
103712+ttm_bo_kmap_60118 ttm_bo_kmap 3-2 60118 NULL 103041+ttm_bo_kmap_60118 ttm_bo_kmap 3-2 60118 NULL
103713+jmb38x_ms_count_slots_60164 jmb38x_ms_count_slots 0 60164 NULL 103042+jmb38x_ms_count_slots_60164 jmb38x_ms_count_slots 0 60164 NULL
103714+init_state_60165 init_state 2 60165 NULL 103043+init_state_60165 init_state 2 60165 NULL
103715+sg_build_sgat_60179 sg_build_sgat 3 60179 NULL nohasharray 103044+sg_build_sgat_60179 sg_build_sgat 3 60179 NULL nohasharray
103716+jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 &sg_build_sgat_60179 103045+jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 &sg_build_sgat_60179
103046+fuse_async_req_send_60183 fuse_async_req_send 0-3 60183 NULL
103717+rx_rx_tkip_replays_read_60193 rx_rx_tkip_replays_read 3 60193 NULL 103047+rx_rx_tkip_replays_read_60193 rx_rx_tkip_replays_read 3 60193 NULL
103718+svc_compat_ioctl_60194 svc_compat_ioctl 3 60194 NULL 103048+svc_compat_ioctl_60194 svc_compat_ioctl 3 60194 NULL
103719+ib_send_cm_mra_60202 ib_send_cm_mra 4 60202 NULL nohasharray 103049+ib_send_cm_mra_60202 ib_send_cm_mra 4 60202 NULL nohasharray
@@ -103734,6 +103064,7 @@ index 0000000..7982a0c
103734+dccp_setsockopt_60367 dccp_setsockopt 5 60367 NULL 103064+dccp_setsockopt_60367 dccp_setsockopt 5 60367 NULL
103735+ubi_eba_atomic_leb_change_60379 ubi_eba_atomic_leb_change 5 60379 NULL 103065+ubi_eba_atomic_leb_change_60379 ubi_eba_atomic_leb_change 5 60379 NULL
103736+instruction_pointer_60384 instruction_pointer 0 60384 NULL 103066+instruction_pointer_60384 instruction_pointer 0 60384 NULL
103067+drop_outstanding_extent_60390 drop_outstanding_extent 0 60390 NULL
103737+mthca_alloc_resize_buf_60394 mthca_alloc_resize_buf 3 60394 NULL 103068+mthca_alloc_resize_buf_60394 mthca_alloc_resize_buf 3 60394 NULL
103738+ocfs2_zero_extend_60396 ocfs2_zero_extend 3 60396 NULL 103069+ocfs2_zero_extend_60396 ocfs2_zero_extend 3 60396 NULL
103739+driver_names_read_60399 driver_names_read 3 60399 NULL 103070+driver_names_read_60399 driver_names_read 3 60399 NULL
@@ -103743,7 +103074,8 @@ index 0000000..7982a0c
103743+tstats_write_60432 tstats_write 3 60432 NULL nohasharray 103074+tstats_write_60432 tstats_write 3 60432 NULL nohasharray
103744+kmalloc_60432 kmalloc 1 60432 &tstats_write_60432 103075+kmalloc_60432 kmalloc 1 60432 &tstats_write_60432
103745+tipc_buf_acquire_60437 tipc_buf_acquire 1 60437 NULL 103076+tipc_buf_acquire_60437 tipc_buf_acquire 1 60437 NULL
103746+rx_data_60442 rx_data 4 60442 NULL 103077+rx_data_60442 rx_data 4 60442 NULL nohasharray
103078+scaled_div32_60442 scaled_div32 1-2 60442 &rx_data_60442
103747+tcf_csum_ipv4_igmp_60446 tcf_csum_ipv4_igmp 3 60446 NULL 103079+tcf_csum_ipv4_igmp_60446 tcf_csum_ipv4_igmp 3 60446 NULL
103748+snd_hda_get_num_raw_conns_60462 snd_hda_get_num_raw_conns 0 60462 NULL 103080+snd_hda_get_num_raw_conns_60462 snd_hda_get_num_raw_conns 0 60462 NULL
103749+crypto_shash_setkey_60483 crypto_shash_setkey 3 60483 NULL 103081+crypto_shash_setkey_60483 crypto_shash_setkey 3 60483 NULL
@@ -103751,6 +103083,8 @@ index 0000000..7982a0c
103751+hysdn_sched_rx_60533 hysdn_sched_rx 3 60533 NULL 103083+hysdn_sched_rx_60533 hysdn_sched_rx 3 60533 NULL
103752+v9fs_fid_readn_60544 v9fs_fid_readn 4 60544 NULL 103084+v9fs_fid_readn_60544 v9fs_fid_readn 4 60544 NULL
103753+nonpaging_map_60551 nonpaging_map 4 60551 NULL 103085+nonpaging_map_60551 nonpaging_map 4 60551 NULL
103086+nfsd_hashsize_60562 nfsd_hashsize 0 60562 NULL
103087+hash_net6_expire_60598 hash_net6_expire 3 60598 NULL
103754+skb_transport_offset_60619 skb_transport_offset 0 60619 NULL 103088+skb_transport_offset_60619 skb_transport_offset 0 60619 NULL
103755+wl1273_fm_fops_write_60621 wl1273_fm_fops_write 3 60621 NULL 103089+wl1273_fm_fops_write_60621 wl1273_fm_fops_write 3 60621 NULL
103756+acl_alloc_stack_init_60630 acl_alloc_stack_init 1 60630 NULL 103090+acl_alloc_stack_init_60630 acl_alloc_stack_init 1 60630 NULL
@@ -103780,7 +103114,7 @@ index 0000000..7982a0c
103780+hsc_msg_alloc_60990 hsc_msg_alloc 1 60990 NULL 103114+hsc_msg_alloc_60990 hsc_msg_alloc 1 60990 NULL
103781+ath6kl_lrssi_roam_read_61022 ath6kl_lrssi_roam_read 3 61022 NULL 103115+ath6kl_lrssi_roam_read_61022 ath6kl_lrssi_roam_read 3 61022 NULL
103782+symtab_init_61050 symtab_init 2 61050 NULL 103116+symtab_init_61050 symtab_init 2 61050 NULL
103783+fuse_send_write_61053 fuse_send_write 0 61053 NULL 103117+fuse_send_write_61053 fuse_send_write 0-4 61053 NULL
103784+bitmap_scnlistprintf_61062 bitmap_scnlistprintf 0-4-2 61062 NULL 103118+bitmap_scnlistprintf_61062 bitmap_scnlistprintf 0-4-2 61062 NULL
103785+ahash_align_buffer_size_61070 ahash_align_buffer_size 0-1-2 61070 NULL 103119+ahash_align_buffer_size_61070 ahash_align_buffer_size 0-1-2 61070 NULL
103786+get_derived_key_61100 get_derived_key 4 61100 NULL 103120+get_derived_key_61100 get_derived_key 4 61100 NULL
@@ -103789,17 +103123,23 @@ index 0000000..7982a0c
103789+__probe_kernel_read_61119 __probe_kernel_read 3 61119 &p80211_headerlen_61119 103123+__probe_kernel_read_61119 __probe_kernel_read 3 61119 &p80211_headerlen_61119
103790+vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1 61126 NULL 103124+vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1 61126 NULL
103791+afs_proc_cells_write_61139 afs_proc_cells_write 3 61139 NULL 103125+afs_proc_cells_write_61139 afs_proc_cells_write 3 61139 NULL
103126+brcmf_sdio_chip_cr4_exitdl_61143 brcmf_sdio_chip_cr4_exitdl 4 61143 NULL
103792+__vmalloc_61168 __vmalloc 1 61168 NULL 103127+__vmalloc_61168 __vmalloc 1 61168 NULL
103793+event_oom_late_read_61175 event_oom_late_read 3 61175 NULL nohasharray 103128+event_oom_late_read_61175 event_oom_late_read 3 61175 NULL nohasharray
103794+pair_device_61175 pair_device 4 61175 &event_oom_late_read_61175 103129+pair_device_61175 pair_device 4 61175 &event_oom_late_read_61175
103795+sys_lsetxattr_61177 sys_lsetxattr 4 61177 NULL 103130+sys_lsetxattr_61177 sys_lsetxattr 4 61177 NULL
103131+SyS_prctl_61202 SyS_prctl 4 61202 NULL
103796+arch_hibernation_header_save_61212 arch_hibernation_header_save 0 61212 NULL 103132+arch_hibernation_header_save_61212 arch_hibernation_header_save 0 61212 NULL
103797+smk_read_ambient_61220 smk_read_ambient 3 61220 NULL 103133+smk_read_ambient_61220 smk_read_ambient 3 61220 NULL
103798+btrfs_bio_alloc_61270 btrfs_bio_alloc 3 61270 NULL 103134+btrfs_bio_alloc_61270 btrfs_bio_alloc 3 61270 NULL
103799+vortex_adbdma_getlinearpos_61283 vortex_adbdma_getlinearpos 0 61283 NULL 103135+vortex_adbdma_getlinearpos_61283 vortex_adbdma_getlinearpos 0 61283 NULL
103800+sys_add_key_61288 sys_add_key 4 61288 NULL 103136+sys_add_key_61288 sys_add_key 4 61288 NULL nohasharray
103137+nvme_trans_copy_to_user_61288 nvme_trans_copy_to_user 3 61288 &sys_add_key_61288
103801+ext4_issue_discard_61305 ext4_issue_discard 2 61305 NULL 103138+ext4_issue_discard_61305 ext4_issue_discard 2 61305 NULL
103139+xfer_from_user_61307 xfer_from_user 3 61307 NULL
103140+timespec_to_ns_61317 timespec_to_ns 0 61317 NULL
103802+xfrm_user_sec_ctx_size_61320 xfrm_user_sec_ctx_size 0 61320 NULL 103141+xfrm_user_sec_ctx_size_61320 xfrm_user_sec_ctx_size 0 61320 NULL
103142+C_SYSC_msgsnd_61330 C_SYSC_msgsnd 2-3 61330 NULL
103803+st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 NULL 103143+st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 NULL
103804+rx_rx_wa_ba_not_expected_read_61341 rx_rx_wa_ba_not_expected_read 3 61341 NULL 103144+rx_rx_wa_ba_not_expected_read_61341 rx_rx_wa_ba_not_expected_read 3 61341 NULL
103805+f1x_map_sysaddr_to_csrow_61344 f1x_map_sysaddr_to_csrow 2 61344 NULL 103145+f1x_map_sysaddr_to_csrow_61344 f1x_map_sysaddr_to_csrow 2 61344 NULL
@@ -103814,6 +103154,7 @@ index 0000000..7982a0c
103814+btrfs_item_size_61485 btrfs_item_size 0 61485 NULL 103154+btrfs_item_size_61485 btrfs_item_size 0 61485 NULL
103815+erst_errno_61526 erst_errno 0 61526 NULL 103155+erst_errno_61526 erst_errno 0 61526 NULL
103816+ntfs_attr_lookup_61539 ntfs_attr_lookup 0 61539 NULL 103156+ntfs_attr_lookup_61539 ntfs_attr_lookup 0 61539 NULL
103157+get_ohm_of_thermistor_61545 get_ohm_of_thermistor 2 61545 NULL
103817+o2hb_pop_count_61553 o2hb_pop_count 2 61553 NULL 103158+o2hb_pop_count_61553 o2hb_pop_count 2 61553 NULL
103818+dvb_net_ioctl_61559 dvb_net_ioctl 2 61559 NULL 103159+dvb_net_ioctl_61559 dvb_net_ioctl 2 61559 NULL
103819+ieee80211_if_read_rc_rateidx_mask_2ghz_61570 ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 NULL 103160+ieee80211_if_read_rc_rateidx_mask_2ghz_61570 ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 NULL
@@ -103829,6 +103170,7 @@ index 0000000..7982a0c
103829+ttm_page_pool_free_61661 ttm_page_pool_free 2 61661 NULL 103170+ttm_page_pool_free_61661 ttm_page_pool_free 2 61661 NULL
103830+insert_one_name_61668 insert_one_name 7 61668 NULL 103171+insert_one_name_61668 insert_one_name 7 61668 NULL
103831+lock_loop_61681 lock_loop 1 61681 NULL 103172+lock_loop_61681 lock_loop 1 61681 NULL
103173+__do_tune_cpucache_61684 __do_tune_cpucache 2 61684 NULL
103832+filter_read_61692 filter_read 3 61692 NULL 103174+filter_read_61692 filter_read 3 61692 NULL
103833+iov_length_61716 iov_length 0 61716 NULL 103175+iov_length_61716 iov_length 0 61716 NULL
103834+fragmentation_threshold_read_61718 fragmentation_threshold_read 3 61718 NULL 103176+fragmentation_threshold_read_61718 fragmentation_threshold_read 3 61718 NULL
@@ -103839,6 +103181,7 @@ index 0000000..7982a0c
103839+bfad_debugfs_write_regwr_61841 bfad_debugfs_write_regwr 3 61841 NULL 103181+bfad_debugfs_write_regwr_61841 bfad_debugfs_write_regwr 3 61841 NULL
103840+fs_path_prepare_for_add_61854 fs_path_prepare_for_add 2 61854 NULL 103182+fs_path_prepare_for_add_61854 fs_path_prepare_for_add 2 61854 NULL
103841+evdev_compute_buffer_size_61863 evdev_compute_buffer_size 0 61863 NULL 103183+evdev_compute_buffer_size_61863 evdev_compute_buffer_size 0 61863 NULL
103184+SYSC_lsetxattr_61869 SYSC_lsetxattr 4 61869 NULL
103842+get_fw_name_61874 get_fw_name 3 61874 NULL 103185+get_fw_name_61874 get_fw_name 3 61874 NULL
103843+free_init_pages_61875 free_init_pages 2 61875 NULL 103186+free_init_pages_61875 free_init_pages 2 61875 NULL
103844+twl4030_sih_setup_61878 twl4030_sih_setup 3 61878 NULL 103187+twl4030_sih_setup_61878 twl4030_sih_setup 3 61878 NULL
@@ -103860,6 +103203,7 @@ index 0000000..7982a0c
103860+virtnet_send_command_61993 virtnet_send_command 5-6 61993 NULL 103203+virtnet_send_command_61993 virtnet_send_command 5-6 61993 NULL
103861+xt_compat_match_offset_62011 xt_compat_match_offset 0 62011 NULL 103204+xt_compat_match_offset_62011 xt_compat_match_offset 0 62011 NULL
103862+jffs2_do_unlink_62020 jffs2_do_unlink 4 62020 NULL 103205+jffs2_do_unlink_62020 jffs2_do_unlink 4 62020 NULL
103206+SYSC_select_62024 SYSC_select 1 62024 NULL
103863+pmcraid_build_passthrough_ioadls_62034 pmcraid_build_passthrough_ioadls 2 62034 NULL 103207+pmcraid_build_passthrough_ioadls_62034 pmcraid_build_passthrough_ioadls 2 62034 NULL
103864+ppp_tx_cp_62044 ppp_tx_cp 5 62044 NULL 103208+ppp_tx_cp_62044 ppp_tx_cp 5 62044 NULL
103865+sctp_user_addto_chunk_62047 sctp_user_addto_chunk 2-3 62047 NULL 103209+sctp_user_addto_chunk_62047 sctp_user_addto_chunk 2-3 62047 NULL
@@ -103876,6 +103220,7 @@ index 0000000..7982a0c
103876+alloc_upcall_62186 alloc_upcall 2 62186 NULL 103220+alloc_upcall_62186 alloc_upcall 2 62186 NULL
103877+btrfs_xattr_acl_set_62203 btrfs_xattr_acl_set 4 62203 NULL 103221+btrfs_xattr_acl_set_62203 btrfs_xattr_acl_set 4 62203 NULL
103878+sock_kmalloc_62205 sock_kmalloc 2 62205 NULL 103222+sock_kmalloc_62205 sock_kmalloc 2 62205 NULL
103223+SYSC_setgroups16_62232 SYSC_setgroups16 1 62232 NULL
103879+nfsd_read_file_62241 nfsd_read_file 6 62241 NULL 103224+nfsd_read_file_62241 nfsd_read_file 6 62241 NULL
103880+allocate_partition_62245 allocate_partition 4 62245 NULL 103225+allocate_partition_62245 allocate_partition 4 62245 NULL
103881+__qib_get_user_pages_62287 __qib_get_user_pages 1-2 62287 NULL 103226+__qib_get_user_pages_62287 __qib_get_user_pages 1-2 62287 NULL
@@ -103925,6 +103270,7 @@ index 0000000..7982a0c
103925+init_chip_wc_pat_62768 init_chip_wc_pat 2 62768 NULL 103270+init_chip_wc_pat_62768 init_chip_wc_pat 2 62768 NULL
103926+ax25_sendmsg_62770 ax25_sendmsg 4 62770 NULL 103271+ax25_sendmsg_62770 ax25_sendmsg 4 62770 NULL
103927+page_key_alloc_62771 page_key_alloc 0 62771 NULL 103272+page_key_alloc_62771 page_key_alloc 0 62771 NULL
103273+C_SYSC_ipc_62776 C_SYSC_ipc 5-3-6-4 62776 NULL
103928+tracing_total_entries_read_62817 tracing_total_entries_read 3 62817 NULL 103274+tracing_total_entries_read_62817 tracing_total_entries_read 3 62817 NULL
103929+__rounddown_pow_of_two_62836 __rounddown_pow_of_two 0 62836 NULL 103275+__rounddown_pow_of_two_62836 __rounddown_pow_of_two 0 62836 NULL
103930+bio_get_nr_vecs_62838 bio_get_nr_vecs 0 62838 NULL 103276+bio_get_nr_vecs_62838 bio_get_nr_vecs 0 62838 NULL
@@ -103937,11 +103283,13 @@ index 0000000..7982a0c
103937+if_spi_host_to_card_62890 if_spi_host_to_card 4 62890 NULL 103283+if_spi_host_to_card_62890 if_spi_host_to_card 4 62890 NULL
103938+mempool_create_slab_pool_62907 mempool_create_slab_pool 1 62907 NULL 103284+mempool_create_slab_pool_62907 mempool_create_slab_pool 1 62907 NULL
103939+getdqbuf_62908 getdqbuf 1 62908 NULL 103285+getdqbuf_62908 getdqbuf 1 62908 NULL
103940+try_async_pf_62914 try_async_pf 3 62914 NULL 103286+try_async_pf_62914 try_async_pf 3 62914 NULL nohasharray
103287+SyS_remap_file_pages_62914 SyS_remap_file_pages 1 62914 &try_async_pf_62914
103941+agp_create_user_memory_62955 agp_create_user_memory 1 62955 NULL 103288+agp_create_user_memory_62955 agp_create_user_memory 1 62955 NULL
103942+__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 NULL 103289+__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 NULL
103943+pipeline_defrag_to_csum_swi_read_63037 pipeline_defrag_to_csum_swi_read 3 63037 NULL 103290+pipeline_defrag_to_csum_swi_read_63037 pipeline_defrag_to_csum_swi_read 3 63037 NULL
103944+scsi_host_alloc_63041 scsi_host_alloc 2 63041 NULL 103291+scsi_host_alloc_63041 scsi_host_alloc 2 63041 NULL
103292+gso_pskb_expand_head_63052 gso_pskb_expand_head 2 63052 NULL
103945+unlink1_63059 unlink1 3 63059 NULL 103293+unlink1_63059 unlink1 3 63059 NULL
103946+xen_set_nslabs_63066 xen_set_nslabs 0 63066 NULL 103294+xen_set_nslabs_63066 xen_set_nslabs 0 63066 NULL
103947+ocfs2_decrease_refcount_63078 ocfs2_decrease_refcount 3 63078 NULL 103295+ocfs2_decrease_refcount_63078 ocfs2_decrease_refcount 3 63078 NULL
@@ -103952,6 +103300,7 @@ index 0000000..7982a0c
103952+xen_zap_pfn_range_63149 xen_zap_pfn_range 1 63149 NULL 103300+xen_zap_pfn_range_63149 xen_zap_pfn_range 1 63149 NULL
103953+smk_write_revoke_subj_63173 smk_write_revoke_subj 3 63173 NULL 103301+smk_write_revoke_subj_63173 smk_write_revoke_subj 3 63173 NULL
103954+vme_master_read_63221 vme_master_read 0 63221 NULL 103302+vme_master_read_63221 vme_master_read 0 63221 NULL
103303+SyS_gethostname_63227 SyS_gethostname 2 63227 NULL
103955+module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL 103304+module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL
103956+ptp_read_63251 ptp_read 4 63251 NULL 103305+ptp_read_63251 ptp_read 4 63251 NULL
103957+raid5_resize_63306 raid5_resize 2 63306 NULL 103306+raid5_resize_63306 raid5_resize 2 63306 NULL
@@ -104005,6 +103354,8 @@ index 0000000..7982a0c
104005+kovaplus_sysfs_write_63795 kovaplus_sysfs_write 6 63795 NULL 103354+kovaplus_sysfs_write_63795 kovaplus_sysfs_write 6 63795 NULL
104006+mwifiex_11n_create_rx_reorder_tbl_63806 mwifiex_11n_create_rx_reorder_tbl 4 63806 NULL 103355+mwifiex_11n_create_rx_reorder_tbl_63806 mwifiex_11n_create_rx_reorder_tbl 4 63806 NULL
104007+copy_nodes_to_user_63807 copy_nodes_to_user 2 63807 NULL 103356+copy_nodes_to_user_63807 copy_nodes_to_user 2 63807 NULL
103357+dec_zcache_eph_zbytes_63817 dec_zcache_eph_zbytes 1 63817 NULL
103358+prepare_copy_63826 prepare_copy 2 63826 NULL
104008+sel_write_load_63830 sel_write_load 3 63830 NULL 103359+sel_write_load_63830 sel_write_load 3 63830 NULL
104009+proc_pid_attr_write_63845 proc_pid_attr_write 3 63845 NULL 103360+proc_pid_attr_write_63845 proc_pid_attr_write 3 63845 NULL
104010+init_map_ipmac_63896 init_map_ipmac 4-3 63896 NULL 103361+init_map_ipmac_63896 init_map_ipmac 4-3 63896 NULL
@@ -104022,19 +103373,23 @@ index 0000000..7982a0c
104022+diva_xdi_write_63975 diva_xdi_write 4 63975 NULL 103373+diva_xdi_write_63975 diva_xdi_write 4 63975 NULL
104023+read_file_frameerrors_64001 read_file_frameerrors 3 64001 NULL 103374+read_file_frameerrors_64001 read_file_frameerrors 3 64001 NULL
104024+kmemdup_64015 kmemdup 2 64015 NULL 103375+kmemdup_64015 kmemdup 2 64015 NULL
103376+SyS_rt_sigpending_64018 SyS_rt_sigpending 2 64018 NULL
104025+offset_to_vaddr_64025 offset_to_vaddr 0-2 64025 NULL nohasharray 103377+offset_to_vaddr_64025 offset_to_vaddr 0-2 64025 NULL nohasharray
104026+tcf_csum_skb_nextlayer_64025 tcf_csum_skb_nextlayer 3 64025 &offset_to_vaddr_64025 103378+tcf_csum_skb_nextlayer_64025 tcf_csum_skb_nextlayer 3 64025 &offset_to_vaddr_64025
104027+dbAllocDmapLev_64030 dbAllocDmapLev 0 64030 NULL 103379+dbAllocDmapLev_64030 dbAllocDmapLev 0 64030 NULL
104028+resize_async_buffer_64031 resize_async_buffer 4 64031 NULL 103380+resize_async_buffer_64031 resize_async_buffer 4 64031 NULL
104029+sep_lli_table_secure_dma_64042 sep_lli_table_secure_dma 2-3 64042 NULL 103381+sep_lli_table_secure_dma_64042 sep_lli_table_secure_dma 2-3 64042 NULL
103382+tfrc_calc_x_reverse_lookup_64057 tfrc_calc_x_reverse_lookup 0 64057 NULL
104030+get_u8_64076 get_u8 0 64076 NULL 103383+get_u8_64076 get_u8 0 64076 NULL
104031+sl_realloc_bufs_64086 sl_realloc_bufs 2 64086 NULL 103384+sl_realloc_bufs_64086 sl_realloc_bufs 2 64086 NULL
104032+vmci_handle_arr_get_size_64088 vmci_handle_arr_get_size 0 64088 NULL 103385+vmci_handle_arr_get_size_64088 vmci_handle_arr_get_size 0 64088 NULL
104033+lbs_highrssi_read_64089 lbs_highrssi_read 3 64089 NULL 103386+lbs_highrssi_read_64089 lbs_highrssi_read 3 64089 NULL
103387+SyS_mq_timedsend_64107 SyS_mq_timedsend 3 64107 NULL
104034+do_load_xattr_datum_64118 do_load_xattr_datum 0 64118 NULL 103388+do_load_xattr_datum_64118 do_load_xattr_datum 0 64118 NULL
104035+ol_quota_entries_per_block_64122 ol_quota_entries_per_block 0 64122 NULL 103389+ol_quota_entries_per_block_64122 ol_quota_entries_per_block 0 64122 NULL
104036+ext4_prepare_inline_data_64124 ext4_prepare_inline_data 3 64124 NULL 103390+ext4_prepare_inline_data_64124 ext4_prepare_inline_data 3 64124 NULL
104037+init_bch_64130 init_bch 1-2 64130 NULL 103391+init_bch_64130 init_bch 1-2 64130 NULL
103392+SYSC_ptrace_64136 SYSC_ptrace 3-4 64136 NULL
104038+uea_idma_write_64139 uea_idma_write 3 64139 NULL 103393+uea_idma_write_64139 uea_idma_write 3 64139 NULL
104039+ablkcipher_copy_iv_64140 ablkcipher_copy_iv 3 64140 NULL 103394+ablkcipher_copy_iv_64140 ablkcipher_copy_iv 3 64140 NULL
104040+dlfb_ops_write_64150 dlfb_ops_write 3 64150 NULL 103395+dlfb_ops_write_64150 dlfb_ops_write 3 64150 NULL
@@ -104051,6 +103406,7 @@ index 0000000..7982a0c
104051+ocfs2_block_check_validate_bhs_64302 ocfs2_block_check_validate_bhs 0 64302 NULL 103406+ocfs2_block_check_validate_bhs_64302 ocfs2_block_check_validate_bhs 0 64302 NULL
104052+error_error_bar_retry_read_64305 error_error_bar_retry_read 3 64305 NULL 103407+error_error_bar_retry_read_64305 error_error_bar_retry_read 3 64305 NULL
104053+ffz_64324 ffz 0 64324 NULL 103408+ffz_64324 ffz 0 64324 NULL
103409+map_region_64328 map_region 1 64328 NULL
104054+sisusbcon_clear_64329 sisusbcon_clear 4-3-5 64329 NULL 103410+sisusbcon_clear_64329 sisusbcon_clear 4-3-5 64329 NULL
104055+ts_write_64336 ts_write 3 64336 NULL 103411+ts_write_64336 ts_write 3 64336 NULL
104056+usbtmc_write_64340 usbtmc_write 3 64340 NULL 103412+usbtmc_write_64340 usbtmc_write 3 64340 NULL
@@ -104073,6 +103429,7 @@ index 0000000..7982a0c
104073+read_file_spectral_short_repeat_64431 read_file_spectral_short_repeat 3 64431 &ext4_trim_extent_64431 103429+read_file_spectral_short_repeat_64431 read_file_spectral_short_repeat 3 64431 &ext4_trim_extent_64431
104074+cap_capable_64462 cap_capable 0 64462 NULL 103430+cap_capable_64462 cap_capable 0 64462 NULL
104075+ip_vs_create_timeout_table_64478 ip_vs_create_timeout_table 2 64478 NULL 103431+ip_vs_create_timeout_table_64478 ip_vs_create_timeout_table 2 64478 NULL
103432+single_open_size_64483 single_open_size 4 64483 NULL
104076+p54_parse_rssical_64493 p54_parse_rssical 3 64493 NULL 103433+p54_parse_rssical_64493 p54_parse_rssical 3 64493 NULL
104077+msg_data_sz_64503 msg_data_sz 0 64503 NULL 103434+msg_data_sz_64503 msg_data_sz 0 64503 NULL
104078+remove_uuid_64505 remove_uuid 4 64505 NULL nohasharray 103435+remove_uuid_64505 remove_uuid 4 64505 NULL nohasharray
@@ -104081,6 +103438,8 @@ index 0000000..7982a0c
104081+opera1_usb_i2c_msgxfer_64521 opera1_usb_i2c_msgxfer 4 64521 NULL 103438+opera1_usb_i2c_msgxfer_64521 opera1_usb_i2c_msgxfer 4 64521 NULL
104082+ses_send_diag_64527 ses_send_diag 4 64527 NULL 103439+ses_send_diag_64527 ses_send_diag 4 64527 NULL
104083+prctl_set_mm_64538 prctl_set_mm 3 64538 NULL 103440+prctl_set_mm_64538 prctl_set_mm 3 64538 NULL
103441+SyS_bind_64544 SyS_bind 3 64544 NULL
103442+rbd_obj_read_sync_64554 rbd_obj_read_sync 3-4 64554 NULL
104084+__spi_sync_64561 __spi_sync 0 64561 NULL 103443+__spi_sync_64561 __spi_sync 0 64561 NULL
104085+__apei_exec_run_64563 __apei_exec_run 0 64563 NULL 103444+__apei_exec_run_64563 __apei_exec_run 0 64563 NULL
104086+fanotify_write_64623 fanotify_write 3 64623 NULL 103445+fanotify_write_64623 fanotify_write 3 64623 NULL
@@ -104101,6 +103460,7 @@ index 0000000..7982a0c
104101+bio_map_kern_64751 bio_map_kern 3 64751 NULL 103460+bio_map_kern_64751 bio_map_kern 3 64751 NULL
104102+rt2x00debug_write_csr_64753 rt2x00debug_write_csr 3 64753 NULL 103461+rt2x00debug_write_csr_64753 rt2x00debug_write_csr 3 64753 NULL
104103+isr_low_rssi_read_64789 isr_low_rssi_read 3 64789 NULL 103462+isr_low_rssi_read_64789 isr_low_rssi_read 3 64789 NULL
103463+regmap_reg_ranges_read_file_64798 regmap_reg_ranges_read_file 3 64798 NULL
104104+nfsctl_transaction_write_64800 nfsctl_transaction_write 3 64800 NULL 103464+nfsctl_transaction_write_64800 nfsctl_transaction_write 3 64800 NULL
104105+megaraid_change_queue_depth_64815 megaraid_change_queue_depth 2 64815 NULL 103465+megaraid_change_queue_depth_64815 megaraid_change_queue_depth 2 64815 NULL
104106+ecryptfs_send_miscdev_64816 ecryptfs_send_miscdev 2 64816 NULL 103466+ecryptfs_send_miscdev_64816 ecryptfs_send_miscdev 2 64816 NULL
@@ -104132,10 +103492,12 @@ index 0000000..7982a0c
104132+__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2-3 65076 NULL 103492+__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2-3 65076 NULL
104133+ocfs2_truncate_cluster_pages_65086 ocfs2_truncate_cluster_pages 2 65086 NULL 103493+ocfs2_truncate_cluster_pages_65086 ocfs2_truncate_cluster_pages 2 65086 NULL
104134+ath9k_dump_mci_btcoex_65090 ath9k_dump_mci_btcoex 0 65090 NULL 103494+ath9k_dump_mci_btcoex_65090 ath9k_dump_mci_btcoex 0 65090 NULL
103495+C_SYSC_semctl_65091 C_SYSC_semctl 4 65091 NULL
104135+ssb_bus_register_65183 ssb_bus_register 3 65183 NULL 103496+ssb_bus_register_65183 ssb_bus_register 3 65183 NULL
104136+rx_rx_done_read_65217 rx_rx_done_read 3 65217 NULL 103497+rx_rx_done_read_65217 rx_rx_done_read 3 65217 NULL
104137+print_endpoint_stat_65232 print_endpoint_stat 3-4-0 65232 NULL 103498+print_endpoint_stat_65232 print_endpoint_stat 3-4-0 65232 NULL
104138+whci_n_caps_65247 whci_n_caps 0 65247 NULL 103499+whci_n_caps_65247 whci_n_caps 0 65247 NULL
103500+atomic_long_read_65263 atomic_long_read 0 65263 NULL
104139+kmem_zalloc_greedy_65268 kmem_zalloc_greedy 3-2 65268 NULL 103501+kmem_zalloc_greedy_65268 kmem_zalloc_greedy 3-2 65268 NULL
104140+kmalloc_parameter_65279 kmalloc_parameter 1 65279 NULL 103502+kmalloc_parameter_65279 kmalloc_parameter 1 65279 NULL
104141+compat_core_sys_select_65285 compat_core_sys_select 1 65285 NULL 103503+compat_core_sys_select_65285 compat_core_sys_select 1 65285 NULL
@@ -104145,11 +103507,13 @@ index 0000000..7982a0c
104145+unpack_array_65318 unpack_array 0 65318 NULL 103507+unpack_array_65318 unpack_array 0 65318 NULL
104146+pci_vpd_find_tag_65325 pci_vpd_find_tag 0-2 65325 NULL 103508+pci_vpd_find_tag_65325 pci_vpd_find_tag 0-2 65325 NULL
104147+dccp_setsockopt_service_65336 dccp_setsockopt_service 4 65336 NULL 103509+dccp_setsockopt_service_65336 dccp_setsockopt_service 4 65336 NULL
103510+init_list_set_65351 init_list_set 2-3 65351 NULL
104148+dma_rx_requested_read_65354 dma_rx_requested_read 3 65354 NULL 103511+dma_rx_requested_read_65354 dma_rx_requested_read 3 65354 NULL
104149+batadv_tt_save_orig_buffer_65361 batadv_tt_save_orig_buffer 4 65361 NULL 103512+batadv_tt_save_orig_buffer_65361 batadv_tt_save_orig_buffer 4 65361 NULL
104150+alloc_cpu_rmap_65363 alloc_cpu_rmap 1 65363 NULL 103513+alloc_cpu_rmap_65363 alloc_cpu_rmap 1 65363 NULL
104151+__ext4_new_inode_65370 __ext4_new_inode 5 65370 NULL 103514+__ext4_new_inode_65370 __ext4_new_inode 5 65370 NULL
104152+strchr_65372 strchr 0 65372 NULL 103515+strchr_65372 strchr 0 65372 NULL nohasharray
103516+SyS_writev_65372 SyS_writev 3 65372 &strchr_65372
104153+__alloc_bootmem_nopanic_65397 __alloc_bootmem_nopanic 1-2 65397 NULL 103517+__alloc_bootmem_nopanic_65397 __alloc_bootmem_nopanic 1-2 65397 NULL
104154+trace_seq_to_user_65398 trace_seq_to_user 3 65398 NULL 103518+trace_seq_to_user_65398 trace_seq_to_user 3 65398 NULL
104155+mtd_get_device_size_65400 mtd_get_device_size 0 65400 NULL 103519+mtd_get_device_size_65400 mtd_get_device_size 0 65400 NULL
@@ -106927,7 +106291,7 @@ index 96b919d..c49bb74 100644
106927+ 106291+
106928 #endif 106292 #endif
106929diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c 106293diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
106930index f18013f..90421df 100644 106294index 302681c..3bde377 100644
106931--- a/virt/kvm/kvm_main.c 106295--- a/virt/kvm/kvm_main.c
106932+++ b/virt/kvm/kvm_main.c 106296+++ b/virt/kvm/kvm_main.c
106933@@ -75,12 +75,17 @@ LIST_HEAD(vm_list); 106297@@ -75,12 +75,17 @@ LIST_HEAD(vm_list);
@@ -106950,16 +106314,16 @@ index f18013f..90421df 100644
106950 106314
106951 struct dentry *kvm_debugfs_dir; 106315 struct dentry *kvm_debugfs_dir;
106952 106316
106953@@ -769,7 +774,7 @@ int __kvm_set_memory_region(struct kvm *kvm, 106317@@ -766,7 +771,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
106954 /* We can read the guest memory with __xxx_user() later on. */ 106318 /* We can read the guest memory with __xxx_user() later on. */
106955 if (user_alloc && 106319 if ((mem->slot < KVM_USER_MEM_SLOTS) &&
106956 ((mem->userspace_addr & (PAGE_SIZE - 1)) || 106320 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
106957- !access_ok(VERIFY_WRITE, 106321- !access_ok(VERIFY_WRITE,
106958+ !__access_ok(VERIFY_WRITE, 106322+ !__access_ok(VERIFY_WRITE,
106959 (void __user *)(unsigned long)mem->userspace_addr, 106323 (void __user *)(unsigned long)mem->userspace_addr,
106960 mem->memory_size))) 106324 mem->memory_size)))
106961 goto out; 106325 goto out;
106962@@ -1881,7 +1886,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp) 106326@@ -1878,7 +1883,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
106963 return 0; 106327 return 0;
106964 } 106328 }
106965 106329
@@ -106968,7 +106332,7 @@ index f18013f..90421df 100644
106968 .release = kvm_vcpu_release, 106332 .release = kvm_vcpu_release,
106969 .unlocked_ioctl = kvm_vcpu_ioctl, 106333 .unlocked_ioctl = kvm_vcpu_ioctl,
106970 #ifdef CONFIG_COMPAT 106334 #ifdef CONFIG_COMPAT
106971@@ -2402,7 +2407,7 @@ static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma) 106335@@ -2561,7 +2566,7 @@ static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma)
106972 return 0; 106336 return 0;
106973 } 106337 }
106974 106338
@@ -106977,7 +106341,7 @@ index f18013f..90421df 100644
106977 .release = kvm_vm_release, 106341 .release = kvm_vm_release,
106978 .unlocked_ioctl = kvm_vm_ioctl, 106342 .unlocked_ioctl = kvm_vm_ioctl,
106979 #ifdef CONFIG_COMPAT 106343 #ifdef CONFIG_COMPAT
106980@@ -2500,7 +2505,7 @@ out: 106344@@ -2662,7 +2667,7 @@ out:
106981 return r; 106345 return r;
106982 } 106346 }
106983 106347
@@ -106986,7 +106350,7 @@ index f18013f..90421df 100644
106986 .unlocked_ioctl = kvm_dev_ioctl, 106350 .unlocked_ioctl = kvm_dev_ioctl,
106987 .compat_ioctl = kvm_dev_ioctl, 106351 .compat_ioctl = kvm_dev_ioctl,
106988 .llseek = noop_llseek, 106352 .llseek = noop_llseek,
106989@@ -2526,7 +2531,7 @@ static void hardware_enable_nolock(void *junk) 106353@@ -2688,7 +2693,7 @@ static void hardware_enable_nolock(void *junk)
106990 106354
106991 if (r) { 106355 if (r) {
106992 cpumask_clear_cpu(cpu, cpus_hardware_enabled); 106356 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
@@ -106995,7 +106359,7 @@ index f18013f..90421df 100644
106995 printk(KERN_INFO "kvm: enabling virtualization on " 106359 printk(KERN_INFO "kvm: enabling virtualization on "
106996 "CPU%d failed\n", cpu); 106360 "CPU%d failed\n", cpu);
106997 } 106361 }
106998@@ -2580,10 +2585,10 @@ static int hardware_enable_all(void) 106362@@ -2742,10 +2747,10 @@ static int hardware_enable_all(void)
106999 106363
107000 kvm_usage_count++; 106364 kvm_usage_count++;
107001 if (kvm_usage_count == 1) { 106365 if (kvm_usage_count == 1) {
@@ -107008,7 +106372,7 @@ index f18013f..90421df 100644
107008 hardware_disable_all_nolock(); 106372 hardware_disable_all_nolock();
107009 r = -EBUSY; 106373 r = -EBUSY;
107010 } 106374 }
107011@@ -2941,7 +2946,7 @@ static void kvm_sched_out(struct preempt_notifier *pn, 106375@@ -3099,7 +3104,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
107012 kvm_arch_vcpu_put(vcpu); 106376 kvm_arch_vcpu_put(vcpu);
107013 } 106377 }
107014 106378
@@ -107017,7 +106381,7 @@ index f18013f..90421df 100644
107017 struct module *module) 106381 struct module *module)
107018 { 106382 {
107019 int r; 106383 int r;
107020@@ -2977,7 +2982,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 106384@@ -3146,7 +3151,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
107021 if (!vcpu_align) 106385 if (!vcpu_align)
107022 vcpu_align = __alignof__(struct kvm_vcpu); 106386 vcpu_align = __alignof__(struct kvm_vcpu);
107023 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align, 106387 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
@@ -107026,7 +106390,7 @@ index f18013f..90421df 100644
107026 if (!kvm_vcpu_cache) { 106390 if (!kvm_vcpu_cache) {
107027 r = -ENOMEM; 106391 r = -ENOMEM;
107028 goto out_free_3; 106392 goto out_free_3;
107029@@ -2987,9 +2992,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 106393@@ -3156,9 +3161,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
107030 if (r) 106394 if (r)
107031 goto out_free; 106395 goto out_free;
107032 106396
@@ -107038,7 +106402,7 @@ index f18013f..90421df 100644
107038 106402
107039 r = misc_register(&kvm_dev); 106403 r = misc_register(&kvm_dev);
107040 if (r) { 106404 if (r) {
107041@@ -2999,9 +3006,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align, 106405@@ -3168,9 +3175,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
107042 106406
107043 register_syscore_ops(&kvm_syscore_ops); 106407 register_syscore_ops(&kvm_syscore_ops);
107044 106408
diff --git a/main/linux-grsec/kernelconfig.x86 b/main/linux-grsec/kernelconfig.x86
index de622fca84..36a0fef5af 100644
--- a/main/linux-grsec/kernelconfig.x86
+++ b/main/linux-grsec/kernelconfig.x86
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated file; DO NOT EDIT. 2# Automatically generated file; DO NOT EDIT.
3# Linux/x86 3.9.8 Kernel Configuration 3# Linux/x86 3.10.4 Kernel Configuration
4# 4#
5# CONFIG_64BIT is not set 5# CONFIG_64BIT is not set
6CONFIG_X86_32=y 6CONFIG_X86_32=y
@@ -17,12 +17,10 @@ CONFIG_NEED_SG_DMA_LENGTH=y
17CONFIG_GENERIC_ISA_DMA=y 17CONFIG_GENERIC_ISA_DMA=y
18CONFIG_GENERIC_BUG=y 18CONFIG_GENERIC_BUG=y
19CONFIG_GENERIC_HWEIGHT=y 19CONFIG_GENERIC_HWEIGHT=y
20CONFIG_GENERIC_GPIO=y
21CONFIG_ARCH_MAY_HAVE_PC_FDC=y 20CONFIG_ARCH_MAY_HAVE_PC_FDC=y
22CONFIG_RWSEM_XCHGADD_ALGORITHM=y 21CONFIG_RWSEM_XCHGADD_ALGORITHM=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 22CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_HAS_CPU_RELAX=y 23CONFIG_ARCH_HAS_CPU_RELAX=y
25CONFIG_ARCH_HAS_DEFAULT_IDLE=y
26CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 24CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
27CONFIG_ARCH_HAS_CPU_AUTOPROBE=y 25CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
28CONFIG_HAVE_SETUP_PER_CPU_AREA=y 26CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -94,6 +92,9 @@ CONFIG_GENERIC_CMOS_UPDATE=y
94# Timers subsystem 92# Timers subsystem
95# 93#
96CONFIG_TICK_ONESHOT=y 94CONFIG_TICK_ONESHOT=y
95CONFIG_NO_HZ_COMMON=y
96# CONFIG_HZ_PERIODIC is not set
97CONFIG_NO_HZ_IDLE=y
97CONFIG_NO_HZ=y 98CONFIG_NO_HZ=y
98CONFIG_HIGH_RES_TIMERS=y 99CONFIG_HIGH_RES_TIMERS=y
99 100
@@ -159,19 +160,19 @@ CONFIG_RD_LZO=y
159CONFIG_CC_OPTIMIZE_FOR_SIZE=y 160CONFIG_CC_OPTIMIZE_FOR_SIZE=y
160CONFIG_SYSCTL=y 161CONFIG_SYSCTL=y
161CONFIG_ANON_INODES=y 162CONFIG_ANON_INODES=y
162CONFIG_EXPERT=y
163CONFIG_HAVE_UID16=y 163CONFIG_HAVE_UID16=y
164CONFIG_SYSCTL_EXCEPTION_TRACE=y
165CONFIG_HOTPLUG=y
166CONFIG_HAVE_PCSPKR_PLATFORM=y
167CONFIG_EXPERT=y
164CONFIG_UID16=y 168CONFIG_UID16=y
165CONFIG_SYSCTL_SYSCALL=y 169CONFIG_SYSCTL_SYSCALL=y
166CONFIG_SYSCTL_EXCEPTION_TRACE=y
167CONFIG_KALLSYMS=y 170CONFIG_KALLSYMS=y
168CONFIG_KALLSYMS_ALL=y 171CONFIG_KALLSYMS_ALL=y
169CONFIG_HOTPLUG=y
170CONFIG_PRINTK=y 172CONFIG_PRINTK=y
171CONFIG_BUG=y 173CONFIG_BUG=y
172CONFIG_ELF_CORE=y 174CONFIG_ELF_CORE=y
173CONFIG_PCSPKR_PLATFORM=y 175CONFIG_PCSPKR_PLATFORM=y
174CONFIG_HAVE_PCSPKR_PLATFORM=y
175CONFIG_BASE_FULL=y 176CONFIG_BASE_FULL=y
176CONFIG_FUTEX=y 177CONFIG_FUTEX=y
177CONFIG_EPOLL=y 178CONFIG_EPOLL=y
@@ -180,6 +181,7 @@ CONFIG_TIMERFD=y
180CONFIG_EVENTFD=y 181CONFIG_EVENTFD=y
181CONFIG_SHMEM=y 182CONFIG_SHMEM=y
182CONFIG_AIO=y 183CONFIG_AIO=y
184CONFIG_PCI_QUIRKS=y
183CONFIG_EMBEDDED=y 185CONFIG_EMBEDDED=y
184CONFIG_HAVE_PERF_EVENTS=y 186CONFIG_HAVE_PERF_EVENTS=y
185 187
@@ -189,7 +191,6 @@ CONFIG_HAVE_PERF_EVENTS=y
189CONFIG_PERF_EVENTS=y 191CONFIG_PERF_EVENTS=y
190# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 192# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
191CONFIG_VM_EVENT_COUNTERS=y 193CONFIG_VM_EVENT_COUNTERS=y
192CONFIG_PCI_QUIRKS=y
193# CONFIG_SLUB_DEBUG is not set 194# CONFIG_SLUB_DEBUG is not set
194# CONFIG_COMPAT_BRK is not set 195# CONFIG_COMPAT_BRK is not set
195# CONFIG_SLAB is not set 196# CONFIG_SLAB is not set
@@ -322,15 +323,15 @@ CONFIG_X86_WANT_INTEL_MID=y
322# CONFIG_X86_32_NON_STANDARD is not set 323# CONFIG_X86_32_NON_STANDARD is not set
323# CONFIG_X86_32_IRIS is not set 324# CONFIG_X86_32_IRIS is not set
324CONFIG_SCHED_OMIT_FRAME_POINTER=y 325CONFIG_SCHED_OMIT_FRAME_POINTER=y
325CONFIG_PARAVIRT_GUEST=y 326CONFIG_HYPERVISOR_GUEST=y
326# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set 327CONFIG_PARAVIRT=y
328# CONFIG_PARAVIRT_DEBUG is not set
329# CONFIG_PARAVIRT_SPINLOCKS is not set
327# CONFIG_XEN_PRIVILEGED_GUEST is not set 330# CONFIG_XEN_PRIVILEGED_GUEST is not set
328CONFIG_KVM_GUEST=y 331CONFIG_KVM_GUEST=y
329# CONFIG_LGUEST_GUEST is not set 332# CONFIG_LGUEST_GUEST is not set
330CONFIG_PARAVIRT=y 333# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
331# CONFIG_PARAVIRT_SPINLOCKS is not set
332CONFIG_PARAVIRT_CLOCK=y 334CONFIG_PARAVIRT_CLOCK=y
333# CONFIG_PARAVIRT_DEBUG is not set
334CONFIG_NO_BOOTMEM=y 335CONFIG_NO_BOOTMEM=y
335# CONFIG_MEMTEST is not set 336# CONFIG_MEMTEST is not set
336# CONFIG_M486 is not set 337# CONFIG_M486 is not set
@@ -547,6 +548,7 @@ CONFIG_X86_ACPI_CPUFREQ=m
547# CONFIG_X86_POWERNOW_K6 is not set 548# CONFIG_X86_POWERNOW_K6 is not set
548# CONFIG_X86_POWERNOW_K7 is not set 549# CONFIG_X86_POWERNOW_K7 is not set
549CONFIG_X86_POWERNOW_K8=m 550CONFIG_X86_POWERNOW_K8=m
551# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set
550# CONFIG_X86_GX_SUSPMOD is not set 552# CONFIG_X86_GX_SUSPMOD is not set
551CONFIG_X86_SPEEDSTEP_CENTRINO=m 553CONFIG_X86_SPEEDSTEP_CENTRINO=m
552CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y 554CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
@@ -631,8 +633,6 @@ CONFIG_PCCARD_NONSTATIC=y
631CONFIG_HOTPLUG_PCI=m 633CONFIG_HOTPLUG_PCI=m
632# CONFIG_HOTPLUG_PCI_COMPAQ is not set 634# CONFIG_HOTPLUG_PCI_COMPAQ is not set
633# CONFIG_HOTPLUG_PCI_IBM is not set 635# CONFIG_HOTPLUG_PCI_IBM is not set
634CONFIG_HOTPLUG_PCI_ACPI=m
635CONFIG_HOTPLUG_PCI_ACPI_IBM=m
636CONFIG_HOTPLUG_PCI_CPCI=y 636CONFIG_HOTPLUG_PCI_CPCI=y
637CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m 637CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
638CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m 638CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -645,6 +645,7 @@ CONFIG_HOTPLUG_PCI_SHPC=m
645CONFIG_BINFMT_ELF=y 645CONFIG_BINFMT_ELF=y
646CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 646CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
647# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 647# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
648CONFIG_BINFMT_SCRIPT=y
648CONFIG_HAVE_AOUT=y 649CONFIG_HAVE_AOUT=y
649CONFIG_BINFMT_MISC=m 650CONFIG_BINFMT_MISC=m
650CONFIG_COREDUMP=y 651CONFIG_COREDUMP=y
@@ -679,6 +680,7 @@ CONFIG_IP_ROUTE_CLASSID=y
679# CONFIG_IP_PNP is not set 680# CONFIG_IP_PNP is not set
680CONFIG_NET_IPIP=m 681CONFIG_NET_IPIP=m
681CONFIG_NET_IPGRE_DEMUX=y 682CONFIG_NET_IPGRE_DEMUX=y
683CONFIG_NET_IP_TUNNEL=m
682CONFIG_NET_IPGRE=m 684CONFIG_NET_IPGRE=m
683CONFIG_NET_IPGRE_BROADCAST=y 685CONFIG_NET_IPGRE_BROADCAST=y
684CONFIG_IP_MROUTE=y 686CONFIG_IP_MROUTE=y
@@ -1043,6 +1045,7 @@ CONFIG_RDS=m
1043# CONFIG_RDS_DEBUG is not set 1045# CONFIG_RDS_DEBUG is not set
1044CONFIG_TIPC=m 1046CONFIG_TIPC=m
1045CONFIG_TIPC_PORTS=8191 1047CONFIG_TIPC_PORTS=8191
1048# CONFIG_TIPC_MEDIA_IB is not set
1046CONFIG_ATM=m 1049CONFIG_ATM=m
1047CONFIG_ATM_CLIP=m 1050CONFIG_ATM_CLIP=m
1048# CONFIG_ATM_CLIP_NO_ICMP is not set 1051# CONFIG_ATM_CLIP_NO_ICMP is not set
@@ -1078,7 +1081,6 @@ CONFIG_ATALK=m
1078CONFIG_DEV_APPLETALK=m 1081CONFIG_DEV_APPLETALK=m
1079CONFIG_IPDDP=m 1082CONFIG_IPDDP=m
1080CONFIG_IPDDP_ENCAP=y 1083CONFIG_IPDDP_ENCAP=y
1081CONFIG_IPDDP_DECAP=y
1082CONFIG_X25=m 1084CONFIG_X25=m
1083CONFIG_LAPB=m 1085CONFIG_LAPB=m
1084CONFIG_PHONET=m 1086CONFIG_PHONET=m
@@ -1155,6 +1157,8 @@ CONFIG_DNS_RESOLVER=y
1155CONFIG_OPENVSWITCH=m 1157CONFIG_OPENVSWITCH=m
1156CONFIG_VSOCKETS=m 1158CONFIG_VSOCKETS=m
1157CONFIG_VMWARE_VMCI_VSOCKETS=m 1159CONFIG_VMWARE_VMCI_VSOCKETS=m
1160CONFIG_NETLINK_MMAP=y
1161CONFIG_NETLINK_DIAG=y
1158CONFIG_RPS=y 1162CONFIG_RPS=y
1159CONFIG_RFS_ACCEL=y 1163CONFIG_RFS_ACCEL=y
1160CONFIG_XPS=y 1164CONFIG_XPS=y
@@ -1351,8 +1355,6 @@ CONFIG_MTD_AR7_PARTS=m
1351# 1355#
1352# User Modules And Translation Layers 1356# User Modules And Translation Layers
1353# 1357#
1354CONFIG_MTD_CHAR=m
1355CONFIG_HAVE_MTD_OTP=y
1356CONFIG_MTD_BLKDEVS=m 1358CONFIG_MTD_BLKDEVS=m
1357CONFIG_MTD_BLOCK=m 1359CONFIG_MTD_BLOCK=m
1358CONFIG_MTD_BLOCK_RO=m 1360CONFIG_MTD_BLOCK_RO=m
@@ -1439,22 +1441,12 @@ CONFIG_MTD_BLOCK2MTD=m
1439# 1441#
1440# Disk-On-Chip Device Drivers 1442# Disk-On-Chip Device Drivers
1441# 1443#
1442CONFIG_MTD_DOC2000=m
1443CONFIG_MTD_DOC2001=m
1444CONFIG_MTD_DOC2001PLUS=m
1445# CONFIG_MTD_DOCG3 is not set 1444# CONFIG_MTD_DOCG3 is not set
1446CONFIG_MTD_DOCPROBE=m
1447CONFIG_MTD_DOCECC=m
1448CONFIG_MTD_DOCPROBE_ADVANCED=y
1449CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
1450# CONFIG_MTD_DOCPROBE_HIGH is not set
1451# CONFIG_MTD_DOCPROBE_55AA is not set
1452CONFIG_MTD_NAND_ECC=m 1445CONFIG_MTD_NAND_ECC=m
1453CONFIG_MTD_NAND_ECC_SMC=y 1446CONFIG_MTD_NAND_ECC_SMC=y
1454CONFIG_MTD_NAND=m 1447CONFIG_MTD_NAND=m
1455# CONFIG_MTD_NAND_ECC_BCH is not set 1448# CONFIG_MTD_NAND_ECC_BCH is not set
1456CONFIG_MTD_SM_COMMON=m 1449CONFIG_MTD_SM_COMMON=m
1457# CONFIG_MTD_NAND_MUSEUM_IDS is not set
1458CONFIG_MTD_NAND_DENALI=m 1450CONFIG_MTD_NAND_DENALI=m
1459# CONFIG_MTD_NAND_DENALI_PCI is not set 1451# CONFIG_MTD_NAND_DENALI_PCI is not set
1460CONFIG_MTD_NAND_IDS=m 1452CONFIG_MTD_NAND_IDS=m
@@ -1474,7 +1466,6 @@ CONFIG_MTD_ONENAND=m
1474# CONFIG_MTD_ONENAND_GENERIC is not set 1466# CONFIG_MTD_ONENAND_GENERIC is not set
1475CONFIG_MTD_ONENAND_OTP=y 1467CONFIG_MTD_ONENAND_OTP=y
1476CONFIG_MTD_ONENAND_2X_PROGRAM=y 1468CONFIG_MTD_ONENAND_2X_PROGRAM=y
1477CONFIG_MTD_ONENAND_SIM=m
1478 1469
1479# 1470#
1480# LPDDR flash memory drivers 1471# LPDDR flash memory drivers
@@ -1542,6 +1533,7 @@ CONFIG_SENSORS_LIS3LV02D=m
1542CONFIG_AD525X_DPOT=m 1533CONFIG_AD525X_DPOT=m
1543CONFIG_AD525X_DPOT_I2C=m 1534CONFIG_AD525X_DPOT_I2C=m
1544CONFIG_AD525X_DPOT_SPI=m 1535CONFIG_AD525X_DPOT_SPI=m
1536# CONFIG_DUMMY_IRQ is not set
1545CONFIG_IBM_ASM=m 1537CONFIG_IBM_ASM=m
1546CONFIG_PHANTOM=m 1538CONFIG_PHANTOM=m
1547# CONFIG_INTEL_MID_PTI is not set 1539# CONFIG_INTEL_MID_PTI is not set
@@ -1571,6 +1563,7 @@ CONFIG_VMWARE_BALLOON=m
1571CONFIG_PCH_PHUB=m 1563CONFIG_PCH_PHUB=m
1572# CONFIG_USB_SWITCH_FSA9480 is not set 1564# CONFIG_USB_SWITCH_FSA9480 is not set
1573# CONFIG_LATTICE_ECP3_CONFIG is not set 1565# CONFIG_LATTICE_ECP3_CONFIG is not set
1566# CONFIG_SRAM is not set
1574CONFIG_C2PORT=m 1567CONFIG_C2PORT=m
1575CONFIG_C2PORT_DURAMAR_2150=m 1568CONFIG_C2PORT_DURAMAR_2150=m
1576 1569
@@ -1598,6 +1591,7 @@ CONFIG_SENSORS_LIS3_I2C=m
1598# 1591#
1599CONFIG_ALTERA_STAPL=m 1592CONFIG_ALTERA_STAPL=m
1600# CONFIG_INTEL_MEI is not set 1593# CONFIG_INTEL_MEI is not set
1594# CONFIG_INTEL_MEI_ME is not set
1601CONFIG_VMWARE_VMCI=m 1595CONFIG_VMWARE_VMCI=m
1602CONFIG_HAVE_IDE=y 1596CONFIG_HAVE_IDE=y
1603# CONFIG_IDE is not set 1597# CONFIG_IDE is not set
@@ -1693,6 +1687,7 @@ CONFIG_SCSI_MPT3SAS_MAX_SGE=128
1693# CONFIG_SCSI_MPT3SAS_LOGGING is not set 1687# CONFIG_SCSI_MPT3SAS_LOGGING is not set
1694CONFIG_SCSI_UFSHCD=m 1688CONFIG_SCSI_UFSHCD=m
1695CONFIG_SCSI_UFSHCD_PCI=m 1689CONFIG_SCSI_UFSHCD_PCI=m
1690# CONFIG_SCSI_UFSHCD_PLATFORM is not set
1696CONFIG_SCSI_HPTIOP=m 1691CONFIG_SCSI_HPTIOP=m
1697CONFIG_SCSI_BUSLOGIC=m 1692CONFIG_SCSI_BUSLOGIC=m
1698# CONFIG_SCSI_FLASHPOINT is not set 1693# CONFIG_SCSI_FLASHPOINT is not set
@@ -1861,6 +1856,7 @@ CONFIG_MD_RAID10=m
1861CONFIG_MD_RAID456=m 1856CONFIG_MD_RAID456=m
1862CONFIG_MD_MULTIPATH=m 1857CONFIG_MD_MULTIPATH=m
1863CONFIG_MD_FAULTY=m 1858CONFIG_MD_FAULTY=m
1859# CONFIG_BCACHE is not set
1864CONFIG_BLK_DEV_DM=m 1860CONFIG_BLK_DEV_DM=m
1865# CONFIG_DM_DEBUG is not set 1861# CONFIG_DM_DEBUG is not set
1866CONFIG_DM_BUFIO=m 1862CONFIG_DM_BUFIO=m
@@ -1929,6 +1925,7 @@ CONFIG_IFB=m
1929CONFIG_NET_TEAM=m 1925CONFIG_NET_TEAM=m
1930CONFIG_NET_TEAM_MODE_BROADCAST=m 1926CONFIG_NET_TEAM_MODE_BROADCAST=m
1931CONFIG_NET_TEAM_MODE_ROUNDROBIN=m 1927CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
1928# CONFIG_NET_TEAM_MODE_RANDOM is not set
1932CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 1929CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
1933CONFIG_NET_TEAM_MODE_LOADBALANCE=m 1930CONFIG_NET_TEAM_MODE_LOADBALANCE=m
1934CONFIG_MACVLAN=m 1931CONFIG_MACVLAN=m
@@ -1988,6 +1985,9 @@ CONFIG_ATM_SOLOS=m
1988# 1985#
1989# CAIF transport drivers 1986# CAIF transport drivers
1990# 1987#
1988CONFIG_VHOST_NET=m
1989# CONFIG_VHOST_SCSI is not set
1990CONFIG_VHOST_RING=m
1991 1991
1992# 1992#
1993# Distributed Switch Architecture drivers 1993# Distributed Switch Architecture drivers
@@ -2018,6 +2018,7 @@ CONFIG_ATL2=m
2018CONFIG_ATL1=m 2018CONFIG_ATL1=m
2019CONFIG_ATL1E=m 2019CONFIG_ATL1E=m
2020CONFIG_ATL1C=m 2020CONFIG_ATL1C=m
2021# CONFIG_ALX is not set
2021CONFIG_NET_CADENCE=y 2022CONFIG_NET_CADENCE=y
2022# CONFIG_ARM_AT91_ETHER is not set 2023# CONFIG_ARM_AT91_ETHER is not set
2023# CONFIG_MACB is not set 2024# CONFIG_MACB is not set
@@ -2127,6 +2128,7 @@ CONFIG_YELLOWFIN=m
2127CONFIG_NET_VENDOR_QLOGIC=y 2128CONFIG_NET_VENDOR_QLOGIC=y
2128CONFIG_QLA3XXX=m 2129CONFIG_QLA3XXX=m
2129CONFIG_QLCNIC=m 2130CONFIG_QLCNIC=m
2131CONFIG_QLCNIC_SRIOV=y
2130CONFIG_QLGE=m 2132CONFIG_QLGE=m
2131CONFIG_NETXEN_NIC=m 2133CONFIG_NETXEN_NIC=m
2132CONFIG_NET_VENDOR_REALTEK=y 2134CONFIG_NET_VENDOR_REALTEK=y
@@ -2160,8 +2162,6 @@ CONFIG_STMMAC_ETH=m
2160# CONFIG_STMMAC_PCI is not set 2162# CONFIG_STMMAC_PCI is not set
2161# CONFIG_STMMAC_DEBUG_FS is not set 2163# CONFIG_STMMAC_DEBUG_FS is not set
2162# CONFIG_STMMAC_DA is not set 2164# CONFIG_STMMAC_DA is not set
2163CONFIG_STMMAC_RING=y
2164# CONFIG_STMMAC_CHAINED is not set
2165CONFIG_NET_VENDOR_SUN=y 2165CONFIG_NET_VENDOR_SUN=y
2166CONFIG_HAPPYMEAL=m 2166CONFIG_HAPPYMEAL=m
2167CONFIG_SUNGEM=m 2167CONFIG_SUNGEM=m
@@ -2242,6 +2242,7 @@ CONFIG_USB_CATC=m
2242CONFIG_USB_KAWETH=m 2242CONFIG_USB_KAWETH=m
2243CONFIG_USB_PEGASUS=m 2243CONFIG_USB_PEGASUS=m
2244CONFIG_USB_RTL8150=m 2244CONFIG_USB_RTL8150=m
2245# CONFIG_USB_RTL8152 is not set
2245CONFIG_USB_USBNET=m 2246CONFIG_USB_USBNET=m
2246CONFIG_USB_NET_AX8817X=m 2247CONFIG_USB_NET_AX8817X=m
2247CONFIG_USB_NET_AX88179_178A=m 2248CONFIG_USB_NET_AX88179_178A=m
@@ -2331,7 +2332,6 @@ CONFIG_B43_SDIO=y
2331CONFIG_B43_PIO=y 2332CONFIG_B43_PIO=y
2332CONFIG_B43_PHY_N=y 2333CONFIG_B43_PHY_N=y
2333CONFIG_B43_PHY_LP=y 2334CONFIG_B43_PHY_LP=y
2334CONFIG_B43_PHY_HT=y
2335CONFIG_B43_LEDS=y 2335CONFIG_B43_LEDS=y
2336CONFIG_B43_HWRNG=y 2336CONFIG_B43_HWRNG=y
2337# CONFIG_B43_DEBUG is not set 2337# CONFIG_B43_DEBUG is not set
@@ -2367,6 +2367,7 @@ CONFIG_LIBIPW=m
2367CONFIG_IWLWIFI=m 2367CONFIG_IWLWIFI=m
2368CONFIG_IWLDVM=m 2368CONFIG_IWLDVM=m
2369CONFIG_IWLMVM=m 2369CONFIG_IWLMVM=m
2370CONFIG_IWLWIFI_OPMODE_MODULAR=y
2370 2371
2371# 2372#
2372# Debugging Options 2373# Debugging Options
@@ -2418,6 +2419,7 @@ CONFIG_RT2800USB=m
2418CONFIG_RT2800USB_RT33XX=y 2419CONFIG_RT2800USB_RT33XX=y
2419# CONFIG_RT2800USB_RT35XX is not set 2420# CONFIG_RT2800USB_RT35XX is not set
2420CONFIG_RT2800USB_RT53XX=y 2421CONFIG_RT2800USB_RT53XX=y
2422# CONFIG_RT2800USB_RT55XX is not set
2421CONFIG_RT2800USB_UNKNOWN=y 2423CONFIG_RT2800USB_UNKNOWN=y
2422CONFIG_RT2800_LIB=m 2424CONFIG_RT2800_LIB=m
2423CONFIG_RT2X00_LIB_MMIO=m 2425CONFIG_RT2X00_LIB_MMIO=m
@@ -2434,6 +2436,7 @@ CONFIG_RTL8192CE=m
2434CONFIG_RTL8192SE=m 2436CONFIG_RTL8192SE=m
2435CONFIG_RTL8192DE=m 2437CONFIG_RTL8192DE=m
2436CONFIG_RTL8723AE=m 2438CONFIG_RTL8723AE=m
2439# CONFIG_RTL8188EE is not set
2437CONFIG_RTL8192CU=m 2440CONFIG_RTL8192CU=m
2438CONFIG_RTL8192C_COMMON=m 2441CONFIG_RTL8192C_COMMON=m
2439CONFIG_WL_TI=y 2442CONFIG_WL_TI=y
@@ -2695,6 +2698,7 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
2695CONFIG_INPUT_ADXL34X=m 2698CONFIG_INPUT_ADXL34X=m
2696CONFIG_INPUT_ADXL34X_I2C=m 2699CONFIG_INPUT_ADXL34X_I2C=m
2697CONFIG_INPUT_ADXL34X_SPI=m 2700CONFIG_INPUT_ADXL34X_SPI=m
2701# CONFIG_INPUT_IMS_PCU is not set
2698CONFIG_INPUT_CMA3000=m 2702CONFIG_INPUT_CMA3000=m
2699CONFIG_INPUT_CMA3000_I2C=m 2703CONFIG_INPUT_CMA3000_I2C=m
2700 2704
@@ -2940,6 +2944,11 @@ CONFIG_SPI_DW_PCI=m
2940# 2944#
2941CONFIG_SPI_SPIDEV=m 2945CONFIG_SPI_SPIDEV=m
2942CONFIG_SPI_TLE62X0=m 2946CONFIG_SPI_TLE62X0=m
2947
2948#
2949# Qualcomm MSM SSBI bus support
2950#
2951# CONFIG_SSBI is not set
2943# CONFIG_HSI is not set 2952# CONFIG_HSI is not set
2944 2953
2945# 2954#
@@ -3067,6 +3076,7 @@ CONFIG_SENSORS_ADM1026=m
3067CONFIG_SENSORS_ADM1029=m 3076CONFIG_SENSORS_ADM1029=m
3068CONFIG_SENSORS_ADM1031=m 3077CONFIG_SENSORS_ADM1031=m
3069CONFIG_SENSORS_ADM9240=m 3078CONFIG_SENSORS_ADM9240=m
3079# CONFIG_SENSORS_ADT7310 is not set
3070# CONFIG_SENSORS_ADT7410 is not set 3080# CONFIG_SENSORS_ADT7410 is not set
3071CONFIG_SENSORS_ADT7411=m 3081CONFIG_SENSORS_ADT7411=m
3072CONFIG_SENSORS_ADT7462=m 3082CONFIG_SENSORS_ADT7462=m
@@ -3113,6 +3123,7 @@ CONFIG_SENSORS_LTC4151=m
3113CONFIG_SENSORS_LTC4215=m 3123CONFIG_SENSORS_LTC4215=m
3114CONFIG_SENSORS_LTC4245=m 3124CONFIG_SENSORS_LTC4245=m
3115CONFIG_SENSORS_LTC4261=m 3125CONFIG_SENSORS_LTC4261=m
3126# CONFIG_SENSORS_LM95234 is not set
3116CONFIG_SENSORS_LM95241=m 3127CONFIG_SENSORS_LM95241=m
3117CONFIG_SENSORS_LM95245=m 3128CONFIG_SENSORS_LM95245=m
3118CONFIG_SENSORS_MAX1111=m 3129CONFIG_SENSORS_MAX1111=m
@@ -3125,6 +3136,7 @@ CONFIG_SENSORS_MAX6642=m
3125CONFIG_SENSORS_MAX6650=m 3136CONFIG_SENSORS_MAX6650=m
3126CONFIG_SENSORS_MAX6697=m 3137CONFIG_SENSORS_MAX6697=m
3127CONFIG_SENSORS_MCP3021=m 3138CONFIG_SENSORS_MCP3021=m
3139# CONFIG_SENSORS_NCT6775 is not set
3128CONFIG_SENSORS_NTC_THERMISTOR=m 3140CONFIG_SENSORS_NTC_THERMISTOR=m
3129CONFIG_SENSORS_PC87360=m 3141CONFIG_SENSORS_PC87360=m
3130CONFIG_SENSORS_PC87427=m 3142CONFIG_SENSORS_PC87427=m
@@ -3283,41 +3295,45 @@ CONFIG_BCMA_POSSIBLE=y
3283# Multifunction device drivers 3295# Multifunction device drivers
3284# 3296#
3285CONFIG_MFD_CORE=m 3297CONFIG_MFD_CORE=m
3298CONFIG_MFD_CS5535=m
3299# CONFIG_MFD_CROS_EC is not set
3300# CONFIG_MFD_DA9052_SPI is not set
3301# CONFIG_MFD_MC13XXX_SPI is not set
3302# CONFIG_MFD_MC13XXX_I2C is not set
3303CONFIG_HTC_PASIC3=m
3304CONFIG_LPC_ICH=m
3305CONFIG_LPC_SCH=m
3306CONFIG_MFD_JANZ_CMODIO=m
3307# CONFIG_EZX_PCAP is not set
3308# CONFIG_MFD_VIPERBOARD is not set
3309# CONFIG_MFD_RETU is not set
3310CONFIG_MFD_PCF50633=m
3311CONFIG_PCF50633_ADC=m
3312CONFIG_PCF50633_GPIO=m
3313CONFIG_UCB1400_CORE=m
3314CONFIG_MFD_RDC321X=m
3315# CONFIG_MFD_RTSX_PCI is not set
3316# CONFIG_MFD_SI476X_CORE is not set
3286CONFIG_MFD_SM501=m 3317CONFIG_MFD_SM501=m
3287# CONFIG_MFD_SM501_GPIO is not set 3318# CONFIG_MFD_SM501_GPIO is not set
3288# CONFIG_MFD_RTSX_PCI is not set 3319CONFIG_ABX500_CORE=y
3320# CONFIG_MFD_STMPE is not set
3321# CONFIG_MFD_SYSCON is not set
3289# CONFIG_MFD_TI_AM335X_TSCADC is not set 3322# CONFIG_MFD_TI_AM335X_TSCADC is not set
3290CONFIG_HTC_PASIC3=m
3291CONFIG_UCB1400_CORE=m
3292# CONFIG_MFD_LM3533 is not set
3293# CONFIG_TPS6105X is not set 3323# CONFIG_TPS6105X is not set
3294CONFIG_TPS65010=m 3324CONFIG_TPS65010=m
3295CONFIG_TPS6507X=m 3325CONFIG_TPS6507X=m
3296# CONFIG_MFD_TPS65217 is not set 3326# CONFIG_MFD_TPS65217 is not set
3327# CONFIG_MFD_TPS65912 is not set
3297# CONFIG_MFD_TPS65912_SPI is not set 3328# CONFIG_MFD_TPS65912_SPI is not set
3298# CONFIG_MFD_STMPE is not set 3329CONFIG_MFD_WL1273_CORE=m
3330# CONFIG_MFD_LM3533 is not set
3331CONFIG_MFD_TIMBERDALE=m
3299# CONFIG_MFD_TMIO is not set 3332# CONFIG_MFD_TMIO is not set
3300# CONFIG_MFD_DA9052_SPI is not set 3333CONFIG_MFD_VX855=m
3301# CONFIG_MFD_ARIZONA_I2C is not set 3334# CONFIG_MFD_ARIZONA_I2C is not set
3302# CONFIG_MFD_ARIZONA_SPI is not set 3335# CONFIG_MFD_ARIZONA_SPI is not set
3303# CONFIG_MFD_WM831X_SPI is not set 3336# CONFIG_MFD_WM831X_SPI is not set
3304CONFIG_MFD_PCF50633=m
3305CONFIG_PCF50633_ADC=m
3306CONFIG_PCF50633_GPIO=m
3307# CONFIG_MFD_MC13XXX_SPI is not set
3308# CONFIG_MFD_MC13XXX_I2C is not set
3309CONFIG_ABX500_CORE=y
3310# CONFIG_EZX_PCAP is not set
3311CONFIG_MFD_CS5535=m
3312CONFIG_MFD_TIMBERDALE=m
3313CONFIG_LPC_SCH=m
3314CONFIG_LPC_ICH=m
3315CONFIG_MFD_RDC321X=m
3316CONFIG_MFD_JANZ_CMODIO=m
3317CONFIG_MFD_VX855=m
3318CONFIG_MFD_WL1273_CORE=m
3319# CONFIG_MFD_VIPERBOARD is not set
3320# CONFIG_MFD_RETU is not set
3321# CONFIG_REGULATOR is not set 3337# CONFIG_REGULATOR is not set
3322CONFIG_MEDIA_SUPPORT=m 3338CONFIG_MEDIA_SUPPORT=m
3323 3339
@@ -3496,7 +3512,6 @@ CONFIG_DVB_USB_FRIIO=m
3496CONFIG_DVB_USB_AZ6027=m 3512CONFIG_DVB_USB_AZ6027=m
3497CONFIG_DVB_USB_TECHNISAT_USB2=m 3513CONFIG_DVB_USB_TECHNISAT_USB2=m
3498CONFIG_DVB_USB_V2=m 3514CONFIG_DVB_USB_V2=m
3499CONFIG_DVB_USB_CYPRESS_FIRMWARE=m
3500CONFIG_DVB_USB_AF9015=m 3515CONFIG_DVB_USB_AF9015=m
3501CONFIG_DVB_USB_AF9035=m 3516CONFIG_DVB_USB_AF9035=m
3502CONFIG_DVB_USB_ANYSEE=m 3517CONFIG_DVB_USB_ANYSEE=m
@@ -3612,6 +3627,7 @@ CONFIG_DVB_FIREDTV_INPUT=y
3612CONFIG_VIDEO_CX2341X=m 3627CONFIG_VIDEO_CX2341X=m
3613CONFIG_VIDEO_BTCX=m 3628CONFIG_VIDEO_BTCX=m
3614CONFIG_VIDEO_TVEEPROM=m 3629CONFIG_VIDEO_TVEEPROM=m
3630CONFIG_CYPRESS_FIRMWARE=m
3615CONFIG_DVB_B2C2_FLEXCOP=m 3631CONFIG_DVB_B2C2_FLEXCOP=m
3616CONFIG_VIDEO_SAA7146=m 3632CONFIG_VIDEO_SAA7146=m
3617CONFIG_VIDEO_SAA7146_VV=m 3633CONFIG_VIDEO_SAA7146_VV=m
@@ -3620,6 +3636,7 @@ CONFIG_VIDEO_SAA7146_VV=m
3620# Media ancillary drivers (tuners, sensors, i2c, frontends) 3636# Media ancillary drivers (tuners, sensors, i2c, frontends)
3621# 3637#
3622CONFIG_MEDIA_SUBDRV_AUTOSELECT=y 3638CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
3639CONFIG_MEDIA_ATTACH=y
3623CONFIG_VIDEO_IR_I2C=m 3640CONFIG_VIDEO_IR_I2C=m
3624 3641
3625# 3642#
@@ -3691,7 +3708,6 @@ CONFIG_VIDEO_M52790=m
3691# 3708#
3692# Sensors used on soc_camera driver 3709# Sensors used on soc_camera driver
3693# 3710#
3694CONFIG_MEDIA_ATTACH=y
3695CONFIG_MEDIA_TUNER=m 3711CONFIG_MEDIA_TUNER=m
3696CONFIG_MEDIA_TUNER_SIMPLE=m 3712CONFIG_MEDIA_TUNER_SIMPLE=m
3697CONFIG_MEDIA_TUNER_TDA8290=m 3713CONFIG_MEDIA_TUNER_TDA8290=m
@@ -3719,6 +3735,8 @@ CONFIG_MEDIA_TUNER_TDA18212=m
3719CONFIG_MEDIA_TUNER_E4000=m 3735CONFIG_MEDIA_TUNER_E4000=m
3720CONFIG_MEDIA_TUNER_FC2580=m 3736CONFIG_MEDIA_TUNER_FC2580=m
3721CONFIG_MEDIA_TUNER_TUA9001=m 3737CONFIG_MEDIA_TUNER_TUA9001=m
3738CONFIG_MEDIA_TUNER_IT913X=m
3739CONFIG_MEDIA_TUNER_R820T=m
3722 3740
3723# 3741#
3724# Multistandard (satellite) frontends 3742# Multistandard (satellite) frontends
@@ -3895,6 +3913,7 @@ CONFIG_DRM_GMA3600=y
3895CONFIG_DRM_AST=m 3913CONFIG_DRM_AST=m
3896CONFIG_DRM_MGAG200=m 3914CONFIG_DRM_MGAG200=m
3897CONFIG_DRM_CIRRUS_QEMU=m 3915CONFIG_DRM_CIRRUS_QEMU=m
3916# CONFIG_DRM_QXL is not set
3898CONFIG_VGASTATE=m 3917CONFIG_VGASTATE=m
3899CONFIG_VIDEO_OUTPUT_CONTROL=m 3918CONFIG_VIDEO_OUTPUT_CONTROL=m
3900CONFIG_HDMI=y 3919CONFIG_HDMI=y
@@ -3911,7 +3930,6 @@ CONFIG_FB_SYS_COPYAREA=m
3911CONFIG_FB_SYS_IMAGEBLIT=m 3930CONFIG_FB_SYS_IMAGEBLIT=m
3912# CONFIG_FB_FOREIGN_ENDIAN is not set 3931# CONFIG_FB_FOREIGN_ENDIAN is not set
3913CONFIG_FB_SYS_FOPS=m 3932CONFIG_FB_SYS_FOPS=m
3914# CONFIG_FB_WMT_GE_ROPS is not set
3915CONFIG_FB_DEFERRED_IO=y 3933CONFIG_FB_DEFERRED_IO=y
3916CONFIG_FB_HECUBA=m 3934CONFIG_FB_HECUBA=m
3917CONFIG_FB_SVGALIB=m 3935CONFIG_FB_SVGALIB=m
@@ -4007,12 +4025,14 @@ CONFIG_FB_MB862XX_PCI_GDC=y
4007CONFIG_FB_MB862XX_I2C=y 4025CONFIG_FB_MB862XX_I2C=y
4008CONFIG_FB_BROADSHEET=m 4026CONFIG_FB_BROADSHEET=m
4009# CONFIG_FB_AUO_K190X is not set 4027# CONFIG_FB_AUO_K190X is not set
4028# CONFIG_FB_HYPERV is not set
4010# CONFIG_EXYNOS_VIDEO is not set 4029# CONFIG_EXYNOS_VIDEO is not set
4011CONFIG_BACKLIGHT_LCD_SUPPORT=y 4030CONFIG_BACKLIGHT_LCD_SUPPORT=y
4012CONFIG_LCD_CLASS_DEVICE=m 4031CONFIG_LCD_CLASS_DEVICE=m
4013CONFIG_LCD_L4F00242T03=m 4032CONFIG_LCD_L4F00242T03=m
4014CONFIG_LCD_LMS283GF05=m 4033CONFIG_LCD_LMS283GF05=m
4015CONFIG_LCD_LTV350QV=m 4034CONFIG_LCD_LTV350QV=m
4035# CONFIG_LCD_ILI922X is not set
4016CONFIG_LCD_ILI9320=m 4036CONFIG_LCD_ILI9320=m
4017CONFIG_LCD_TDO24M=m 4037CONFIG_LCD_TDO24M=m
4018CONFIG_LCD_VGG2432A4=m 4038CONFIG_LCD_VGG2432A4=m
@@ -4233,6 +4253,7 @@ CONFIG_SND_SOC_AK4535=m
4233CONFIG_SND_SOC_AK4641=m 4253CONFIG_SND_SOC_AK4641=m
4234CONFIG_SND_SOC_AK4642=m 4254CONFIG_SND_SOC_AK4642=m
4235CONFIG_SND_SOC_AK4671=m 4255CONFIG_SND_SOC_AK4671=m
4256CONFIG_SND_SOC_AK5386=m
4236CONFIG_SND_SOC_ALC5623=m 4257CONFIG_SND_SOC_ALC5623=m
4237CONFIG_SND_SOC_ALC5632=m 4258CONFIG_SND_SOC_ALC5632=m
4238CONFIG_SND_SOC_CS42L51=m 4259CONFIG_SND_SOC_CS42L51=m
@@ -4261,6 +4282,7 @@ CONFIG_SND_SOC_SPDIF=m
4261CONFIG_SND_SOC_SSM2602=m 4282CONFIG_SND_SOC_SSM2602=m
4262CONFIG_SND_SOC_STA32X=m 4283CONFIG_SND_SOC_STA32X=m
4263CONFIG_SND_SOC_STA529=m 4284CONFIG_SND_SOC_STA529=m
4285CONFIG_SND_SOC_TAS5086=m
4264CONFIG_SND_SOC_TLV320AIC23=m 4286CONFIG_SND_SOC_TLV320AIC23=m
4265CONFIG_SND_SOC_TLV320AIC26=m 4287CONFIG_SND_SOC_TLV320AIC26=m
4266CONFIG_SND_SOC_TLV320AIC32X4=m 4288CONFIG_SND_SOC_TLV320AIC32X4=m
@@ -4333,6 +4355,7 @@ CONFIG_HID_GENERIC=m
4333# CONFIG_HID_A4TECH is not set 4355# CONFIG_HID_A4TECH is not set
4334# CONFIG_HID_ACRUX is not set 4356# CONFIG_HID_ACRUX is not set
4335CONFIG_HID_APPLE=m 4357CONFIG_HID_APPLE=m
4358# CONFIG_HID_APPLEIR is not set
4336# CONFIG_HID_AUREAL is not set 4359# CONFIG_HID_AUREAL is not set
4337# CONFIG_HID_BELKIN is not set 4360# CONFIG_HID_BELKIN is not set
4338# CONFIG_HID_CHERRY is not set 4361# CONFIG_HID_CHERRY is not set
@@ -4427,10 +4450,10 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
4427# 4450#
4428# Miscellaneous USB options 4451# Miscellaneous USB options
4429# 4452#
4453CONFIG_USB_DEFAULT_PERSIST=y
4430# CONFIG_USB_DYNAMIC_MINORS is not set 4454# CONFIG_USB_DYNAMIC_MINORS is not set
4431# CONFIG_USB_OTG_WHITELIST is not set 4455# CONFIG_USB_OTG_WHITELIST is not set
4432# CONFIG_USB_OTG_BLACKLIST_HUB is not set 4456# CONFIG_USB_OTG_BLACKLIST_HUB is not set
4433# CONFIG_USB_DWC3 is not set
4434CONFIG_USB_MON=m 4457CONFIG_USB_MON=m
4435CONFIG_USB_WUSB=m 4458CONFIG_USB_WUSB=m
4436CONFIG_USB_WUSB_CBAF=m 4459CONFIG_USB_WUSB_CBAF=m
@@ -4446,6 +4469,7 @@ CONFIG_USB_EHCI_HCD=m
4446# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 4469# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
4447# CONFIG_USB_EHCI_TT_NEWSCHED is not set 4470# CONFIG_USB_EHCI_TT_NEWSCHED is not set
4448CONFIG_USB_EHCI_PCI=m 4471CONFIG_USB_EHCI_PCI=m
4472CONFIG_USB_EHCI_HCD_PLATFORM=m
4449CONFIG_USB_OXU210HP_HCD=m 4473CONFIG_USB_OXU210HP_HCD=m
4450CONFIG_USB_ISP116X_HCD=m 4474CONFIG_USB_ISP116X_HCD=m
4451CONFIG_USB_ISP1760_HCD=m 4475CONFIG_USB_ISP1760_HCD=m
@@ -4453,7 +4477,6 @@ CONFIG_USB_ISP1362_HCD=m
4453CONFIG_USB_OHCI_HCD=m 4477CONFIG_USB_OHCI_HCD=m
4454CONFIG_USB_OHCI_HCD_SSB=y 4478CONFIG_USB_OHCI_HCD_SSB=y
4455CONFIG_USB_OHCI_HCD_PLATFORM=y 4479CONFIG_USB_OHCI_HCD_PLATFORM=y
4456CONFIG_USB_EHCI_HCD_PLATFORM=m
4457# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 4480# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
4458# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 4481# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
4459CONFIG_USB_OHCI_LITTLE_ENDIAN=y 4482CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4466,7 +4489,6 @@ CONFIG_USB_R8A66597_HCD=m
4466CONFIG_USB_WHCI_HCD=m 4489CONFIG_USB_WHCI_HCD=m
4467CONFIG_USB_HWA_HCD=m 4490CONFIG_USB_HWA_HCD=m
4468CONFIG_USB_HCD_SSB=m 4491CONFIG_USB_HCD_SSB=m
4469# CONFIG_USB_CHIPIDEA is not set
4470 4492
4471# 4493#
4472# USB Device Class drivers 4494# USB Device Class drivers
@@ -4504,6 +4526,8 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
4504# 4526#
4505# CONFIG_USB_MDC800 is not set 4527# CONFIG_USB_MDC800 is not set
4506# CONFIG_USB_MICROTEK is not set 4528# CONFIG_USB_MICROTEK is not set
4529# CONFIG_USB_DWC3 is not set
4530# CONFIG_USB_CHIPIDEA is not set
4507 4531
4508# 4532#
4509# USB port drivers 4533# USB port drivers
@@ -4563,6 +4587,7 @@ CONFIG_USB_SERIAL_OPTICON=m
4563CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m 4587CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
4564CONFIG_USB_SERIAL_XSENS_MT=m 4588CONFIG_USB_SERIAL_XSENS_MT=m
4565CONFIG_USB_SERIAL_ZIO=m 4589CONFIG_USB_SERIAL_ZIO=m
4590# CONFIG_USB_SERIAL_WISHBONE is not set
4566# CONFIG_USB_SERIAL_ZTE is not set 4591# CONFIG_USB_SERIAL_ZTE is not set
4567# CONFIG_USB_SERIAL_SSU100 is not set 4592# CONFIG_USB_SERIAL_SSU100 is not set
4568CONFIG_USB_SERIAL_QT2=m 4593CONFIG_USB_SERIAL_QT2=m
@@ -4594,27 +4619,22 @@ CONFIG_USB_ISIGHTFW=m
4594# CONFIG_USB_YUREX is not set 4619# CONFIG_USB_YUREX is not set
4595CONFIG_USB_EZUSB_FX2=m 4620CONFIG_USB_EZUSB_FX2=m
4596CONFIG_USB_HSIC_USB3503=m 4621CONFIG_USB_HSIC_USB3503=m
4597
4598#
4599# USB Physical Layer drivers
4600#
4601# CONFIG_OMAP_USB3 is not set
4602# CONFIG_OMAP_CONTROL_USB is not set
4603# CONFIG_USB_ISP1301 is not set
4604# CONFIG_USB_RCAR_PHY is not set
4605CONFIG_USB_ATM=m 4622CONFIG_USB_ATM=m
4606CONFIG_USB_SPEEDTOUCH=m 4623CONFIG_USB_SPEEDTOUCH=m
4607CONFIG_USB_CXACRU=m 4624CONFIG_USB_CXACRU=m
4608CONFIG_USB_UEAGLEATM=m 4625CONFIG_USB_UEAGLEATM=m
4609CONFIG_USB_XUSBATM=m 4626CONFIG_USB_XUSBATM=m
4610# CONFIG_USB_GADGET is not set 4627CONFIG_USB_PHY=y
4611
4612#
4613# OTG and related infrastructure
4614#
4615CONFIG_USB_OTG_UTILS=y
4616CONFIG_USB_GPIO_VBUS=m
4617CONFIG_NOP_USB_XCEIV=m 4628CONFIG_NOP_USB_XCEIV=m
4629# CONFIG_OMAP_CONTROL_USB is not set
4630# CONFIG_OMAP_USB3 is not set
4631# CONFIG_SAMSUNG_USBPHY is not set
4632# CONFIG_SAMSUNG_USB2PHY is not set
4633# CONFIG_SAMSUNG_USB3PHY is not set
4634CONFIG_USB_GPIO_VBUS=m
4635# CONFIG_USB_ISP1301 is not set
4636# CONFIG_USB_RCAR_PHY is not set
4637# CONFIG_USB_GADGET is not set
4618CONFIG_UWB=m 4638CONFIG_UWB=m
4619CONFIG_UWB_HWA=m 4639CONFIG_UWB_HWA=m
4620CONFIG_UWB_WHCI=m 4640CONFIG_UWB_WHCI=m
@@ -4677,6 +4697,7 @@ CONFIG_LEDS_GPIO=m
4677CONFIG_LEDS_LP3944=m 4697CONFIG_LEDS_LP3944=m
4678# CONFIG_LEDS_LP5521 is not set 4698# CONFIG_LEDS_LP5521 is not set
4679# CONFIG_LEDS_LP5523 is not set 4699# CONFIG_LEDS_LP5523 is not set
4700# CONFIG_LEDS_LP5562 is not set
4680CONFIG_LEDS_CLEVO_MAIL=m 4701CONFIG_LEDS_CLEVO_MAIL=m
4681CONFIG_LEDS_PCA955X=m 4702CONFIG_LEDS_PCA955X=m
4682# CONFIG_LEDS_PCA9633 is not set 4703# CONFIG_LEDS_PCA9633 is not set
@@ -4690,11 +4711,11 @@ CONFIG_LEDS_DELL_NETBOOKS=m
4690# CONFIG_LEDS_LM355x is not set 4711# CONFIG_LEDS_LM355x is not set
4691# CONFIG_LEDS_OT200 is not set 4712# CONFIG_LEDS_OT200 is not set
4692CONFIG_LEDS_BLINKM=m 4713CONFIG_LEDS_BLINKM=m
4693CONFIG_LEDS_TRIGGERS=y
4694 4714
4695# 4715#
4696# LED Triggers 4716# LED Triggers
4697# 4717#
4718CONFIG_LEDS_TRIGGERS=y
4698CONFIG_LEDS_TRIGGER_TIMER=m 4719CONFIG_LEDS_TRIGGER_TIMER=m
4699CONFIG_LEDS_TRIGGER_ONESHOT=m 4720CONFIG_LEDS_TRIGGER_ONESHOT=m
4700CONFIG_LEDS_TRIGGER_HEARTBEAT=m 4721CONFIG_LEDS_TRIGGER_HEARTBEAT=m
@@ -4707,6 +4728,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
4707# iptables trigger is under Netfilter config (LED target) 4728# iptables trigger is under Netfilter config (LED target)
4708# 4729#
4709CONFIG_LEDS_TRIGGER_TRANSIENT=m 4730CONFIG_LEDS_TRIGGER_TRANSIENT=m
4731# CONFIG_LEDS_TRIGGER_CAMERA is not set
4710CONFIG_ACCESSIBILITY=y 4732CONFIG_ACCESSIBILITY=y
4711# CONFIG_A11Y_BRAILLE_CONSOLE is not set 4733# CONFIG_A11Y_BRAILLE_CONSOLE is not set
4712CONFIG_INFINIBAND=m 4734CONFIG_INFINIBAND=m
@@ -4731,6 +4753,7 @@ CONFIG_INFINIBAND_IPOIB=m
4731CONFIG_INFINIBAND_SRP=m 4753CONFIG_INFINIBAND_SRP=m
4732CONFIG_INFINIBAND_SRPT=m 4754CONFIG_INFINIBAND_SRPT=m
4733CONFIG_INFINIBAND_ISER=m 4755CONFIG_INFINIBAND_ISER=m
4756# CONFIG_INFINIBAND_ISERT is not set
4734# CONFIG_EDAC is not set 4757# CONFIG_EDAC is not set
4735CONFIG_RTC_LIB=y 4758CONFIG_RTC_LIB=y
4736CONFIG_RTC_CLASS=y 4759CONFIG_RTC_CLASS=y
@@ -4826,6 +4849,7 @@ CONFIG_INTEL_IOATDMA=m
4826CONFIG_TIMB_DMA=m 4849CONFIG_TIMB_DMA=m
4827CONFIG_PCH_DMA=m 4850CONFIG_PCH_DMA=m
4828CONFIG_DMA_ENGINE=y 4851CONFIG_DMA_ENGINE=y
4852CONFIG_DMA_ACPI=y
4829 4853
4830# 4854#
4831# DMA Clients 4855# DMA Clients
@@ -4853,6 +4877,7 @@ CONFIG_VFIO_IOMMU_TYPE1=m
4853CONFIG_VFIO=m 4877CONFIG_VFIO=m
4854CONFIG_VFIO_PCI=m 4878CONFIG_VFIO_PCI=m
4855CONFIG_VFIO_PCI_VGA=y 4879CONFIG_VFIO_PCI_VGA=y
4880CONFIG_VIRT_DRIVERS=y
4856CONFIG_VIRTIO=m 4881CONFIG_VIRTIO=m
4857 4882
4858# 4883#
@@ -4937,6 +4962,7 @@ CONFIG_NET_VENDOR_SILICOM=y
4937# CONFIG_CED1401 is not set 4962# CONFIG_CED1401 is not set
4938# CONFIG_DGRP is not set 4963# CONFIG_DGRP is not set
4939# CONFIG_FIREWIRE_SERIAL is not set 4964# CONFIG_FIREWIRE_SERIAL is not set
4965# CONFIG_USB_DWC2 is not set
4940CONFIG_X86_PLATFORM_DEVICES=y 4966CONFIG_X86_PLATFORM_DEVICES=y
4941CONFIG_ACER_WMI=m 4967CONFIG_ACER_WMI=m
4942CONFIG_ACERHDF=m 4968CONFIG_ACERHDF=m
@@ -4985,6 +5011,7 @@ CONFIG_MXM_WMI=m
4985CONFIG_INTEL_OAKTRAIL=m 5011CONFIG_INTEL_OAKTRAIL=m
4986# CONFIG_SAMSUNG_Q10 is not set 5012# CONFIG_SAMSUNG_Q10 is not set
4987# CONFIG_APPLE_GMUX is not set 5013# CONFIG_APPLE_GMUX is not set
5014# CONFIG_PVPANIC is not set
4988 5015
4989# 5016#
4990# Hardware Spinlock drivers 5017# Hardware Spinlock drivers
@@ -5010,7 +5037,6 @@ CONFIG_STE_MODEM_RPROC=m
5010# 5037#
5011# Rpmsg drivers 5038# Rpmsg drivers
5012# 5039#
5013CONFIG_VIRT_DRIVERS=y
5014# CONFIG_PM_DEVFREQ is not set 5040# CONFIG_PM_DEVFREQ is not set
5015CONFIG_EXTCON=m 5041CONFIG_EXTCON=m
5016 5042
@@ -5023,6 +5049,7 @@ CONFIG_MEMORY=y
5023# CONFIG_VME_BUS is not set 5049# CONFIG_VME_BUS is not set
5024CONFIG_PWM=y 5050CONFIG_PWM=y
5025# CONFIG_IPACK_BUS is not set 5051# CONFIG_IPACK_BUS is not set
5052# CONFIG_RESET_CONTROLLER is not set
5026 5053
5027# 5054#
5028# Firmware Drivers 5055# Firmware Drivers
@@ -5076,6 +5103,7 @@ CONFIG_XFS_FS=m
5076CONFIG_XFS_QUOTA=y 5103CONFIG_XFS_QUOTA=y
5077CONFIG_XFS_POSIX_ACL=y 5104CONFIG_XFS_POSIX_ACL=y
5078CONFIG_XFS_RT=y 5105CONFIG_XFS_RT=y
5106# CONFIG_XFS_WARN is not set
5079# CONFIG_XFS_DEBUG is not set 5107# CONFIG_XFS_DEBUG is not set
5080CONFIG_GFS2_FS=m 5108CONFIG_GFS2_FS=m
5081CONFIG_GFS2_FS_LOCKING_DLM=y 5109CONFIG_GFS2_FS_LOCKING_DLM=y
@@ -5088,6 +5116,8 @@ CONFIG_OCFS2_DEBUG_MASKLOG=y
5088CONFIG_BTRFS_FS=m 5116CONFIG_BTRFS_FS=m
5089CONFIG_BTRFS_FS_POSIX_ACL=y 5117CONFIG_BTRFS_FS_POSIX_ACL=y
5090# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set 5118# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
5119# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
5120# CONFIG_BTRFS_DEBUG is not set
5091CONFIG_NILFS2_FS=m 5121CONFIG_NILFS2_FS=m
5092CONFIG_FS_POSIX_ACL=y 5122CONFIG_FS_POSIX_ACL=y
5093CONFIG_EXPORTFS=m 5123CONFIG_EXPORTFS=m
@@ -5397,6 +5427,8 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
5397# CONFIG_NOTIFIER_ERROR_INJECTION is not set 5427# CONFIG_NOTIFIER_ERROR_INJECTION is not set
5398# CONFIG_FAULT_INJECTION is not set 5428# CONFIG_FAULT_INJECTION is not set
5399CONFIG_LATENCYTOP=y 5429CONFIG_LATENCYTOP=y
5430CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
5431# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
5400# CONFIG_DEBUG_PAGEALLOC is not set 5432# CONFIG_DEBUG_PAGEALLOC is not set
5401CONFIG_USER_STACKTRACE_SUPPORT=y 5433CONFIG_USER_STACKTRACE_SUPPORT=y
5402CONFIG_HAVE_FUNCTION_TRACER=y 5434CONFIG_HAVE_FUNCTION_TRACER=y
@@ -5423,6 +5455,7 @@ CONFIG_TRACING_SUPPORT=y
5423CONFIG_HAVE_ARCH_KGDB=y 5455CONFIG_HAVE_ARCH_KGDB=y
5424# CONFIG_KGDB is not set 5456# CONFIG_KGDB is not set
5425CONFIG_HAVE_ARCH_KMEMCHECK=y 5457CONFIG_HAVE_ARCH_KMEMCHECK=y
5458# CONFIG_TEST_STRING_HELPERS is not set
5426CONFIG_TEST_KSTRTOX=m 5459CONFIG_TEST_KSTRTOX=m
5427CONFIG_STRICT_DEVMEM=y 5460CONFIG_STRICT_DEVMEM=y
5428# CONFIG_X86_VERBOSE_BOOTUP is not set 5461# CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -5431,6 +5464,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y
5431# CONFIG_X86_PTDUMP is not set 5464# CONFIG_X86_PTDUMP is not set
5432CONFIG_DEBUG_NX_TEST=m 5465CONFIG_DEBUG_NX_TEST=m
5433CONFIG_DOUBLEFAULT=y 5466CONFIG_DOUBLEFAULT=y
5467# CONFIG_DEBUG_TLBFLUSH is not set
5434# CONFIG_IOMMU_STRESS is not set 5468# CONFIG_IOMMU_STRESS is not set
5435CONFIG_HAVE_MMIOTRACE_SUPPORT=y 5469CONFIG_HAVE_MMIOTRACE_SUPPORT=y
5436CONFIG_X86_DECODER_SELFTEST=y 5470CONFIG_X86_DECODER_SELFTEST=y
@@ -5446,7 +5480,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
5446CONFIG_DEBUG_BOOT_PARAMS=y 5480CONFIG_DEBUG_BOOT_PARAMS=y
5447# CONFIG_CPA_DEBUG is not set 5481# CONFIG_CPA_DEBUG is not set
5448# CONFIG_OPTIMIZE_INLINING is not set 5482# CONFIG_OPTIMIZE_INLINING is not set
5449# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
5450CONFIG_DEBUG_NMI_SELFTEST=y 5483CONFIG_DEBUG_NMI_SELFTEST=y
5451 5484
5452# 5485#
@@ -5582,7 +5615,6 @@ CONFIG_GRKERNSEC_FORKFAIL=y
5582CONFIG_GRKERNSEC_TIME=y 5615CONFIG_GRKERNSEC_TIME=y
5583CONFIG_GRKERNSEC_PROC_IPADDR=y 5616CONFIG_GRKERNSEC_PROC_IPADDR=y
5584# CONFIG_GRKERNSEC_RWXMAP_LOG is not set 5617# CONFIG_GRKERNSEC_RWXMAP_LOG is not set
5585# CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set
5586 5618
5587# 5619#
5588# Executable Protections 5620# Executable Protections
@@ -5628,8 +5660,6 @@ CONFIG_ASYNC_MEMCPY=m
5628CONFIG_ASYNC_XOR=m 5660CONFIG_ASYNC_XOR=m
5629CONFIG_ASYNC_PQ=m 5661CONFIG_ASYNC_PQ=m
5630CONFIG_ASYNC_RAID6_RECOV=m 5662CONFIG_ASYNC_RAID6_RECOV=m
5631CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
5632CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
5633CONFIG_CRYPTO=y 5663CONFIG_CRYPTO=y
5634 5664
5635# 5665#
@@ -5682,6 +5712,7 @@ CONFIG_CRYPTO_XTS=m
5682# 5712#
5683# Hash modes 5713# Hash modes
5684# 5714#
5715# CONFIG_CRYPTO_CMAC is not set
5685CONFIG_CRYPTO_HMAC=m 5716CONFIG_CRYPTO_HMAC=m
5686CONFIG_CRYPTO_XCBC=m 5717CONFIG_CRYPTO_XCBC=m
5687CONFIG_CRYPTO_VMAC=m 5718CONFIG_CRYPTO_VMAC=m
@@ -5761,6 +5792,7 @@ CONFIG_PUBLIC_KEY_ALGO_RSA=m
5761CONFIG_X509_CERTIFICATE_PARSER=m 5792CONFIG_X509_CERTIFICATE_PARSER=m
5762CONFIG_HAVE_KVM=y 5793CONFIG_HAVE_KVM=y
5763CONFIG_HAVE_KVM_IRQCHIP=y 5794CONFIG_HAVE_KVM_IRQCHIP=y
5795CONFIG_HAVE_KVM_IRQ_ROUTING=y
5764CONFIG_HAVE_KVM_EVENTFD=y 5796CONFIG_HAVE_KVM_EVENTFD=y
5765CONFIG_KVM_APIC_ARCHITECTURE=y 5797CONFIG_KVM_APIC_ARCHITECTURE=y
5766CONFIG_KVM_MMIO=y 5798CONFIG_KVM_MMIO=y
@@ -5771,8 +5803,7 @@ CONFIG_VIRTUALIZATION=y
5771CONFIG_KVM=m 5803CONFIG_KVM=m
5772CONFIG_KVM_INTEL=m 5804CONFIG_KVM_INTEL=m
5773CONFIG_KVM_AMD=m 5805CONFIG_KVM_AMD=m
5774CONFIG_VHOST_NET=m 5806CONFIG_KVM_DEVICE_ASSIGNMENT=y
5775CONFIG_TCM_VHOST=m
5776# CONFIG_LGUEST is not set 5807# CONFIG_LGUEST is not set
5777# CONFIG_BINARY_PRINTF is not set 5808# CONFIG_BINARY_PRINTF is not set
5778 5809
diff --git a/main/linux-grsec/kernelconfig.x86_64 b/main/linux-grsec/kernelconfig.x86_64
index feaf716d88..3e48639202 100644
--- a/main/linux-grsec/kernelconfig.x86_64
+++ b/main/linux-grsec/kernelconfig.x86_64
@@ -1,6 +1,6 @@
1# 1#
2# Automatically generated file; DO NOT EDIT. 2# Automatically generated file; DO NOT EDIT.
3# Linux/x86 3.9.8 Kernel Configuration 3# Linux/x86 3.10.4 Kernel Configuration
4# 4#
5CONFIG_64BIT=y 5CONFIG_64BIT=y
6CONFIG_X86_64=y 6CONFIG_X86_64=y
@@ -18,12 +18,10 @@ CONFIG_GENERIC_ISA_DMA=y
18CONFIG_GENERIC_BUG=y 18CONFIG_GENERIC_BUG=y
19CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y 19CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
20CONFIG_GENERIC_HWEIGHT=y 20CONFIG_GENERIC_HWEIGHT=y
21CONFIG_GENERIC_GPIO=y
22CONFIG_ARCH_MAY_HAVE_PC_FDC=y 21CONFIG_ARCH_MAY_HAVE_PC_FDC=y
23CONFIG_RWSEM_XCHGADD_ALGORITHM=y 22CONFIG_RWSEM_XCHGADD_ALGORITHM=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_HAS_CPU_RELAX=y 24CONFIG_ARCH_HAS_CPU_RELAX=y
26CONFIG_ARCH_HAS_DEFAULT_IDLE=y
27CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y 25CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
28CONFIG_ARCH_HAS_CPU_AUTOPROBE=y 26CONFIG_ARCH_HAS_CPU_AUTOPROBE=y
29CONFIG_HAVE_SETUP_PER_CPU_AREA=y 27CONFIG_HAVE_SETUP_PER_CPU_AREA=y
@@ -96,6 +94,10 @@ CONFIG_GENERIC_CMOS_UPDATE=y
96# Timers subsystem 94# Timers subsystem
97# 95#
98CONFIG_TICK_ONESHOT=y 96CONFIG_TICK_ONESHOT=y
97CONFIG_NO_HZ_COMMON=y
98# CONFIG_HZ_PERIODIC is not set
99CONFIG_NO_HZ_IDLE=y
100# CONFIG_NO_HZ_FULL is not set
99CONFIG_NO_HZ=y 101CONFIG_NO_HZ=y
100CONFIG_HIGH_RES_TIMERS=y 102CONFIG_HIGH_RES_TIMERS=y
101 103
@@ -165,19 +167,19 @@ CONFIG_RD_LZO=y
165CONFIG_CC_OPTIMIZE_FOR_SIZE=y 167CONFIG_CC_OPTIMIZE_FOR_SIZE=y
166CONFIG_SYSCTL=y 168CONFIG_SYSCTL=y
167CONFIG_ANON_INODES=y 169CONFIG_ANON_INODES=y
168CONFIG_EXPERT=y
169CONFIG_HAVE_UID16=y 170CONFIG_HAVE_UID16=y
171CONFIG_SYSCTL_EXCEPTION_TRACE=y
172CONFIG_HOTPLUG=y
173CONFIG_HAVE_PCSPKR_PLATFORM=y
174CONFIG_EXPERT=y
170CONFIG_UID16=y 175CONFIG_UID16=y
171CONFIG_SYSCTL_SYSCALL=y 176CONFIG_SYSCTL_SYSCALL=y
172CONFIG_SYSCTL_EXCEPTION_TRACE=y
173CONFIG_KALLSYMS=y 177CONFIG_KALLSYMS=y
174CONFIG_KALLSYMS_ALL=y 178CONFIG_KALLSYMS_ALL=y
175CONFIG_HOTPLUG=y
176CONFIG_PRINTK=y 179CONFIG_PRINTK=y
177CONFIG_BUG=y 180CONFIG_BUG=y
178CONFIG_ELF_CORE=y 181CONFIG_ELF_CORE=y
179CONFIG_PCSPKR_PLATFORM=y 182CONFIG_PCSPKR_PLATFORM=y
180CONFIG_HAVE_PCSPKR_PLATFORM=y
181CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
182CONFIG_FUTEX=y 184CONFIG_FUTEX=y
183CONFIG_EPOLL=y 185CONFIG_EPOLL=y
@@ -186,6 +188,7 @@ CONFIG_TIMERFD=y
186CONFIG_EVENTFD=y 188CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 189CONFIG_SHMEM=y
188CONFIG_AIO=y 190CONFIG_AIO=y
191CONFIG_PCI_QUIRKS=y
189CONFIG_EMBEDDED=y 192CONFIG_EMBEDDED=y
190CONFIG_HAVE_PERF_EVENTS=y 193CONFIG_HAVE_PERF_EVENTS=y
191 194
@@ -195,7 +198,6 @@ CONFIG_HAVE_PERF_EVENTS=y
195CONFIG_PERF_EVENTS=y 198CONFIG_PERF_EVENTS=y
196# CONFIG_DEBUG_PERF_USE_VMALLOC is not set 199# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
197CONFIG_VM_EVENT_COUNTERS=y 200CONFIG_VM_EVENT_COUNTERS=y
198CONFIG_PCI_QUIRKS=y
199# CONFIG_SLUB_DEBUG is not set 201# CONFIG_SLUB_DEBUG is not set
200# CONFIG_COMPAT_BRK is not set 202# CONFIG_COMPAT_BRK is not set
201# CONFIG_SLAB is not set 203# CONFIG_SLAB is not set
@@ -323,8 +325,10 @@ CONFIG_X86_EXTENDED_PLATFORM=y
323# CONFIG_X86_VSMP is not set 325# CONFIG_X86_VSMP is not set
324# CONFIG_X86_INTEL_LPSS is not set 326# CONFIG_X86_INTEL_LPSS is not set
325CONFIG_SCHED_OMIT_FRAME_POINTER=y 327CONFIG_SCHED_OMIT_FRAME_POINTER=y
326CONFIG_PARAVIRT_GUEST=y 328CONFIG_HYPERVISOR_GUEST=y
327# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set 329CONFIG_PARAVIRT=y
330# CONFIG_PARAVIRT_DEBUG is not set
331# CONFIG_PARAVIRT_SPINLOCKS is not set
328CONFIG_XEN=y 332CONFIG_XEN=y
329CONFIG_XEN_DOM0=y 333CONFIG_XEN_DOM0=y
330CONFIG_XEN_PRIVILEGED_GUEST=y 334CONFIG_XEN_PRIVILEGED_GUEST=y
@@ -333,10 +337,8 @@ CONFIG_XEN_MAX_DOMAIN_MEMORY=500
333CONFIG_XEN_SAVE_RESTORE=y 337CONFIG_XEN_SAVE_RESTORE=y
334# CONFIG_XEN_DEBUG_FS is not set 338# CONFIG_XEN_DEBUG_FS is not set
335CONFIG_KVM_GUEST=y 339CONFIG_KVM_GUEST=y
336CONFIG_PARAVIRT=y 340# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
337# CONFIG_PARAVIRT_SPINLOCKS is not set
338CONFIG_PARAVIRT_CLOCK=y 341CONFIG_PARAVIRT_CLOCK=y
339# CONFIG_PARAVIRT_DEBUG is not set
340CONFIG_NO_BOOTMEM=y 342CONFIG_NO_BOOTMEM=y
341# CONFIG_MEMTEST is not set 343# CONFIG_MEMTEST is not set
342# CONFIG_MK8 is not set 344# CONFIG_MK8 is not set
@@ -526,6 +528,7 @@ CONFIG_X86_PCC_CPUFREQ=m
526CONFIG_X86_ACPI_CPUFREQ=m 528CONFIG_X86_ACPI_CPUFREQ=m
527# CONFIG_X86_ACPI_CPUFREQ_CPB is not set 529# CONFIG_X86_ACPI_CPUFREQ_CPB is not set
528CONFIG_X86_POWERNOW_K8=m 530CONFIG_X86_POWERNOW_K8=m
531# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set
529CONFIG_X86_SPEEDSTEP_CENTRINO=m 532CONFIG_X86_SPEEDSTEP_CENTRINO=m
530CONFIG_X86_P4_CLOCKMOD=m 533CONFIG_X86_P4_CLOCKMOD=m
531 534
@@ -596,8 +599,6 @@ CONFIG_PD6729=m
596CONFIG_I82092=m 599CONFIG_I82092=m
597CONFIG_PCCARD_NONSTATIC=y 600CONFIG_PCCARD_NONSTATIC=y
598CONFIG_HOTPLUG_PCI=m 601CONFIG_HOTPLUG_PCI=m
599CONFIG_HOTPLUG_PCI_ACPI=m
600CONFIG_HOTPLUG_PCI_ACPI_IBM=m
601CONFIG_HOTPLUG_PCI_CPCI=y 602CONFIG_HOTPLUG_PCI_CPCI=y
602CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m 603CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
603CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m 604CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
@@ -611,6 +612,7 @@ CONFIG_BINFMT_ELF=y
611CONFIG_COMPAT_BINFMT_ELF=y 612CONFIG_COMPAT_BINFMT_ELF=y
612CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y 613CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
613# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 614# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
615CONFIG_BINFMT_SCRIPT=y
614# CONFIG_HAVE_AOUT is not set 616# CONFIG_HAVE_AOUT is not set
615CONFIG_BINFMT_MISC=m 617CONFIG_BINFMT_MISC=m
616CONFIG_COREDUMP=y 618CONFIG_COREDUMP=y
@@ -653,6 +655,7 @@ CONFIG_IP_ROUTE_CLASSID=y
653# CONFIG_IP_PNP is not set 655# CONFIG_IP_PNP is not set
654CONFIG_NET_IPIP=m 656CONFIG_NET_IPIP=m
655CONFIG_NET_IPGRE_DEMUX=y 657CONFIG_NET_IPGRE_DEMUX=y
658CONFIG_NET_IP_TUNNEL=m
656CONFIG_NET_IPGRE=m 659CONFIG_NET_IPGRE=m
657CONFIG_NET_IPGRE_BROADCAST=y 660CONFIG_NET_IPGRE_BROADCAST=y
658CONFIG_IP_MROUTE=y 661CONFIG_IP_MROUTE=y
@@ -1017,6 +1020,7 @@ CONFIG_RDS=m
1017# CONFIG_RDS_DEBUG is not set 1020# CONFIG_RDS_DEBUG is not set
1018CONFIG_TIPC=m 1021CONFIG_TIPC=m
1019CONFIG_TIPC_PORTS=8191 1022CONFIG_TIPC_PORTS=8191
1023# CONFIG_TIPC_MEDIA_IB is not set
1020CONFIG_ATM=m 1024CONFIG_ATM=m
1021CONFIG_ATM_CLIP=m 1025CONFIG_ATM_CLIP=m
1022# CONFIG_ATM_CLIP_NO_ICMP is not set 1026# CONFIG_ATM_CLIP_NO_ICMP is not set
@@ -1052,7 +1056,6 @@ CONFIG_ATALK=m
1052CONFIG_DEV_APPLETALK=m 1056CONFIG_DEV_APPLETALK=m
1053CONFIG_IPDDP=m 1057CONFIG_IPDDP=m
1054CONFIG_IPDDP_ENCAP=y 1058CONFIG_IPDDP_ENCAP=y
1055CONFIG_IPDDP_DECAP=y
1056CONFIG_X25=m 1059CONFIG_X25=m
1057CONFIG_LAPB=m 1060CONFIG_LAPB=m
1058CONFIG_PHONET=m 1061CONFIG_PHONET=m
@@ -1129,6 +1132,8 @@ CONFIG_DNS_RESOLVER=y
1129CONFIG_OPENVSWITCH=m 1132CONFIG_OPENVSWITCH=m
1130CONFIG_VSOCKETS=m 1133CONFIG_VSOCKETS=m
1131CONFIG_VMWARE_VMCI_VSOCKETS=m 1134CONFIG_VMWARE_VMCI_VSOCKETS=m
1135CONFIG_NETLINK_MMAP=y
1136CONFIG_NETLINK_DIAG=y
1132CONFIG_RPS=y 1137CONFIG_RPS=y
1133CONFIG_RFS_ACCEL=y 1138CONFIG_RFS_ACCEL=y
1134CONFIG_XPS=y 1139CONFIG_XPS=y
@@ -1326,8 +1331,6 @@ CONFIG_MTD_AR7_PARTS=m
1326# 1331#
1327# User Modules And Translation Layers 1332# User Modules And Translation Layers
1328# 1333#
1329CONFIG_MTD_CHAR=m
1330CONFIG_HAVE_MTD_OTP=y
1331CONFIG_MTD_BLKDEVS=m 1334CONFIG_MTD_BLKDEVS=m
1332CONFIG_MTD_BLOCK=m 1335CONFIG_MTD_BLOCK=m
1333CONFIG_MTD_BLOCK_RO=m 1336CONFIG_MTD_BLOCK_RO=m
@@ -1413,22 +1416,12 @@ CONFIG_MTD_BLOCK2MTD=m
1413# 1416#
1414# Disk-On-Chip Device Drivers 1417# Disk-On-Chip Device Drivers
1415# 1418#
1416CONFIG_MTD_DOC2000=m
1417CONFIG_MTD_DOC2001=m
1418CONFIG_MTD_DOC2001PLUS=m
1419# CONFIG_MTD_DOCG3 is not set 1419# CONFIG_MTD_DOCG3 is not set
1420CONFIG_MTD_DOCPROBE=m
1421CONFIG_MTD_DOCECC=m
1422CONFIG_MTD_DOCPROBE_ADVANCED=y
1423CONFIG_MTD_DOCPROBE_ADDRESS=0x0000
1424# CONFIG_MTD_DOCPROBE_HIGH is not set
1425# CONFIG_MTD_DOCPROBE_55AA is not set
1426CONFIG_MTD_NAND_ECC=m 1420CONFIG_MTD_NAND_ECC=m
1427CONFIG_MTD_NAND_ECC_SMC=y 1421CONFIG_MTD_NAND_ECC_SMC=y
1428CONFIG_MTD_NAND=m 1422CONFIG_MTD_NAND=m
1429# CONFIG_MTD_NAND_ECC_BCH is not set 1423# CONFIG_MTD_NAND_ECC_BCH is not set
1430CONFIG_MTD_SM_COMMON=m 1424CONFIG_MTD_SM_COMMON=m
1431# CONFIG_MTD_NAND_MUSEUM_IDS is not set
1432CONFIG_MTD_NAND_DENALI=m 1425CONFIG_MTD_NAND_DENALI=m
1433# CONFIG_MTD_NAND_DENALI_PCI is not set 1426# CONFIG_MTD_NAND_DENALI_PCI is not set
1434CONFIG_MTD_NAND_IDS=m 1427CONFIG_MTD_NAND_IDS=m
@@ -1447,7 +1440,6 @@ CONFIG_MTD_ONENAND=m
1447# CONFIG_MTD_ONENAND_GENERIC is not set 1440# CONFIG_MTD_ONENAND_GENERIC is not set
1448CONFIG_MTD_ONENAND_OTP=y 1441CONFIG_MTD_ONENAND_OTP=y
1449CONFIG_MTD_ONENAND_2X_PROGRAM=y 1442CONFIG_MTD_ONENAND_2X_PROGRAM=y
1450CONFIG_MTD_ONENAND_SIM=m
1451 1443
1452# 1444#
1453# LPDDR flash memory drivers 1445# LPDDR flash memory drivers
@@ -1517,6 +1509,7 @@ CONFIG_SENSORS_LIS3LV02D=m
1517CONFIG_AD525X_DPOT=m 1509CONFIG_AD525X_DPOT=m
1518CONFIG_AD525X_DPOT_I2C=m 1510CONFIG_AD525X_DPOT_I2C=m
1519CONFIG_AD525X_DPOT_SPI=m 1511CONFIG_AD525X_DPOT_SPI=m
1512# CONFIG_DUMMY_IRQ is not set
1520CONFIG_IBM_ASM=m 1513CONFIG_IBM_ASM=m
1521CONFIG_PHANTOM=m 1514CONFIG_PHANTOM=m
1522# CONFIG_INTEL_MID_PTI is not set 1515# CONFIG_INTEL_MID_PTI is not set
@@ -1546,6 +1539,7 @@ CONFIG_VMWARE_BALLOON=m
1546CONFIG_PCH_PHUB=m 1539CONFIG_PCH_PHUB=m
1547# CONFIG_USB_SWITCH_FSA9480 is not set 1540# CONFIG_USB_SWITCH_FSA9480 is not set
1548# CONFIG_LATTICE_ECP3_CONFIG is not set 1541# CONFIG_LATTICE_ECP3_CONFIG is not set
1542# CONFIG_SRAM is not set
1549CONFIG_C2PORT=m 1543CONFIG_C2PORT=m
1550CONFIG_C2PORT_DURAMAR_2150=m 1544CONFIG_C2PORT_DURAMAR_2150=m
1551 1545
@@ -1573,6 +1567,7 @@ CONFIG_SENSORS_LIS3_I2C=m
1573# 1567#
1574CONFIG_ALTERA_STAPL=m 1568CONFIG_ALTERA_STAPL=m
1575# CONFIG_INTEL_MEI is not set 1569# CONFIG_INTEL_MEI is not set
1570# CONFIG_INTEL_MEI_ME is not set
1576CONFIG_VMWARE_VMCI=m 1571CONFIG_VMWARE_VMCI=m
1577CONFIG_HAVE_IDE=y 1572CONFIG_HAVE_IDE=y
1578# CONFIG_IDE is not set 1573# CONFIG_IDE is not set
@@ -1668,6 +1663,7 @@ CONFIG_SCSI_MPT3SAS_MAX_SGE=128
1668# CONFIG_SCSI_MPT3SAS_LOGGING is not set 1663# CONFIG_SCSI_MPT3SAS_LOGGING is not set
1669CONFIG_SCSI_UFSHCD=m 1664CONFIG_SCSI_UFSHCD=m
1670CONFIG_SCSI_UFSHCD_PCI=m 1665CONFIG_SCSI_UFSHCD_PCI=m
1666# CONFIG_SCSI_UFSHCD_PLATFORM is not set
1671CONFIG_SCSI_HPTIOP=m 1667CONFIG_SCSI_HPTIOP=m
1672CONFIG_SCSI_BUSLOGIC=m 1668CONFIG_SCSI_BUSLOGIC=m
1673CONFIG_VMWARE_PVSCSI=m 1669CONFIG_VMWARE_PVSCSI=m
@@ -1833,6 +1829,7 @@ CONFIG_MD_RAID10=m
1833CONFIG_MD_RAID456=m 1829CONFIG_MD_RAID456=m
1834CONFIG_MD_MULTIPATH=m 1830CONFIG_MD_MULTIPATH=m
1835CONFIG_MD_FAULTY=m 1831CONFIG_MD_FAULTY=m
1832# CONFIG_BCACHE is not set
1836CONFIG_BLK_DEV_DM=m 1833CONFIG_BLK_DEV_DM=m
1837# CONFIG_DM_DEBUG is not set 1834# CONFIG_DM_DEBUG is not set
1838CONFIG_DM_BUFIO=m 1835CONFIG_DM_BUFIO=m
@@ -1902,6 +1899,7 @@ CONFIG_IFB=m
1902CONFIG_NET_TEAM=m 1899CONFIG_NET_TEAM=m
1903CONFIG_NET_TEAM_MODE_BROADCAST=m 1900CONFIG_NET_TEAM_MODE_BROADCAST=m
1904CONFIG_NET_TEAM_MODE_ROUNDROBIN=m 1901CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
1902# CONFIG_NET_TEAM_MODE_RANDOM is not set
1905CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m 1903CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
1906CONFIG_NET_TEAM_MODE_LOADBALANCE=m 1904CONFIG_NET_TEAM_MODE_LOADBALANCE=m
1907CONFIG_MACVLAN=m 1905CONFIG_MACVLAN=m
@@ -1962,6 +1960,9 @@ CONFIG_ATM_SOLOS=m
1962# 1960#
1963# CAIF transport drivers 1961# CAIF transport drivers
1964# 1962#
1963CONFIG_VHOST_NET=m
1964# CONFIG_VHOST_SCSI is not set
1965CONFIG_VHOST_RING=m
1965 1966
1966# 1967#
1967# Distributed Switch Architecture drivers 1968# Distributed Switch Architecture drivers
@@ -1992,6 +1993,7 @@ CONFIG_ATL2=m
1992CONFIG_ATL1=m 1993CONFIG_ATL1=m
1993CONFIG_ATL1E=m 1994CONFIG_ATL1E=m
1994CONFIG_ATL1C=m 1995CONFIG_ATL1C=m
1996# CONFIG_ALX is not set
1995CONFIG_NET_CADENCE=y 1997CONFIG_NET_CADENCE=y
1996# CONFIG_ARM_AT91_ETHER is not set 1998# CONFIG_ARM_AT91_ETHER is not set
1997# CONFIG_MACB is not set 1999# CONFIG_MACB is not set
@@ -2101,6 +2103,7 @@ CONFIG_YELLOWFIN=m
2101CONFIG_NET_VENDOR_QLOGIC=y 2103CONFIG_NET_VENDOR_QLOGIC=y
2102CONFIG_QLA3XXX=m 2104CONFIG_QLA3XXX=m
2103CONFIG_QLCNIC=m 2105CONFIG_QLCNIC=m
2106CONFIG_QLCNIC_SRIOV=y
2104CONFIG_QLGE=m 2107CONFIG_QLGE=m
2105CONFIG_NETXEN_NIC=m 2108CONFIG_NETXEN_NIC=m
2106CONFIG_NET_VENDOR_REALTEK=y 2109CONFIG_NET_VENDOR_REALTEK=y
@@ -2134,8 +2137,6 @@ CONFIG_STMMAC_ETH=m
2134# CONFIG_STMMAC_PCI is not set 2137# CONFIG_STMMAC_PCI is not set
2135# CONFIG_STMMAC_DEBUG_FS is not set 2138# CONFIG_STMMAC_DEBUG_FS is not set
2136# CONFIG_STMMAC_DA is not set 2139# CONFIG_STMMAC_DA is not set
2137CONFIG_STMMAC_RING=y
2138# CONFIG_STMMAC_CHAINED is not set
2139CONFIG_NET_VENDOR_SUN=y 2140CONFIG_NET_VENDOR_SUN=y
2140CONFIG_HAPPYMEAL=m 2141CONFIG_HAPPYMEAL=m
2141CONFIG_SUNGEM=m 2142CONFIG_SUNGEM=m
@@ -2216,6 +2217,7 @@ CONFIG_USB_CATC=m
2216CONFIG_USB_KAWETH=m 2217CONFIG_USB_KAWETH=m
2217CONFIG_USB_PEGASUS=m 2218CONFIG_USB_PEGASUS=m
2218CONFIG_USB_RTL8150=m 2219CONFIG_USB_RTL8150=m
2220# CONFIG_USB_RTL8152 is not set
2219CONFIG_USB_USBNET=m 2221CONFIG_USB_USBNET=m
2220CONFIG_USB_NET_AX8817X=m 2222CONFIG_USB_NET_AX8817X=m
2221CONFIG_USB_NET_AX88179_178A=m 2223CONFIG_USB_NET_AX88179_178A=m
@@ -2305,7 +2307,6 @@ CONFIG_B43_SDIO=y
2305CONFIG_B43_PIO=y 2307CONFIG_B43_PIO=y
2306CONFIG_B43_PHY_N=y 2308CONFIG_B43_PHY_N=y
2307CONFIG_B43_PHY_LP=y 2309CONFIG_B43_PHY_LP=y
2308CONFIG_B43_PHY_HT=y
2309CONFIG_B43_LEDS=y 2310CONFIG_B43_LEDS=y
2310CONFIG_B43_HWRNG=y 2311CONFIG_B43_HWRNG=y
2311# CONFIG_B43_DEBUG is not set 2312# CONFIG_B43_DEBUG is not set
@@ -2341,6 +2342,7 @@ CONFIG_LIBIPW=m
2341CONFIG_IWLWIFI=m 2342CONFIG_IWLWIFI=m
2342CONFIG_IWLDVM=m 2343CONFIG_IWLDVM=m
2343CONFIG_IWLMVM=m 2344CONFIG_IWLMVM=m
2345CONFIG_IWLWIFI_OPMODE_MODULAR=y
2344 2346
2345# 2347#
2346# Debugging Options 2348# Debugging Options
@@ -2392,6 +2394,7 @@ CONFIG_RT2800USB=m
2392CONFIG_RT2800USB_RT33XX=y 2394CONFIG_RT2800USB_RT33XX=y
2393# CONFIG_RT2800USB_RT35XX is not set 2395# CONFIG_RT2800USB_RT35XX is not set
2394CONFIG_RT2800USB_RT53XX=y 2396CONFIG_RT2800USB_RT53XX=y
2397# CONFIG_RT2800USB_RT55XX is not set
2395CONFIG_RT2800USB_UNKNOWN=y 2398CONFIG_RT2800USB_UNKNOWN=y
2396CONFIG_RT2800_LIB=m 2399CONFIG_RT2800_LIB=m
2397CONFIG_RT2X00_LIB_MMIO=m 2400CONFIG_RT2X00_LIB_MMIO=m
@@ -2408,6 +2411,7 @@ CONFIG_RTL8192CE=m
2408CONFIG_RTL8192SE=m 2411CONFIG_RTL8192SE=m
2409CONFIG_RTL8192DE=m 2412CONFIG_RTL8192DE=m
2410CONFIG_RTL8723AE=m 2413CONFIG_RTL8723AE=m
2414# CONFIG_RTL8188EE is not set
2411CONFIG_RTL8192CU=m 2415CONFIG_RTL8192CU=m
2412CONFIG_RTL8192C_COMMON=m 2416CONFIG_RTL8192C_COMMON=m
2413CONFIG_WL_TI=y 2417CONFIG_WL_TI=y
@@ -2670,6 +2674,7 @@ CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
2670CONFIG_INPUT_ADXL34X=m 2674CONFIG_INPUT_ADXL34X=m
2671CONFIG_INPUT_ADXL34X_I2C=m 2675CONFIG_INPUT_ADXL34X_I2C=m
2672CONFIG_INPUT_ADXL34X_SPI=m 2676CONFIG_INPUT_ADXL34X_SPI=m
2677# CONFIG_INPUT_IMS_PCU is not set
2673CONFIG_INPUT_CMA3000=m 2678CONFIG_INPUT_CMA3000=m
2674CONFIG_INPUT_CMA3000_I2C=m 2679CONFIG_INPUT_CMA3000_I2C=m
2675CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m 2680CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
@@ -2912,6 +2917,11 @@ CONFIG_SPI_DW_PCI=m
2912# 2917#
2913CONFIG_SPI_SPIDEV=m 2918CONFIG_SPI_SPIDEV=m
2914CONFIG_SPI_TLE62X0=m 2919CONFIG_SPI_TLE62X0=m
2920
2921#
2922# Qualcomm MSM SSBI bus support
2923#
2924# CONFIG_SSBI is not set
2915# CONFIG_HSI is not set 2925# CONFIG_HSI is not set
2916 2926
2917# 2927#
@@ -3039,6 +3049,7 @@ CONFIG_SENSORS_ADM1026=m
3039CONFIG_SENSORS_ADM1029=m 3049CONFIG_SENSORS_ADM1029=m
3040CONFIG_SENSORS_ADM1031=m 3050CONFIG_SENSORS_ADM1031=m
3041CONFIG_SENSORS_ADM9240=m 3051CONFIG_SENSORS_ADM9240=m
3052# CONFIG_SENSORS_ADT7310 is not set
3042# CONFIG_SENSORS_ADT7410 is not set 3053# CONFIG_SENSORS_ADT7410 is not set
3043CONFIG_SENSORS_ADT7411=m 3054CONFIG_SENSORS_ADT7411=m
3044CONFIG_SENSORS_ADT7462=m 3055CONFIG_SENSORS_ADT7462=m
@@ -3085,6 +3096,7 @@ CONFIG_SENSORS_LTC4151=m
3085CONFIG_SENSORS_LTC4215=m 3096CONFIG_SENSORS_LTC4215=m
3086CONFIG_SENSORS_LTC4245=m 3097CONFIG_SENSORS_LTC4245=m
3087CONFIG_SENSORS_LTC4261=m 3098CONFIG_SENSORS_LTC4261=m
3099# CONFIG_SENSORS_LM95234 is not set
3088CONFIG_SENSORS_LM95241=m 3100CONFIG_SENSORS_LM95241=m
3089CONFIG_SENSORS_LM95245=m 3101CONFIG_SENSORS_LM95245=m
3090CONFIG_SENSORS_MAX1111=m 3102CONFIG_SENSORS_MAX1111=m
@@ -3097,6 +3109,7 @@ CONFIG_SENSORS_MAX6642=m
3097CONFIG_SENSORS_MAX6650=m 3109CONFIG_SENSORS_MAX6650=m
3098CONFIG_SENSORS_MAX6697=m 3110CONFIG_SENSORS_MAX6697=m
3099CONFIG_SENSORS_MCP3021=m 3111CONFIG_SENSORS_MCP3021=m
3112# CONFIG_SENSORS_NCT6775 is not set
3100CONFIG_SENSORS_NTC_THERMISTOR=m 3113CONFIG_SENSORS_NTC_THERMISTOR=m
3101CONFIG_SENSORS_PC87360=m 3114CONFIG_SENSORS_PC87360=m
3102CONFIG_SENSORS_PC87427=m 3115CONFIG_SENSORS_PC87427=m
@@ -3254,41 +3267,45 @@ CONFIG_BCMA_POSSIBLE=y
3254# Multifunction device drivers 3267# Multifunction device drivers
3255# 3268#
3256CONFIG_MFD_CORE=m 3269CONFIG_MFD_CORE=m
3270CONFIG_MFD_CS5535=m
3271# CONFIG_MFD_CROS_EC is not set
3272# CONFIG_MFD_DA9052_SPI is not set
3273# CONFIG_MFD_MC13XXX_SPI is not set
3274# CONFIG_MFD_MC13XXX_I2C is not set
3275CONFIG_HTC_PASIC3=m
3276CONFIG_LPC_ICH=m
3277CONFIG_LPC_SCH=m
3278CONFIG_MFD_JANZ_CMODIO=m
3279# CONFIG_EZX_PCAP is not set
3280# CONFIG_MFD_VIPERBOARD is not set
3281# CONFIG_MFD_RETU is not set
3282CONFIG_MFD_PCF50633=m
3283CONFIG_PCF50633_ADC=m
3284CONFIG_PCF50633_GPIO=m
3285CONFIG_UCB1400_CORE=m
3286CONFIG_MFD_RDC321X=m
3287# CONFIG_MFD_RTSX_PCI is not set
3288# CONFIG_MFD_SI476X_CORE is not set
3257CONFIG_MFD_SM501=m 3289CONFIG_MFD_SM501=m
3258# CONFIG_MFD_SM501_GPIO is not set 3290# CONFIG_MFD_SM501_GPIO is not set
3259# CONFIG_MFD_RTSX_PCI is not set 3291CONFIG_ABX500_CORE=y
3292# CONFIG_MFD_STMPE is not set
3293# CONFIG_MFD_SYSCON is not set
3260# CONFIG_MFD_TI_AM335X_TSCADC is not set 3294# CONFIG_MFD_TI_AM335X_TSCADC is not set
3261CONFIG_HTC_PASIC3=m
3262CONFIG_UCB1400_CORE=m
3263# CONFIG_MFD_LM3533 is not set
3264# CONFIG_TPS6105X is not set 3295# CONFIG_TPS6105X is not set
3265CONFIG_TPS65010=m 3296CONFIG_TPS65010=m
3266CONFIG_TPS6507X=m 3297CONFIG_TPS6507X=m
3267# CONFIG_MFD_TPS65217 is not set 3298# CONFIG_MFD_TPS65217 is not set
3299# CONFIG_MFD_TPS65912 is not set
3268# CONFIG_MFD_TPS65912_SPI is not set 3300# CONFIG_MFD_TPS65912_SPI is not set
3269# CONFIG_MFD_STMPE is not set 3301CONFIG_MFD_WL1273_CORE=m
3302# CONFIG_MFD_LM3533 is not set
3303CONFIG_MFD_TIMBERDALE=m
3270# CONFIG_MFD_TMIO is not set 3304# CONFIG_MFD_TMIO is not set
3271# CONFIG_MFD_DA9052_SPI is not set 3305CONFIG_MFD_VX855=m
3272# CONFIG_MFD_ARIZONA_I2C is not set 3306# CONFIG_MFD_ARIZONA_I2C is not set
3273# CONFIG_MFD_ARIZONA_SPI is not set 3307# CONFIG_MFD_ARIZONA_SPI is not set
3274# CONFIG_MFD_WM831X_SPI is not set 3308# CONFIG_MFD_WM831X_SPI is not set
3275CONFIG_MFD_PCF50633=m
3276CONFIG_PCF50633_ADC=m
3277CONFIG_PCF50633_GPIO=m
3278# CONFIG_MFD_MC13XXX_SPI is not set
3279# CONFIG_MFD_MC13XXX_I2C is not set
3280CONFIG_ABX500_CORE=y
3281# CONFIG_EZX_PCAP is not set
3282CONFIG_MFD_CS5535=m
3283CONFIG_MFD_TIMBERDALE=m
3284CONFIG_LPC_SCH=m
3285CONFIG_LPC_ICH=m
3286CONFIG_MFD_RDC321X=m
3287CONFIG_MFD_JANZ_CMODIO=m
3288CONFIG_MFD_VX855=m
3289CONFIG_MFD_WL1273_CORE=m
3290# CONFIG_MFD_VIPERBOARD is not set
3291# CONFIG_MFD_RETU is not set
3292# CONFIG_REGULATOR is not set 3309# CONFIG_REGULATOR is not set
3293CONFIG_MEDIA_SUPPORT=m 3310CONFIG_MEDIA_SUPPORT=m
3294 3311
@@ -3455,7 +3472,6 @@ CONFIG_DVB_USB_FRIIO=m
3455CONFIG_DVB_USB_AZ6027=m 3472CONFIG_DVB_USB_AZ6027=m
3456CONFIG_DVB_USB_TECHNISAT_USB2=m 3473CONFIG_DVB_USB_TECHNISAT_USB2=m
3457CONFIG_DVB_USB_V2=m 3474CONFIG_DVB_USB_V2=m
3458CONFIG_DVB_USB_CYPRESS_FIRMWARE=m
3459CONFIG_DVB_USB_AF9015=m 3475CONFIG_DVB_USB_AF9015=m
3460CONFIG_DVB_USB_AF9035=m 3476CONFIG_DVB_USB_AF9035=m
3461CONFIG_DVB_USB_ANYSEE=m 3477CONFIG_DVB_USB_ANYSEE=m
@@ -3553,6 +3569,7 @@ CONFIG_DVB_FIREDTV_INPUT=y
3553CONFIG_VIDEO_CX2341X=m 3569CONFIG_VIDEO_CX2341X=m
3554CONFIG_VIDEO_BTCX=m 3570CONFIG_VIDEO_BTCX=m
3555CONFIG_VIDEO_TVEEPROM=m 3571CONFIG_VIDEO_TVEEPROM=m
3572CONFIG_CYPRESS_FIRMWARE=m
3556CONFIG_DVB_B2C2_FLEXCOP=m 3573CONFIG_DVB_B2C2_FLEXCOP=m
3557CONFIG_VIDEO_SAA7146=m 3574CONFIG_VIDEO_SAA7146=m
3558CONFIG_VIDEO_SAA7146_VV=m 3575CONFIG_VIDEO_SAA7146_VV=m
@@ -3561,6 +3578,7 @@ CONFIG_VIDEO_SAA7146_VV=m
3561# Media ancillary drivers (tuners, sensors, i2c, frontends) 3578# Media ancillary drivers (tuners, sensors, i2c, frontends)
3562# 3579#
3563CONFIG_MEDIA_SUBDRV_AUTOSELECT=y 3580CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
3581CONFIG_MEDIA_ATTACH=y
3564CONFIG_VIDEO_IR_I2C=m 3582CONFIG_VIDEO_IR_I2C=m
3565 3583
3566# 3584#
@@ -3612,7 +3630,6 @@ CONFIG_VIDEO_MT9V011=m
3612# 3630#
3613# Sensors used on soc_camera driver 3631# Sensors used on soc_camera driver
3614# 3632#
3615CONFIG_MEDIA_ATTACH=y
3616CONFIG_MEDIA_TUNER_SIMPLE=m 3633CONFIG_MEDIA_TUNER_SIMPLE=m
3617CONFIG_MEDIA_TUNER_TDA8290=m 3634CONFIG_MEDIA_TUNER_TDA8290=m
3618CONFIG_MEDIA_TUNER_TDA827X=m 3635CONFIG_MEDIA_TUNER_TDA827X=m
@@ -3638,6 +3655,8 @@ CONFIG_MEDIA_TUNER_TDA18212=m
3638CONFIG_MEDIA_TUNER_E4000=m 3655CONFIG_MEDIA_TUNER_E4000=m
3639CONFIG_MEDIA_TUNER_FC2580=m 3656CONFIG_MEDIA_TUNER_FC2580=m
3640CONFIG_MEDIA_TUNER_TUA9001=m 3657CONFIG_MEDIA_TUNER_TUA9001=m
3658CONFIG_MEDIA_TUNER_IT913X=m
3659CONFIG_MEDIA_TUNER_R820T=m
3641 3660
3642# 3661#
3643# Multistandard (satellite) frontends 3662# Multistandard (satellite) frontends
@@ -3808,6 +3827,7 @@ CONFIG_DRM_GMA3600=y
3808CONFIG_DRM_AST=m 3827CONFIG_DRM_AST=m
3809CONFIG_DRM_MGAG200=m 3828CONFIG_DRM_MGAG200=m
3810CONFIG_DRM_CIRRUS_QEMU=m 3829CONFIG_DRM_CIRRUS_QEMU=m
3830# CONFIG_DRM_QXL is not set
3811CONFIG_VGASTATE=m 3831CONFIG_VGASTATE=m
3812CONFIG_VIDEO_OUTPUT_CONTROL=m 3832CONFIG_VIDEO_OUTPUT_CONTROL=m
3813CONFIG_HDMI=y 3833CONFIG_HDMI=y
@@ -3824,7 +3844,6 @@ CONFIG_FB_SYS_COPYAREA=m
3824CONFIG_FB_SYS_IMAGEBLIT=m 3844CONFIG_FB_SYS_IMAGEBLIT=m
3825# CONFIG_FB_FOREIGN_ENDIAN is not set 3845# CONFIG_FB_FOREIGN_ENDIAN is not set
3826CONFIG_FB_SYS_FOPS=m 3846CONFIG_FB_SYS_FOPS=m
3827# CONFIG_FB_WMT_GE_ROPS is not set
3828CONFIG_FB_DEFERRED_IO=y 3847CONFIG_FB_DEFERRED_IO=y
3829CONFIG_FB_HECUBA=m 3848CONFIG_FB_HECUBA=m
3830CONFIG_FB_SVGALIB=m 3849CONFIG_FB_SVGALIB=m
@@ -3920,12 +3939,14 @@ CONFIG_FB_MB862XX_PCI_GDC=y
3920CONFIG_FB_MB862XX_I2C=y 3939CONFIG_FB_MB862XX_I2C=y
3921CONFIG_FB_BROADSHEET=m 3940CONFIG_FB_BROADSHEET=m
3922# CONFIG_FB_AUO_K190X is not set 3941# CONFIG_FB_AUO_K190X is not set
3942# CONFIG_FB_HYPERV is not set
3923# CONFIG_EXYNOS_VIDEO is not set 3943# CONFIG_EXYNOS_VIDEO is not set
3924CONFIG_BACKLIGHT_LCD_SUPPORT=y 3944CONFIG_BACKLIGHT_LCD_SUPPORT=y
3925CONFIG_LCD_CLASS_DEVICE=m 3945CONFIG_LCD_CLASS_DEVICE=m
3926CONFIG_LCD_L4F00242T03=m 3946CONFIG_LCD_L4F00242T03=m
3927CONFIG_LCD_LMS283GF05=m 3947CONFIG_LCD_LMS283GF05=m
3928CONFIG_LCD_LTV350QV=m 3948CONFIG_LCD_LTV350QV=m
3949# CONFIG_LCD_ILI922X is not set
3929CONFIG_LCD_ILI9320=m 3950CONFIG_LCD_ILI9320=m
3930CONFIG_LCD_TDO24M=m 3951CONFIG_LCD_TDO24M=m
3931CONFIG_LCD_VGG2432A4=m 3952CONFIG_LCD_VGG2432A4=m
@@ -4145,6 +4166,7 @@ CONFIG_SND_SOC_AK4535=m
4145CONFIG_SND_SOC_AK4641=m 4166CONFIG_SND_SOC_AK4641=m
4146CONFIG_SND_SOC_AK4642=m 4167CONFIG_SND_SOC_AK4642=m
4147CONFIG_SND_SOC_AK4671=m 4168CONFIG_SND_SOC_AK4671=m
4169CONFIG_SND_SOC_AK5386=m
4148CONFIG_SND_SOC_ALC5623=m 4170CONFIG_SND_SOC_ALC5623=m
4149CONFIG_SND_SOC_ALC5632=m 4171CONFIG_SND_SOC_ALC5632=m
4150CONFIG_SND_SOC_CS42L51=m 4172CONFIG_SND_SOC_CS42L51=m
@@ -4173,6 +4195,7 @@ CONFIG_SND_SOC_SPDIF=m
4173CONFIG_SND_SOC_SSM2602=m 4195CONFIG_SND_SOC_SSM2602=m
4174CONFIG_SND_SOC_STA32X=m 4196CONFIG_SND_SOC_STA32X=m
4175CONFIG_SND_SOC_STA529=m 4197CONFIG_SND_SOC_STA529=m
4198CONFIG_SND_SOC_TAS5086=m
4176CONFIG_SND_SOC_TLV320AIC23=m 4199CONFIG_SND_SOC_TLV320AIC23=m
4177CONFIG_SND_SOC_TLV320AIC26=m 4200CONFIG_SND_SOC_TLV320AIC26=m
4178CONFIG_SND_SOC_TLV320AIC32X4=m 4201CONFIG_SND_SOC_TLV320AIC32X4=m
@@ -4245,6 +4268,7 @@ CONFIG_HID_GENERIC=m
4245# CONFIG_HID_A4TECH is not set 4268# CONFIG_HID_A4TECH is not set
4246# CONFIG_HID_ACRUX is not set 4269# CONFIG_HID_ACRUX is not set
4247CONFIG_HID_APPLE=m 4270CONFIG_HID_APPLE=m
4271# CONFIG_HID_APPLEIR is not set
4248# CONFIG_HID_AUREAL is not set 4272# CONFIG_HID_AUREAL is not set
4249# CONFIG_HID_BELKIN is not set 4273# CONFIG_HID_BELKIN is not set
4250# CONFIG_HID_CHERRY is not set 4274# CONFIG_HID_CHERRY is not set
@@ -4339,10 +4363,10 @@ CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
4339# 4363#
4340# Miscellaneous USB options 4364# Miscellaneous USB options
4341# 4365#
4366CONFIG_USB_DEFAULT_PERSIST=y
4342# CONFIG_USB_DYNAMIC_MINORS is not set 4367# CONFIG_USB_DYNAMIC_MINORS is not set
4343# CONFIG_USB_OTG_WHITELIST is not set 4368# CONFIG_USB_OTG_WHITELIST is not set
4344# CONFIG_USB_OTG_BLACKLIST_HUB is not set 4369# CONFIG_USB_OTG_BLACKLIST_HUB is not set
4345# CONFIG_USB_DWC3 is not set
4346CONFIG_USB_MON=m 4370CONFIG_USB_MON=m
4347CONFIG_USB_WUSB=m 4371CONFIG_USB_WUSB=m
4348CONFIG_USB_WUSB_CBAF=m 4372CONFIG_USB_WUSB_CBAF=m
@@ -4358,6 +4382,7 @@ CONFIG_USB_EHCI_HCD=m
4358# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 4382# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
4359# CONFIG_USB_EHCI_TT_NEWSCHED is not set 4383# CONFIG_USB_EHCI_TT_NEWSCHED is not set
4360CONFIG_USB_EHCI_PCI=m 4384CONFIG_USB_EHCI_PCI=m
4385CONFIG_USB_EHCI_HCD_PLATFORM=m
4361CONFIG_USB_OXU210HP_HCD=m 4386CONFIG_USB_OXU210HP_HCD=m
4362CONFIG_USB_ISP116X_HCD=m 4387CONFIG_USB_ISP116X_HCD=m
4363CONFIG_USB_ISP1760_HCD=m 4388CONFIG_USB_ISP1760_HCD=m
@@ -4365,7 +4390,6 @@ CONFIG_USB_ISP1362_HCD=m
4365CONFIG_USB_OHCI_HCD=m 4390CONFIG_USB_OHCI_HCD=m
4366CONFIG_USB_OHCI_HCD_SSB=y 4391CONFIG_USB_OHCI_HCD_SSB=y
4367CONFIG_USB_OHCI_HCD_PLATFORM=y 4392CONFIG_USB_OHCI_HCD_PLATFORM=y
4368CONFIG_USB_EHCI_HCD_PLATFORM=m
4369# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 4393# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
4370# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 4394# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
4371CONFIG_USB_OHCI_LITTLE_ENDIAN=y 4395CONFIG_USB_OHCI_LITTLE_ENDIAN=y
@@ -4378,7 +4402,6 @@ CONFIG_USB_R8A66597_HCD=m
4378CONFIG_USB_WHCI_HCD=m 4402CONFIG_USB_WHCI_HCD=m
4379CONFIG_USB_HWA_HCD=m 4403CONFIG_USB_HWA_HCD=m
4380CONFIG_USB_HCD_SSB=m 4404CONFIG_USB_HCD_SSB=m
4381# CONFIG_USB_CHIPIDEA is not set
4382 4405
4383# 4406#
4384# USB Device Class drivers 4407# USB Device Class drivers
@@ -4416,6 +4439,8 @@ CONFIG_USB_STORAGE_ENE_UB6250=m
4416# 4439#
4417# CONFIG_USB_MDC800 is not set 4440# CONFIG_USB_MDC800 is not set
4418# CONFIG_USB_MICROTEK is not set 4441# CONFIG_USB_MICROTEK is not set
4442# CONFIG_USB_DWC3 is not set
4443# CONFIG_USB_CHIPIDEA is not set
4419 4444
4420# 4445#
4421# USB port drivers 4446# USB port drivers
@@ -4475,6 +4500,7 @@ CONFIG_USB_SERIAL_OPTICON=m
4475CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m 4500CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
4476CONFIG_USB_SERIAL_XSENS_MT=m 4501CONFIG_USB_SERIAL_XSENS_MT=m
4477CONFIG_USB_SERIAL_ZIO=m 4502CONFIG_USB_SERIAL_ZIO=m
4503# CONFIG_USB_SERIAL_WISHBONE is not set
4478# CONFIG_USB_SERIAL_ZTE is not set 4504# CONFIG_USB_SERIAL_ZTE is not set
4479# CONFIG_USB_SERIAL_SSU100 is not set 4505# CONFIG_USB_SERIAL_SSU100 is not set
4480CONFIG_USB_SERIAL_QT2=m 4506CONFIG_USB_SERIAL_QT2=m
@@ -4506,27 +4532,22 @@ CONFIG_USB_ISIGHTFW=m
4506# CONFIG_USB_YUREX is not set 4532# CONFIG_USB_YUREX is not set
4507CONFIG_USB_EZUSB_FX2=m 4533CONFIG_USB_EZUSB_FX2=m
4508CONFIG_USB_HSIC_USB3503=m 4534CONFIG_USB_HSIC_USB3503=m
4509
4510#
4511# USB Physical Layer drivers
4512#
4513# CONFIG_OMAP_USB3 is not set
4514# CONFIG_OMAP_CONTROL_USB is not set
4515# CONFIG_USB_ISP1301 is not set
4516# CONFIG_USB_RCAR_PHY is not set
4517CONFIG_USB_ATM=m 4535CONFIG_USB_ATM=m
4518CONFIG_USB_SPEEDTOUCH=m 4536CONFIG_USB_SPEEDTOUCH=m
4519CONFIG_USB_CXACRU=m 4537CONFIG_USB_CXACRU=m
4520CONFIG_USB_UEAGLEATM=m 4538CONFIG_USB_UEAGLEATM=m
4521CONFIG_USB_XUSBATM=m 4539CONFIG_USB_XUSBATM=m
4522# CONFIG_USB_GADGET is not set 4540CONFIG_USB_PHY=y
4523
4524#
4525# OTG and related infrastructure
4526#
4527CONFIG_USB_OTG_UTILS=y
4528CONFIG_USB_GPIO_VBUS=m
4529CONFIG_NOP_USB_XCEIV=m 4541CONFIG_NOP_USB_XCEIV=m
4542# CONFIG_OMAP_CONTROL_USB is not set
4543# CONFIG_OMAP_USB3 is not set
4544# CONFIG_SAMSUNG_USBPHY is not set
4545# CONFIG_SAMSUNG_USB2PHY is not set
4546# CONFIG_SAMSUNG_USB3PHY is not set
4547CONFIG_USB_GPIO_VBUS=m
4548# CONFIG_USB_ISP1301 is not set
4549# CONFIG_USB_RCAR_PHY is not set
4550# CONFIG_USB_GADGET is not set
4530CONFIG_UWB=m 4551CONFIG_UWB=m
4531CONFIG_UWB_HWA=m 4552CONFIG_UWB_HWA=m
4532CONFIG_UWB_WHCI=m 4553CONFIG_UWB_WHCI=m
@@ -4590,6 +4611,7 @@ CONFIG_LEDS_GPIO=m
4590CONFIG_LEDS_LP3944=m 4611CONFIG_LEDS_LP3944=m
4591# CONFIG_LEDS_LP5521 is not set 4612# CONFIG_LEDS_LP5521 is not set
4592# CONFIG_LEDS_LP5523 is not set 4613# CONFIG_LEDS_LP5523 is not set
4614# CONFIG_LEDS_LP5562 is not set
4593CONFIG_LEDS_CLEVO_MAIL=m 4615CONFIG_LEDS_CLEVO_MAIL=m
4594CONFIG_LEDS_PCA955X=m 4616CONFIG_LEDS_PCA955X=m
4595# CONFIG_LEDS_PCA9633 is not set 4617# CONFIG_LEDS_PCA9633 is not set
@@ -4603,11 +4625,11 @@ CONFIG_LEDS_DELL_NETBOOKS=m
4603# CONFIG_LEDS_LM355x is not set 4625# CONFIG_LEDS_LM355x is not set
4604# CONFIG_LEDS_OT200 is not set 4626# CONFIG_LEDS_OT200 is not set
4605CONFIG_LEDS_BLINKM=m 4627CONFIG_LEDS_BLINKM=m
4606CONFIG_LEDS_TRIGGERS=y
4607 4628
4608# 4629#
4609# LED Triggers 4630# LED Triggers
4610# 4631#
4632CONFIG_LEDS_TRIGGERS=y
4611CONFIG_LEDS_TRIGGER_TIMER=m 4633CONFIG_LEDS_TRIGGER_TIMER=m
4612CONFIG_LEDS_TRIGGER_ONESHOT=m 4634CONFIG_LEDS_TRIGGER_ONESHOT=m
4613CONFIG_LEDS_TRIGGER_HEARTBEAT=m 4635CONFIG_LEDS_TRIGGER_HEARTBEAT=m
@@ -4620,6 +4642,7 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
4620# iptables trigger is under Netfilter config (LED target) 4642# iptables trigger is under Netfilter config (LED target)
4621# 4643#
4622CONFIG_LEDS_TRIGGER_TRANSIENT=m 4644CONFIG_LEDS_TRIGGER_TRANSIENT=m
4645# CONFIG_LEDS_TRIGGER_CAMERA is not set
4623CONFIG_ACCESSIBILITY=y 4646CONFIG_ACCESSIBILITY=y
4624# CONFIG_A11Y_BRAILLE_CONSOLE is not set 4647# CONFIG_A11Y_BRAILLE_CONSOLE is not set
4625CONFIG_INFINIBAND=m 4648CONFIG_INFINIBAND=m
@@ -4646,6 +4669,7 @@ CONFIG_INFINIBAND_IPOIB=m
4646CONFIG_INFINIBAND_SRP=m 4669CONFIG_INFINIBAND_SRP=m
4647CONFIG_INFINIBAND_SRPT=m 4670CONFIG_INFINIBAND_SRPT=m
4648CONFIG_INFINIBAND_ISER=m 4671CONFIG_INFINIBAND_ISER=m
4672# CONFIG_INFINIBAND_ISERT is not set
4649# CONFIG_EDAC is not set 4673# CONFIG_EDAC is not set
4650CONFIG_RTC_LIB=y 4674CONFIG_RTC_LIB=y
4651CONFIG_RTC_CLASS=y 4675CONFIG_RTC_CLASS=y
@@ -4741,6 +4765,7 @@ CONFIG_INTEL_IOATDMA=m
4741CONFIG_TIMB_DMA=m 4765CONFIG_TIMB_DMA=m
4742CONFIG_PCH_DMA=m 4766CONFIG_PCH_DMA=m
4743CONFIG_DMA_ENGINE=y 4767CONFIG_DMA_ENGINE=y
4768CONFIG_DMA_ACPI=y
4744 4769
4745# 4770#
4746# DMA Clients 4771# DMA Clients
@@ -4768,6 +4793,7 @@ CONFIG_VFIO_IOMMU_TYPE1=m
4768CONFIG_VFIO=m 4793CONFIG_VFIO=m
4769CONFIG_VFIO_PCI=m 4794CONFIG_VFIO_PCI=m
4770CONFIG_VFIO_PCI_VGA=y 4795CONFIG_VFIO_PCI_VGA=y
4796CONFIG_VIRT_DRIVERS=y
4771CONFIG_VIRTIO=m 4797CONFIG_VIRTIO=m
4772 4798
4773# 4799#
@@ -4871,6 +4897,7 @@ CONFIG_NET_VENDOR_SILICOM=y
4871# CONFIG_CED1401 is not set 4897# CONFIG_CED1401 is not set
4872# CONFIG_DGRP is not set 4898# CONFIG_DGRP is not set
4873# CONFIG_FIREWIRE_SERIAL is not set 4899# CONFIG_FIREWIRE_SERIAL is not set
4900# CONFIG_USB_DWC2 is not set
4874CONFIG_X86_PLATFORM_DEVICES=y 4901CONFIG_X86_PLATFORM_DEVICES=y
4875CONFIG_ACER_WMI=m 4902CONFIG_ACER_WMI=m
4876CONFIG_ACERHDF=m 4903CONFIG_ACERHDF=m
@@ -4918,6 +4945,7 @@ CONFIG_MXM_WMI=m
4918CONFIG_INTEL_OAKTRAIL=m 4945CONFIG_INTEL_OAKTRAIL=m
4919# CONFIG_SAMSUNG_Q10 is not set 4946# CONFIG_SAMSUNG_Q10 is not set
4920# CONFIG_APPLE_GMUX is not set 4947# CONFIG_APPLE_GMUX is not set
4948# CONFIG_PVPANIC is not set
4921 4949
4922# 4950#
4923# Hardware Spinlock drivers 4951# Hardware Spinlock drivers
@@ -4946,7 +4974,6 @@ CONFIG_STE_MODEM_RPROC=m
4946# 4974#
4947# Rpmsg drivers 4975# Rpmsg drivers
4948# 4976#
4949CONFIG_VIRT_DRIVERS=y
4950# CONFIG_PM_DEVFREQ is not set 4977# CONFIG_PM_DEVFREQ is not set
4951CONFIG_EXTCON=m 4978CONFIG_EXTCON=m
4952 4979
@@ -4960,6 +4987,7 @@ CONFIG_NTB=m
4960# CONFIG_VME_BUS is not set 4987# CONFIG_VME_BUS is not set
4961CONFIG_PWM=y 4988CONFIG_PWM=y
4962# CONFIG_IPACK_BUS is not set 4989# CONFIG_IPACK_BUS is not set
4990# CONFIG_RESET_CONTROLLER is not set
4963 4991
4964# 4992#
4965# Firmware Drivers 4993# Firmware Drivers
@@ -5013,6 +5041,7 @@ CONFIG_XFS_FS=m
5013CONFIG_XFS_QUOTA=y 5041CONFIG_XFS_QUOTA=y
5014CONFIG_XFS_POSIX_ACL=y 5042CONFIG_XFS_POSIX_ACL=y
5015CONFIG_XFS_RT=y 5043CONFIG_XFS_RT=y
5044# CONFIG_XFS_WARN is not set
5016# CONFIG_XFS_DEBUG is not set 5045# CONFIG_XFS_DEBUG is not set
5017CONFIG_GFS2_FS=m 5046CONFIG_GFS2_FS=m
5018CONFIG_GFS2_FS_LOCKING_DLM=y 5047CONFIG_GFS2_FS_LOCKING_DLM=y
@@ -5025,6 +5054,8 @@ CONFIG_OCFS2_DEBUG_MASKLOG=y
5025CONFIG_BTRFS_FS=m 5054CONFIG_BTRFS_FS=m
5026CONFIG_BTRFS_FS_POSIX_ACL=y 5055CONFIG_BTRFS_FS_POSIX_ACL=y
5027# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set 5056# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
5057# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
5058# CONFIG_BTRFS_DEBUG is not set
5028CONFIG_NILFS2_FS=m 5059CONFIG_NILFS2_FS=m
5029CONFIG_FS_POSIX_ACL=y 5060CONFIG_FS_POSIX_ACL=y
5030CONFIG_EXPORTFS=m 5061CONFIG_EXPORTFS=m
@@ -5334,6 +5365,8 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
5334# CONFIG_NOTIFIER_ERROR_INJECTION is not set 5365# CONFIG_NOTIFIER_ERROR_INJECTION is not set
5335# CONFIG_FAULT_INJECTION is not set 5366# CONFIG_FAULT_INJECTION is not set
5336CONFIG_LATENCYTOP=y 5367CONFIG_LATENCYTOP=y
5368CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y
5369# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
5337# CONFIG_DEBUG_PAGEALLOC is not set 5370# CONFIG_DEBUG_PAGEALLOC is not set
5338CONFIG_USER_STACKTRACE_SUPPORT=y 5371CONFIG_USER_STACKTRACE_SUPPORT=y
5339CONFIG_HAVE_FUNCTION_TRACER=y 5372CONFIG_HAVE_FUNCTION_TRACER=y
@@ -5361,6 +5394,7 @@ CONFIG_TRACING_SUPPORT=y
5361CONFIG_HAVE_ARCH_KGDB=y 5394CONFIG_HAVE_ARCH_KGDB=y
5362# CONFIG_KGDB is not set 5395# CONFIG_KGDB is not set
5363CONFIG_HAVE_ARCH_KMEMCHECK=y 5396CONFIG_HAVE_ARCH_KMEMCHECK=y
5397# CONFIG_TEST_STRING_HELPERS is not set
5364CONFIG_TEST_KSTRTOX=m 5398CONFIG_TEST_KSTRTOX=m
5365CONFIG_STRICT_DEVMEM=y 5399CONFIG_STRICT_DEVMEM=y
5366# CONFIG_X86_VERBOSE_BOOTUP is not set 5400# CONFIG_X86_VERBOSE_BOOTUP is not set
@@ -5385,7 +5419,6 @@ CONFIG_DEFAULT_IO_DELAY_TYPE=0
5385CONFIG_DEBUG_BOOT_PARAMS=y 5419CONFIG_DEBUG_BOOT_PARAMS=y
5386# CONFIG_CPA_DEBUG is not set 5420# CONFIG_CPA_DEBUG is not set
5387# CONFIG_OPTIMIZE_INLINING is not set 5421# CONFIG_OPTIMIZE_INLINING is not set
5388# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
5389CONFIG_DEBUG_NMI_SELFTEST=y 5422CONFIG_DEBUG_NMI_SELFTEST=y
5390 5423
5391# 5424#
@@ -5519,7 +5552,6 @@ CONFIG_GRKERNSEC_FORKFAIL=y
5519CONFIG_GRKERNSEC_TIME=y 5552CONFIG_GRKERNSEC_TIME=y
5520CONFIG_GRKERNSEC_PROC_IPADDR=y 5553CONFIG_GRKERNSEC_PROC_IPADDR=y
5521# CONFIG_GRKERNSEC_RWXMAP_LOG is not set 5554# CONFIG_GRKERNSEC_RWXMAP_LOG is not set
5522# CONFIG_GRKERNSEC_AUDIT_TEXTREL is not set
5523 5555
5524# 5556#
5525# Executable Protections 5557# Executable Protections
@@ -5565,8 +5597,6 @@ CONFIG_ASYNC_MEMCPY=m
5565CONFIG_ASYNC_XOR=m 5597CONFIG_ASYNC_XOR=m
5566CONFIG_ASYNC_PQ=m 5598CONFIG_ASYNC_PQ=m
5567CONFIG_ASYNC_RAID6_RECOV=m 5599CONFIG_ASYNC_RAID6_RECOV=m
5568CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
5569CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
5570CONFIG_CRYPTO=y 5600CONFIG_CRYPTO=y
5571 5601
5572# 5602#
@@ -5619,6 +5649,7 @@ CONFIG_CRYPTO_XTS=m
5619# 5649#
5620# Hash modes 5650# Hash modes
5621# 5651#
5652# CONFIG_CRYPTO_CMAC is not set
5622CONFIG_CRYPTO_HMAC=m 5653CONFIG_CRYPTO_HMAC=m
5623CONFIG_CRYPTO_XCBC=m 5654CONFIG_CRYPTO_XCBC=m
5624CONFIG_CRYPTO_VMAC=m 5655CONFIG_CRYPTO_VMAC=m
@@ -5627,7 +5658,6 @@ CONFIG_CRYPTO_VMAC=m
5627# Digest 5658# Digest
5628# 5659#
5629CONFIG_CRYPTO_CRC32C=m 5660CONFIG_CRYPTO_CRC32C=m
5630CONFIG_CRYPTO_CRC32C_X86_64=y
5631CONFIG_CRYPTO_CRC32C_INTEL=m 5661CONFIG_CRYPTO_CRC32C_INTEL=m
5632CONFIG_CRYPTO_CRC32=m 5662CONFIG_CRYPTO_CRC32=m
5633CONFIG_CRYPTO_CRC32_PCLMUL=m 5663CONFIG_CRYPTO_CRC32_PCLMUL=m
@@ -5641,6 +5671,8 @@ CONFIG_CRYPTO_RMD256=m
5641CONFIG_CRYPTO_RMD320=m 5671CONFIG_CRYPTO_RMD320=m
5642CONFIG_CRYPTO_SHA1=m 5672CONFIG_CRYPTO_SHA1=m
5643CONFIG_CRYPTO_SHA1_SSSE3=m 5673CONFIG_CRYPTO_SHA1_SSSE3=m
5674CONFIG_CRYPTO_SHA256_SSSE3=m
5675# CONFIG_CRYPTO_SHA512_SSSE3 is not set
5644CONFIG_CRYPTO_SHA256=y 5676CONFIG_CRYPTO_SHA256=y
5645CONFIG_CRYPTO_SHA512=m 5677CONFIG_CRYPTO_SHA512=m
5646CONFIG_CRYPTO_TGR192=m 5678CONFIG_CRYPTO_TGR192=m
@@ -5660,7 +5692,8 @@ CONFIG_CRYPTO_BLOWFISH_COMMON=m
5660CONFIG_CRYPTO_BLOWFISH_X86_64=m 5692CONFIG_CRYPTO_BLOWFISH_X86_64=m
5661CONFIG_CRYPTO_CAMELLIA=m 5693CONFIG_CRYPTO_CAMELLIA=m
5662CONFIG_CRYPTO_CAMELLIA_X86_64=m 5694CONFIG_CRYPTO_CAMELLIA_X86_64=m
5663# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set 5695CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m
5696CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
5664CONFIG_CRYPTO_CAST_COMMON=m 5697CONFIG_CRYPTO_CAST_COMMON=m
5665CONFIG_CRYPTO_CAST5=m 5698CONFIG_CRYPTO_CAST5=m
5666CONFIG_CRYPTO_CAST5_AVX_X86_64=m 5699CONFIG_CRYPTO_CAST5_AVX_X86_64=m
@@ -5675,6 +5708,7 @@ CONFIG_CRYPTO_SEED=m
5675CONFIG_CRYPTO_SERPENT=m 5708CONFIG_CRYPTO_SERPENT=m
5676CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m 5709CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
5677CONFIG_CRYPTO_SERPENT_AVX_X86_64=m 5710CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
5711CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
5678CONFIG_CRYPTO_TEA=m 5712CONFIG_CRYPTO_TEA=m
5679CONFIG_CRYPTO_TWOFISH=m 5713CONFIG_CRYPTO_TWOFISH=m
5680CONFIG_CRYPTO_TWOFISH_COMMON=m 5714CONFIG_CRYPTO_TWOFISH_COMMON=m
@@ -5706,6 +5740,7 @@ CONFIG_PUBLIC_KEY_ALGO_RSA=m
5706CONFIG_X509_CERTIFICATE_PARSER=m 5740CONFIG_X509_CERTIFICATE_PARSER=m
5707CONFIG_HAVE_KVM=y 5741CONFIG_HAVE_KVM=y
5708CONFIG_HAVE_KVM_IRQCHIP=y 5742CONFIG_HAVE_KVM_IRQCHIP=y
5743CONFIG_HAVE_KVM_IRQ_ROUTING=y
5709CONFIG_HAVE_KVM_EVENTFD=y 5744CONFIG_HAVE_KVM_EVENTFD=y
5710CONFIG_KVM_APIC_ARCHITECTURE=y 5745CONFIG_KVM_APIC_ARCHITECTURE=y
5711CONFIG_KVM_MMIO=y 5746CONFIG_KVM_MMIO=y
@@ -5716,8 +5751,7 @@ CONFIG_VIRTUALIZATION=y
5716CONFIG_KVM=m 5751CONFIG_KVM=m
5717CONFIG_KVM_INTEL=m 5752CONFIG_KVM_INTEL=m
5718CONFIG_KVM_AMD=m 5753CONFIG_KVM_AMD=m
5719CONFIG_VHOST_NET=m 5754CONFIG_KVM_DEVICE_ASSIGNMENT=y
5720CONFIG_TCM_VHOST=m
5721# CONFIG_BINARY_PRINTF is not set 5755# CONFIG_BINARY_PRINTF is not set
5722 5756
5723# 5757#