Gentoo Archives: gentoo-commits

From: "Anthony G. Basile" <blueness@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-patchset:master commit in: 3.2.54/, 3.12.8/, 3.13.0/
Date: Tue, 28 Jan 2014 14:28:42
Message-Id: 1390919316.9bc62687098c610da4f74223ba8d81f901bb3e75.blueness@gentoo
1 commit: 9bc62687098c610da4f74223ba8d81f901bb3e75
2 Author: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jan 28 14:28:36 2014 +0000
4 Commit: Anthony G. Basile <blueness <AT> gentoo <DOT> org>
5 CommitDate: Tue Jan 28 14:28:36 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-patchset.git;a=commit;h=9bc62687
7
8 Grsec/PaX: 3.0-{3.2.54,3.13.0}-201401272348
9
10 ---
11 {3.12.8 => 3.13.0}/0000_README | 2 +-
12 .../4420_grsecurity-3.0-3.13.0-201401272348.patch | 18624 ++++++++++---------
13 {3.12.8 => 3.13.0}/4425_grsec_remove_EI_PAX.patch | 0
14 .../4427_force_XATTR_PAX_tmpfs.patch | 0
15 .../4430_grsec-remove-localversion-grsec.patch | 0
16 {3.12.8 => 3.13.0}/4435_grsec-mute-warnings.patch | 0
17 .../4440_grsec-remove-protected-paths.patch | 0
18 .../4450_grsec-kconfig-default-gids.patch | 0
19 .../4465_selinux-avc_audit-log-curr_ip.patch | 0
20 {3.12.8 => 3.13.0}/4470_disable-compat_vdso.patch | 0
21 {3.12.8 => 3.13.0}/4475_emutramp_default_on.patch | 0
22 3.2.54/0000_README | 2 +-
23 ... 4420_grsecurity-3.0-3.2.54-201401272346.patch} | 2304 ++-
24 13 files changed, 10895 insertions(+), 10037 deletions(-)
25
26 diff --git a/3.12.8/0000_README b/3.13.0/0000_README
27 similarity index 96%
28 rename from 3.12.8/0000_README
29 rename to 3.13.0/0000_README
30 index ba454f4..5bc7414 100644
31 --- a/3.12.8/0000_README
32 +++ b/3.13.0/0000_README
33 @@ -2,7 +2,7 @@ README
34 -----------------------------------------------------------------------------
35 Individual Patch Descriptions:
36 -----------------------------------------------------------------------------
37 -Patch: 4420_grsecurity-3.0-3.12.8-201401191015.patch
38 +Patch: 4420_grsecurity-3.0-3.13.0-201401272348.patch
39 From: http://www.grsecurity.net
40 Desc: hardened-sources base patch from upstream grsecurity
41
42
43 diff --git a/3.12.8/4420_grsecurity-3.0-3.12.8-201401191015.patch b/3.13.0/4420_grsecurity-3.0-3.13.0-201401272348.patch
44 similarity index 90%
45 rename from 3.12.8/4420_grsecurity-3.0-3.12.8-201401191015.patch
46 rename to 3.13.0/4420_grsecurity-3.0-3.13.0-201401272348.patch
47 index 07d9c25..fd68ab8 100644
48 --- a/3.12.8/4420_grsecurity-3.0-3.12.8-201401191015.patch
49 +++ b/3.13.0/4420_grsecurity-3.0-3.13.0-201401272348.patch
50 @@ -1,5 +1,5 @@
51 diff --git a/Documentation/dontdiff b/Documentation/dontdiff
52 -index b89a739..903b673 100644
53 +index b89a739..31509cb 100644
54 --- a/Documentation/dontdiff
55 +++ b/Documentation/dontdiff
56 @@ -2,9 +2,11 @@
57 @@ -169,10 +169,12 @@ index b89a739..903b673 100644
58 pnmtologo
59 ppc_defs.h*
60 pss_boot.h
61 -@@ -203,7 +227,10 @@ r200_reg_safe.h
62 +@@ -203,7 +227,12 @@ r200_reg_safe.h
63 r300_reg_safe.h
64 r420_reg_safe.h
65 r600_reg_safe.h
66 ++randstruct.seed
67 ++randstruct.hashed_seed
68 +realmode.lds
69 +realmode.relocs
70 recordmcount
71 @@ -180,7 +182,7 @@ index b89a739..903b673 100644
72 relocs
73 rlim_names.h
74 rn50_reg_safe.h
75 -@@ -213,8 +240,12 @@ series
76 +@@ -213,8 +242,12 @@ series
77 setup
78 setup.bin
79 setup.elf
80 @@ -193,7 +195,7 @@ index b89a739..903b673 100644
81 split-include
82 syscalltab.h
83 tables.c
84 -@@ -224,6 +255,7 @@ tftpboot.img
85 +@@ -224,6 +257,7 @@ tftpboot.img
86 timeconst.h
87 times.h*
88 trix_boot.h
89 @@ -201,7 +203,7 @@ index b89a739..903b673 100644
90 utsrelease.h*
91 vdso-syms.lds
92 vdso.lds
93 -@@ -235,13 +267,17 @@ vdso32.lds
94 +@@ -235,13 +269,17 @@ vdso32.lds
95 vdso32.so.dbg
96 vdso64.lds
97 vdso64.so.dbg
98 @@ -219,7 +221,7 @@ index b89a739..903b673 100644
99 vmlinuz
100 voffset.h
101 vsyscall.lds
102 -@@ -249,9 +285,12 @@ vsyscall_32.lds
103 +@@ -249,9 +287,12 @@ vsyscall_32.lds
104 wanxlfw.inc
105 uImage
106 unifdef
107 @@ -233,10 +235,10 @@ index b89a739..903b673 100644
108 +zconf.lex.c
109 zoffset.h
110 diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
111 -index 4f7c57c..a2dc685 100644
112 +index b9e9bd8..bf49b92 100644
113 --- a/Documentation/kernel-parameters.txt
114 +++ b/Documentation/kernel-parameters.txt
115 -@@ -1031,6 +1031,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
116 +@@ -1033,6 +1033,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
117 Format: <unsigned int> such that (rxsize & ~0x1fffc0) == 0.
118 Default: 1024
119
120 @@ -247,7 +249,7 @@ index 4f7c57c..a2dc685 100644
121 hashdist= [KNL,NUMA] Large hashes allocated during boot
122 are distributed across NUMA nodes. Defaults on
123 for 64-bit NUMA, off otherwise.
124 -@@ -2001,6 +2005,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
125 +@@ -2018,6 +2022,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
126 noexec=on: enable non-executable mappings (default)
127 noexec=off: disable non-executable mappings
128
129 @@ -258,7 +260,7 @@ index 4f7c57c..a2dc685 100644
130 nosmap [X86]
131 Disable SMAP (Supervisor Mode Access Prevention)
132 even if it is supported by processor.
133 -@@ -2268,6 +2276,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
134 +@@ -2285,6 +2293,25 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
135 the specified number of seconds. This is to be used if
136 your oopses keep scrolling off the screen.
137
138 @@ -285,10 +287,10 @@ index 4f7c57c..a2dc685 100644
139
140 pcd. [PARIDE]
141 diff --git a/Makefile b/Makefile
142 -index 5d0ec13..d3dcef2 100644
143 +index b8b7f74..1f3d7c8 100644
144 --- a/Makefile
145 +++ b/Makefile
146 -@@ -241,8 +241,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
147 +@@ -244,8 +244,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
148
149 HOSTCC = gcc
150 HOSTCXX = g++
151 @@ -300,7 +302,7 @@ index 5d0ec13..d3dcef2 100644
152
153 # Decide whether to build built-in, modular, or both.
154 # Normally, just do built-in.
155 -@@ -414,8 +415,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
156 +@@ -417,8 +418,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
157 # Rules shared between *config targets and build targets
158
159 # Basic helpers built in scripts/
160 @@ -311,7 +313,7 @@ index 5d0ec13..d3dcef2 100644
161 $(Q)$(MAKE) $(build)=scripts/basic
162 $(Q)rm -f .tmp_quiet_recordmcount
163
164 -@@ -576,6 +577,65 @@ else
165 +@@ -579,6 +580,76 @@ else
166 KBUILD_CFLAGS += -O2
167 endif
168
169 @@ -337,6 +339,16 @@ index 5d0ec13..d3dcef2 100644
170 +KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
171 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
172 +endif
173 ++ifdef CONFIG_GRKERNSEC_RANDSTRUCT
174 ++GRKERNSEC_RANDSTRUCT_SEED := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gen-random-seed.sh)
175 ++RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
176 ++RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-seed=$(GRKERNSEC_RANDSTRUCT_SEED)
177 ++RANDSTRUCT_HASHED_SEED := $(shell cat "$(srctree)/tools/gcc/randstruct.hashed_seed")
178 ++RANDSTRUCT_PLUGIN_CFLAGS += -DRANDSTRUCT_HASHED_SEED="\"$(RANDSTRUCT_HASHED_SEED)\""
179 ++ifdef CONFIG_GRKERNSEC_RANDSTRUCT
180 ++RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
181 ++endif
182 ++endif
183 +ifdef CONFIG_CHECKER_PLUGIN
184 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
185 +CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
186 @@ -355,6 +367,7 @@ index 5d0ec13..d3dcef2 100644
187 +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
188 +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
189 +GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS)
190 ++GCC_PLUGINS_CFLAGS += $(RANDSTRUCT_PLUGIN_CFLAGS)
191 +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
192 +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN
193 +ifeq ($(KBUILD_EXTMOD),)
194 @@ -377,7 +390,7 @@ index 5d0ec13..d3dcef2 100644
195 include $(srctree)/arch/$(SRCARCH)/Makefile
196
197 ifdef CONFIG_READABLE_ASM
198 -@@ -733,7 +793,7 @@ export mod_sign_cmd
199 +@@ -754,7 +825,7 @@ export mod_sign_cmd
200
201
202 ifeq ($(KBUILD_EXTMOD),)
203 @@ -386,7 +399,7 @@ index 5d0ec13..d3dcef2 100644
204
205 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
206 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
207 -@@ -782,6 +842,8 @@ endif
208 +@@ -803,6 +874,8 @@ endif
209
210 # The actual objects are generated when descending,
211 # make sure no implicit rule kicks in
212 @@ -395,7 +408,7 @@ index 5d0ec13..d3dcef2 100644
213 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
214
215 # Handle descending into subdirectories listed in $(vmlinux-dirs)
216 -@@ -791,7 +853,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
217 +@@ -812,7 +885,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
218 # Error messages still appears in the original language
219
220 PHONY += $(vmlinux-dirs)
221 @@ -404,7 +417,7 @@ index 5d0ec13..d3dcef2 100644
222 $(Q)$(MAKE) $(build)=$@
223
224 define filechk_kernel.release
225 -@@ -834,10 +896,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
226 +@@ -855,10 +928,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
227
228 archprepare: archheaders archscripts prepare1 scripts_basic
229
230 @@ -418,7 +431,7 @@ index 5d0ec13..d3dcef2 100644
231 prepare: prepare0
232
233 # Generate some files
234 -@@ -945,6 +1010,8 @@ all: modules
235 +@@ -966,6 +1042,8 @@ all: modules
236 # using awk while concatenating to the final file.
237
238 PHONY += modules
239 @@ -427,7 +440,7 @@ index 5d0ec13..d3dcef2 100644
240 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
241 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
242 @$(kecho) ' Building modules, stage 2.';
243 -@@ -960,7 +1027,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
244 +@@ -981,7 +1059,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
245
246 # Target to prepare building external modules
247 PHONY += modules_prepare
248 @@ -436,16 +449,17 @@ index 5d0ec13..d3dcef2 100644
249
250 # Target to install modules
251 PHONY += modules_install
252 -@@ -1026,7 +1093,7 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
253 +@@ -1047,7 +1125,8 @@ MRPROPER_FILES += .config .config.old .version .old_version $(version_h) \
254 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
255 signing_key.priv signing_key.x509 x509.genkey \
256 extra_certificates signing_key.x509.keyid \
257 - signing_key.x509.signer
258 -+ signing_key.x509.signer tools/gcc/size_overflow_hash.h
259 ++ signing_key.x509.signer tools/gcc/size_overflow_hash.h \
260 ++ tools/gcc/randstruct.seed tools/gcc/randstruct.hashed_seed
261
262 # clean - Delete most, but leave enough to build external modules
263 #
264 -@@ -1066,6 +1133,7 @@ distclean: mrproper
265 +@@ -1087,6 +1166,7 @@ distclean: mrproper
266 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
267 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
268 -o -name '.*.rej' \
269 @@ -453,7 +467,7 @@ index 5d0ec13..d3dcef2 100644
270 -o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \
271 -type f -print | xargs rm -f
272
273 -@@ -1227,6 +1295,8 @@ PHONY += $(module-dirs) modules
274 +@@ -1248,6 +1328,8 @@ PHONY += $(module-dirs) modules
275 $(module-dirs): crmodverdir $(objtree)/Module.symvers
276 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
277
278 @@ -462,7 +476,7 @@ index 5d0ec13..d3dcef2 100644
279 modules: $(module-dirs)
280 @$(kecho) ' Building modules, stage 2.';
281 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
282 -@@ -1366,17 +1436,21 @@ else
283 +@@ -1387,17 +1469,21 @@ else
284 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
285 endif
286
287 @@ -488,7 +502,7 @@ index 5d0ec13..d3dcef2 100644
288 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
289 %.symtypes: %.c prepare scripts FORCE
290 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
291 -@@ -1386,11 +1460,15 @@ endif
292 +@@ -1407,11 +1493,15 @@ endif
293 $(cmd_crmodverdir)
294 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
295 $(build)=$(build-dir)
296 @@ -572,7 +586,7 @@ index 968d999..d36b2df 100644
297 registered using atexit. This provides a mean for the dynamic
298 linker to call DT_FINI functions for shared libraries that have
299 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
300 -index bc2a0da..8ad11ee 100644
301 +index aab14a0..b4fa3e7 100644
302 --- a/arch/alpha/include/asm/pgalloc.h
303 +++ b/arch/alpha/include/asm/pgalloc.h
304 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
305 @@ -839,10 +853,10 @@ index 98838a0..b304fb4 100644
306 /* Allow reads even for write-only mappings */
307 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
308 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
309 -index 1ad6fb6..9406b3d 100644
310 +index c1f1a7e..554b0cd 100644
311 --- a/arch/arm/Kconfig
312 +++ b/arch/arm/Kconfig
313 -@@ -1832,7 +1832,7 @@ config ALIGNMENT_TRAP
314 +@@ -1828,7 +1828,7 @@ config ALIGNMENT_TRAP
315
316 config UACCESS_WITH_MEMCPY
317 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
318 @@ -851,7 +865,7 @@ index 1ad6fb6..9406b3d 100644
319 default y if CPU_FEROCEON
320 help
321 Implement faster copy_to_user and clear_user methods for CPU
322 -@@ -2097,6 +2097,7 @@ config XIP_PHYS_ADDR
323 +@@ -2100,6 +2100,7 @@ config XIP_PHYS_ADDR
324 config KEXEC
325 bool "Kexec system call (EXPERIMENTAL)"
326 depends on (!SMP || PM_SLEEP_SMP)
327 @@ -860,10 +874,10 @@ index 1ad6fb6..9406b3d 100644
328 kexec is a system call that implements the ability to shutdown your
329 current kernel, and to start another kernel. It is like a reboot
330 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
331 -index da1c77d..2ee6056 100644
332 +index 62d2cb5..7a13651 100644
333 --- a/arch/arm/include/asm/atomic.h
334 +++ b/arch/arm/include/asm/atomic.h
335 -@@ -17,17 +17,35 @@
336 +@@ -18,17 +18,35 @@
337 #include <asm/barrier.h>
338 #include <asm/cmpxchg.h>
339
340 @@ -899,9 +913,9 @@ index da1c77d..2ee6056 100644
341
342 #if __LINUX_ARM_ARCH__ >= 6
343
344 -@@ -42,6 +60,35 @@ static inline void atomic_add(int i, atomic_t *v)
345 - int result;
346 +@@ -44,6 +62,36 @@ static inline void atomic_add(int i, atomic_t *v)
347
348 + prefetchw(&v->counter);
349 __asm__ __volatile__("@ atomic_add\n"
350 +"1: ldrex %1, [%3]\n"
351 +" adds %0, %1, %4\n"
352 @@ -931,11 +945,12 @@ index da1c77d..2ee6056 100644
353 + unsigned long tmp;
354 + int result;
355 +
356 ++ prefetchw(&v->counter);
357 + __asm__ __volatile__("@ atomic_add_unchecked\n"
358 "1: ldrex %0, [%3]\n"
359 " add %0, %0, %4\n"
360 " strex %1, %0, [%3]\n"
361 -@@ -60,6 +107,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
362 +@@ -62,6 +110,42 @@ static inline int atomic_add_return(int i, atomic_t *v)
363 smp_mb();
364
365 __asm__ __volatile__("@ atomic_add_return\n"
366 @@ -978,9 +993,9 @@ index da1c77d..2ee6056 100644
367 "1: ldrex %0, [%3]\n"
368 " add %0, %0, %4\n"
369 " strex %1, %0, [%3]\n"
370 -@@ -80,6 +163,35 @@ static inline void atomic_sub(int i, atomic_t *v)
371 - int result;
372 +@@ -83,6 +167,36 @@ static inline void atomic_sub(int i, atomic_t *v)
373
374 + prefetchw(&v->counter);
375 __asm__ __volatile__("@ atomic_sub\n"
376 +"1: ldrex %1, [%3]\n"
377 +" subs %0, %1, %4\n"
378 @@ -1010,11 +1025,12 @@ index da1c77d..2ee6056 100644
379 + unsigned long tmp;
380 + int result;
381 +
382 ++ prefetchw(&v->counter);
383 + __asm__ __volatile__("@ atomic_sub_unchecked\n"
384 "1: ldrex %0, [%3]\n"
385 " sub %0, %0, %4\n"
386 " strex %1, %0, [%3]\n"
387 -@@ -98,11 +210,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
388 +@@ -101,11 +215,25 @@ static inline int atomic_sub_return(int i, atomic_t *v)
389 smp_mb();
390
391 __asm__ __volatile__("@ atomic_sub_return\n"
392 @@ -1042,7 +1058,7 @@ index da1c77d..2ee6056 100644
393 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
394 : "r" (&v->counter), "Ir" (i)
395 : "cc");
396 -@@ -134,6 +260,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
397 +@@ -138,6 +266,28 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
398 return oldval;
399 }
400
401 @@ -1068,10 +1084,10 @@ index da1c77d..2ee6056 100644
402 + return oldval;
403 +}
404 +
405 - static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
406 - {
407 - unsigned long tmp, tmp2;
408 -@@ -167,7 +315,17 @@ static inline int atomic_add_return(int i, atomic_t *v)
409 + #else /* ARM_ARCH_6 */
410 +
411 + #ifdef CONFIG_SMP
412 +@@ -156,7 +306,17 @@ static inline int atomic_add_return(int i, atomic_t *v)
413
414 return val;
415 }
416 @@ -1089,7 +1105,7 @@ index da1c77d..2ee6056 100644
417
418 static inline int atomic_sub_return(int i, atomic_t *v)
419 {
420 -@@ -182,6 +340,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
421 +@@ -171,6 +331,10 @@ static inline int atomic_sub_return(int i, atomic_t *v)
422 return val;
423 }
424 #define atomic_sub(i, v) (void) atomic_sub_return(i, v)
425 @@ -1100,7 +1116,7 @@ index da1c77d..2ee6056 100644
426
427 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
428 {
429 -@@ -197,6 +359,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
430 +@@ -186,9 +350,18 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
431 return ret;
432 }
433
434 @@ -1109,10 +1125,6 @@ index da1c77d..2ee6056 100644
435 + return atomic_cmpxchg(v, old, new);
436 +}
437 +
438 - static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
439 - {
440 - unsigned long flags;
441 -@@ -209,6 +376,10 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
442 #endif /* __LINUX_ARM_ARCH__ */
443
444 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
445 @@ -1123,7 +1135,7 @@ index da1c77d..2ee6056 100644
446
447 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
448 {
449 -@@ -221,11 +392,27 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
450 +@@ -201,11 +374,27 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
451 }
452
453 #define atomic_inc(v) atomic_add(1, v)
454 @@ -1151,13 +1163,13 @@ index da1c77d..2ee6056 100644
455 #define atomic_dec_return(v) (atomic_sub_return(1, v))
456 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
457
458 -@@ -241,6 +428,14 @@ typedef struct {
459 - u64 __aligned(8) counter;
460 +@@ -221,6 +410,14 @@ typedef struct {
461 + long long counter;
462 } atomic64_t;
463
464 +#ifdef CONFIG_PAX_REFCOUNT
465 +typedef struct {
466 -+ u64 __aligned(8) counter;
467 ++ long long counter;
468 +} atomic64_unchecked_t;
469 +#else
470 +typedef atomic64_t atomic64_unchecked_t;
471 @@ -1166,13 +1178,13 @@ index da1c77d..2ee6056 100644
472 #define ATOMIC64_INIT(i) { (i) }
473
474 #ifdef CONFIG_ARM_LPAE
475 -@@ -257,6 +452,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
476 +@@ -237,6 +434,19 @@ static inline long long atomic64_read(const atomic64_t *v)
477 return result;
478 }
479
480 -+static inline u64 atomic64_read_unchecked(const atomic64_unchecked_t *v)
481 ++static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
482 +{
483 -+ u64 result;
484 ++ long long result;
485 +
486 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
487 +" ldrd %0, %H0, [%1]"
488 @@ -1183,15 +1195,15 @@ index da1c77d..2ee6056 100644
489 + return result;
490 +}
491 +
492 - static inline void atomic64_set(atomic64_t *v, u64 i)
493 + static inline void atomic64_set(atomic64_t *v, long long i)
494 {
495 __asm__ __volatile__("@ atomic64_set\n"
496 -@@ -265,6 +473,15 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
497 +@@ -245,6 +455,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
498 : "r" (&v->counter), "r" (i)
499 );
500 }
501 +
502 -+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
503 ++static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
504 +{
505 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
506 +" strd %2, %H2, [%1]"
507 @@ -1200,15 +1212,15 @@ index da1c77d..2ee6056 100644
508 + );
509 +}
510 #else
511 - static inline u64 atomic64_read(const atomic64_t *v)
512 + static inline long long atomic64_read(const atomic64_t *v)
513 {
514 -@@ -279,6 +496,19 @@ static inline u64 atomic64_read(const atomic64_t *v)
515 +@@ -259,6 +478,19 @@ static inline long long atomic64_read(const atomic64_t *v)
516 return result;
517 }
518
519 -+static inline u64 atomic64_read_unchecked(atomic64_unchecked_t *v)
520 ++static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
521 +{
522 -+ u64 result;
523 ++ long long result;
524 +
525 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
526 +" ldrexd %0, %H0, [%1]"
527 @@ -1219,18 +1231,19 @@ index da1c77d..2ee6056 100644
528 + return result;
529 +}
530 +
531 - static inline void atomic64_set(atomic64_t *v, u64 i)
532 + static inline void atomic64_set(atomic64_t *v, long long i)
533 {
534 - u64 tmp;
535 -@@ -292,6 +522,21 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
536 + long long tmp;
537 +@@ -273,6 +505,21 @@ static inline void atomic64_set(atomic64_t *v, long long i)
538 : "r" (&v->counter), "r" (i)
539 : "cc");
540 }
541 +
542 -+static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, u64 i)
543 ++static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
544 +{
545 -+ u64 tmp;
546 ++ long long tmp;
547 +
548 ++ prefetchw(&v->counter);
549 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
550 +"1: ldrexd %0, %H0, [%2]\n"
551 +" strexd %0, %3, %H3, [%2]\n"
552 @@ -1240,15 +1253,14 @@ index da1c77d..2ee6056 100644
553 + : "r" (&v->counter), "r" (i)
554 + : "cc");
555 +}
556 -+
557 #endif
558
559 - static inline void atomic64_add(u64 i, atomic64_t *v)
560 -@@ -302,6 +547,36 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
561 + static inline void atomic64_add(long long i, atomic64_t *v)
562 +@@ -284,6 +531,37 @@ static inline void atomic64_add(long long i, atomic64_t *v)
563 __asm__ __volatile__("@ atomic64_add\n"
564 "1: ldrexd %0, %H0, [%3]\n"
565 - " adds %0, %0, %4\n"
566 -+" adcs %H0, %H0, %H4\n"
567 + " adds %Q0, %Q0, %Q4\n"
568 ++" adcs %R0, %R0, %R4\n"
569 +
570 +#ifdef CONFIG_PAX_REFCOUNT
571 +" bvc 3f\n"
572 @@ -1270,31 +1282,23 @@ index da1c77d..2ee6056 100644
573 + : "cc");
574 +}
575 +
576 -+static inline void atomic64_add_unchecked(u64 i, atomic64_unchecked_t *v)
577 ++static inline void atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
578 +{
579 -+ u64 result;
580 ++ long long result;
581 + unsigned long tmp;
582 +
583 ++ prefetchw(&v->counter);
584 + __asm__ __volatile__("@ atomic64_add_unchecked\n"
585 +"1: ldrexd %0, %H0, [%3]\n"
586 -+" adds %0, %0, %4\n"
587 - " adc %H0, %H0, %H4\n"
588 ++" adds %Q0, %Q0, %Q4\n"
589 + " adc %R0, %R0, %R4\n"
590 " strexd %1, %0, %H0, [%3]\n"
591 " teq %1, #0\n"
592 -@@ -313,12 +588,49 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
593 -
594 - static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
595 - {
596 -- u64 result;
597 -- unsigned long tmp;
598 -+ u64 result, tmp;
599 -
600 - smp_mb();
601 -
602 +@@ -303,6 +581,44 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
603 __asm__ __volatile__("@ atomic64_add_return\n"
604 -+"1: ldrexd %1, %H1, [%3]\n"
605 -+" adds %0, %1, %4\n"
606 -+" adcs %H0, %H1, %H4\n"
607 + "1: ldrexd %0, %H0, [%3]\n"
608 + " adds %Q0, %Q0, %Q4\n"
609 ++" adcs %R0, %R0, %R4\n"
610 +
611 +#ifdef CONFIG_PAX_REFCOUNT
612 +" bvc 3f\n"
613 @@ -1322,22 +1326,24 @@ index da1c77d..2ee6056 100644
614 + return result;
615 +}
616 +
617 -+static inline u64 atomic64_add_return_unchecked(u64 i, atomic64_unchecked_t *v)
618 ++static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
619 +{
620 -+ u64 result;
621 ++ long long result;
622 + unsigned long tmp;
623 +
624 + smp_mb();
625 +
626 + __asm__ __volatile__("@ atomic64_add_return_unchecked\n"
627 - "1: ldrexd %0, %H0, [%3]\n"
628 - " adds %0, %0, %4\n"
629 - " adc %H0, %H0, %H4\n"
630 -@@ -342,6 +654,36 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
631 ++"1: ldrexd %0, %H0, [%3]\n"
632 ++" adds %Q0, %Q0, %Q4\n"
633 + " adc %R0, %R0, %R4\n"
634 + " strexd %1, %0, %H0, [%3]\n"
635 + " teq %1, #0\n"
636 +@@ -325,6 +641,37 @@ static inline void atomic64_sub(long long i, atomic64_t *v)
637 __asm__ __volatile__("@ atomic64_sub\n"
638 "1: ldrexd %0, %H0, [%3]\n"
639 - " subs %0, %0, %4\n"
640 -+" sbcs %H0, %H0, %H4\n"
641 + " subs %Q0, %Q0, %Q4\n"
642 ++" sbcs %R0, %R0, %R4\n"
643 +
644 +#ifdef CONFIG_PAX_REFCOUNT
645 +" bvc 3f\n"
646 @@ -1359,34 +1365,24 @@ index da1c77d..2ee6056 100644
647 + : "cc");
648 +}
649 +
650 -+static inline void atomic64_sub_unchecked(u64 i, atomic64_unchecked_t *v)
651 ++static inline void atomic64_sub_unchecked(long long i, atomic64_unchecked_t *v)
652 +{
653 -+ u64 result;
654 ++ long long result;
655 + unsigned long tmp;
656 +
657 ++ prefetchw(&v->counter);
658 + __asm__ __volatile__("@ atomic64_sub_unchecked\n"
659 +"1: ldrexd %0, %H0, [%3]\n"
660 -+" subs %0, %0, %4\n"
661 - " sbc %H0, %H0, %H4\n"
662 ++" subs %Q0, %Q0, %Q4\n"
663 + " sbc %R0, %R0, %R4\n"
664 " strexd %1, %0, %H0, [%3]\n"
665 " teq %1, #0\n"
666 -@@ -353,18 +695,32 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
667 -
668 - static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
669 - {
670 -- u64 result;
671 -- unsigned long tmp;
672 -+ u64 result, tmp;
673 -
674 - smp_mb();
675 -
676 +@@ -344,17 +691,28 @@ static inline long long atomic64_sub_return(long long i, atomic64_t *v)
677 __asm__ __volatile__("@ atomic64_sub_return\n"
678 --"1: ldrexd %0, %H0, [%3]\n"
679 --" subs %0, %0, %4\n"
680 --" sbc %H0, %H0, %H4\n"
681 -+"1: ldrexd %1, %H1, [%3]\n"
682 -+" subs %0, %1, %4\n"
683 -+" sbcs %H0, %H1, %H4\n"
684 + "1: ldrexd %0, %H0, [%3]\n"
685 + " subs %Q0, %Q0, %Q4\n"
686 +-" sbc %R0, %R0, %R4\n"
687 ++" sbcs %R0, %R0, %R4\n"
688 +
689 +#ifdef CONFIG_PAX_REFCOUNT
690 +" bvc 3f\n"
691 @@ -1408,13 +1404,21 @@ index da1c77d..2ee6056 100644
692 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
693 : "r" (&v->counter), "r" (i)
694 : "cc");
695 -@@ -398,6 +754,30 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
696 +-
697 +- smp_mb();
698 +-
699 +- return result;
700 + }
701 +
702 + static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
703 +@@ -382,6 +740,31 @@ static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
704 return oldval;
705 }
706
707 -+static inline u64 atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, u64 old, u64 new)
708 ++static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, long long old,
709 ++ long long new)
710 +{
711 -+ u64 oldval;
712 ++ long long oldval;
713 + unsigned long res;
714 +
715 + smp_mb();
716 @@ -1436,36 +1440,35 @@ index da1c77d..2ee6056 100644
717 + return oldval;
718 +}
719 +
720 - static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
721 + static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
722 {
723 - u64 result;
724 -@@ -421,21 +801,34 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
725 -
726 - static inline u64 atomic64_dec_if_positive(atomic64_t *v)
727 + long long result;
728 +@@ -406,20 +789,34 @@ static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
729 + static inline long long atomic64_dec_if_positive(atomic64_t *v)
730 {
731 -- u64 result;
732 + long long result;
733 - unsigned long tmp;
734 -+ u64 result, tmp;
735 ++ u64 tmp;
736
737 smp_mb();
738
739 __asm__ __volatile__("@ atomic64_dec_if_positive\n"
740 -"1: ldrexd %0, %H0, [%3]\n"
741 --" subs %0, %0, #1\n"
742 --" sbc %H0, %H0, #0\n"
743 +-" subs %Q0, %Q0, #1\n"
744 +-" sbc %R0, %R0, #0\n"
745 +"1: ldrexd %1, %H1, [%3]\n"
746 -+" subs %0, %1, #1\n"
747 -+" sbcs %H0, %H1, #0\n"
748 ++" subs %Q0, %Q1, #1\n"
749 ++" sbcs %R0, %R1, #0\n"
750 +
751 +#ifdef CONFIG_PAX_REFCOUNT
752 +" bvc 3f\n"
753 -+" mov %0, %1\n"
754 -+" mov %H0, %H1\n"
755 ++" mov %Q0, %Q1\n"
756 ++" mov %R0, %R1\n"
757 +"2: bkpt 0xf103\n"
758 +"3:\n"
759 +#endif
760 +
761 - " teq %H0, #0\n"
762 + " teq %R0, #0\n"
763 -" bmi 2f\n"
764 +" bmi 4f\n"
765 " strexd %1, %0, %H0, [%3]\n"
766 @@ -1481,15 +1484,15 @@ index da1c77d..2ee6056 100644
767 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
768 : "r" (&v->counter)
769 : "cc");
770 -@@ -458,13 +851,25 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
771 +@@ -442,13 +839,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
772 " teq %0, %5\n"
773 " teqeq %H0, %H5\n"
774 " moveq %1, #0\n"
775 -" beq 2f\n"
776 +" beq 4f\n"
777 - " adds %0, %0, %6\n"
778 --" adc %H0, %H0, %H6\n"
779 -+" adcs %H0, %H0, %H6\n"
780 + " adds %Q0, %Q0, %Q6\n"
781 +-" adc %R0, %R0, %R6\n"
782 ++" adcs %R0, %R0, %R6\n"
783 +
784 +#ifdef CONFIG_PAX_REFCOUNT
785 +" bvc 3f\n"
786 @@ -1510,7 +1513,7 @@ index da1c77d..2ee6056 100644
787 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
788 : "r" (&v->counter), "r" (u), "r" (a)
789 : "cc");
790 -@@ -477,10 +882,13 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
791 +@@ -461,10 +870,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
792
793 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
794 #define atomic64_inc(v) atomic64_add(1LL, (v))
795 @@ -1548,7 +1551,7 @@ index 75fe66b..ba3dee4 100644
796
797 #endif
798 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
799 -index 15f2d5b..43ffa53 100644
800 +index ee753f1..c9c30a5 100644
801 --- a/arch/arm/include/asm/cacheflush.h
802 +++ b/arch/arm/include/asm/cacheflush.h
803 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
804 @@ -1586,7 +1589,7 @@ index 6dcc164..b14d917 100644
805 /*
806 * Fold a partial checksum without adding pseudo headers
807 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
808 -index 4f009c1..466c59b 100644
809 +index df2fbba..63fe3e1 100644
810 --- a/arch/arm/include/asm/cmpxchg.h
811 +++ b/arch/arm/include/asm/cmpxchg.h
812 @@ -102,6 +102,8 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
813 @@ -1835,7 +1838,7 @@ index 4355f0e..c229913 100644
814 #ifdef MULTI_USER
815 extern struct cpu_user_fns cpu_user;
816 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
817 -index 943504f..c37a730 100644
818 +index 78a7793..e3dc06c 100644
819 --- a/arch/arm/include/asm/pgalloc.h
820 +++ b/arch/arm/include/asm/pgalloc.h
821 @@ -17,6 +17,7 @@
822 @@ -1866,7 +1869,7 @@ index 943504f..c37a730 100644
823
824 #endif /* CONFIG_ARM_LPAE */
825
826 -@@ -126,6 +133,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
827 +@@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
828 __free_page(pte);
829 }
830
831 @@ -1886,7 +1889,7 @@ index 943504f..c37a730 100644
832 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
833 pmdval_t prot)
834 {
835 -@@ -155,7 +175,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
836 +@@ -157,7 +177,7 @@ pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmdp, pte_t *ptep)
837 static inline void
838 pmd_populate(struct mm_struct *mm, pmd_t *pmdp, pgtable_t ptep)
839 {
840 @@ -1932,7 +1935,7 @@ index 5cfba15..f415e1a 100644
841 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
842 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
843 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
844 -index f97ee02..cc9fe9e 100644
845 +index 86a659a..70e0120 100644
846 --- a/arch/arm/include/asm/pgtable-2level.h
847 +++ b/arch/arm/include/asm/pgtable-2level.h
848 @@ -126,6 +126,9 @@
849 @@ -1958,7 +1961,7 @@ index 626989f..9d67a33 100644
850
851 /*
852 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
853 -index 5689c18..eea12f9 100644
854 +index 4f95039..b2dd513 100644
855 --- a/arch/arm/include/asm/pgtable-3level.h
856 +++ b/arch/arm/include/asm/pgtable-3level.h
857 @@ -82,6 +82,7 @@
858 @@ -2097,10 +2100,10 @@ index c4ae171..ea0c0c2 100644
859 extern struct psci_operations psci_ops;
860 extern struct smp_operations psci_smp_ops;
861 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
862 -index a8cae71c..65dd797 100644
863 +index 22a3b9b..7f214ee 100644
864 --- a/arch/arm/include/asm/smp.h
865 +++ b/arch/arm/include/asm/smp.h
866 -@@ -110,7 +110,7 @@ struct smp_operations {
867 +@@ -112,7 +112,7 @@ struct smp_operations {
868 int (*cpu_disable)(unsigned int cpu);
869 #endif
870 #endif
871 @@ -2110,7 +2113,7 @@ index a8cae71c..65dd797 100644
872 /*
873 * set platform specific SMP operations
874 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
875 -index df5e13d..97efb82 100644
876 +index 71a06b2..8bb9ae1 100644
877 --- a/arch/arm/include/asm/thread_info.h
878 +++ b/arch/arm/include/asm/thread_info.h
879 @@ -88,9 +88,9 @@ struct thread_info {
880 @@ -2126,7 +2129,7 @@ index df5e13d..97efb82 100644
881 .restart_block = { \
882 .fn = do_no_restart_syscall, \
883 }, \
884 -@@ -163,7 +163,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
885 +@@ -157,7 +157,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
886 #define TIF_SYSCALL_AUDIT 9
887 #define TIF_SYSCALL_TRACEPOINT 10
888 #define TIF_SECCOMP 11 /* seccomp syscall filtering active */
889 @@ -2139,7 +2142,7 @@ index df5e13d..97efb82 100644
890 #define TIF_USING_IWMMXT 17
891 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
892 #define TIF_RESTORE_SIGMASK 20
893 -@@ -176,10 +180,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
894 +@@ -170,10 +174,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
895 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
896 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
897 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
898 @@ -2350,7 +2353,7 @@ index 5af0ed1..cea83883 100644
899 #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
900
901 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
902 -index 60d3b73..e5a0f22 100644
903 +index 1f031dd..d9b5e4a 100644
904 --- a/arch/arm/kernel/armksyms.c
905 +++ b/arch/arm/kernel/armksyms.c
906 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(arm_delay_ops);
907 @@ -2376,7 +2379,7 @@ index 60d3b73..e5a0f22 100644
908 EXPORT_SYMBOL(__get_user_1);
909 EXPORT_SYMBOL(__get_user_2);
910 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
911 -index ec3e5cf..b450ee3 100644
912 +index b3fb8c9..59cfab2 100644
913 --- a/arch/arm/kernel/entry-armv.S
914 +++ b/arch/arm/kernel/entry-armv.S
915 @@ -47,6 +47,87 @@
916 @@ -2525,10 +2528,10 @@ index ec3e5cf..b450ee3 100644
917 + pax_open_userland
918 1: ldrt r0, [r4]
919 + pax_close_userland
920 - #ifdef CONFIG_CPU_ENDIAN_BE8
921 - rev r0, r0 @ little endian instruction
922 - #endif
923 -@@ -451,10 +550,14 @@ __und_usr_thumb:
924 + ARM_BE8(rev r0, r0) @ little endian instruction
925 +
926 + @ r0 = 32-bit ARM instruction which caused the exception
927 +@@ -450,10 +549,14 @@ __und_usr_thumb:
928 */
929 .arch armv6t2
930 #endif
931 @@ -2543,7 +2546,7 @@ index ec3e5cf..b450ee3 100644
932 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
933 str r2, [sp, #S_PC] @ it's a 2x16bit instr, update
934 orr r0, r0, r5, lsl #16
935 -@@ -483,7 +586,8 @@ ENDPROC(__und_usr)
936 +@@ -482,7 +585,8 @@ ENDPROC(__und_usr)
937 */
938 .pushsection .fixup, "ax"
939 .align 2
940 @@ -2553,7 +2556,7 @@ index ec3e5cf..b450ee3 100644
941 .popsection
942 .pushsection __ex_table,"a"
943 .long 1b, 4b
944 -@@ -693,7 +797,7 @@ ENTRY(__switch_to)
945 +@@ -692,7 +796,7 @@ ENTRY(__switch_to)
946 THUMB( str lr, [ip], #4 )
947 ldr r4, [r2, #TI_TP_VALUE]
948 ldr r5, [r2, #TI_TP_VALUE + 4]
949 @@ -2562,7 +2565,7 @@ index ec3e5cf..b450ee3 100644
950 ldr r6, [r2, #TI_CPU_DOMAIN]
951 #endif
952 switch_tls r1, r4, r5, r3, r7
953 -@@ -702,7 +806,7 @@ ENTRY(__switch_to)
954 +@@ -701,7 +805,7 @@ ENTRY(__switch_to)
955 ldr r8, =__stack_chk_guard
956 ldr r7, [r7, #TSK_STACK_CANARY]
957 #endif
958 @@ -2572,7 +2575,7 @@ index ec3e5cf..b450ee3 100644
959 #endif
960 mov r5, r0
961 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
962 -index bc6bd96..bd026cb 100644
963 +index a2dcafd..1048b5a 100644
964 --- a/arch/arm/kernel/entry-common.S
965 +++ b/arch/arm/kernel/entry-common.S
966 @@ -10,18 +10,46 @@
967 @@ -2625,7 +2628,7 @@ index bc6bd96..bd026cb 100644
968 .align 5
969 /*
970 * This is the fast syscall return path. We do as little as
971 -@@ -413,6 +441,12 @@ ENTRY(vector_swi)
972 +@@ -411,6 +439,12 @@ ENTRY(vector_swi)
973 USER( ldr scno, [lr, #-4] ) @ get SWI instruction
974 #endif
975
976 @@ -2739,7 +2742,7 @@ index 918875d..cd5fa27 100644
977 flush_icache_range((unsigned long)base + offset, offset +
978 length);
979 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
980 -index 476de57..4857a76 100644
981 +index 32f317e..710ae07 100644
982 --- a/arch/arm/kernel/head.S
983 +++ b/arch/arm/kernel/head.S
984 @@ -52,7 +52,9 @@
985 @@ -2753,7 +2756,7 @@ index 476de57..4857a76 100644
986 .endm
987
988 /*
989 -@@ -432,7 +434,7 @@ __enable_mmu:
990 +@@ -436,7 +438,7 @@ __enable_mmu:
991 mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
992 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
993 domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
994 @@ -2763,10 +2766,10 @@ index 476de57..4857a76 100644
995 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
996 #endif
997 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
998 -index 084dc88..fce4e68 100644
999 +index 45e4781..8eac93d 100644
1000 --- a/arch/arm/kernel/module.c
1001 +++ b/arch/arm/kernel/module.c
1002 -@@ -37,12 +37,39 @@
1003 +@@ -38,12 +38,39 @@
1004 #endif
1005
1006 #ifdef CONFIG_MMU
1007 @@ -2776,8 +2779,8 @@ index 084dc88..fce4e68 100644
1008 + if (!size || PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR)
1009 + return NULL;
1010 return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
1011 -- GFP_KERNEL, PAGE_KERNEL_EXEC, -1,
1012 -+ GFP_KERNEL, prot, -1,
1013 +- GFP_KERNEL, PAGE_KERNEL_EXEC, NUMA_NO_NODE,
1014 ++ GFP_KERNEL, prot, NUMA_NO_NODE,
1015 __builtin_return_address(0));
1016 }
1017 +
1018 @@ -2965,10 +2968,10 @@ index 0dd3b79..e018f64 100644
1019 if (secure_computing(scno) == -1)
1020 return -1;
1021 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
1022 -index 0e1e2b3..c0e821d 100644
1023 +index 987a7f5..d9d6071 100644
1024 --- a/arch/arm/kernel/setup.c
1025 +++ b/arch/arm/kernel/setup.c
1026 -@@ -98,21 +98,23 @@ EXPORT_SYMBOL(system_serial_high);
1027 +@@ -100,21 +100,23 @@ EXPORT_SYMBOL(system_serial_high);
1028 unsigned int elf_hwcap __read_mostly;
1029 EXPORT_SYMBOL(elf_hwcap);
1030
1031 @@ -2997,7 +3000,7 @@ index 0e1e2b3..c0e821d 100644
1032 EXPORT_SYMBOL(outer_cache);
1033 #endif
1034
1035 -@@ -245,9 +247,13 @@ static int __get_cpu_architecture(void)
1036 +@@ -247,9 +249,13 @@ static int __get_cpu_architecture(void)
1037 asm("mrc p15, 0, %0, c0, c1, 4"
1038 : "=r" (mmfr0));
1039 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
1040 @@ -3013,7 +3016,7 @@ index 0e1e2b3..c0e821d 100644
1041 (mmfr0 & 0x000000f0) == 0x00000020)
1042 cpu_arch = CPU_ARCH_ARMv6;
1043 else
1044 -@@ -571,7 +577,7 @@ static void __init setup_processor(void)
1045 +@@ -573,7 +579,7 @@ static void __init setup_processor(void)
1046 __cpu_architecture = __get_cpu_architecture();
1047
1048 #ifdef MULTI_CPU
1049 @@ -3023,19 +3026,19 @@ index 0e1e2b3..c0e821d 100644
1050 #ifdef MULTI_TLB
1051 cpu_tlb = *list->tlb;
1052 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
1053 -index ab33042..11248a8 100644
1054 +index 04d6388..5115238 100644
1055 --- a/arch/arm/kernel/signal.c
1056 +++ b/arch/arm/kernel/signal.c
1057 -@@ -45,8 +45,6 @@ static const unsigned long sigreturn_codes[7] = {
1058 - MOV_R7_NR_RT_SIGRETURN, SWI_SYS_RT_SIGRETURN, SWI_THUMB_RT_SIGRETURN,
1059 - };
1060 +@@ -23,8 +23,6 @@
1061 +
1062 + extern const unsigned long sigreturn_codes[7];
1063
1064 -static unsigned long signal_return_offset;
1065 -
1066 #ifdef CONFIG_CRUNCH
1067 static int preserve_crunch_context(struct crunch_sigframe __user *frame)
1068 {
1069 -@@ -411,8 +409,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
1070 +@@ -395,8 +393,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
1071 * except when the MPU has protected the vectors
1072 * page from PL0
1073 */
1074 @@ -3045,7 +3048,7 @@ index ab33042..11248a8 100644
1075 } else
1076 #endif
1077 {
1078 -@@ -616,33 +613,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
1079 +@@ -600,33 +597,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
1080 } while (thread_flags & _TIF_WORK_MASK);
1081 return 0;
1082 }
1083 @@ -3080,10 +3083,10 @@ index ab33042..11248a8 100644
1084 - return page;
1085 -}
1086 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
1087 -index 72024ea..ae302dd 100644
1088 +index dc894ab..f929a0d 100644
1089 --- a/arch/arm/kernel/smp.c
1090 +++ b/arch/arm/kernel/smp.c
1091 -@@ -70,7 +70,7 @@ enum ipi_msg_type {
1092 +@@ -73,7 +73,7 @@ enum ipi_msg_type {
1093
1094 static DECLARE_COMPLETION(cpu_running);
1095
1096 @@ -3093,10 +3096,10 @@ index 72024ea..ae302dd 100644
1097 void __init smp_set_ops(struct smp_operations *ops)
1098 {
1099 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
1100 -index 1f735aa..08af6f7 100644
1101 +index 4636d56..ce4ec3d 100644
1102 --- a/arch/arm/kernel/traps.c
1103 +++ b/arch/arm/kernel/traps.c
1104 -@@ -61,7 +61,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
1105 +@@ -62,7 +62,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
1106 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
1107 {
1108 #ifdef CONFIG_KALLSYMS
1109 @@ -3105,7 +3108,7 @@ index 1f735aa..08af6f7 100644
1110 #else
1111 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
1112 #endif
1113 -@@ -263,6 +263,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
1114 +@@ -264,6 +264,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
1115 static int die_owner = -1;
1116 static unsigned int die_nest_count;
1117
1118 @@ -3114,7 +3117,7 @@ index 1f735aa..08af6f7 100644
1119 static unsigned long oops_begin(void)
1120 {
1121 int cpu;
1122 -@@ -305,6 +307,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
1123 +@@ -306,6 +308,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
1124 panic("Fatal exception in interrupt");
1125 if (panic_on_oops)
1126 panic("Fatal exception");
1127 @@ -3124,7 +3127,7 @@ index 1f735aa..08af6f7 100644
1128 if (signr)
1129 do_exit(signr);
1130 }
1131 -@@ -635,7 +640,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
1132 +@@ -642,7 +647,9 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
1133 * The user helper at 0xffff0fe0 must be used instead.
1134 * (see entry-armv.S for details)
1135 */
1136 @@ -3134,7 +3137,7 @@ index 1f735aa..08af6f7 100644
1137 }
1138 return 0;
1139
1140 -@@ -892,7 +899,11 @@ void __init early_trap_init(void *vectors_base)
1141 +@@ -899,7 +906,11 @@ void __init early_trap_init(void *vectors_base)
1142 kuser_init(vectors_base);
1143
1144 flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
1145 @@ -3218,7 +3221,7 @@ index 7bcee5c..e2f3249 100644
1146 __data_loc = .;
1147 #endif
1148 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
1149 -index 9c697db..115237f 100644
1150 +index 2a700e0..745b980 100644
1151 --- a/arch/arm/kvm/arm.c
1152 +++ b/arch/arm/kvm/arm.c
1153 @@ -56,7 +56,7 @@ static unsigned long hyp_default_vectors;
1154 @@ -3230,7 +3233,7 @@ index 9c697db..115237f 100644
1155 static u8 kvm_next_vmid;
1156 static DEFINE_SPINLOCK(kvm_vmid_lock);
1157
1158 -@@ -396,7 +396,7 @@ void force_vm_exit(const cpumask_t *mask)
1159 +@@ -397,7 +397,7 @@ void force_vm_exit(const cpumask_t *mask)
1160 */
1161 static bool need_new_vmid_gen(struct kvm *kvm)
1162 {
1163 @@ -3239,7 +3242,7 @@ index 9c697db..115237f 100644
1164 }
1165
1166 /**
1167 -@@ -429,7 +429,7 @@ static void update_vttbr(struct kvm *kvm)
1168 +@@ -430,7 +430,7 @@ static void update_vttbr(struct kvm *kvm)
1169
1170 /* First user of a new VMID generation? */
1171 if (unlikely(kvm_next_vmid == 0)) {
1172 @@ -3248,7 +3251,7 @@ index 9c697db..115237f 100644
1173 kvm_next_vmid = 1;
1174
1175 /*
1176 -@@ -446,7 +446,7 @@ static void update_vttbr(struct kvm *kvm)
1177 +@@ -447,7 +447,7 @@ static void update_vttbr(struct kvm *kvm)
1178 kvm_call_hyp(__kvm_flush_vm_context);
1179 }
1180
1181 @@ -3382,10 +3385,10 @@ index 5306de3..aed6d03 100644
1182 .const_udelay = __loop_const_udelay,
1183 .udelay = __loop_udelay,
1184 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
1185 -index 025f742..a9e5b3b 100644
1186 +index 3e58d71..029817c 100644
1187 --- a/arch/arm/lib/uaccess_with_memcpy.c
1188 +++ b/arch/arm/lib/uaccess_with_memcpy.c
1189 -@@ -104,7 +104,7 @@ out:
1190 +@@ -136,7 +136,7 @@ out:
1191 }
1192
1193 unsigned long
1194 @@ -3394,7 +3397,7 @@ index 025f742..a9e5b3b 100644
1195 {
1196 /*
1197 * This test is stubbed out of the main function above to keep
1198 -@@ -155,7 +155,7 @@ out:
1199 +@@ -190,7 +190,7 @@ out:
1200 return n;
1201 }
1202
1203 @@ -3404,7 +3407,7 @@ index 025f742..a9e5b3b 100644
1204 /* See rational for this in __copy_to_user() above. */
1205 if (n < 64)
1206 diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
1207 -index 1767611..d2e7e24 100644
1208 +index f3407a5..bd4256f 100644
1209 --- a/arch/arm/mach-kirkwood/common.c
1210 +++ b/arch/arm/mach-kirkwood/common.c
1211 @@ -156,7 +156,16 @@ static void clk_gate_fn_disable(struct clk_hw *hw)
1212 @@ -3454,7 +3457,7 @@ index 827d1500..2885dc6 100644
1213 };
1214
1215 diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
1216 -index 579697a..1d5a3b2 100644
1217 +index d24926e..a7645a6 100644
1218 --- a/arch/arm/mach-omap2/gpmc.c
1219 +++ b/arch/arm/mach-omap2/gpmc.c
1220 @@ -148,7 +148,6 @@ struct omap3_gpmc_regs {
1221 @@ -3523,10 +3526,10 @@ index f991016..145ebeb 100644
1222 .resume = dummy_cpu_resume,
1223 .scu_prepare = dummy_scu_prepare,
1224 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
1225 -index 813c615..ce467c6 100644
1226 +index 3664562..72f85c6 100644
1227 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
1228 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
1229 -@@ -339,7 +339,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
1230 +@@ -343,7 +343,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
1231 return NOTIFY_OK;
1232 }
1233
1234 @@ -3536,10 +3539,10 @@ index 813c615..ce467c6 100644
1235 };
1236
1237 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
1238 -index 53f0735..5b54eb6 100644
1239 +index e0a398c..a470fa5 100644
1240 --- a/arch/arm/mach-omap2/omap_device.c
1241 +++ b/arch/arm/mach-omap2/omap_device.c
1242 -@@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
1243 +@@ -508,7 +508,7 @@ void omap_device_delete(struct omap_device *od)
1244 struct platform_device __init *omap_device_build(const char *pdev_name,
1245 int pdev_id,
1246 struct omap_hwmod *oh,
1247 @@ -3548,7 +3551,7 @@ index 53f0735..5b54eb6 100644
1248 {
1249 struct omap_hwmod *ohs[] = { oh };
1250
1251 -@@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
1252 +@@ -536,7 +536,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
1253 struct platform_device __init *omap_device_build_ss(const char *pdev_name,
1254 int pdev_id,
1255 struct omap_hwmod **ohs,
1256 @@ -3558,10 +3561,10 @@ index 53f0735..5b54eb6 100644
1257 {
1258 int ret = -ENOMEM;
1259 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
1260 -index 17ca1ae..beba869 100644
1261 +index 78c02b3..c94109a 100644
1262 --- a/arch/arm/mach-omap2/omap_device.h
1263 +++ b/arch/arm/mach-omap2/omap_device.h
1264 -@@ -71,12 +71,12 @@ int omap_device_idle(struct platform_device *pdev);
1265 +@@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
1266 /* Core code interface */
1267
1268 struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
1269 @@ -3577,7 +3580,7 @@ index 17ca1ae..beba869 100644
1270 struct omap_device *omap_device_alloc(struct platform_device *pdev,
1271 struct omap_hwmod **ohs, int oh_cnt);
1272 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
1273 -index 832adb1..49b62c4 100644
1274 +index 8a1b5e0..5f30074 100644
1275 --- a/arch/arm/mach-omap2/omap_hwmod.c
1276 +++ b/arch/arm/mach-omap2/omap_hwmod.c
1277 @@ -194,10 +194,10 @@ struct omap_hwmod_soc_ops {
1278 @@ -3631,10 +3634,10 @@ index b82dcae..44ee5b6 100644
1279 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
1280
1281 diff --git a/arch/arm/mach-ux500/setup.h b/arch/arm/mach-ux500/setup.h
1282 -index 656324a..0beba28 100644
1283 +index bdb3564..cebb96f 100644
1284 --- a/arch/arm/mach-ux500/setup.h
1285 +++ b/arch/arm/mach-ux500/setup.h
1286 -@@ -40,13 +40,6 @@ extern void ux500_timer_init(void);
1287 +@@ -39,13 +39,6 @@ extern void ux500_timer_init(void);
1288 .type = MT_DEVICE, \
1289 }
1290
1291 @@ -3649,7 +3652,7 @@ index 656324a..0beba28 100644
1292 extern void ux500_cpu_die(unsigned int cpu);
1293
1294 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
1295 -index cd2c88e..4dd9b67 100644
1296 +index 1f8fed9..14d7823 100644
1297 --- a/arch/arm/mm/Kconfig
1298 +++ b/arch/arm/mm/Kconfig
1299 @@ -446,7 +446,7 @@ config CPU_32v5
1300 @@ -3687,10 +3690,10 @@ index cd2c88e..4dd9b67 100644
1301
1302 If all of the binaries and libraries which run on your platform
1303 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
1304 -index 6f4585b..7b6f52b 100644
1305 +index 9240364..a2b8cf3 100644
1306 --- a/arch/arm/mm/alignment.c
1307 +++ b/arch/arm/mm/alignment.c
1308 -@@ -211,10 +211,12 @@ union offset_union {
1309 +@@ -212,10 +212,12 @@ union offset_union {
1310 #define __get16_unaligned_check(ins,val,addr) \
1311 do { \
1312 unsigned int err = 0, v, a = addr; \
1313 @@ -3703,7 +3706,7 @@ index 6f4585b..7b6f52b 100644
1314 if (err) \
1315 goto fault; \
1316 } while (0)
1317 -@@ -228,6 +230,7 @@ union offset_union {
1318 +@@ -229,6 +231,7 @@ union offset_union {
1319 #define __get32_unaligned_check(ins,val,addr) \
1320 do { \
1321 unsigned int err = 0, v, a = addr; \
1322 @@ -3711,7 +3714,7 @@ index 6f4585b..7b6f52b 100644
1323 __get8_unaligned_check(ins,v,a,err); \
1324 val = v << ((BE) ? 24 : 0); \
1325 __get8_unaligned_check(ins,v,a,err); \
1326 -@@ -236,6 +239,7 @@ union offset_union {
1327 +@@ -237,6 +240,7 @@ union offset_union {
1328 val |= v << ((BE) ? 8 : 16); \
1329 __get8_unaligned_check(ins,v,a,err); \
1330 val |= v << ((BE) ? 0 : 24); \
1331 @@ -3719,7 +3722,7 @@ index 6f4585b..7b6f52b 100644
1332 if (err) \
1333 goto fault; \
1334 } while (0)
1335 -@@ -249,6 +253,7 @@ union offset_union {
1336 +@@ -250,6 +254,7 @@ union offset_union {
1337 #define __put16_unaligned_check(ins,val,addr) \
1338 do { \
1339 unsigned int err = 0, v = val, a = addr; \
1340 @@ -3727,7 +3730,7 @@ index 6f4585b..7b6f52b 100644
1341 __asm__( FIRST_BYTE_16 \
1342 ARM( "1: "ins" %1, [%2], #1\n" ) \
1343 THUMB( "1: "ins" %1, [%2]\n" ) \
1344 -@@ -268,6 +273,7 @@ union offset_union {
1345 +@@ -269,6 +274,7 @@ union offset_union {
1346 " .popsection\n" \
1347 : "=r" (err), "=&r" (v), "=&r" (a) \
1348 : "0" (err), "1" (v), "2" (a)); \
1349 @@ -3735,7 +3738,7 @@ index 6f4585b..7b6f52b 100644
1350 if (err) \
1351 goto fault; \
1352 } while (0)
1353 -@@ -281,6 +287,7 @@ union offset_union {
1354 +@@ -282,6 +288,7 @@ union offset_union {
1355 #define __put32_unaligned_check(ins,val,addr) \
1356 do { \
1357 unsigned int err = 0, v = val, a = addr; \
1358 @@ -3743,7 +3746,7 @@ index 6f4585b..7b6f52b 100644
1359 __asm__( FIRST_BYTE_32 \
1360 ARM( "1: "ins" %1, [%2], #1\n" ) \
1361 THUMB( "1: "ins" %1, [%2]\n" ) \
1362 -@@ -310,6 +317,7 @@ union offset_union {
1363 +@@ -311,6 +318,7 @@ union offset_union {
1364 " .popsection\n" \
1365 : "=r" (err), "=&r" (v), "=&r" (a) \
1366 : "0" (err), "1" (v), "2" (a)); \
1367 @@ -4057,7 +4060,7 @@ index cf08bdf..772656c 100644
1368 unsigned long search_exception_table(unsigned long addr);
1369
1370 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
1371 -index 18ec4c5..479bb6a 100644
1372 +index 3e8f106..a0a1fe4 100644
1373 --- a/arch/arm/mm/init.c
1374 +++ b/arch/arm/mm/init.c
1375 @@ -30,6 +30,8 @@
1376 @@ -4069,7 +4072,7 @@ index 18ec4c5..479bb6a 100644
1377
1378 #include <asm/mach/arch.h>
1379 #include <asm/mach/map.h>
1380 -@@ -684,7 +686,46 @@ void free_initmem(void)
1381 +@@ -681,7 +683,46 @@ void free_initmem(void)
1382 {
1383 #ifdef CONFIG_HAVE_TCM
1384 extern char __tcm_start, __tcm_end;
1385 @@ -4133,7 +4136,7 @@ index f123d6e..04bf569 100644
1386 return __arm_ioremap_caller(phys_addr, size, mtype,
1387 __builtin_return_address(0));
1388 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
1389 -index 304661d..53a6b19 100644
1390 +index 5e85ed3..b10a7ed 100644
1391 --- a/arch/arm/mm/mmap.c
1392 +++ b/arch/arm/mm/mmap.c
1393 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
1394 @@ -4244,10 +4247,10 @@ index 304661d..53a6b19 100644
1395 }
1396 }
1397 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
1398 -index b1d17ee..7a6f4d3 100644
1399 +index 580ef2d..2da06ca 100644
1400 --- a/arch/arm/mm/mmu.c
1401 +++ b/arch/arm/mm/mmu.c
1402 -@@ -36,6 +36,22 @@
1403 +@@ -38,6 +38,22 @@
1404 #include "mm.h"
1405 #include "tcm.h"
1406
1407 @@ -4270,7 +4273,7 @@ index b1d17ee..7a6f4d3 100644
1408 /*
1409 * empty_zero_page is a special page that is used for
1410 * zero-initialized data and COW.
1411 -@@ -228,10 +244,18 @@ __setup("noalign", noalign_setup);
1412 +@@ -230,10 +246,18 @@ __setup("noalign", noalign_setup);
1413
1414 #endif /* ifdef CONFIG_CPU_CP15 / else */
1415
1416 @@ -4291,7 +4294,7 @@ index b1d17ee..7a6f4d3 100644
1417 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
1418 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
1419 L_PTE_SHARED,
1420 -@@ -260,16 +284,16 @@ static struct mem_type mem_types[] = {
1421 +@@ -262,16 +286,16 @@ static struct mem_type mem_types[] = {
1422 [MT_UNCACHED] = {
1423 .prot_pte = PROT_PTE_DEVICE,
1424 .prot_l1 = PMD_TYPE_TABLE,
1425 @@ -4311,7 +4314,7 @@ index b1d17ee..7a6f4d3 100644
1426 .domain = DOMAIN_KERNEL,
1427 },
1428 #endif
1429 -@@ -277,36 +301,54 @@ static struct mem_type mem_types[] = {
1430 +@@ -279,36 +303,54 @@ static struct mem_type mem_types[] = {
1431 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
1432 L_PTE_RDONLY,
1433 .prot_l1 = PMD_TYPE_TABLE,
1434 @@ -4374,7 +4377,7 @@ index b1d17ee..7a6f4d3 100644
1435 .domain = DOMAIN_KERNEL,
1436 },
1437 [MT_MEMORY_ITCM] = {
1438 -@@ -316,10 +358,10 @@ static struct mem_type mem_types[] = {
1439 +@@ -318,10 +360,10 @@ static struct mem_type mem_types[] = {
1440 },
1441 [MT_MEMORY_SO] = {
1442 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
1443 @@ -4387,7 +4390,7 @@ index b1d17ee..7a6f4d3 100644
1444 .domain = DOMAIN_KERNEL,
1445 },
1446 [MT_MEMORY_DMA_READY] = {
1447 -@@ -405,9 +447,35 @@ static void __init build_mem_type_table(void)
1448 +@@ -407,9 +449,35 @@ static void __init build_mem_type_table(void)
1449 * to prevent speculative instruction fetches.
1450 */
1451 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_XN;
1452 @@ -4423,7 +4426,7 @@ index b1d17ee..7a6f4d3 100644
1453 }
1454 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
1455 /*
1456 -@@ -468,6 +536,9 @@ static void __init build_mem_type_table(void)
1457 +@@ -470,6 +538,9 @@ static void __init build_mem_type_table(void)
1458 * from SVC mode and no access from userspace.
1459 */
1460 mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
1461 @@ -4433,7 +4436,7 @@ index b1d17ee..7a6f4d3 100644
1462 mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
1463 mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
1464 #endif
1465 -@@ -485,11 +556,17 @@ static void __init build_mem_type_table(void)
1466 +@@ -487,11 +558,17 @@ static void __init build_mem_type_table(void)
1467 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
1468 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
1469 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
1470 @@ -4455,7 +4458,7 @@ index b1d17ee..7a6f4d3 100644
1471 }
1472 }
1473
1474 -@@ -500,15 +577,20 @@ static void __init build_mem_type_table(void)
1475 +@@ -502,15 +579,20 @@ static void __init build_mem_type_table(void)
1476 if (cpu_arch >= CPU_ARCH_ARMv6) {
1477 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
1478 /* Non-cacheable Normal is XCB = 001 */
1479 @@ -4479,7 +4482,7 @@ index b1d17ee..7a6f4d3 100644
1480 }
1481
1482 #ifdef CONFIG_ARM_LPAE
1483 -@@ -524,6 +606,8 @@ static void __init build_mem_type_table(void)
1484 +@@ -526,6 +608,8 @@ static void __init build_mem_type_table(void)
1485 vecs_pgprot |= PTE_EXT_AF;
1486 #endif
1487
1488 @@ -4488,7 +4491,7 @@ index b1d17ee..7a6f4d3 100644
1489 for (i = 0; i < 16; i++) {
1490 pteval_t v = pgprot_val(protection_map[i]);
1491 protection_map[i] = __pgprot(v | user_pgprot);
1492 -@@ -541,10 +625,15 @@ static void __init build_mem_type_table(void)
1493 +@@ -543,10 +627,15 @@ static void __init build_mem_type_table(void)
1494
1495 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
1496 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
1497 @@ -4507,7 +4510,7 @@ index b1d17ee..7a6f4d3 100644
1498 mem_types[MT_ROM].prot_sect |= cp->pmd;
1499
1500 switch (cp->pmd) {
1501 -@@ -1186,18 +1275,15 @@ void __init arm_mm_memblock_reserve(void)
1502 +@@ -1188,18 +1277,15 @@ void __init arm_mm_memblock_reserve(void)
1503 * called function. This means you can't use any function or debugging
1504 * method which may touch any device, otherwise the kernel _will_ crash.
1505 */
1506 @@ -4530,7 +4533,7 @@ index b1d17ee..7a6f4d3 100644
1507
1508 for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
1509 pmd_clear(pmd_off_k(addr));
1510 -@@ -1237,7 +1323,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
1511 +@@ -1239,7 +1325,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
1512 * location (0xffff0000). If we aren't using high-vectors, also
1513 * create a mapping at the low-vectors virtual address.
1514 */
1515 @@ -4539,7 +4542,7 @@ index b1d17ee..7a6f4d3 100644
1516 map.virtual = 0xffff0000;
1517 map.length = PAGE_SIZE;
1518 #ifdef CONFIG_KUSER_HELPERS
1519 -@@ -1309,8 +1395,39 @@ static void __init map_lowmem(void)
1520 +@@ -1311,8 +1397,39 @@ static void __init map_lowmem(void)
1521 map.pfn = __phys_to_pfn(start);
1522 map.virtual = __phys_to_virt(start);
1523 map.length = end - start;
1524 @@ -4580,24 +4583,6 @@ index b1d17ee..7a6f4d3 100644
1525 create_mapping(&map);
1526 }
1527 }
1528 -diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
1529 -index 99b44e0..8c9106f 100644
1530 ---- a/arch/arm/net/bpf_jit_32.c
1531 -+++ b/arch/arm/net/bpf_jit_32.c
1532 -@@ -637,10 +637,10 @@ load_ind:
1533 - emit(ARM_MUL(r_A, r_A, r_X), ctx);
1534 - break;
1535 - case BPF_S_ALU_DIV_K:
1536 -- /* current k == reciprocal_value(userspace k) */
1537 -+ if (k == 1)
1538 -+ break;
1539 - emit_mov_i(r_scratch, k, ctx);
1540 -- /* A = top 32 bits of the product */
1541 -- emit(ARM_UMULL(r_scratch, r_A, r_A, r_scratch), ctx);
1542 -+ emit_udiv(r_A, r_A, r_scratch, ctx);
1543 - break;
1544 - case BPF_S_ALU_DIV_X:
1545 - update_on_xread(ctx);
1546 diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
1547 index a5bc92d..0bb4730 100644
1548 --- a/arch/arm/plat-omap/sram.c
1549 @@ -4874,7 +4859,7 @@ index f4ca594..adc72fd6 100644
1550 #define __cacheline_aligned __aligned(L1_CACHE_BYTES)
1551 #define ____cacheline_aligned __aligned(L1_CACHE_BYTES)
1552 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
1553 -index 7740ab1..17fa8c5 100644
1554 +index 4e4119b..dd7de0a 100644
1555 --- a/arch/ia64/Kconfig
1556 +++ b/arch/ia64/Kconfig
1557 @@ -554,6 +554,7 @@ source "drivers/sn/Kconfig"
1558 @@ -4946,7 +4931,7 @@ index 5a83c5c..4d7f553 100644
1559
1560 /* IA-64 relocations: */
1561 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
1562 -index 96a8d92..617a1cf 100644
1563 +index 5767cdf..7462574 100644
1564 --- a/arch/ia64/include/asm/pgalloc.h
1565 +++ b/arch/ia64/include/asm/pgalloc.h
1566 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
1567 @@ -5305,7 +5290,7 @@ index 68232db..6ca80af 100644
1568 }
1569
1570 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
1571 -index b6f7f43..c04320d 100644
1572 +index 88504ab..cbb6c9f 100644
1573 --- a/arch/ia64/mm/init.c
1574 +++ b/arch/ia64/mm/init.c
1575 @@ -120,6 +120,19 @@ ia64_init_addr_space (void)
1576 @@ -5416,10 +5401,10 @@ index 4efe96a..60e8699 100644
1577 #define SMP_CACHE_BYTES L1_CACHE_BYTES
1578
1579 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
1580 -index f75ab4a..adc6968 100644
1581 +index 650de39..6982b02 100644
1582 --- a/arch/mips/Kconfig
1583 +++ b/arch/mips/Kconfig
1584 -@@ -2283,6 +2283,7 @@ source "kernel/Kconfig.preempt"
1585 +@@ -2268,6 +2268,7 @@ source "kernel/Kconfig.preempt"
1586
1587 config KEXEC
1588 bool "Kexec system call"
1589 @@ -5428,7 +5413,7 @@ index f75ab4a..adc6968 100644
1590 kexec is a system call that implements the ability to shutdown your
1591 current kernel, and to start another kernel. It is like a reboot
1592 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
1593 -index 08b6079..8b554d2 100644
1594 +index 7eed2f2..c4e385d 100644
1595 --- a/arch/mips/include/asm/atomic.h
1596 +++ b/arch/mips/include/asm/atomic.h
1597 @@ -21,15 +21,39 @@
1598 @@ -6352,10 +6337,10 @@ index b4db69f..8f3b093 100644
1599 #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
1600 #define SMP_CACHE_BYTES L1_CACHE_BYTES
1601 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
1602 -index cf3ae24..238d22f 100644
1603 +index a66359e..d3d474a 100644
1604 --- a/arch/mips/include/asm/elf.h
1605 +++ b/arch/mips/include/asm/elf.h
1606 -@@ -372,13 +372,16 @@ extern const char *__elf_platform;
1607 +@@ -373,13 +373,16 @@ extern const char *__elf_platform;
1608 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1609 #endif
1610
1611 @@ -6493,7 +6478,7 @@ index f6be474..12ad554 100644
1612 typedef struct { unsigned long long pte; } pte_t;
1613 #define pte_val(x) ((x).pte)
1614 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
1615 -index 881d18b..cea38bc 100644
1616 +index b336037..5b874cc 100644
1617 --- a/arch/mips/include/asm/pgalloc.h
1618 +++ b/arch/mips/include/asm/pgalloc.h
1619 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1620 @@ -6521,43 +6506,44 @@ index 25da651..ae2a259 100644
1621
1622 #endif /* __ASM_SMTC_PROC_H */
1623 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
1624 -index 61215a3..213ee0e 100644
1625 +index 4f58ef6..5e7081b 100644
1626 --- a/arch/mips/include/asm/thread_info.h
1627 +++ b/arch/mips/include/asm/thread_info.h
1628 -@@ -116,6 +116,8 @@ static inline struct thread_info *current_thread_info(void)
1629 - #define TIF_32BIT_ADDR 23 /* 32-bit address space (o32/n32) */
1630 +@@ -115,6 +115,8 @@ static inline struct thread_info *current_thread_info(void)
1631 #define TIF_FPUBOUND 24 /* thread bound to FPU-full CPU set */
1632 #define TIF_LOAD_WATCH 25 /* If set, load watch registers */
1633 + #define TIF_SYSCALL_TRACEPOINT 26 /* syscall tracepoint instrumentation */
1634 +/* li takes a 32bit immediate */
1635 +#define TIF_GRSEC_SETXID 29 /* update credentials on syscall entry/exit */
1636 #define TIF_SYSCALL_TRACE 31 /* syscall trace active */
1637
1638 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
1639 -@@ -132,20 +134,18 @@ static inline struct thread_info *current_thread_info(void)
1640 - #define _TIF_32BIT_ADDR (1<<TIF_32BIT_ADDR)
1641 +@@ -132,13 +134,14 @@ static inline struct thread_info *current_thread_info(void)
1642 #define _TIF_FPUBOUND (1<<TIF_FPUBOUND)
1643 #define _TIF_LOAD_WATCH (1<<TIF_LOAD_WATCH)
1644 + #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
1645 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
1646
1647 --#define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
1648 -- _TIF_SYSCALL_AUDIT)
1649 -+#define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
1650 + #define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
1651 +- _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
1652 ++ _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
1653
1654 /* work to do in syscall_trace_leave() */
1655 --#define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
1656 -- _TIF_SYSCALL_AUDIT)
1657 -+#define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_GRSEC_SETXID)
1658 + #define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
1659 +- _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
1660 ++ _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
1661
1662 /* work to do on interrupt/exception return */
1663 #define _TIF_WORK_MASK \
1664 - (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_NOTIFY_RESUME)
1665 +@@ -146,7 +149,7 @@ static inline struct thread_info *current_thread_info(void)
1666 /* work to do on any return to u-space */
1667 --#define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
1668 -- _TIF_WORK_SYSCALL_EXIT)
1669 -+#define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | _TIF_WORK_SYSCALL_EXIT | _TIF_GRSEC_SETXID)
1670 -
1671 - #endif /* __KERNEL__ */
1672 + #define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
1673 + _TIF_WORK_SYSCALL_EXIT | \
1674 +- _TIF_SYSCALL_TRACEPOINT)
1675 ++ _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
1676
1677 + /*
1678 + * We stash processor id into a COP0 register to retrieve it fast
1679 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
1680 index 1188e00..41cf144 100644
1681 --- a/arch/mips/kernel/binfmt_elfn32.c
1682 @@ -6640,11 +6626,11 @@ index ddc7610..8c58f17 100644
1683 - return sp & ALMASK;
1684 -}
1685 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
1686 -index 8ae1ebe..1bcbf47 100644
1687 +index b52e1d2..1a3ca09 100644
1688 --- a/arch/mips/kernel/ptrace.c
1689 +++ b/arch/mips/kernel/ptrace.c
1690 -@@ -529,6 +529,10 @@ static inline int audit_arch(void)
1691 - return arch;
1692 +@@ -652,6 +652,10 @@ long arch_ptrace(struct task_struct *child, long request,
1693 + return ret;
1694 }
1695
1696 +#ifdef CONFIG_GRKERNSEC_SETXID
1697 @@ -6654,17 +6640,17 @@ index 8ae1ebe..1bcbf47 100644
1698 /*
1699 * Notification of system call entry/exit
1700 * - triggered by current->work.syscall_trace
1701 -@@ -540,6 +544,11 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
1702 - /* do the secure computing check first */
1703 - secure_computing_strict(regs->regs[2]);
1704 +@@ -668,6 +672,11 @@ asmlinkage void syscall_trace_enter(struct pt_regs *regs)
1705 + tracehook_report_syscall_entry(regs))
1706 + ret = -1;
1707
1708 +#ifdef CONFIG_GRKERNSEC_SETXID
1709 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
1710 + gr_delayed_cred_worker();
1711 +#endif
1712 +
1713 - if (!(current->ptrace & PT_PTRACED))
1714 - goto out;
1715 + if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
1716 + trace_sys_enter(regs, regs->regs[2]);
1717
1718 diff --git a/arch/mips/kernel/smtc-proc.c b/arch/mips/kernel/smtc-proc.c
1719 index c10aa84..9ec2e60 100644
1720 @@ -6780,10 +6766,10 @@ index 84536bf..79caa4d 100644
1721 }
1722 /* Arrange for an interrupt in a short while */
1723 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
1724 -index 524841f..3eef41e 100644
1725 +index f9c8746..78b64e3 100644
1726 --- a/arch/mips/kernel/traps.c
1727 +++ b/arch/mips/kernel/traps.c
1728 -@@ -684,7 +684,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
1729 +@@ -690,7 +690,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
1730 siginfo_t info;
1731
1732 prev_state = exception_enter();
1733 @@ -7104,7 +7090,7 @@ index ad2b503..bdf1651 100644
1734 instruction set this CPU supports. This could be done in user space,
1735 but it's not easy, and we've already done it here. */
1736 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
1737 -index fc987a1..6e068ef 100644
1738 +index f213f5b..0af3e8e 100644
1739 --- a/arch/parisc/include/asm/pgalloc.h
1740 +++ b/arch/parisc/include/asm/pgalloc.h
1741 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
1742 @@ -7150,10 +7136,10 @@ index 34899b5..02dd060 100644
1743 #define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
1744 #define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
1745 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
1746 -index e0a8235..ce2f1e1 100644
1747 +index 4006964..fcb3cc2 100644
1748 --- a/arch/parisc/include/asm/uaccess.h
1749 +++ b/arch/parisc/include/asm/uaccess.h
1750 -@@ -245,10 +245,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
1751 +@@ -246,10 +246,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
1752 const void __user *from,
1753 unsigned long n)
1754 {
1755 @@ -7167,7 +7153,7 @@ index e0a8235..ce2f1e1 100644
1756 else
1757 copy_from_user_overflow();
1758 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
1759 -index 2a625fb..9908930 100644
1760 +index 50dfafc..b9fc230 100644
1761 --- a/arch/parisc/kernel/module.c
1762 +++ b/arch/parisc/kernel/module.c
1763 @@ -98,16 +98,38 @@
1764 @@ -7270,7 +7256,7 @@ index 2a625fb..9908930 100644
1765 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
1766 me->arch.unwind_section, table, end, gp);
1767 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
1768 -index 0d3a9d4..44975d0 100644
1769 +index 0d3a9d4..20a99b0 100644
1770 --- a/arch/parisc/kernel/sys_parisc.c
1771 +++ b/arch/parisc/kernel/sys_parisc.c
1772 @@ -33,9 +33,11 @@
1773 @@ -7278,11 +7264,11 @@ index 0d3a9d4..44975d0 100644
1774 #include <linux/personality.h>
1775
1776 -static unsigned long get_unshared_area(unsigned long addr, unsigned long len)
1777 -+static unsigned long get_unshared_area(struct file *filp, unsigned long addr, unsigned long len,
1778 ++static unsigned long get_unshared_area(unsigned long addr, unsigned long len,
1779 + unsigned long flags)
1780 {
1781 struct vm_unmapped_area_info info;
1782 -+ unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
1783 ++ unsigned long offset = gr_rand_threadstack_offset(current->mm, NULL, flags);
1784
1785 info.flags = 0;
1786 info.length = len;
1787 @@ -7294,7 +7280,7 @@ index 0d3a9d4..44975d0 100644
1788 return vm_unmapped_area(&info);
1789 }
1790
1791 -@@ -69,15 +72,17 @@ static unsigned long shared_align_offset(struct file *filp, unsigned long pgoff)
1792 +@@ -69,9 +72,10 @@ static unsigned long shared_align_offset(struct file *filp, unsigned long pgoff)
1793 }
1794
1795 static unsigned long get_shared_area(struct file *filp, unsigned long addr,
1796 @@ -7306,13 +7292,14 @@ index 0d3a9d4..44975d0 100644
1797
1798 info.flags = 0;
1799 info.length = len;
1800 - info.low_limit = PAGE_ALIGN(addr);
1801 +@@ -79,6 +83,7 @@ static unsigned long get_shared_area(struct file *filp, unsigned long addr,
1802 info.high_limit = TASK_SIZE;
1803 info.align_mask = PAGE_MASK & (SHMLBA - 1);
1804 -+ info.threadstack_offset = offset;
1805 info.align_offset = shared_align_offset(filp, pgoff);
1806 ++ info.threadstack_offset = offset;
1807 return vm_unmapped_area(&info);
1808 }
1809 +
1810 @@ -93,13 +98,20 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
1811 return -EINVAL;
1812 return addr;
1813 @@ -7353,7 +7340,7 @@ index 1cd1d0c..44ec918 100644
1814 fault_space = regs->iasq[0];
1815
1816 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
1817 -index 0293588..3b229aa 100644
1818 +index 9d08c71..e2b4d20 100644
1819 --- a/arch/parisc/mm/fault.c
1820 +++ b/arch/parisc/mm/fault.c
1821 @@ -15,6 +15,7 @@
1822 @@ -7490,7 +7477,7 @@ index 0293588..3b229aa 100644
1823 int fixup_exception(struct pt_regs *regs)
1824 {
1825 const struct exception_table_entry *fix;
1826 -@@ -204,8 +315,33 @@ retry:
1827 +@@ -210,8 +321,33 @@ retry:
1828
1829 good_area:
1830
1831 @@ -7526,10 +7513,10 @@ index 0293588..3b229aa 100644
1832 /*
1833 * If for any reason at all we couldn't handle the fault, make
1834 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
1835 -index 38f3b7e..7e485c0 100644
1836 +index b44b52c..4cd253c 100644
1837 --- a/arch/powerpc/Kconfig
1838 +++ b/arch/powerpc/Kconfig
1839 -@@ -378,6 +378,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
1840 +@@ -382,6 +382,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE
1841 config KEXEC
1842 bool "kexec system call"
1843 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
1844 @@ -7580,7 +7567,7 @@ index 9e495c9..b6878e5 100644
1845 #define SMP_CACHE_BYTES L1_CACHE_BYTES
1846
1847 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
1848 -index cc0655a..13eac2e 100644
1849 +index 935b5e7..7001d2d 100644
1850 --- a/arch/powerpc/include/asm/elf.h
1851 +++ b/arch/powerpc/include/asm/elf.h
1852 @@ -28,8 +28,19 @@
1853 @@ -7603,9 +7590,9 @@ index cc0655a..13eac2e 100644
1854 +#endif
1855 +#endif
1856
1857 - /*
1858 - * Our registers are always unsigned longs, whether we're a 32 bit
1859 -@@ -123,10 +134,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
1860 + #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
1861 +
1862 +@@ -127,10 +138,6 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
1863 (0x7ff >> (PAGE_SHIFT - 12)) : \
1864 (0x3ffff >> (PAGE_SHIFT - 12)))
1865
1866 @@ -7655,7 +7642,7 @@ index 8565c25..2865190 100644
1867 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
1868 }
1869 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
1870 -index b9f4262..dcf04f7 100644
1871 +index 32e4e21..62afb12 100644
1872 --- a/arch/powerpc/include/asm/page.h
1873 +++ b/arch/powerpc/include/asm/page.h
1874 @@ -230,8 +230,9 @@ extern long long virt_phys_offset;
1875 @@ -7706,10 +7693,10 @@ index 88693ce..ac6f9ab 100644
1876 #include <asm-generic/getorder.h>
1877
1878 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
1879 -index 256d6f8..b0166a7 100644
1880 +index 4b0be20..c15a27d 100644
1881 --- a/arch/powerpc/include/asm/pgalloc-64.h
1882 +++ b/arch/powerpc/include/asm/pgalloc-64.h
1883 -@@ -53,6 +53,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
1884 +@@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
1885 #ifndef CONFIG_PPC_64K_PAGES
1886
1887 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
1888 @@ -7717,7 +7704,7 @@ index 256d6f8..b0166a7 100644
1889
1890 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
1891 {
1892 -@@ -70,6 +71,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1893 +@@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1894 pud_set(pud, (unsigned long)pmd);
1895 }
1896
1897 @@ -7729,7 +7716,7 @@ index 256d6f8..b0166a7 100644
1898 #define pmd_populate(mm, pmd, pte_page) \
1899 pmd_populate_kernel(mm, pmd, page_address(pte_page))
1900 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
1901 -@@ -169,6 +175,7 @@ extern void __tlb_remove_table(void *_table);
1902 +@@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
1903 #endif
1904
1905 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
1906 @@ -7762,10 +7749,10 @@ index 4aad413..85d86bf 100644
1907 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
1908 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
1909 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
1910 -index 10d1ef0..8f83abc 100644
1911 +index fa8388e..f985549 100644
1912 --- a/arch/powerpc/include/asm/reg.h
1913 +++ b/arch/powerpc/include/asm/reg.h
1914 -@@ -234,6 +234,7 @@
1915 +@@ -239,6 +239,7 @@
1916 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
1917 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
1918 #define DSISR_NOHPTE 0x40000000 /* no translation found */
1919 @@ -7774,10 +7761,10 @@ index 10d1ef0..8f83abc 100644
1920 #define DSISR_ISSTORE 0x02000000 /* access was a store */
1921 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
1922 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
1923 -index 98da78e..dc68271 100644
1924 +index 084e080..9415a3d 100644
1925 --- a/arch/powerpc/include/asm/smp.h
1926 +++ b/arch/powerpc/include/asm/smp.h
1927 -@@ -50,7 +50,7 @@ struct smp_ops_t {
1928 +@@ -51,7 +51,7 @@ struct smp_ops_t {
1929 int (*cpu_disable)(void);
1930 void (*cpu_die)(unsigned int nr);
1931 int (*cpu_bootable)(unsigned int nr);
1932 @@ -7787,10 +7774,10 @@ index 98da78e..dc68271 100644
1933 extern void smp_send_debugger_break(void);
1934 extern void start_secondary_resume(void);
1935 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
1936 -index ba7b197..d292e26 100644
1937 +index 9854c56..7517190 100644
1938 --- a/arch/powerpc/include/asm/thread_info.h
1939 +++ b/arch/powerpc/include/asm/thread_info.h
1940 -@@ -93,7 +93,6 @@ static inline struct thread_info *current_thread_info(void)
1941 +@@ -91,7 +91,6 @@ static inline struct thread_info *current_thread_info(void)
1942 #define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling
1943 TIF_NEED_RESCHED */
1944 #define TIF_32BIT 4 /* 32 bit binary */
1945 @@ -7798,17 +7785,17 @@ index ba7b197..d292e26 100644
1946 #define TIF_PERFMON_CTXSW 6 /* perfmon needs ctxsw calls */
1947 #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
1948 #define TIF_SINGLESTEP 8 /* singlestepping active */
1949 -@@ -107,6 +106,9 @@ static inline struct thread_info *current_thread_info(void)
1950 - #define TIF_EMULATE_STACK_STORE 16 /* Is an instruction emulation
1951 - for stack store? */
1952 - #define TIF_MEMDIE 17 /* is terminating due to OOM killer */
1953 -+#define TIF_PERFMON_WORK 18 /* work for pfm_handle_work() */
1954 +@@ -108,6 +107,9 @@ static inline struct thread_info *current_thread_info(void)
1955 + #if defined(CONFIG_PPC64)
1956 + #define TIF_ELF2ABI 18 /* function descriptors must die! */
1957 + #endif
1958 ++#define TIF_PERFMON_WORK 19 /* work for pfm_handle_work() */
1959 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
1960 +#define TIF_GRSEC_SETXID 5 /* update credentials on syscall entry/exit */
1961
1962 /* as above, but as bit values */
1963 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
1964 -@@ -126,9 +128,10 @@ static inline struct thread_info *current_thread_info(void)
1965 +@@ -127,9 +129,10 @@ static inline struct thread_info *current_thread_info(void)
1966 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
1967 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
1968 #define _TIF_NOHZ (1<<TIF_NOHZ)
1969 @@ -7993,10 +7980,10 @@ index 9485b43..4718d50 100644
1970
1971 static inline unsigned long clear_user(void __user *addr, unsigned long size)
1972 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
1973 -index 2d06704..1616f1b 100644
1974 +index e775156..af2d1c0 100644
1975 --- a/arch/powerpc/kernel/exceptions-64e.S
1976 +++ b/arch/powerpc/kernel/exceptions-64e.S
1977 -@@ -757,6 +757,7 @@ storage_fault_common:
1978 +@@ -759,6 +759,7 @@ storage_fault_common:
1979 std r14,_DAR(r1)
1980 std r15,_DSISR(r1)
1981 addi r3,r1,STACK_FRAME_OVERHEAD
1982 @@ -8004,7 +7991,7 @@ index 2d06704..1616f1b 100644
1983 mr r4,r14
1984 mr r5,r15
1985 ld r14,PACA_EXGEN+EX_R14(r13)
1986 -@@ -765,8 +766,7 @@ storage_fault_common:
1987 +@@ -767,8 +768,7 @@ storage_fault_common:
1988 cmpdi r3,0
1989 bne- 1f
1990 b .ret_from_except_lite
1991 @@ -8015,10 +8002,10 @@ index 2d06704..1616f1b 100644
1992 ld r4,_DAR(r1)
1993 bl .bad_page_fault
1994 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
1995 -index 3a9ed6a..b534681 100644
1996 +index 9f905e4..1d6b3d2 100644
1997 --- a/arch/powerpc/kernel/exceptions-64s.S
1998 +++ b/arch/powerpc/kernel/exceptions-64s.S
1999 -@@ -1364,10 +1364,10 @@ handle_page_fault:
2000 +@@ -1390,10 +1390,10 @@ handle_page_fault:
2001 11: ld r4,_DAR(r1)
2002 ld r5,_DSISR(r1)
2003 addi r3,r1,STACK_FRAME_OVERHEAD
2004 @@ -8031,10 +8018,10 @@ index 3a9ed6a..b534681 100644
2005 addi r3,r1,STACK_FRAME_OVERHEAD
2006 lwz r4,_DAR(r1)
2007 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
2008 -index 2e3200c..7118986 100644
2009 +index 6cff040..74ac5d1 100644
2010 --- a/arch/powerpc/kernel/module_32.c
2011 +++ b/arch/powerpc/kernel/module_32.c
2012 -@@ -162,7 +162,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
2013 +@@ -161,7 +161,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
2014 me->arch.core_plt_section = i;
2015 }
2016 if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
2017 @@ -8043,7 +8030,7 @@ index 2e3200c..7118986 100644
2018 return -ENOEXEC;
2019 }
2020
2021 -@@ -192,11 +192,16 @@ static uint32_t do_plt_call(void *location,
2022 +@@ -191,11 +191,16 @@ static uint32_t do_plt_call(void *location,
2023
2024 DEBUGP("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
2025 /* Init, or core PLT? */
2026 @@ -8063,7 +8050,7 @@ index 2e3200c..7118986 100644
2027
2028 /* Find this entry, or if that fails, the next avail. entry */
2029 while (entry->jump[0]) {
2030 -@@ -300,7 +305,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
2031 +@@ -299,7 +304,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
2032 }
2033 #ifdef CONFIG_DYNAMIC_FTRACE
2034 module->arch.tramp =
2035 @@ -8073,10 +8060,10 @@ index 2e3200c..7118986 100644
2036 sechdrs, module);
2037 #endif
2038 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
2039 -index 96d2fdf..f6d10c8 100644
2040 +index 4a96556..dd95f6c 100644
2041 --- a/arch/powerpc/kernel/process.c
2042 +++ b/arch/powerpc/kernel/process.c
2043 -@@ -886,8 +886,8 @@ void show_regs(struct pt_regs * regs)
2044 +@@ -888,8 +888,8 @@ void show_regs(struct pt_regs * regs)
2045 * Lookup NIP late so we have the best change of getting the
2046 * above info out without failing
2047 */
2048 @@ -8085,9 +8072,9 @@ index 96d2fdf..f6d10c8 100644
2049 + printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
2050 + printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
2051 #endif
2052 - #ifdef CONFIG_PPC_TRANSACTIONAL_MEM
2053 - printk("PACATMSCRATCH [%llx]\n", get_paca()->tm_scratch);
2054 -@@ -1352,10 +1352,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
2055 + show_stack(current, (unsigned long *) regs->gpr[1]);
2056 + if (!user_mode(regs))
2057 +@@ -1376,10 +1376,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
2058 newsp = stack[0];
2059 ip = stack[STACK_FRAME_LR_SAVE];
2060 if (!firstframe || ip != lr) {
2061 @@ -8100,7 +8087,7 @@ index 96d2fdf..f6d10c8 100644
2062 (void *)current->ret_stack[curr_frame].ret);
2063 curr_frame--;
2064 }
2065 -@@ -1375,7 +1375,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
2066 +@@ -1399,7 +1399,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
2067 struct pt_regs *regs = (struct pt_regs *)
2068 (sp + STACK_FRAME_OVERHEAD);
2069 lr = regs->link;
2070 @@ -8109,7 +8096,7 @@ index 96d2fdf..f6d10c8 100644
2071 regs->trap, (void *)regs->nip, (void *)lr);
2072 firstframe = 1;
2073 }
2074 -@@ -1411,58 +1411,3 @@ void notrace __ppc64_runlatch_off(void)
2075 +@@ -1435,58 +1435,3 @@ void notrace __ppc64_runlatch_off(void)
2076 mtspr(SPRN_CTRLT, ctrl);
2077 }
2078 #endif /* CONFIG_PPC64 */
2079 @@ -8169,10 +8156,10 @@ index 96d2fdf..f6d10c8 100644
2080 - return ret;
2081 -}
2082 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
2083 -index 9a0d24c..e7fbedf 100644
2084 +index 2e3d2bf..35df241 100644
2085 --- a/arch/powerpc/kernel/ptrace.c
2086 +++ b/arch/powerpc/kernel/ptrace.c
2087 -@@ -1761,6 +1761,10 @@ long arch_ptrace(struct task_struct *child, long request,
2088 +@@ -1762,6 +1762,10 @@ long arch_ptrace(struct task_struct *child, long request,
2089 return ret;
2090 }
2091
2092 @@ -8183,7 +8170,7 @@ index 9a0d24c..e7fbedf 100644
2093 /*
2094 * We must return the syscall number to actually look up in the table.
2095 * This can be -1L to skip running any syscall at all.
2096 -@@ -1773,6 +1777,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
2097 +@@ -1774,6 +1778,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
2098
2099 secure_computing_strict(regs->gpr[0]);
2100
2101 @@ -8195,7 +8182,7 @@ index 9a0d24c..e7fbedf 100644
2102 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
2103 tracehook_report_syscall_entry(regs))
2104 /*
2105 -@@ -1807,6 +1816,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
2106 +@@ -1808,6 +1817,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
2107 {
2108 int step;
2109
2110 @@ -8208,10 +8195,10 @@ index 9a0d24c..e7fbedf 100644
2111
2112 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
2113 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
2114 -index fea2dba..a779f6b 100644
2115 +index 68027bf..b26fd31 100644
2116 --- a/arch/powerpc/kernel/signal_32.c
2117 +++ b/arch/powerpc/kernel/signal_32.c
2118 -@@ -1002,7 +1002,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
2119 +@@ -1004,7 +1004,7 @@ int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
2120 /* Save user registers on the stack */
2121 frame = &rt_sf->uc.uc_mcontext;
2122 addr = frame;
2123 @@ -8221,10 +8208,10 @@ index fea2dba..a779f6b 100644
2124 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
2125 } else {
2126 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
2127 -index 1e7ba88..17afb1b 100644
2128 +index 4299104..29e2c51 100644
2129 --- a/arch/powerpc/kernel/signal_64.c
2130 +++ b/arch/powerpc/kernel/signal_64.c
2131 -@@ -763,7 +763,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
2132 +@@ -758,7 +758,7 @@ int handle_rt_signal64(int signr, struct k_sigaction *ka, siginfo_t *info,
2133 #endif
2134
2135 /* Set up to return from userspace. */
2136 @@ -8234,7 +8221,7 @@ index 1e7ba88..17afb1b 100644
2137 } else {
2138 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
2139 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
2140 -index f783c93..619baf1 100644
2141 +index 907a472..4ba206f 100644
2142 --- a/arch/powerpc/kernel/traps.c
2143 +++ b/arch/powerpc/kernel/traps.c
2144 @@ -142,6 +142,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
2145 @@ -8257,18 +8244,18 @@ index f783c93..619baf1 100644
2146 }
2147
2148 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
2149 -index 1d9c926..25f4741 100644
2150 +index 094e45c..d82b848 100644
2151 --- a/arch/powerpc/kernel/vdso.c
2152 +++ b/arch/powerpc/kernel/vdso.c
2153 -@@ -34,6 +34,7 @@
2154 - #include <asm/firmware.h>
2155 +@@ -35,6 +35,7 @@
2156 #include <asm/vdso.h>
2157 #include <asm/vdso_datapage.h>
2158 + #include <asm/setup.h>
2159 +#include <asm/mman.h>
2160
2161 - #include "setup.h"
2162 + #undef DEBUG
2163
2164 -@@ -222,7 +223,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
2165 +@@ -221,7 +222,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
2166 vdso_base = VDSO32_MBASE;
2167 #endif
2168
2169 @@ -8277,7 +8264,7 @@ index 1d9c926..25f4741 100644
2170
2171 /* vDSO has a problem and was disabled, just don't "enable" it for the
2172 * process
2173 -@@ -242,7 +243,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
2174 +@@ -241,7 +242,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
2175 vdso_base = get_unmapped_area(NULL, vdso_base,
2176 (vdso_pages << PAGE_SHIFT) +
2177 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
2178 @@ -8496,25 +8483,6 @@ index 7ce9cf3..a964087 100644
2179 /* If hint, make sure it matches our alignment restrictions */
2180 if (!fixed && addr) {
2181 addr = _ALIGN_UP(addr, 1ul << pshift);
2182 -diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
2183 -index 2345bdb..ebbb2f1 100644
2184 ---- a/arch/powerpc/net/bpf_jit_comp.c
2185 -+++ b/arch/powerpc/net/bpf_jit_comp.c
2186 -@@ -209,10 +209,11 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
2187 - }
2188 - PPC_DIVWU(r_A, r_A, r_X);
2189 - break;
2190 -- case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K); */
2191 -+ case BPF_S_ALU_DIV_K: /* A /= K */
2192 -+ if (K == 1)
2193 -+ break;
2194 - PPC_LI32(r_scratch1, K);
2195 -- /* Top 32 bits of 64bit result -> A */
2196 -- PPC_MULHWU(r_A, r_A, r_scratch1);
2197 -+ PPC_DIVWU(r_A, r_A, r_scratch1);
2198 - break;
2199 - case BPF_S_ALU_AND_X:
2200 - ctx->seen |= SEEN_XREG;
2201 diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
2202 index 9098692..3d54cd1 100644
2203 --- a/arch/powerpc/platforms/cell/spufs/file.c
2204 @@ -8532,10 +8500,10 @@ index 9098692..3d54cd1 100644
2205 struct spu_context *ctx = vma->vm_file->private_data;
2206 unsigned long offset = address - vma->vm_start;
2207 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
2208 -index c797832..ce575c8 100644
2209 +index fa9aaf7..3f5d836 100644
2210 --- a/arch/s390/include/asm/atomic.h
2211 +++ b/arch/s390/include/asm/atomic.h
2212 -@@ -326,6 +326,16 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
2213 +@@ -398,6 +398,16 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
2214 #define atomic64_dec_and_test(_v) (atomic64_sub_return(1, _v) == 0)
2215 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
2216
2217 @@ -8612,10 +8580,10 @@ index c4a93d6..4d2a9b4 100644
2218
2219 #endif /* __ASM_EXEC_H */
2220 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
2221 -index 9c33ed4..e40cbef 100644
2222 +index 79330af..a3a7b06 100644
2223 --- a/arch/s390/include/asm/uaccess.h
2224 +++ b/arch/s390/include/asm/uaccess.h
2225 -@@ -252,6 +252,10 @@ static inline unsigned long __must_check
2226 +@@ -245,6 +245,10 @@ static inline unsigned long __must_check
2227 copy_to_user(void __user *to, const void *from, unsigned long n)
2228 {
2229 might_fault();
2230 @@ -8626,17 +8594,17 @@ index 9c33ed4..e40cbef 100644
2231 return __copy_to_user(to, from, n);
2232 }
2233
2234 -@@ -275,6 +279,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
2235 +@@ -268,6 +272,9 @@ copy_to_user(void __user *to, const void *from, unsigned long n)
2236 static inline unsigned long __must_check
2237 __copy_from_user(void *to, const void __user *from, unsigned long n)
2238 {
2239 + if ((long)n < 0)
2240 + return n;
2241 +
2242 - if (__builtin_constant_p(n) && (n <= 256))
2243 - return uaccess.copy_from_user_small(n, from, to);
2244 - else
2245 -@@ -306,10 +313,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
2246 + return uaccess.copy_from_user(n, from, to);
2247 + }
2248 +
2249 +@@ -296,10 +303,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
2250 static inline unsigned long __must_check
2251 copy_from_user(void *to, const void __user *from, unsigned long n)
2252 {
2253 @@ -8654,7 +8622,7 @@ index 9c33ed4..e40cbef 100644
2254 return n;
2255 }
2256 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
2257 -index 7845e15..59c4353 100644
2258 +index b89b591..fd9609d 100644
2259 --- a/arch/s390/kernel/module.c
2260 +++ b/arch/s390/kernel/module.c
2261 @@ -169,11 +169,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
2262 @@ -8729,10 +8697,10 @@ index 7845e15..59c4353 100644
2263 if (r_type == R_390_GOTPC)
2264 rc = apply_rela_bits(loc, val, 1, 32, 0);
2265 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
2266 -index c5dbb33..b41f4ee 100644
2267 +index 7ed0d4e..1dfc145 100644
2268 --- a/arch/s390/kernel/process.c
2269 +++ b/arch/s390/kernel/process.c
2270 -@@ -237,39 +237,3 @@ unsigned long get_wchan(struct task_struct *p)
2271 +@@ -242,39 +242,3 @@ unsigned long get_wchan(struct task_struct *p)
2272 }
2273 return 0;
2274 }
2275 @@ -8773,13 +8741,13 @@ index c5dbb33..b41f4ee 100644
2276 - return ret;
2277 -}
2278 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
2279 -index 4002329..99b67cb 100644
2280 +index 9b436c2..54fbf0a 100644
2281 --- a/arch/s390/mm/mmap.c
2282 +++ b/arch/s390/mm/mmap.c
2283 -@@ -90,9 +90,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2284 +@@ -95,9 +95,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2285 */
2286 if (mmap_is_legacy()) {
2287 - mm->mmap_base = TASK_UNMAPPED_BASE;
2288 + mm->mmap_base = mmap_base_legacy();
2289 +
2290 +#ifdef CONFIG_PAX_RANDMMAP
2291 + if (mm->pax_flags & MF_PAX_RANDMMAP)
2292 @@ -8798,10 +8766,10 @@ index 4002329..99b67cb 100644
2293 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
2294 }
2295 }
2296 -@@ -173,9 +185,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2297 +@@ -170,9 +182,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2298 */
2299 if (mmap_is_legacy()) {
2300 - mm->mmap_base = TASK_UNMAPPED_BASE;
2301 + mm->mmap_base = mmap_base_legacy();
2302 +
2303 +#ifdef CONFIG_PAX_RANDMMAP
2304 + if (mm->pax_flags & MF_PAX_RANDMMAP)
2305 @@ -8820,41 +8788,6 @@ index 4002329..99b67cb 100644
2306 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
2307 }
2308 }
2309 -diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
2310 -index a5df511..06f5acc 100644
2311 ---- a/arch/s390/net/bpf_jit_comp.c
2312 -+++ b/arch/s390/net/bpf_jit_comp.c
2313 -@@ -371,11 +371,13 @@ static int bpf_jit_insn(struct bpf_jit *jit, struct sock_filter *filter,
2314 - /* dr %r4,%r12 */
2315 - EMIT2(0x1d4c);
2316 - break;
2317 -- case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K) */
2318 -- /* m %r4,<d(K)>(%r13) */
2319 -- EMIT4_DISP(0x5c40d000, EMIT_CONST(K));
2320 -- /* lr %r5,%r4 */
2321 -- EMIT2(0x1854);
2322 -+ case BPF_S_ALU_DIV_K: /* A /= K */
2323 -+ if (K == 1)
2324 -+ break;
2325 -+ /* lhi %r4,0 */
2326 -+ EMIT4(0xa7480000);
2327 -+ /* d %r4,<d(K)>(%r13) */
2328 -+ EMIT4_DISP(0x5d40d000, EMIT_CONST(K));
2329 - break;
2330 - case BPF_S_ALU_MOD_X: /* A %= X */
2331 - jit->seen |= SEEN_XREG | SEEN_RET0;
2332 -@@ -391,6 +393,11 @@ static int bpf_jit_insn(struct bpf_jit *jit, struct sock_filter *filter,
2333 - EMIT2(0x1854);
2334 - break;
2335 - case BPF_S_ALU_MOD_K: /* A %= K */
2336 -+ if (K == 1) {
2337 -+ /* lhi %r5,0 */
2338 -+ EMIT4(0xa7580000);
2339 -+ break;
2340 -+ }
2341 - /* lhi %r4,0 */
2342 - EMIT4(0xa7480000);
2343 - /* d %r4,<d(K)>(%r13) */
2344 diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
2345 index ae3d59f..f65f075 100644
2346 --- a/arch/score/include/asm/cache.h
2347 @@ -9419,7 +9352,7 @@ index 9689176..63c18ea 100644
2348 unsigned long mask, tmp1, tmp2, result;
2349
2350 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
2351 -index dd38075..e7cac83 100644
2352 +index 96efa7a..16858bf 100644
2353 --- a/arch/sparc/include/asm/thread_info_32.h
2354 +++ b/arch/sparc/include/asm/thread_info_32.h
2355 @@ -49,6 +49,8 @@ struct thread_info {
2356 @@ -9432,7 +9365,7 @@ index dd38075..e7cac83 100644
2357
2358 /*
2359 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
2360 -index d5e5042..9bfee76 100644
2361 +index a5f01ac..703b554 100644
2362 --- a/arch/sparc/include/asm/thread_info_64.h
2363 +++ b/arch/sparc/include/asm/thread_info_64.h
2364 @@ -63,6 +63,8 @@ struct thread_info {
2365 @@ -9444,12 +9377,14 @@ index d5e5042..9bfee76 100644
2366 unsigned long fpregs[0] __attribute__ ((aligned(64)));
2367 };
2368
2369 -@@ -192,10 +194,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
2370 +@@ -188,12 +190,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
2371 + #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
2372 + /* flag bit 4 is available */
2373 #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
2374 - /* flag bit 6 is available */
2375 +-/* flag bit 6 is available */
2376 ++#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
2377 #define TIF_32BIT 7 /* 32-bit binary */
2378 --/* flag bit 8 is available */
2379 -+#define TIF_GRSEC_SETXID 8 /* update credentials on syscall entry/exit */
2380 + #define TIF_NOHZ 8 /* in adaptive nohz mode */
2381 #define TIF_SECCOMP 9 /* secure computing */
2382 #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
2383 #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
2384 @@ -9457,7 +9392,7 @@ index d5e5042..9bfee76 100644
2385 /* NOTE: Thread flags >= 12 should be ones we have no interest
2386 * in using in assembly, else we can't use the mask as
2387 * an immediate value in instructions such as andcc.
2388 -@@ -214,12 +217,18 @@ register struct thread_info *current_thread_info_reg asm("g6");
2389 +@@ -213,12 +216,18 @@ register struct thread_info *current_thread_info_reg asm("g6");
2390 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
2391 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
2392 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
2393 @@ -9470,7 +9405,7 @@ index d5e5042..9bfee76 100644
2394
2395 +#define _TIF_WORK_SYSCALL \
2396 + (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
2397 -+ _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
2398 ++ _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
2399 +
2400 +
2401 /*
2402 @@ -9543,7 +9478,7 @@ index 53a28dd..50c38c3 100644
2403 }
2404
2405 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
2406 -index e562d3c..191f176 100644
2407 +index ad7e178..c9e7423 100644
2408 --- a/arch/sparc/include/asm/uaccess_64.h
2409 +++ b/arch/sparc/include/asm/uaccess_64.h
2410 @@ -10,6 +10,7 @@
2411 @@ -9632,10 +9567,10 @@ index fdd819d..5af08c8 100644
2412 } while (++count < 16);
2413 printk("\n");
2414 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
2415 -index baebab2..9cd13b1 100644
2416 +index 32a280e..84fc6a9 100644
2417 --- a/arch/sparc/kernel/process_64.c
2418 +++ b/arch/sparc/kernel/process_64.c
2419 -@@ -158,7 +158,7 @@ static void show_regwindow(struct pt_regs *regs)
2420 +@@ -159,7 +159,7 @@ static void show_regwindow(struct pt_regs *regs)
2421 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
2422 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
2423 if (regs->tstate & TSTATE_PRIV)
2424 @@ -9644,7 +9579,7 @@ index baebab2..9cd13b1 100644
2425 }
2426
2427 void show_regs(struct pt_regs *regs)
2428 -@@ -167,7 +167,7 @@ void show_regs(struct pt_regs *regs)
2429 +@@ -168,7 +168,7 @@ void show_regs(struct pt_regs *regs)
2430
2431 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
2432 regs->tpc, regs->tnpc, regs->y, print_tainted());
2433 @@ -9653,7 +9588,7 @@ index baebab2..9cd13b1 100644
2434 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
2435 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
2436 regs->u_regs[3]);
2437 -@@ -180,7 +180,7 @@ void show_regs(struct pt_regs *regs)
2438 +@@ -181,7 +181,7 @@ void show_regs(struct pt_regs *regs)
2439 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
2440 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
2441 regs->u_regs[15]);
2442 @@ -9662,7 +9597,7 @@ index baebab2..9cd13b1 100644
2443 show_regwindow(regs);
2444 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
2445 }
2446 -@@ -269,7 +269,7 @@ void arch_trigger_all_cpu_backtrace(void)
2447 +@@ -270,7 +270,7 @@ void arch_trigger_all_cpu_backtrace(void)
2448 ((tp && tp->task) ? tp->task->pid : -1));
2449
2450 if (gp->tstate & TSTATE_PRIV) {
2451 @@ -9685,10 +9620,10 @@ index 79cc0d1..ec62734 100644
2452 .getproplen = prom_getproplen,
2453 .getproperty = prom_getproperty,
2454 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
2455 -index 773c1f2..a8bdd87 100644
2456 +index c13c9f2..d572c34 100644
2457 --- a/arch/sparc/kernel/ptrace_64.c
2458 +++ b/arch/sparc/kernel/ptrace_64.c
2459 -@@ -1059,6 +1059,10 @@ long arch_ptrace(struct task_struct *child, long request,
2460 +@@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
2461 return ret;
2462 }
2463
2464 @@ -9699,9 +9634,9 @@ index 773c1f2..a8bdd87 100644
2465 asmlinkage int syscall_trace_enter(struct pt_regs *regs)
2466 {
2467 int ret = 0;
2468 -@@ -1066,6 +1070,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
2469 - /* do the secure computing check first */
2470 - secure_computing_strict(regs->u_regs[UREG_G1]);
2471 +@@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
2472 + if (test_thread_flag(TIF_NOHZ))
2473 + user_exit();
2474
2475 +#ifdef CONFIG_GRKERNSEC_SETXID
2476 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
2477 @@ -9711,10 +9646,10 @@ index 773c1f2..a8bdd87 100644
2478 if (test_thread_flag(TIF_SYSCALL_TRACE))
2479 ret = tracehook_report_syscall_entry(regs);
2480
2481 -@@ -1086,6 +1095,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
2482 +@@ -1093,6 +1102,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
2483 + if (test_thread_flag(TIF_NOHZ))
2484 + user_exit();
2485
2486 - asmlinkage void syscall_trace_leave(struct pt_regs *regs)
2487 - {
2488 +#ifdef CONFIG_GRKERNSEC_SETXID
2489 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
2490 + gr_delayed_cred_worker();
2491 @@ -9724,10 +9659,10 @@ index 773c1f2..a8bdd87 100644
2492
2493 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
2494 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
2495 -index e142545..fd29654 100644
2496 +index b085311..6f885f7 100644
2497 --- a/arch/sparc/kernel/smp_64.c
2498 +++ b/arch/sparc/kernel/smp_64.c
2499 -@@ -869,8 +869,8 @@ extern unsigned long xcall_flush_dcache_page_cheetah;
2500 +@@ -870,8 +870,8 @@ extern unsigned long xcall_flush_dcache_page_cheetah;
2501 extern unsigned long xcall_flush_dcache_page_spitfire;
2502
2503 #ifdef CONFIG_DEBUG_DCFLUSH
2504 @@ -9738,7 +9673,7 @@ index e142545..fd29654 100644
2505 #endif
2506
2507 static inline void __local_flush_dcache_page(struct page *page)
2508 -@@ -894,7 +894,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
2509 +@@ -895,7 +895,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
2510 return;
2511
2512 #ifdef CONFIG_DEBUG_DCFLUSH
2513 @@ -9747,7 +9682,7 @@ index e142545..fd29654 100644
2514 #endif
2515
2516 this_cpu = get_cpu();
2517 -@@ -918,7 +918,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
2518 +@@ -919,7 +919,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
2519 xcall_deliver(data0, __pa(pg_addr),
2520 (u64) pg_addr, cpumask_of(cpu));
2521 #ifdef CONFIG_DEBUG_DCFLUSH
2522 @@ -9756,7 +9691,7 @@ index e142545..fd29654 100644
2523 #endif
2524 }
2525 }
2526 -@@ -937,7 +937,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
2527 +@@ -938,7 +938,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
2528 preempt_disable();
2529
2530 #ifdef CONFIG_DEBUG_DCFLUSH
2531 @@ -9765,7 +9700,7 @@ index e142545..fd29654 100644
2532 #endif
2533 data0 = 0;
2534 pg_addr = page_address(page);
2535 -@@ -954,7 +954,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
2536 +@@ -955,7 +955,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
2537 xcall_deliver(data0, __pa(pg_addr),
2538 (u64) pg_addr, cpu_online_mask);
2539 #ifdef CONFIG_DEBUG_DCFLUSH
2540 @@ -9788,10 +9723,10 @@ index 3a8d184..49498a8 100644
2541 info.flags = 0;
2542 info.length = len;
2543 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
2544 -index 51561b8..8256764 100644
2545 +index beb0b5a..5a153f7 100644
2546 --- a/arch/sparc/kernel/sys_sparc_64.c
2547 +++ b/arch/sparc/kernel/sys_sparc_64.c
2548 -@@ -90,13 +90,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2549 +@@ -88,13 +88,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2550 struct vm_area_struct * vma;
2551 unsigned long task_size = TASK_SIZE;
2552 int do_color_align;
2553 @@ -9807,7 +9742,7 @@ index 51561b8..8256764 100644
2554 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
2555 return -EINVAL;
2556 return addr;
2557 -@@ -111,6 +112,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2558 +@@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2559 if (filp || (flags & MAP_SHARED))
2560 do_color_align = 1;
2561
2562 @@ -9818,7 +9753,7 @@ index 51561b8..8256764 100644
2563 if (addr) {
2564 if (do_color_align)
2565 addr = COLOR_ALIGN(addr, pgoff);
2566 -@@ -118,22 +123,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2567 +@@ -116,22 +121,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
2568 addr = PAGE_ALIGN(addr);
2569
2570 vma = find_vma(mm, addr);
2571 @@ -9850,7 +9785,7 @@ index 51561b8..8256764 100644
2572 info.high_limit = task_size;
2573 addr = vm_unmapped_area(&info);
2574 }
2575 -@@ -151,6 +162,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2576 +@@ -149,6 +160,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2577 unsigned long task_size = STACK_TOP32;
2578 unsigned long addr = addr0;
2579 int do_color_align;
2580 @@ -9858,7 +9793,7 @@ index 51561b8..8256764 100644
2581 struct vm_unmapped_area_info info;
2582
2583 /* This should only ever run for 32-bit processes. */
2584 -@@ -160,7 +172,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2585 +@@ -158,7 +170,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2586 /* We do not accept a shared mapping if it would violate
2587 * cache aliasing constraints.
2588 */
2589 @@ -9867,7 +9802,7 @@ index 51561b8..8256764 100644
2590 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
2591 return -EINVAL;
2592 return addr;
2593 -@@ -173,6 +185,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2594 +@@ -171,6 +183,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2595 if (filp || (flags & MAP_SHARED))
2596 do_color_align = 1;
2597
2598 @@ -9878,7 +9813,7 @@ index 51561b8..8256764 100644
2599 /* requesting a specific address */
2600 if (addr) {
2601 if (do_color_align)
2602 -@@ -181,8 +197,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2603 +@@ -179,8 +195,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2604 addr = PAGE_ALIGN(addr);
2605
2606 vma = find_vma(mm, addr);
2607 @@ -9888,7 +9823,7 @@ index 51561b8..8256764 100644
2608 return addr;
2609 }
2610
2611 -@@ -192,6 +207,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2612 +@@ -190,6 +205,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2613 info.high_limit = mm->mmap_base;
2614 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
2615 info.align_offset = pgoff << PAGE_SHIFT;
2616 @@ -9896,7 +9831,7 @@ index 51561b8..8256764 100644
2617 addr = vm_unmapped_area(&info);
2618
2619 /*
2620 -@@ -204,6 +220,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2621 +@@ -202,6 +218,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2622 VM_BUG_ON(addr != -ENOMEM);
2623 info.flags = 0;
2624 info.low_limit = TASK_UNMAPPED_BASE;
2625 @@ -9909,7 +9844,7 @@ index 51561b8..8256764 100644
2626 info.high_limit = STACK_TOP32;
2627 addr = vm_unmapped_area(&info);
2628 }
2629 -@@ -260,10 +282,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
2630 +@@ -258,10 +280,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
2631 EXPORT_SYMBOL(get_fb_unmapped_area);
2632
2633 /* Essentially the same as PowerPC. */
2634 @@ -9925,7 +9860,7 @@ index 51561b8..8256764 100644
2635 if (current->flags & PF_RANDOMIZE) {
2636 unsigned long val = get_random_int();
2637 if (test_thread_flag(TIF_32BIT))
2638 -@@ -276,7 +302,7 @@ static unsigned long mmap_rnd(void)
2639 +@@ -274,7 +300,7 @@ static unsigned long mmap_rnd(void)
2640
2641 void arch_pick_mmap_layout(struct mm_struct *mm)
2642 {
2643 @@ -9934,7 +9869,7 @@ index 51561b8..8256764 100644
2644 unsigned long gap;
2645
2646 /*
2647 -@@ -289,6 +315,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2648 +@@ -287,6 +313,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2649 gap == RLIM_INFINITY ||
2650 sysctl_legacy_va_layout) {
2651 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
2652 @@ -9947,7 +9882,7 @@ index 51561b8..8256764 100644
2653 mm->get_unmapped_area = arch_get_unmapped_area;
2654 } else {
2655 /* We know it's 32-bit */
2656 -@@ -300,6 +332,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2657 +@@ -298,6 +330,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
2658 gap = (task_size / 6 * 5);
2659
2660 mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
2661 @@ -9961,14 +9896,14 @@ index 51561b8..8256764 100644
2662 }
2663 }
2664 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
2665 -index d950197..192f9d8 100644
2666 +index 87729ff..192f9d8 100644
2667 --- a/arch/sparc/kernel/syscalls.S
2668 +++ b/arch/sparc/kernel/syscalls.S
2669 @@ -52,7 +52,7 @@ sys32_rt_sigreturn:
2670 #endif
2671 .align 32
2672 1: ldx [%g6 + TI_FLAGS], %l5
2673 -- andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
2674 +- andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
2675 + andcc %l5, _TIF_WORK_SYSCALL, %g0
2676 be,pt %icc, rtrap
2677 nop
2678 @@ -9977,7 +9912,7 @@ index d950197..192f9d8 100644
2679
2680 srl %i3, 0, %o3 ! IEU0
2681 srl %i2, 0, %o2 ! IEU0 Group
2682 -- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
2683 +- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
2684 + andcc %l0, _TIF_WORK_SYSCALL, %g0
2685 bne,pn %icc, linux_syscall_trace32 ! CTI
2686 mov %i0, %l5 ! IEU1
2687 @@ -9986,7 +9921,7 @@ index d950197..192f9d8 100644
2688
2689 mov %i3, %o3 ! IEU1
2690 mov %i4, %o4 ! IEU0 Group
2691 -- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
2692 +- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
2693 + andcc %l0, _TIF_WORK_SYSCALL, %g0
2694 bne,pn %icc, linux_syscall_trace ! CTI Group
2695 mov %i0, %l5 ! IEU0
2696 @@ -9995,7 +9930,7 @@ index d950197..192f9d8 100644
2697
2698 cmp %o0, -ERESTART_RESTARTBLOCK
2699 bgeu,pn %xcc, 1f
2700 -- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
2701 +- andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
2702 + andcc %l0, _TIF_WORK_SYSCALL, %g0
2703 ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
2704
2705 @@ -10034,10 +9969,10 @@ index 6629829..036032d 100644
2706 }
2707
2708 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
2709 -index b3f833a..f485f80 100644
2710 +index 4ced92f..965eeed 100644
2711 --- a/arch/sparc/kernel/traps_64.c
2712 +++ b/arch/sparc/kernel/traps_64.c
2713 -@@ -76,7 +76,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
2714 +@@ -77,7 +77,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
2715 i + 1,
2716 p->trapstack[i].tstate, p->trapstack[i].tpc,
2717 p->trapstack[i].tnpc, p->trapstack[i].tt);
2718 @@ -10046,7 +9981,7 @@ index b3f833a..f485f80 100644
2719 }
2720 }
2721
2722 -@@ -96,6 +96,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
2723 +@@ -97,6 +97,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
2724
2725 lvl -= 0x100;
2726 if (regs->tstate & TSTATE_PRIV) {
2727 @@ -10059,7 +9994,7 @@ index b3f833a..f485f80 100644
2728 sprintf(buffer, "Kernel bad sw trap %lx", lvl);
2729 die_if_kernel(buffer, regs);
2730 }
2731 -@@ -114,11 +120,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
2732 +@@ -115,11 +121,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
2733 void bad_trap_tl1(struct pt_regs *regs, long lvl)
2734 {
2735 char buffer[32];
2736 @@ -10077,7 +10012,7 @@ index b3f833a..f485f80 100644
2737 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
2738
2739 sprintf (buffer, "Bad trap %lx at tl>0", lvl);
2740 -@@ -1142,7 +1153,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
2741 +@@ -1149,7 +1160,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
2742 regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
2743 printk("%s" "ERROR(%d): ",
2744 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
2745 @@ -10086,7 +10021,7 @@ index b3f833a..f485f80 100644
2746 printk("%s" "ERROR(%d): M_SYND(%lx), E_SYND(%lx)%s%s\n",
2747 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
2748 (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
2749 -@@ -1749,7 +1760,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
2750 +@@ -1756,7 +1767,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
2751 smp_processor_id(),
2752 (type & 0x1) ? 'I' : 'D',
2753 regs->tpc);
2754 @@ -10095,7 +10030,7 @@ index b3f833a..f485f80 100644
2755 panic("Irrecoverable Cheetah+ parity error.");
2756 }
2757
2758 -@@ -1757,7 +1768,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
2759 +@@ -1764,7 +1775,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
2760 smp_processor_id(),
2761 (type & 0x1) ? 'I' : 'D',
2762 regs->tpc);
2763 @@ -10104,7 +10039,7 @@ index b3f833a..f485f80 100644
2764 }
2765
2766 struct sun4v_error_entry {
2767 -@@ -1830,8 +1841,8 @@ struct sun4v_error_entry {
2768 +@@ -1837,8 +1848,8 @@ struct sun4v_error_entry {
2769 /*0x38*/u64 reserved_5;
2770 };
2771
2772 @@ -10115,7 +10050,7 @@ index b3f833a..f485f80 100644
2773
2774 static const char *sun4v_err_type_to_str(u8 type)
2775 {
2776 -@@ -1923,7 +1934,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
2777 +@@ -1930,7 +1941,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
2778 }
2779
2780 static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
2781 @@ -10124,7 +10059,7 @@ index b3f833a..f485f80 100644
2782 {
2783 u64 *raw_ptr = (u64 *) ent;
2784 u32 attrs;
2785 -@@ -1981,8 +1992,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
2786 +@@ -1988,8 +1999,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
2787
2788 show_regs(regs);
2789
2790 @@ -10135,7 +10070,7 @@ index b3f833a..f485f80 100644
2791 wmb();
2792 printk("%s: Queue overflowed %d times.\n",
2793 pfx, cnt);
2794 -@@ -2036,7 +2047,7 @@ void sun4v_resum_error(struct pt_regs *regs, unsigned long offset)
2795 +@@ -2046,7 +2057,7 @@ out:
2796 */
2797 void sun4v_resum_overflow(struct pt_regs *regs)
2798 {
2799 @@ -10144,7 +10079,7 @@ index b3f833a..f485f80 100644
2800 }
2801
2802 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
2803 -@@ -2089,7 +2100,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
2804 +@@ -2099,7 +2110,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
2805 /* XXX Actually even this can make not that much sense. Perhaps
2806 * XXX we should just pull the plug and panic directly from here?
2807 */
2808 @@ -10153,7 +10088,7 @@ index b3f833a..f485f80 100644
2809 }
2810
2811 unsigned long sun4v_err_itlb_vaddr;
2812 -@@ -2104,9 +2115,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
2813 +@@ -2114,9 +2125,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
2814
2815 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
2816 regs->tpc, tl);
2817 @@ -10165,7 +10100,7 @@ index b3f833a..f485f80 100644
2818 (void *) regs->u_regs[UREG_I7]);
2819 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
2820 "pte[%lx] error[%lx]\n",
2821 -@@ -2128,9 +2139,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
2822 +@@ -2138,9 +2149,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
2823
2824 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
2825 regs->tpc, tl);
2826 @@ -10177,7 +10112,7 @@ index b3f833a..f485f80 100644
2827 (void *) regs->u_regs[UREG_I7]);
2828 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
2829 "pte[%lx] error[%lx]\n",
2830 -@@ -2336,13 +2347,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
2831 +@@ -2359,13 +2370,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
2832 fp = (unsigned long)sf->fp + STACK_BIAS;
2833 }
2834
2835 @@ -10193,7 +10128,7 @@ index b3f833a..f485f80 100644
2836 graph++;
2837 }
2838 }
2839 -@@ -2360,6 +2371,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
2840 +@@ -2383,6 +2394,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
2841 return (struct reg_window *) (fp + STACK_BIAS);
2842 }
2843
2844 @@ -10202,7 +10137,7 @@ index b3f833a..f485f80 100644
2845 void die_if_kernel(char *str, struct pt_regs *regs)
2846 {
2847 static int die_counter;
2848 -@@ -2388,7 +2401,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
2849 +@@ -2411,7 +2424,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
2850 while (rw &&
2851 count++ < 30 &&
2852 kstack_valid(tp, (unsigned long) rw)) {
2853 @@ -10211,7 +10146,7 @@ index b3f833a..f485f80 100644
2854 (void *) rw->ins[7]);
2855
2856 rw = kernel_stack_up(rw);
2857 -@@ -2401,8 +2414,10 @@ void die_if_kernel(char *str, struct pt_regs *regs)
2858 +@@ -2424,8 +2437,10 @@ void die_if_kernel(char *str, struct pt_regs *regs)
2859 }
2860 user_instruction_dump ((unsigned int __user *) regs->tpc);
2861 }
2862 @@ -10224,10 +10159,10 @@ index b3f833a..f485f80 100644
2863 }
2864 EXPORT_SYMBOL(die_if_kernel);
2865 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
2866 -index 8201c25e..072a2a7 100644
2867 +index 3c1a7cb..73e1923 100644
2868 --- a/arch/sparc/kernel/unaligned_64.c
2869 +++ b/arch/sparc/kernel/unaligned_64.c
2870 -@@ -286,7 +286,7 @@ static void log_unaligned(struct pt_regs *regs)
2871 +@@ -289,7 +289,7 @@ static void log_unaligned(struct pt_regs *regs)
2872 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
2873
2874 if (__ratelimit(&ratelimit)) {
2875 @@ -10817,20 +10752,20 @@ index 59dbd46..1dd7f5e 100644
2876 if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
2877 goto bad_area;
2878 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
2879 -index 2ebec26..b212598 100644
2880 +index 69bb818..6ca35c8 100644
2881 --- a/arch/sparc/mm/fault_64.c
2882 +++ b/arch/sparc/mm/fault_64.c
2883 -@@ -21,6 +21,9 @@
2884 - #include <linux/kprobes.h>
2885 +@@ -22,6 +22,9 @@
2886 #include <linux/kdebug.h>
2887 #include <linux/percpu.h>
2888 + #include <linux/context_tracking.h>
2889 +#include <linux/slab.h>
2890 +#include <linux/pagemap.h>
2891 +#include <linux/compiler.h>
2892
2893 #include <asm/page.h>
2894 #include <asm/pgtable.h>
2895 -@@ -74,7 +77,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
2896 +@@ -75,7 +78,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
2897 printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
2898 regs->tpc);
2899 printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
2900 @@ -10839,7 +10774,7 @@ index 2ebec26..b212598 100644
2901 printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
2902 dump_stack();
2903 unhandled_fault(regs->tpc, current, regs);
2904 -@@ -270,6 +273,466 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
2905 +@@ -271,6 +274,466 @@ static void noinline __kprobes bogus_32bit_fault_address(struct pt_regs *regs,
2906 show_regs(regs);
2907 }
2908
2909 @@ -11305,8 +11240,8 @@ index 2ebec26..b212598 100644
2910 +
2911 asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
2912 {
2913 - struct mm_struct *mm = current->mm;
2914 -@@ -342,6 +805,29 @@ retry:
2915 + enum ctx_state prev_state = exception_enter();
2916 +@@ -344,6 +807,29 @@ retry:
2917 if (!vma)
2918 goto bad_area;
2919
2920 @@ -11337,10 +11272,10 @@ index 2ebec26..b212598 100644
2921 * load/store/atomic was a write or not, it only says that there
2922 * was no match. So in such a case we (carefully) read the
2923 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
2924 -index 9639964..806cd0c 100644
2925 +index 3096317..a7b7654 100644
2926 --- a/arch/sparc/mm/hugetlbpage.c
2927 +++ b/arch/sparc/mm/hugetlbpage.c
2928 -@@ -28,7 +28,8 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
2929 +@@ -26,7 +26,8 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
2930 unsigned long addr,
2931 unsigned long len,
2932 unsigned long pgoff,
2933 @@ -11350,7 +11285,7 @@ index 9639964..806cd0c 100644
2934 {
2935 unsigned long task_size = TASK_SIZE;
2936 struct vm_unmapped_area_info info;
2937 -@@ -38,15 +39,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
2938 +@@ -36,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
2939
2940 info.flags = 0;
2941 info.length = len;
2942 @@ -11374,7 +11309,7 @@ index 9639964..806cd0c 100644
2943 info.high_limit = task_size;
2944 addr = vm_unmapped_area(&info);
2945 }
2946 -@@ -58,7 +66,8 @@ static unsigned long
2947 +@@ -56,7 +64,8 @@ static unsigned long
2948 hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2949 const unsigned long len,
2950 const unsigned long pgoff,
2951 @@ -11384,7 +11319,7 @@ index 9639964..806cd0c 100644
2952 {
2953 struct mm_struct *mm = current->mm;
2954 unsigned long addr = addr0;
2955 -@@ -73,6 +82,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2956 +@@ -71,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2957 info.high_limit = mm->mmap_base;
2958 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
2959 info.align_offset = 0;
2960 @@ -11392,7 +11327,7 @@ index 9639964..806cd0c 100644
2961 addr = vm_unmapped_area(&info);
2962
2963 /*
2964 -@@ -85,6 +95,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2965 +@@ -83,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
2966 VM_BUG_ON(addr != -ENOMEM);
2967 info.flags = 0;
2968 info.low_limit = TASK_UNMAPPED_BASE;
2969 @@ -11405,7 +11340,7 @@ index 9639964..806cd0c 100644
2970 info.high_limit = STACK_TOP32;
2971 addr = vm_unmapped_area(&info);
2972 }
2973 -@@ -99,6 +115,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
2974 +@@ -97,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
2975 struct mm_struct *mm = current->mm;
2976 struct vm_area_struct *vma;
2977 unsigned long task_size = TASK_SIZE;
2978 @@ -11413,7 +11348,7 @@ index 9639964..806cd0c 100644
2979
2980 if (test_thread_flag(TIF_32BIT))
2981 task_size = STACK_TOP32;
2982 -@@ -114,19 +131,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
2983 +@@ -112,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
2984 return addr;
2985 }
2986
2987 @@ -11441,7 +11376,7 @@ index 9639964..806cd0c 100644
2988
2989 pte_t *huge_pte_alloc(struct mm_struct *mm,
2990 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
2991 -index ed82eda..0d80e77 100644
2992 +index 5322e53..f820c5e 100644
2993 --- a/arch/sparc/mm/init_64.c
2994 +++ b/arch/sparc/mm/init_64.c
2995 @@ -188,9 +188,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
2996 @@ -11478,39 +11413,11 @@ index ed82eda..0d80e77 100644
2997 #endif /* CONFIG_SMP */
2998 #endif /* CONFIG_DEBUG_DCFLUSH */
2999 }
3000 -diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c
3001 -index 218b6b2..01fe994 100644
3002 ---- a/arch/sparc/net/bpf_jit_comp.c
3003 -+++ b/arch/sparc/net/bpf_jit_comp.c
3004 -@@ -497,9 +497,20 @@ void bpf_jit_compile(struct sk_filter *fp)
3005 - case BPF_S_ALU_MUL_K: /* A *= K */
3006 - emit_alu_K(MUL, K);
3007 - break;
3008 -- case BPF_S_ALU_DIV_K: /* A /= K */
3009 -- emit_alu_K(MUL, K);
3010 -- emit_read_y(r_A);
3011 -+ case BPF_S_ALU_DIV_K: /* A /= K with K != 0*/
3012 -+ if (K == 1)
3013 -+ break;
3014 -+ emit_write_y(G0);
3015 -+#ifdef CONFIG_SPARC32
3016 -+ /* The Sparc v8 architecture requires
3017 -+ * three instructions between a %y
3018 -+ * register write and the first use.
3019 -+ */
3020 -+ emit_nop();
3021 -+ emit_nop();
3022 -+ emit_nop();
3023 -+#endif
3024 -+ emit_alu_K(DIV, K);
3025 - break;
3026 - case BPF_S_ALU_DIV_X: /* A /= X; */
3027 - emit_cmpi(r_X, 0);
3028 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
3029 -index d45a2c4..3c05a78 100644
3030 +index b3692ce..e4517c9 100644
3031 --- a/arch/tile/Kconfig
3032 +++ b/arch/tile/Kconfig
3033 -@@ -185,6 +185,7 @@ source "kernel/Kconfig.hz"
3034 +@@ -184,6 +184,7 @@ source "kernel/Kconfig.hz"
3035
3036 config KEXEC
3037 bool "kexec system call"
3038 @@ -11594,10 +11501,10 @@ index 0cb3bba..7338b2d 100644
3039
3040 /*
3041 diff --git a/arch/um/Makefile b/arch/um/Makefile
3042 -index 133f7de..1d6f2f1 100644
3043 +index 36e658a..71a5c5a 100644
3044 --- a/arch/um/Makefile
3045 +++ b/arch/um/Makefile
3046 -@@ -62,6 +62,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
3047 +@@ -72,6 +72,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -D__KERNEL__,,\
3048 $(patsubst -I%,,$(KBUILD_CFLAGS)))) $(ARCH_INCLUDE) $(MODE_INCLUDE) \
3049 $(filter -I%,$(CFLAGS)) -D_FILE_OFFSET_BITS=64 -idirafter include
3050
3051 @@ -11608,18 +11515,6 @@ index 133f7de..1d6f2f1 100644
3052 #This will adjust *FLAGS accordingly to the platform.
3053 include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
3054
3055 -diff --git a/arch/um/defconfig b/arch/um/defconfig
3056 -index 2665e6b..3e3822b 100644
3057 ---- a/arch/um/defconfig
3058 -+++ b/arch/um/defconfig
3059 -@@ -51,7 +51,6 @@ CONFIG_X86_CMPXCHG=y
3060 - CONFIG_X86_L1_CACHE_SHIFT=5
3061 - CONFIG_X86_XADD=y
3062 - CONFIG_X86_PPRO_FENCE=y
3063 --CONFIG_X86_WP_WORKS_OK=y
3064 - CONFIG_X86_INVLPG=y
3065 - CONFIG_X86_BSWAP=y
3066 - CONFIG_X86_POPAD_OK=y
3067 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
3068 index 19e1bdd..3665b77 100644
3069 --- a/arch/um/include/asm/cache.h
3070 @@ -11679,10 +11574,10 @@ index 0032f92..cd151e0 100644
3071 #ifdef CONFIG_64BIT
3072 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
3073 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
3074 -index bbcef52..6a2a483 100644
3075 +index eecc414..48adb87 100644
3076 --- a/arch/um/kernel/process.c
3077 +++ b/arch/um/kernel/process.c
3078 -@@ -367,22 +367,6 @@ int singlestepping(void * t)
3079 +@@ -356,22 +356,6 @@ int singlestepping(void * t)
3080 return 2;
3081 }
3082
3083 @@ -11723,10 +11618,10 @@ index ad8f795..2c7eec6 100644
3084 /*
3085 * Memory returned by kmalloc() may be used for DMA, so we must make
3086 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
3087 -index f67e839..bfd4748 100644
3088 +index 0952ecd..75e0e8a 100644
3089 --- a/arch/x86/Kconfig
3090 +++ b/arch/x86/Kconfig
3091 -@@ -247,7 +247,7 @@ config X86_HT
3092 +@@ -249,7 +249,7 @@ config X86_HT
3093
3094 config X86_32_LAZY_GS
3095 def_bool y
3096 @@ -11735,7 +11630,7 @@ index f67e839..bfd4748 100644
3097
3098 config ARCH_HWEIGHT_CFLAGS
3099 string
3100 -@@ -1099,6 +1099,7 @@ config MICROCODE_EARLY
3101 +@@ -1104,6 +1104,7 @@ config MICROCODE_EARLY
3102
3103 config X86_MSR
3104 tristate "/dev/cpu/*/msr - Model-specific register support"
3105 @@ -11743,7 +11638,7 @@ index f67e839..bfd4748 100644
3106 ---help---
3107 This device gives privileged processes access to the x86
3108 Model-Specific Registers (MSRs). It is a character device with
3109 -@@ -1122,7 +1123,7 @@ choice
3110 +@@ -1127,7 +1128,7 @@ choice
3111
3112 config NOHIGHMEM
3113 bool "off"
3114 @@ -11752,7 +11647,7 @@ index f67e839..bfd4748 100644
3115 ---help---
3116 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
3117 However, the address space of 32-bit x86 processors is only 4
3118 -@@ -1159,7 +1160,7 @@ config NOHIGHMEM
3119 +@@ -1164,7 +1165,7 @@ config NOHIGHMEM
3120
3121 config HIGHMEM4G
3122 bool "4GB"
3123 @@ -11761,7 +11656,7 @@ index f67e839..bfd4748 100644
3124 ---help---
3125 Select this if you have a 32-bit processor and between 1 and 4
3126 gigabytes of physical RAM.
3127 -@@ -1212,7 +1213,7 @@ config PAGE_OFFSET
3128 +@@ -1217,7 +1218,7 @@ config PAGE_OFFSET
3129 hex
3130 default 0xB0000000 if VMSPLIT_3G_OPT
3131 default 0x80000000 if VMSPLIT_2G
3132 @@ -11770,7 +11665,7 @@ index f67e839..bfd4748 100644
3133 default 0x40000000 if VMSPLIT_1G
3134 default 0xC0000000
3135 depends on X86_32
3136 -@@ -1614,6 +1615,7 @@ config SECCOMP
3137 +@@ -1619,6 +1620,7 @@ config SECCOMP
3138
3139 config CC_STACKPROTECTOR
3140 bool "Enable -fstack-protector buffer overflow detection"
3141 @@ -11778,7 +11673,7 @@ index f67e839..bfd4748 100644
3142 ---help---
3143 This option turns on the -fstack-protector GCC feature. This
3144 feature puts, at the beginning of functions, a canary value on
3145 -@@ -1632,6 +1634,7 @@ source kernel/Kconfig.hz
3146 +@@ -1637,6 +1639,7 @@ source kernel/Kconfig.hz
3147
3148 config KEXEC
3149 bool "kexec system call"
3150 @@ -11786,7 +11681,7 @@ index f67e839..bfd4748 100644
3151 ---help---
3152 kexec is a system call that implements the ability to shutdown your
3153 current kernel, and to start another kernel. It is like a reboot
3154 -@@ -1733,6 +1736,8 @@ config X86_NEED_RELOCS
3155 +@@ -1738,6 +1741,8 @@ config X86_NEED_RELOCS
3156 config PHYSICAL_ALIGN
3157 hex "Alignment value to which kernel should be aligned"
3158 default "0x1000000"
3159 @@ -11795,7 +11690,7 @@ index f67e839..bfd4748 100644
3160 range 0x2000 0x1000000 if X86_32
3161 range 0x200000 0x1000000 if X86_64
3162 ---help---
3163 -@@ -1812,9 +1817,10 @@ config DEBUG_HOTPLUG_CPU0
3164 +@@ -1817,9 +1822,10 @@ config DEBUG_HOTPLUG_CPU0
3165 If unsure, say N.
3166
3167 config COMPAT_VDSO
3168 @@ -11839,10 +11734,10 @@ index c026cca..14657ae 100644
3169 config X86_MINIMUM_CPU_FAMILY
3170 int
3171 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
3172 -index 78d91af..8ceb94b 100644
3173 +index 0f3621e..282f24b 100644
3174 --- a/arch/x86/Kconfig.debug
3175 +++ b/arch/x86/Kconfig.debug
3176 -@@ -74,7 +74,7 @@ config X86_PTDUMP
3177 +@@ -84,7 +84,7 @@ config X86_PTDUMP
3178 config DEBUG_RODATA
3179 bool "Write protect kernel read-only data structures"
3180 default y
3181 @@ -11851,7 +11746,7 @@ index 78d91af..8ceb94b 100644
3182 ---help---
3183 Mark the kernel read-only data as write-protected in the pagetables,
3184 in order to catch accidental (and incorrect) writes to such const
3185 -@@ -92,7 +92,7 @@ config DEBUG_RODATA_TEST
3186 +@@ -102,7 +102,7 @@ config DEBUG_RODATA_TEST
3187
3188 config DEBUG_SET_MODULE_RONX
3189 bool "Set loadable kernel module data as NX and text as RO"
3190 @@ -11904,7 +11799,7 @@ index 57d0215..b4373fb 100644
3191 +archprepare:
3192 + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
3193 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
3194 -index 6cf0111..f2e2398 100644
3195 +index d9c1195..a26ca0d 100644
3196 --- a/arch/x86/boot/Makefile
3197 +++ b/arch/x86/boot/Makefile
3198 @@ -65,6 +65,9 @@ KBUILD_CFLAGS := $(USERINCLUDE) -m32 -g -Os -D_SETUP -D__KERNEL__ \
3199 @@ -11975,26 +11870,6 @@ index c8a6792..2402765 100644
3200
3201 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
3202 GCOV_PROFILE := n
3203 -diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
3204 -index b7388a4..03844ec 100644
3205 ---- a/arch/x86/boot/compressed/eboot.c
3206 -+++ b/arch/x86/boot/compressed/eboot.c
3207 -@@ -150,7 +150,6 @@ again:
3208 - *addr = max_addr;
3209 - }
3210 -
3211 --free_pool:
3212 - efi_call_phys1(sys_table->boottime->free_pool, map);
3213 -
3214 - fail:
3215 -@@ -214,7 +213,6 @@ static efi_status_t low_alloc(unsigned long size, unsigned long align,
3216 - if (i == map_size / desc_size)
3217 - status = EFI_NOT_FOUND;
3218 -
3219 --free_pool:
3220 - efi_call_phys1(sys_table->boottime->free_pool, map);
3221 - fail:
3222 - return status;
3223 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
3224 index a53440e..c3dbf1e 100644
3225 --- a/arch/x86/boot/compressed/efi_stub_32.S
3226 @@ -13836,10 +13711,10 @@ index a039d21..524b8b2 100644
3227 ret
3228 ENDPROC(twofish_dec_blk)
3229 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
3230 -index bae3aba..c1788c1 100644
3231 +index d21ff89..6da8e6e 100644
3232 --- a/arch/x86/ia32/ia32_aout.c
3233 +++ b/arch/x86/ia32/ia32_aout.c
3234 -@@ -159,6 +159,8 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
3235 +@@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
3236 unsigned long dump_start, dump_size;
3237 struct user32 dump;
3238
3239 @@ -13849,9 +13724,18 @@ index bae3aba..c1788c1 100644
3240 set_fs(KERNEL_DS);
3241 has_dumped = 1;
3242 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
3243 -index 665a730..8e7a67a 100644
3244 +index 2206757..85cbcfa 100644
3245 --- a/arch/x86/ia32/ia32_signal.c
3246 +++ b/arch/x86/ia32/ia32_signal.c
3247 +@@ -218,7 +218,7 @@ asmlinkage long sys32_sigreturn(void)
3248 + if (__get_user(set.sig[0], &frame->sc.oldmask)
3249 + || (_COMPAT_NSIG_WORDS > 1
3250 + && __copy_from_user((((char *) &set.sig) + 4),
3251 +- &frame->extramask,
3252 ++ frame->extramask,
3253 + sizeof(frame->extramask))))
3254 + goto badframe;
3255 +
3256 @@ -338,7 +338,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
3257 sp -= frame_size;
3258 /* Align the stack pointer according to the i386 ABI,
3259 @@ -13861,6 +13745,15 @@ index 665a730..8e7a67a 100644
3260 return (void __user *) sp;
3261 }
3262
3263 +@@ -386,7 +386,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
3264 + restorer = VDSO32_SYMBOL(current->mm->context.vdso,
3265 + sigreturn);
3266 + else
3267 +- restorer = &frame->retcode;
3268 ++ restorer = frame->retcode;
3269 + }
3270 +
3271 + put_user_try {
3272 @@ -396,7 +396,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
3273 * These are actually not used anymore, but left because some
3274 * gdb versions depend on them as a marker.
3275 @@ -13889,7 +13782,7 @@ index 665a730..8e7a67a 100644
3276 else
3277 - restorer = VDSO32_SYMBOL(current->mm->context.vdso,
3278 - rt_sigreturn);
3279 -+ restorer = &frame->retcode;
3280 ++ restorer = frame->retcode;
3281 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
3282
3283 /*
3284 @@ -14382,10 +14275,10 @@ index 20370c6..a2eb9b0 100644
3285 "popl %%ebp\n\t"
3286 "popl %%edi\n\t"
3287 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
3288 -index 722aa3b..c392d85 100644
3289 +index b17f4f4..9620151 100644
3290 --- a/arch/x86/include/asm/atomic.h
3291 +++ b/arch/x86/include/asm/atomic.h
3292 -@@ -22,7 +22,18 @@
3293 +@@ -23,7 +23,18 @@
3294 */
3295 static inline int atomic_read(const atomic_t *v)
3296 {
3297 @@ -14405,7 +14298,7 @@ index 722aa3b..c392d85 100644
3298 }
3299
3300 /**
3301 -@@ -38,6 +49,18 @@ static inline void atomic_set(atomic_t *v, int i)
3302 +@@ -39,6 +50,18 @@ static inline void atomic_set(atomic_t *v, int i)
3303 }
3304
3305 /**
3306 @@ -14424,7 +14317,7 @@ index 722aa3b..c392d85 100644
3307 * atomic_add - add integer to atomic variable
3308 * @i: integer value to add
3309 * @v: pointer of type atomic_t
3310 -@@ -46,7 +69,29 @@ static inline void atomic_set(atomic_t *v, int i)
3311 +@@ -47,7 +70,29 @@ static inline void atomic_set(atomic_t *v, int i)
3312 */
3313 static inline void atomic_add(int i, atomic_t *v)
3314 {
3315 @@ -14455,7 +14348,7 @@ index 722aa3b..c392d85 100644
3316 : "+m" (v->counter)
3317 : "ir" (i));
3318 }
3319 -@@ -60,7 +105,29 @@ static inline void atomic_add(int i, atomic_t *v)
3320 +@@ -61,7 +106,29 @@ static inline void atomic_add(int i, atomic_t *v)
3321 */
3322 static inline void atomic_sub(int i, atomic_t *v)
3323 {
3324 @@ -14486,25 +14379,16 @@ index 722aa3b..c392d85 100644
3325 : "+m" (v->counter)
3326 : "ir" (i));
3327 }
3328 -@@ -78,7 +145,16 @@ static inline int atomic_sub_and_test(int i, atomic_t *v)
3329 +@@ -77,7 +144,7 @@ static inline void atomic_sub(int i, atomic_t *v)
3330 + */
3331 + static inline int atomic_sub_and_test(int i, atomic_t *v)
3332 {
3333 - unsigned char c;
3334 +- GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
3335 ++ GEN_BINARY_RMWcc(LOCK_PREFIX "subl", LOCK_PREFIX "addl", v->counter, "er", i, "%0", "e");
3336 + }
3337
3338 -- asm volatile(LOCK_PREFIX "subl %2,%0; sete %1"
3339 -+ asm volatile(LOCK_PREFIX "subl %2,%0\n"
3340 -+
3341 -+#ifdef CONFIG_PAX_REFCOUNT
3342 -+ "jno 0f\n"
3343 -+ LOCK_PREFIX "addl %2,%0\n"
3344 -+ "int $4\n0:\n"
3345 -+ _ASM_EXTABLE(0b, 0b)
3346 -+#endif
3347 -+
3348 -+ "sete %1\n"
3349 - : "+m" (v->counter), "=qm" (c)
3350 - : "ir" (i) : "memory");
3351 - return c;
3352 -@@ -92,7 +168,27 @@ static inline int atomic_sub_and_test(int i, atomic_t *v)
3353 + /**
3354 +@@ -88,7 +155,27 @@ static inline int atomic_sub_and_test(int i, atomic_t *v)
3355 */
3356 static inline void atomic_inc(atomic_t *v)
3357 {
3358 @@ -14533,7 +14417,7 @@ index 722aa3b..c392d85 100644
3359 : "+m" (v->counter));
3360 }
3361
3362 -@@ -104,7 +200,27 @@ static inline void atomic_inc(atomic_t *v)
3363 +@@ -100,7 +187,27 @@ static inline void atomic_inc(atomic_t *v)
3364 */
3365 static inline void atomic_dec(atomic_t *v)
3366 {
3367 @@ -14562,42 +14446,21 @@ index 722aa3b..c392d85 100644
3368 : "+m" (v->counter));
3369 }
3370
3371 -@@ -120,7 +236,16 @@ static inline int atomic_dec_and_test(atomic_t *v)
3372 +@@ -114,7 +221,7 @@ static inline void atomic_dec(atomic_t *v)
3373 + */
3374 + static inline int atomic_dec_and_test(atomic_t *v)
3375 {
3376 - unsigned char c;
3377 +- GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
3378 ++ GEN_UNARY_RMWcc(LOCK_PREFIX "decl", LOCK_PREFIX "incl", v->counter, "%0", "e");
3379 + }
3380
3381 -- asm volatile(LOCK_PREFIX "decl %0; sete %1"
3382 -+ asm volatile(LOCK_PREFIX "decl %0\n"
3383 -+
3384 -+#ifdef CONFIG_PAX_REFCOUNT
3385 -+ "jno 0f\n"
3386 -+ LOCK_PREFIX "incl %0\n"
3387 -+ "int $4\n0:\n"
3388 -+ _ASM_EXTABLE(0b, 0b)
3389 -+#endif
3390 -+
3391 -+ "sete %1\n"
3392 - : "+m" (v->counter), "=qm" (c)
3393 - : : "memory");
3394 - return c != 0;
3395 -@@ -138,7 +263,35 @@ static inline int atomic_inc_and_test(atomic_t *v)
3396 + /**
3397 +@@ -127,7 +234,20 @@ static inline int atomic_dec_and_test(atomic_t *v)
3398 + */
3399 + static inline int atomic_inc_and_test(atomic_t *v)
3400 {
3401 - unsigned char c;
3402 -
3403 -- asm volatile(LOCK_PREFIX "incl %0; sete %1"
3404 -+ asm volatile(LOCK_PREFIX "incl %0\n"
3405 -+
3406 -+#ifdef CONFIG_PAX_REFCOUNT
3407 -+ "jno 0f\n"
3408 -+ LOCK_PREFIX "decl %0\n"
3409 -+ "int $4\n0:\n"
3410 -+ _ASM_EXTABLE(0b, 0b)
3411 -+#endif
3412 -+
3413 -+ "sete %1\n"
3414 -+ : "+m" (v->counter), "=qm" (c)
3415 -+ : : "memory");
3416 -+ return c != 0;
3417 +- GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", "e");
3418 ++ GEN_UNARY_RMWcc(LOCK_PREFIX "incl", LOCK_PREFIX "decl", v->counter, "%0", "e");
3419 +}
3420 +
3421 +/**
3422 @@ -14610,32 +14473,20 @@ index 722aa3b..c392d85 100644
3423 + */
3424 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
3425 +{
3426 -+ unsigned char c;
3427 -+
3428 -+ asm volatile(LOCK_PREFIX "incl %0\n"
3429 -+ "sete %1\n"
3430 - : "+m" (v->counter), "=qm" (c)
3431 - : : "memory");
3432 - return c != 0;
3433 -@@ -157,7 +310,16 @@ static inline int atomic_add_negative(int i, atomic_t *v)
3434 ++ GEN_UNARY_RMWcc_unchecked(LOCK_PREFIX "incl", v->counter, "%0", "e");
3435 + }
3436 +
3437 + /**
3438 +@@ -141,7 +261,7 @@ static inline int atomic_inc_and_test(atomic_t *v)
3439 + */
3440 + static inline int atomic_add_negative(int i, atomic_t *v)
3441 {
3442 - unsigned char c;
3443 +- GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", "s");
3444 ++ GEN_BINARY_RMWcc(LOCK_PREFIX "addl", LOCK_PREFIX "subl", v->counter, "er", i, "%0", "s");
3445 + }
3446
3447 -- asm volatile(LOCK_PREFIX "addl %2,%0; sets %1"
3448 -+ asm volatile(LOCK_PREFIX "addl %2,%0\n"
3449 -+
3450 -+#ifdef CONFIG_PAX_REFCOUNT
3451 -+ "jno 0f\n"
3452 -+ LOCK_PREFIX "subl %2,%0\n"
3453 -+ "int $4\n0:\n"
3454 -+ _ASM_EXTABLE(0b, 0b)
3455 -+#endif
3456 -+
3457 -+ "sets %1\n"
3458 - : "+m" (v->counter), "=qm" (c)
3459 - : "ir" (i) : "memory");
3460 - return c;
3461 -@@ -172,6 +334,18 @@ static inline int atomic_add_negative(int i, atomic_t *v)
3462 + /**
3463 +@@ -153,6 +273,18 @@ static inline int atomic_add_negative(int i, atomic_t *v)
3464 */
3465 static inline int atomic_add_return(int i, atomic_t *v)
3466 {
3467 @@ -14654,7 +14505,7 @@ index 722aa3b..c392d85 100644
3468 return i + xadd(&v->counter, i);
3469 }
3470
3471 -@@ -188,9 +362,18 @@ static inline int atomic_sub_return(int i, atomic_t *v)
3472 +@@ -169,9 +301,18 @@ static inline int atomic_sub_return(int i, atomic_t *v)
3473 }
3474
3475 #define atomic_inc_return(v) (atomic_add_return(1, v))
3476 @@ -14674,7 +14525,7 @@ index 722aa3b..c392d85 100644
3477 {
3478 return cmpxchg(&v->counter, old, new);
3479 }
3480 -@@ -200,6 +383,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
3481 +@@ -181,6 +322,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
3482 return xchg(&v->counter, new);
3483 }
3484
3485 @@ -14686,7 +14537,7 @@ index 722aa3b..c392d85 100644
3486 /**
3487 * __atomic_add_unless - add unless the number is already a given value
3488 * @v: pointer of type atomic_t
3489 -@@ -209,14 +397,27 @@ static inline int atomic_xchg(atomic_t *v, int new)
3490 +@@ -190,14 +336,27 @@ static inline int atomic_xchg(atomic_t *v, int new)
3491 * Atomically adds @a to @v, so long as @v was not already @u.
3492 * Returns the old value of @v.
3493 */
3494 @@ -14718,7 +14569,7 @@ index 722aa3b..c392d85 100644
3495 if (likely(old == c))
3496 break;
3497 c = old;
3498 -@@ -225,6 +426,49 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
3499 +@@ -206,6 +365,49 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
3500 }
3501
3502 /**
3503 @@ -14768,7 +14619,7 @@ index 722aa3b..c392d85 100644
3504 * atomic_inc_short - increment of a short integer
3505 * @v: pointer to type int
3506 *
3507 -@@ -253,14 +497,37 @@ static inline void atomic_or_long(unsigned long *v1, unsigned long v2)
3508 +@@ -234,14 +436,37 @@ static inline void atomic_or_long(unsigned long *v1, unsigned long v2)
3509 #endif
3510
3511 /* These are x86-specific, used by some header files */
3512 @@ -14989,7 +14840,7 @@ index b154de7..bf18a5a 100644
3513 * @i: integer value to subtract
3514 * @v: pointer to type atomic64_t
3515 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
3516 -index 0e1cbfc..a891fc7 100644
3517 +index 46e9052..ae45136 100644
3518 --- a/arch/x86/include/asm/atomic64_64.h
3519 +++ b/arch/x86/include/asm/atomic64_64.h
3520 @@ -18,7 +18,19 @@
3521 @@ -15092,25 +14943,16 @@ index 0e1cbfc..a891fc7 100644
3522 : "=m" (v->counter)
3523 : "er" (i), "m" (v->counter));
3524 }
3525 -@@ -74,7 +142,16 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
3526 +@@ -72,7 +140,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
3527 + */
3528 + static inline int atomic64_sub_and_test(long i, atomic64_t *v)
3529 {
3530 - unsigned char c;
3531 +- GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e");
3532 ++ GEN_BINARY_RMWcc(LOCK_PREFIX "subq", LOCK_PREFIX "addq", v->counter, "er", i, "%0", "e");
3533 + }
3534
3535 -- asm volatile(LOCK_PREFIX "subq %2,%0; sete %1"
3536 -+ asm volatile(LOCK_PREFIX "subq %2,%0\n"
3537 -+
3538 -+#ifdef CONFIG_PAX_REFCOUNT
3539 -+ "jno 0f\n"
3540 -+ LOCK_PREFIX "addq %2,%0\n"
3541 -+ "int $4\n0:\n"
3542 -+ _ASM_EXTABLE(0b, 0b)
3543 -+#endif
3544 -+
3545 -+ "sete %1\n"
3546 - : "=m" (v->counter), "=qm" (c)
3547 - : "er" (i), "m" (v->counter) : "memory");
3548 - return c;
3549 -@@ -88,6 +165,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
3550 + /**
3551 +@@ -83,6 +151,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
3552 */
3553 static inline void atomic64_inc(atomic64_t *v)
3554 {
3555 @@ -15138,7 +14980,7 @@ index 0e1cbfc..a891fc7 100644
3556 asm volatile(LOCK_PREFIX "incq %0"
3557 : "=m" (v->counter)
3558 : "m" (v->counter));
3559 -@@ -101,7 +199,28 @@ static inline void atomic64_inc(atomic64_t *v)
3560 +@@ -96,7 +185,28 @@ static inline void atomic64_inc(atomic64_t *v)
3561 */
3562 static inline void atomic64_dec(atomic64_t *v)
3563 {
3564 @@ -15168,61 +15010,34 @@ index 0e1cbfc..a891fc7 100644
3565 : "=m" (v->counter)
3566 : "m" (v->counter));
3567 }
3568 -@@ -118,7 +237,16 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
3569 +@@ -111,7 +221,7 @@ static inline void atomic64_dec(atomic64_t *v)
3570 + */
3571 + static inline int atomic64_dec_and_test(atomic64_t *v)
3572 {
3573 - unsigned char c;
3574 +- GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e");
3575 ++ GEN_UNARY_RMWcc(LOCK_PREFIX "decq", LOCK_PREFIX "incq", v->counter, "%0", "e");
3576 + }
3577
3578 -- asm volatile(LOCK_PREFIX "decq %0; sete %1"
3579 -+ asm volatile(LOCK_PREFIX "decq %0\n"
3580 -+
3581 -+#ifdef CONFIG_PAX_REFCOUNT
3582 -+ "jno 0f\n"
3583 -+ LOCK_PREFIX "incq %0\n"
3584 -+ "int $4\n0:\n"
3585 -+ _ASM_EXTABLE(0b, 0b)
3586 -+#endif
3587 -+
3588 -+ "sete %1\n"
3589 - : "=m" (v->counter), "=qm" (c)
3590 - : "m" (v->counter) : "memory");
3591 - return c != 0;
3592 -@@ -136,7 +264,16 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
3593 + /**
3594 +@@ -124,7 +234,7 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
3595 + */
3596 + static inline int atomic64_inc_and_test(atomic64_t *v)
3597 {
3598 - unsigned char c;
3599 +- GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e");
3600 ++ GEN_UNARY_RMWcc(LOCK_PREFIX "incq", LOCK_PREFIX "decq", v->counter, "%0", "e");
3601 + }
3602
3603 -- asm volatile(LOCK_PREFIX "incq %0; sete %1"
3604 -+ asm volatile(LOCK_PREFIX "incq %0\n"
3605 -+
3606 -+#ifdef CONFIG_PAX_REFCOUNT
3607 -+ "jno 0f\n"
3608 -+ LOCK_PREFIX "decq %0\n"
3609 -+ "int $4\n0:\n"
3610 -+ _ASM_EXTABLE(0b, 0b)
3611 -+#endif
3612 -+
3613 -+ "sete %1\n"
3614 - : "=m" (v->counter), "=qm" (c)
3615 - : "m" (v->counter) : "memory");
3616 - return c != 0;
3617 -@@ -155,7 +292,16 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
3618 + /**
3619 +@@ -138,7 +248,7 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
3620 + */
3621 + static inline int atomic64_add_negative(long i, atomic64_t *v)
3622 {
3623 - unsigned char c;
3624 +- GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s");
3625 ++ GEN_BINARY_RMWcc(LOCK_PREFIX "addq", LOCK_PREFIX "subq", v->counter, "er", i, "%0", "s");
3626 + }
3627
3628 -- asm volatile(LOCK_PREFIX "addq %2,%0; sets %1"
3629 -+ asm volatile(LOCK_PREFIX "addq %2,%0\n"
3630 -+
3631 -+#ifdef CONFIG_PAX_REFCOUNT
3632 -+ "jno 0f\n"
3633 -+ LOCK_PREFIX "subq %2,%0\n"
3634 -+ "int $4\n0:\n"
3635 -+ _ASM_EXTABLE(0b, 0b)
3636 -+#endif
3637 -+
3638 -+ "sets %1\n"
3639 - : "=m" (v->counter), "=qm" (c)
3640 - : "er" (i), "m" (v->counter) : "memory");
3641 - return c;
3642 -@@ -170,6 +316,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
3643 + /**
3644 +@@ -150,6 +260,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
3645 */
3646 static inline long atomic64_add_return(long i, atomic64_t *v)
3647 {
3648 @@ -15241,7 +15056,7 @@ index 0e1cbfc..a891fc7 100644
3649 return i + xadd(&v->counter, i);
3650 }
3651
3652 -@@ -179,6 +337,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
3653 +@@ -159,6 +281,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
3654 }
3655
3656 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
3657 @@ -15252,7 +15067,7 @@ index 0e1cbfc..a891fc7 100644
3658 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
3659
3660 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
3661 -@@ -186,6 +348,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
3662 +@@ -166,6 +292,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
3663 return cmpxchg(&v->counter, old, new);
3664 }
3665
3666 @@ -15264,7 +15079,7 @@ index 0e1cbfc..a891fc7 100644
3667 static inline long atomic64_xchg(atomic64_t *v, long new)
3668 {
3669 return xchg(&v->counter, new);
3670 -@@ -202,17 +369,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
3671 +@@ -182,17 +313,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
3672 */
3673 static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
3674 {
3675 @@ -15300,10 +15115,10 @@ index 0e1cbfc..a891fc7 100644
3676
3677 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
3678 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
3679 -index 41639ce..ebce552 100644
3680 +index 9fc1af7..fc71228 100644
3681 --- a/arch/x86/include/asm/bitops.h
3682 +++ b/arch/x86/include/asm/bitops.h
3683 -@@ -48,7 +48,7 @@
3684 +@@ -49,7 +49,7 @@
3685 * a mask operation on a byte.
3686 */
3687 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
3688 @@ -15312,7 +15127,34 @@ index 41639ce..ebce552 100644
3689 #define CONST_MASK(nr) (1 << ((nr) & 7))
3690
3691 /**
3692 -@@ -361,7 +361,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
3693 +@@ -205,7 +205,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr)
3694 + */
3695 + static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
3696 + {
3697 +- GEN_BINARY_RMWcc(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
3698 ++ GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
3699 + }
3700 +
3701 + /**
3702 +@@ -251,7 +251,7 @@ static inline int __test_and_set_bit(long nr, volatile unsigned long *addr)
3703 + */
3704 + static inline int test_and_clear_bit(long nr, volatile unsigned long *addr)
3705 + {
3706 +- GEN_BINARY_RMWcc(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
3707 ++ GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
3708 + }
3709 +
3710 + /**
3711 +@@ -304,7 +304,7 @@ static inline int __test_and_change_bit(long nr, volatile unsigned long *addr)
3712 + */
3713 + static inline int test_and_change_bit(long nr, volatile unsigned long *addr)
3714 + {
3715 +- GEN_BINARY_RMWcc(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
3716 ++ GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
3717 + }
3718 +
3719 + static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr)
3720 +@@ -345,7 +345,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
3721 *
3722 * Undefined if no bit exists, so code should check against 0 first.
3723 */
3724 @@ -15321,7 +15163,7 @@ index 41639ce..ebce552 100644
3725 {
3726 asm("rep; bsf %1,%0"
3727 : "=r" (word)
3728 -@@ -375,7 +375,7 @@ static inline unsigned long __ffs(unsigned long word)
3729 +@@ -359,7 +359,7 @@ static inline unsigned long __ffs(unsigned long word)
3730 *
3731 * Undefined if no zero exists, so code should check against ~0UL first.
3732 */
3733 @@ -15330,7 +15172,7 @@ index 41639ce..ebce552 100644
3734 {
3735 asm("rep; bsf %1,%0"
3736 : "=r" (word)
3737 -@@ -389,7 +389,7 @@ static inline unsigned long ffz(unsigned long word)
3738 +@@ -373,7 +373,7 @@ static inline unsigned long ffz(unsigned long word)
3739 *
3740 * Undefined if no set bit exists, so code should check against 0 first.
3741 */
3742 @@ -15339,7 +15181,7 @@ index 41639ce..ebce552 100644
3743 {
3744 asm("bsr %1,%0"
3745 : "=r" (word)
3746 -@@ -452,7 +452,7 @@ static inline int ffs(int x)
3747 +@@ -436,7 +436,7 @@ static inline int ffs(int x)
3748 * set bit if value is nonzero. The last (most significant) bit is
3749 * at position 32.
3750 */
3751 @@ -15348,7 +15190,7 @@ index 41639ce..ebce552 100644
3752 {
3753 int r;
3754
3755 -@@ -494,7 +494,7 @@ static inline int fls(int x)
3756 +@@ -478,7 +478,7 @@ static inline int fls(int x)
3757 * at position 64.
3758 */
3759 #ifdef CONFIG_X86_64
3760 @@ -15412,10 +15254,10 @@ index 9863ee3..4a1f8e1 100644
3761 return _PAGE_CACHE_WC;
3762 else if (pg_flags == _PGMT_UC_MINUS)
3763 diff --git a/arch/x86/include/asm/calling.h b/arch/x86/include/asm/calling.h
3764 -index 0fa6750..cb7b2c3 100644
3765 +index cb4c73b..c473c29 100644
3766 --- a/arch/x86/include/asm/calling.h
3767 +++ b/arch/x86/include/asm/calling.h
3768 -@@ -80,103 +80,113 @@ For 32-bit we have the following conventions - kernel is built with
3769 +@@ -82,103 +82,113 @@ For 32-bit we have the following conventions - kernel is built with
3770 #define RSP 152
3771 #define SS 160
3772
3773 @@ -15772,7 +15614,7 @@ index 89270b4..f0abf8e 100644
3774 "6:\n"
3775 ".previous\n"
3776 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
3777 -index b90e5df..b462c91 100644
3778 +index 50d033a..37deb26 100644
3779 --- a/arch/x86/include/asm/desc.h
3780 +++ b/arch/x86/include/asm/desc.h
3781 @@ -4,6 +4,7 @@
3782 @@ -15899,7 +15741,7 @@ index b90e5df..b462c91 100644
3783 {
3784 gate_desc s;
3785
3786 -@@ -321,8 +334,8 @@ static inline void set_nmi_gate(int gate, void *addr)
3787 +@@ -321,14 +334,14 @@ static inline void set_nmi_gate(int gate, void *addr)
3788 #endif
3789
3790 #ifdef CONFIG_TRACING
3791 @@ -15910,8 +15752,15 @@ index b90e5df..b462c91 100644
3792 static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
3793 {
3794 write_idt_entry(trace_idt_table, entry, gate);
3795 -@@ -333,7 +346,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
3796 }
3797 +
3798 +-static inline void _trace_set_gate(int gate, unsigned type, void *addr,
3799 ++static inline void _trace_set_gate(int gate, unsigned type, const void *addr,
3800 + unsigned dpl, unsigned ist, unsigned seg)
3801 + {
3802 + gate_desc s;
3803 +@@ -348,7 +361,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
3804 + #define _trace_set_gate(gate, type, addr, dpl, ist, seg)
3805 #endif
3806
3807 -static inline void _set_gate(int gate, unsigned type, void *addr,
3808 @@ -15919,16 +15768,19 @@ index b90e5df..b462c91 100644
3809 unsigned dpl, unsigned ist, unsigned seg)
3810 {
3811 gate_desc s;
3812 -@@ -353,7 +366,7 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
3813 - * Pentium F0 0F bugfix can have resulted in the mapped
3814 - * IDT being write-protected.
3815 - */
3816 --static inline void set_intr_gate(unsigned int n, void *addr)
3817 -+static inline void set_intr_gate(unsigned int n, const void *addr)
3818 - {
3819 - BUG_ON((unsigned)n > 0xFF);
3820 - _set_gate(n, GATE_INTERRUPT, addr, 0, 0, __KERNEL_CS);
3821 -@@ -410,19 +423,19 @@ static inline void __alloc_intr_gate(unsigned int n, void *addr)
3822 +@@ -371,9 +384,9 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
3823 + #define set_intr_gate(n, addr) \
3824 + do { \
3825 + BUG_ON((unsigned)n > 0xFF); \
3826 +- _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0, \
3827 ++ _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0, \
3828 + __KERNEL_CS); \
3829 +- _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
3830 ++ _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
3831 + 0, 0, __KERNEL_CS); \
3832 + } while (0)
3833 +
3834 +@@ -401,19 +414,19 @@ static inline void alloc_system_vector(int vector)
3835 /*
3836 * This routine sets up an interrupt gate at directory privilege level 3.
3837 */
3838 @@ -15951,7 +15803,7 @@ index b90e5df..b462c91 100644
3839 {
3840 BUG_ON((unsigned)n > 0xFF);
3841 _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
3842 -@@ -431,16 +444,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
3843 +@@ -422,16 +435,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
3844 static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
3845 {
3846 BUG_ON((unsigned)n > 0xFF);
3847 @@ -15971,7 +15823,7 @@ index b90e5df..b462c91 100644
3848 {
3849 BUG_ON((unsigned)n > 0xFF);
3850 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
3851 -@@ -512,4 +525,17 @@ static inline void load_current_idt(void)
3852 +@@ -503,4 +516,17 @@ static inline void load_current_idt(void)
3853 else
3854 load_idt((const struct desc_ptr *)&idt_descr);
3855 }
3856 @@ -16099,8 +15951,41 @@ index 77a99ac..39ff7f5 100644
3857 +extern void machine_emergency_restart(void) __noreturn;
3858
3859 #endif /* _ASM_X86_EMERGENCY_RESTART_H */
3860 +diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h
3861 +index d3d7469..677ef72 100644
3862 +--- a/arch/x86/include/asm/floppy.h
3863 ++++ b/arch/x86/include/asm/floppy.h
3864 +@@ -229,18 +229,18 @@ static struct fd_routine_l {
3865 + int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
3866 + } fd_routine[] = {
3867 + {
3868 +- request_dma,
3869 +- free_dma,
3870 +- get_dma_residue,
3871 +- dma_mem_alloc,
3872 +- hard_dma_setup
3873 ++ ._request_dma = request_dma,
3874 ++ ._free_dma = free_dma,
3875 ++ ._get_dma_residue = get_dma_residue,
3876 ++ ._dma_mem_alloc = dma_mem_alloc,
3877 ++ ._dma_setup = hard_dma_setup
3878 + },
3879 + {
3880 +- vdma_request_dma,
3881 +- vdma_nop,
3882 +- vdma_get_dma_residue,
3883 +- vdma_mem_alloc,
3884 +- vdma_dma_setup
3885 ++ ._request_dma = vdma_request_dma,
3886 ++ ._free_dma = vdma_nop,
3887 ++ ._get_dma_residue = vdma_get_dma_residue,
3888 ++ ._dma_mem_alloc = vdma_mem_alloc,
3889 ++ ._dma_setup = vdma_dma_setup
3890 + }
3891 + };
3892 +
3893 diff --git a/arch/x86/include/asm/fpu-internal.h b/arch/x86/include/asm/fpu-internal.h
3894 -index 5be9f87..0320912 100644
3895 +index cea1c76..6c0d79b 100644
3896 --- a/arch/x86/include/asm/fpu-internal.h
3897 +++ b/arch/x86/include/asm/fpu-internal.h
3898 @@ -124,8 +124,11 @@ static inline void sanitize_i387_state(struct task_struct *tsk)
3899 @@ -16221,7 +16106,7 @@ index be27ba1..04a8801 100644
3900 *uval = oldval;
3901 return ret;
3902 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
3903 -index 92b3bae..3866449 100644
3904 +index cba45d9..86344ba 100644
3905 --- a/arch/x86/include/asm/hw_irq.h
3906 +++ b/arch/x86/include/asm/hw_irq.h
3907 @@ -165,8 +165,8 @@ extern void setup_ioapic_dest(void);
3908 @@ -16333,7 +16218,7 @@ index 9454c16..e4100e3 100644
3909 #define flush_insn_slot(p) do { } while (0)
3910
3911 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
3912 -index 2d89e39..baee879 100644
3913 +index 4ad6560..75c7bdd 100644
3914 --- a/arch/x86/include/asm/local.h
3915 +++ b/arch/x86/include/asm/local.h
3916 @@ -10,33 +10,97 @@ typedef struct {
3917 @@ -16438,79 +16323,43 @@ index 2d89e39..baee879 100644
3918 : "+m" (l->a.counter)
3919 : "ir" (i));
3920 }
3921 -@@ -54,7 +118,16 @@ static inline int local_sub_and_test(long i, local_t *l)
3922 +@@ -52,7 +116,7 @@ static inline void local_sub(long i, local_t *l)
3923 + */
3924 + static inline int local_sub_and_test(long i, local_t *l)
3925 {
3926 - unsigned char c;
3927 +- GEN_BINARY_RMWcc(_ASM_SUB, l->a.counter, "er", i, "%0", "e");
3928 ++ GEN_BINARY_RMWcc(_ASM_SUB, _ASM_ADD, l->a.counter, "er", i, "%0", "e");
3929 + }
3930
3931 -- asm volatile(_ASM_SUB "%2,%0; sete %1"
3932 -+ asm volatile(_ASM_SUB "%2,%0\n"
3933 -+
3934 -+#ifdef CONFIG_PAX_REFCOUNT
3935 -+ "jno 0f\n"
3936 -+ _ASM_ADD "%2,%0\n"
3937 -+ "int $4\n0:\n"
3938 -+ _ASM_EXTABLE(0b, 0b)
3939 -+#endif
3940 -+
3941 -+ "sete %1\n"
3942 - : "+m" (l->a.counter), "=qm" (c)
3943 - : "ir" (i) : "memory");
3944 - return c;
3945 -@@ -72,7 +145,16 @@ static inline int local_dec_and_test(local_t *l)
3946 + /**
3947 +@@ -65,7 +129,7 @@ static inline int local_sub_and_test(long i, local_t *l)
3948 + */
3949 + static inline int local_dec_and_test(local_t *l)
3950 {
3951 - unsigned char c;
3952 +- GEN_UNARY_RMWcc(_ASM_DEC, l->a.counter, "%0", "e");
3953 ++ GEN_UNARY_RMWcc(_ASM_DEC, _ASM_INC, l->a.counter, "%0", "e");
3954 + }
3955
3956 -- asm volatile(_ASM_DEC "%0; sete %1"
3957 -+ asm volatile(_ASM_DEC "%0\n"
3958 -+
3959 -+#ifdef CONFIG_PAX_REFCOUNT
3960 -+ "jno 0f\n"
3961 -+ _ASM_INC "%0\n"
3962 -+ "int $4\n0:\n"
3963 -+ _ASM_EXTABLE(0b, 0b)
3964 -+#endif
3965 -+
3966 -+ "sete %1\n"
3967 - : "+m" (l->a.counter), "=qm" (c)
3968 - : : "memory");
3969 - return c != 0;
3970 -@@ -90,7 +172,16 @@ static inline int local_inc_and_test(local_t *l)
3971 + /**
3972 +@@ -78,7 +142,7 @@ static inline int local_dec_and_test(local_t *l)
3973 + */
3974 + static inline int local_inc_and_test(local_t *l)
3975 {
3976 - unsigned char c;
3977 +- GEN_UNARY_RMWcc(_ASM_INC, l->a.counter, "%0", "e");
3978 ++ GEN_UNARY_RMWcc(_ASM_INC, _ASM_DEC, l->a.counter, "%0", "e");
3979 + }
3980
3981 -- asm volatile(_ASM_INC "%0; sete %1"
3982 -+ asm volatile(_ASM_INC "%0\n"
3983 -+
3984 -+#ifdef CONFIG_PAX_REFCOUNT
3985 -+ "jno 0f\n"
3986 -+ _ASM_DEC "%0\n"
3987 -+ "int $4\n0:\n"
3988 -+ _ASM_EXTABLE(0b, 0b)
3989 -+#endif
3990 -+
3991 -+ "sete %1\n"
3992 - : "+m" (l->a.counter), "=qm" (c)
3993 - : : "memory");
3994 - return c != 0;
3995 -@@ -109,7 +200,16 @@ static inline int local_add_negative(long i, local_t *l)
3996 + /**
3997 +@@ -92,7 +156,7 @@ static inline int local_inc_and_test(local_t *l)
3998 + */
3999 + static inline int local_add_negative(long i, local_t *l)
4000 {
4001 - unsigned char c;
4002 +- GEN_BINARY_RMWcc(_ASM_ADD, l->a.counter, "er", i, "%0", "s");
4003 ++ GEN_BINARY_RMWcc(_ASM_ADD, _ASM_SUB, l->a.counter, "er", i, "%0", "s");
4004 + }
4005
4006 -- asm volatile(_ASM_ADD "%2,%0; sets %1"
4007 -+ asm volatile(_ASM_ADD "%2,%0\n"
4008 -+
4009 -+#ifdef CONFIG_PAX_REFCOUNT
4010 -+ "jno 0f\n"
4011 -+ _ASM_SUB "%2,%0\n"
4012 -+ "int $4\n0:\n"
4013 -+ _ASM_EXTABLE(0b, 0b)
4014 -+#endif
4015 -+
4016 -+ "sets %1\n"
4017 - : "+m" (l->a.counter), "=qm" (c)
4018 - : "ir" (i) : "memory");
4019 - return c;
4020 -@@ -125,6 +225,30 @@ static inline int local_add_negative(long i, local_t *l)
4021 + /**
4022 +@@ -105,6 +169,30 @@ static inline int local_add_negative(long i, local_t *l)
4023 static inline long local_add_return(long i, local_t *l)
4024 {
4025 long __i = i;
4026 @@ -16541,7 +16390,7 @@ index 2d89e39..baee879 100644
4027 asm volatile(_ASM_XADD "%0, %1;"
4028 : "+r" (i), "+m" (l->a.counter)
4029 : : "memory");
4030 -@@ -141,6 +265,8 @@ static inline long local_sub_return(long i, local_t *l)
4031 +@@ -121,6 +209,8 @@ static inline long local_sub_return(long i, local_t *l)
4032
4033 #define local_cmpxchg(l, o, n) \
4034 (cmpxchg_local(&((l)->a.counter), (o), (n)))
4035 @@ -16965,7 +16814,7 @@ index 401f350..dee5d13 100644
4036
4037 #endif /* __ASSEMBLY__ */
4038 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
4039 -index aab8f67..2531748 100644
4040 +index aab8f67..0fb0ee4 100644
4041 --- a/arch/x86/include/asm/paravirt_types.h
4042 +++ b/arch/x86/include/asm/paravirt_types.h
4043 @@ -84,7 +84,7 @@ struct pv_init_ops {
4044 @@ -16973,16 +16822,23 @@ index aab8f67..2531748 100644
4045 unsigned (*patch)(u8 type, u16 clobber, void *insnbuf,
4046 unsigned long addr, unsigned len);
4047 -};
4048 -+} __no_const;
4049 ++} __no_const __no_randomize_layout;
4050
4051
4052 struct pv_lazy_ops {
4053 -@@ -98,7 +98,7 @@ struct pv_time_ops {
4054 +@@ -92,13 +92,13 @@ struct pv_lazy_ops {
4055 + void (*enter)(void);
4056 + void (*leave)(void);
4057 + void (*flush)(void);
4058 +-};
4059 ++} __no_randomize_layout;
4060 +
4061 + struct pv_time_ops {
4062 unsigned long long (*sched_clock)(void);
4063 unsigned long long (*steal_clock)(int cpu);
4064 unsigned long (*get_tsc_khz)(void);
4065 -};
4066 -+} __no_const;
4067 ++} __no_const __no_randomize_layout;
4068
4069 struct pv_cpu_ops {
4070 /* hooks for various privileged instructions */
4071 @@ -16991,16 +16847,25 @@ index aab8f67..2531748 100644
4072 void (*start_context_switch)(struct task_struct *prev);
4073 void (*end_context_switch)(struct task_struct *next);
4074 -};
4075 -+} __no_const;
4076 ++} __no_const __no_randomize_layout;
4077
4078 struct pv_irq_ops {
4079 /*
4080 +@@ -215,7 +215,7 @@ struct pv_irq_ops {
4081 + #ifdef CONFIG_X86_64
4082 + void (*adjust_exception_frame)(void);
4083 + #endif
4084 +-};
4085 ++} __no_randomize_layout;
4086 +
4087 + struct pv_apic_ops {
4088 + #ifdef CONFIG_X86_LOCAL_APIC
4089 @@ -223,7 +223,7 @@ struct pv_apic_ops {
4090 unsigned long start_eip,
4091 unsigned long start_esp);
4092 #endif
4093 -};
4094 -+} __no_const;
4095 ++} __no_const __no_randomize_layout;
4096
4097 struct pv_mmu_ops {
4098 unsigned long (*read_cr2)(void);
4099 @@ -17012,21 +16877,49 @@ index aab8f67..2531748 100644
4100 #endif /* PAGETABLE_LEVELS == 4 */
4101 #endif /* PAGETABLE_LEVELS >= 3 */
4102
4103 -@@ -324,6 +325,12 @@ struct pv_mmu_ops {
4104 +@@ -324,7 +325,13 @@ struct pv_mmu_ops {
4105 an mfn. We can tell which is which from the index. */
4106 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
4107 phys_addr_t phys, pgprot_t flags);
4108 +-};
4109 +
4110 +#ifdef CONFIG_PAX_KERNEXEC
4111 + unsigned long (*pax_open_kernel)(void);
4112 + unsigned long (*pax_close_kernel)(void);
4113 +#endif
4114 +
4115 - };
4116 ++} __no_randomize_layout;
4117
4118 struct arch_spinlock;
4119 + #ifdef CONFIG_SMP
4120 +@@ -336,11 +343,14 @@ typedef u16 __ticket_t;
4121 + struct pv_lock_ops {
4122 + struct paravirt_callee_save lock_spinning;
4123 + void (*unlock_kick)(struct arch_spinlock *lock, __ticket_t ticket);
4124 +-};
4125 ++} __no_randomize_layout;
4126 +
4127 + /* This contains all the paravirt structures: we get a convenient
4128 + * number for each function using the offset which we use to indicate
4129 +- * what to patch. */
4130 ++ * what to patch.
4131 ++ * shouldn't be randomized due to the "NEAT TRICK" in paravirt.c
4132 ++ */
4133 ++
4134 + struct paravirt_patch_template {
4135 + struct pv_init_ops pv_init_ops;
4136 + struct pv_time_ops pv_time_ops;
4137 +@@ -349,7 +359,7 @@ struct paravirt_patch_template {
4138 + struct pv_apic_ops pv_apic_ops;
4139 + struct pv_mmu_ops pv_mmu_ops;
4140 + struct pv_lock_ops pv_lock_ops;
4141 +-};
4142 ++} __no_randomize_layout;
4143 +
4144 + extern struct pv_info pv_info;
4145 + extern struct pv_init_ops pv_init_ops;
4146 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
4147 -index b4389a4..7024269 100644
4148 +index c4412e9..90e88c5 100644
4149 --- a/arch/x86/include/asm/pgalloc.h
4150 +++ b/arch/x86/include/asm/pgalloc.h
4151 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
4152 @@ -17043,7 +16936,7 @@ index b4389a4..7024269 100644
4153 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
4154 }
4155
4156 -@@ -99,12 +106,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
4157 +@@ -108,12 +115,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
4158
4159 #ifdef CONFIG_X86_PAE
4160 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
4161 @@ -17066,7 +16959,7 @@ index b4389a4..7024269 100644
4162 #endif /* CONFIG_X86_PAE */
4163
4164 #if PAGETABLE_LEVELS > 3
4165 -@@ -114,6 +131,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
4166 +@@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
4167 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
4168 }
4169
4170 @@ -17480,7 +17373,7 @@ index 2d88344..4679fc3 100644
4171 #define EARLY_DYNAMIC_PAGE_TABLES 64
4172
4173 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
4174 -index 0ecac25..306c276 100644
4175 +index 0ecac25..7a15e09 100644
4176 --- a/arch/x86/include/asm/pgtable_types.h
4177 +++ b/arch/x86/include/asm/pgtable_types.h
4178 @@ -16,13 +16,12 @@
4179 @@ -17513,7 +17406,7 @@ index 0ecac25..306c276 100644
4180 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
4181 #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
4182 -#else
4183 -+#elif defined(CONFIG_KMEMCHECK)
4184 ++#elif defined(CONFIG_KMEMCHECK) || defined(CONFIG_MEM_SOFT_DIRTY)
4185 #define _PAGE_NX (_AT(pteval_t, 0))
4186 +#else
4187 +#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_HIDDEN)
4188 @@ -17594,10 +17487,32 @@ index 0ecac25..306c276 100644
4189
4190 #define pgprot_writecombine pgprot_writecombine
4191 extern pgprot_t pgprot_writecombine(pgprot_t prot);
4192 +diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
4193 +index c8b0519..fd29e73 100644
4194 +--- a/arch/x86/include/asm/preempt.h
4195 ++++ b/arch/x86/include/asm/preempt.h
4196 +@@ -87,7 +87,7 @@ static __always_inline void __preempt_count_sub(int val)
4197 + */
4198 + static __always_inline bool __preempt_count_dec_and_test(void)
4199 + {
4200 +- GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
4201 ++ GEN_UNARY_RMWcc("decl", "incl", __preempt_count, __percpu_arg(0), "e");
4202 + }
4203 +
4204 + /*
4205 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
4206 -index 987c75e..2723054 100644
4207 +index 7b034a4..4fe3e3f 100644
4208 --- a/arch/x86/include/asm/processor.h
4209 +++ b/arch/x86/include/asm/processor.h
4210 +@@ -128,7 +128,7 @@ struct cpuinfo_x86 {
4211 + /* Index into per_cpu list: */
4212 + u16 cpu_index;
4213 + u32 microcode;
4214 +-} __attribute__((__aligned__(SMP_CACHE_BYTES)));
4215 ++} __attribute__((__aligned__(SMP_CACHE_BYTES))) __randomize_layout;
4216 +
4217 + #define X86_VENDOR_INTEL 0
4218 + #define X86_VENDOR_CYRIX 1
4219 @@ -199,9 +199,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
4220 : "memory");
4221 }
4222 @@ -17638,7 +17553,7 @@ index 987c75e..2723054 100644
4223 #endif
4224 #ifdef CONFIG_X86_32
4225 unsigned long ip;
4226 -@@ -553,29 +566,8 @@ static inline void load_sp0(struct tss_struct *tss,
4227 +@@ -562,29 +575,8 @@ static inline void load_sp0(struct tss_struct *tss,
4228 extern unsigned long mmu_cr4_features;
4229 extern u32 *trampoline_cr4_features;
4230
4231 @@ -17670,7 +17585,7 @@ index 987c75e..2723054 100644
4232
4233 typedef struct {
4234 unsigned long seg;
4235 -@@ -824,11 +816,18 @@ static inline void spin_lock_prefetch(const void *x)
4236 +@@ -833,11 +825,18 @@ static inline void spin_lock_prefetch(const void *x)
4237 */
4238 #define TASK_SIZE PAGE_OFFSET
4239 #define TASK_SIZE_MAX TASK_SIZE
4240 @@ -17691,7 +17606,7 @@ index 987c75e..2723054 100644
4241 .vm86_info = NULL, \
4242 .sysenter_cs = __KERNEL_CS, \
4243 .io_bitmap_ptr = NULL, \
4244 -@@ -842,7 +841,7 @@ static inline void spin_lock_prefetch(const void *x)
4245 +@@ -851,7 +850,7 @@ static inline void spin_lock_prefetch(const void *x)
4246 */
4247 #define INIT_TSS { \
4248 .x86_tss = { \
4249 @@ -17700,7 +17615,7 @@ index 987c75e..2723054 100644
4250 .ss0 = __KERNEL_DS, \
4251 .ss1 = __KERNEL_CS, \
4252 .io_bitmap_base = INVALID_IO_BITMAP_OFFSET, \
4253 -@@ -853,11 +852,7 @@ static inline void spin_lock_prefetch(const void *x)
4254 +@@ -862,11 +861,7 @@ static inline void spin_lock_prefetch(const void *x)
4255 extern unsigned long thread_saved_pc(struct task_struct *tsk);
4256
4257 #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
4258 @@ -17713,7 +17628,7 @@ index 987c75e..2723054 100644
4259
4260 /*
4261 * The below -8 is to reserve 8 bytes on top of the ring0 stack.
4262 -@@ -872,7 +867,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4263 +@@ -881,7 +876,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4264 #define task_pt_regs(task) \
4265 ({ \
4266 struct pt_regs *__regs__; \
4267 @@ -17722,7 +17637,7 @@ index 987c75e..2723054 100644
4268 __regs__ - 1; \
4269 })
4270
4271 -@@ -882,13 +877,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4272 +@@ -891,13 +886,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4273 /*
4274 * User space process size. 47bits minus one guard page.
4275 */
4276 @@ -17738,7 +17653,7 @@ index 987c75e..2723054 100644
4277
4278 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
4279 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
4280 -@@ -899,11 +894,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4281 +@@ -908,11 +903,11 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
4282 #define STACK_TOP_MAX TASK_SIZE_MAX
4283
4284 #define INIT_THREAD { \
4285 @@ -17752,7 +17667,7 @@ index 987c75e..2723054 100644
4286 }
4287
4288 /*
4289 -@@ -931,6 +926,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
4290 +@@ -940,6 +935,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
4291 */
4292 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
4293
4294 @@ -17763,7 +17678,7 @@ index 987c75e..2723054 100644
4295 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
4296
4297 /* Get/set a process' ability to use the timestamp counter instruction */
4298 -@@ -957,7 +956,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
4299 +@@ -966,7 +965,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
4300 return 0;
4301 }
4302
4303 @@ -17772,7 +17687,7 @@ index 987c75e..2723054 100644
4304 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
4305
4306 void default_idle(void);
4307 -@@ -967,6 +966,6 @@ bool xen_set_default_idle(void);
4308 +@@ -976,6 +975,6 @@ bool xen_set_default_idle(void);
4309 #define xen_set_default_idle 0
4310 #endif
4311
4312 @@ -17899,6 +17814,120 @@ index a82c4f1..ac45053 100644
4313
4314 extern struct machine_ops machine_ops;
4315
4316 +diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
4317 +index 8f7866a..e442f20 100644
4318 +--- a/arch/x86/include/asm/rmwcc.h
4319 ++++ b/arch/x86/include/asm/rmwcc.h
4320 +@@ -3,7 +3,34 @@
4321 +
4322 + #ifdef CC_HAVE_ASM_GOTO
4323 +
4324 +-#define __GEN_RMWcc(fullop, var, cc, ...) \
4325 ++#ifdef CONFIG_PAX_REFCOUNT
4326 ++#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
4327 ++do { \
4328 ++ asm_volatile_goto (fullop \
4329 ++ ";jno 0f\n" \
4330 ++ fullantiop \
4331 ++ ";int $4\n0:\n" \
4332 ++ _ASM_EXTABLE(0b, 0b) \
4333 ++ ";j" cc " %l[cc_label]" \
4334 ++ : : "m" (var), ## __VA_ARGS__ \
4335 ++ : "memory" : cc_label); \
4336 ++ return 0; \
4337 ++cc_label: \
4338 ++ return 1; \
4339 ++} while (0)
4340 ++#else
4341 ++#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
4342 ++do { \
4343 ++ asm_volatile_goto (fullop ";j" cc " %l[cc_label]" \
4344 ++ : : "m" (var), ## __VA_ARGS__ \
4345 ++ : "memory" : cc_label); \
4346 ++ return 0; \
4347 ++cc_label: \
4348 ++ return 1; \
4349 ++} while (0)
4350 ++#endif
4351 ++
4352 ++#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
4353 + do { \
4354 + asm_volatile_goto (fullop "; j" cc " %l[cc_label]" \
4355 + : : "m" (var), ## __VA_ARGS__ \
4356 +@@ -13,15 +40,46 @@ cc_label: \
4357 + return 1; \
4358 + } while (0)
4359 +
4360 +-#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
4361 +- __GEN_RMWcc(op " " arg0, var, cc)
4362 ++#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
4363 ++ __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
4364 +
4365 +-#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
4366 +- __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
4367 ++#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
4368 ++ __GEN_RMWcc_unchecked(op " " arg0, var, cc)
4369 ++
4370 ++#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
4371 ++ __GEN_RMWcc(op " %1, " arg0, antiop " %1, " arg0, var, cc, vcon (val))
4372 ++
4373 ++#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
4374 ++ __GEN_RMWcc_unchecked(op " %1, " arg0, var, cc, vcon (val))
4375 +
4376 + #else /* !CC_HAVE_ASM_GOTO */
4377 +
4378 +-#define __GEN_RMWcc(fullop, var, cc, ...) \
4379 ++#ifdef CONFIG_PAX_REFCOUNT
4380 ++#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
4381 ++do { \
4382 ++ char c; \
4383 ++ asm volatile (fullop \
4384 ++ ";jno 0f\n" \
4385 ++ fullantiop \
4386 ++ ";int $4\n0:\n" \
4387 ++ _ASM_EXTABLE(0b, 0b) \
4388 ++ "; set" cc " %1" \
4389 ++ : "+m" (var), "=qm" (c) \
4390 ++ : __VA_ARGS__ : "memory"); \
4391 ++ return c != 0; \
4392 ++} while (0)
4393 ++#else
4394 ++#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
4395 ++do { \
4396 ++ char c; \
4397 ++ asm volatile (fullop "; set" cc " %1" \
4398 ++ : "+m" (var), "=qm" (c) \
4399 ++ : __VA_ARGS__ : "memory"); \
4400 ++ return c != 0; \
4401 ++} while (0)
4402 ++#endif
4403 ++
4404 ++#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
4405 + do { \
4406 + char c; \
4407 + asm volatile (fullop "; set" cc " %1" \
4408 +@@ -30,11 +88,17 @@ do { \
4409 + return c != 0; \
4410 + } while (0)
4411 +
4412 +-#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
4413 +- __GEN_RMWcc(op " " arg0, var, cc)
4414 ++#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
4415 ++ __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
4416 ++
4417 ++#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
4418 ++ __GEN_RMWcc_unchecked(op " " arg0, var, cc)
4419 ++
4420 ++#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
4421 ++ __GEN_RMWcc(op " %2, " arg0, antiop " %2, " arg0, var, cc, vcon (val))
4422 +
4423 +-#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
4424 +- __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
4425 ++#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
4426 ++ __GEN_RMWcc_unchecked(op " %2, " arg0, var, cc, vcon (val))
4427 +
4428 + #endif /* CC_HAVE_ASM_GOTO */
4429 +
4430 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
4431 index cad82c9..2e5c5c1 100644
4432 --- a/arch/x86/include/asm/rwsem.h
4433 @@ -18020,7 +18049,7 @@ index cad82c9..2e5c5c1 100644
4434
4435 #endif /* __KERNEL__ */
4436 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
4437 -index c48a950..bc40804 100644
4438 +index 6f1c3a8..7744f19 100644
4439 --- a/arch/x86/include/asm/segment.h
4440 +++ b/arch/x86/include/asm/segment.h
4441 @@ -64,10 +64,15 @@
4442 @@ -18106,7 +18135,7 @@ index c48a950..bc40804 100644
4443 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8+3)
4444 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8+3)
4445 #ifndef CONFIG_PARAVIRT
4446 -@@ -265,7 +284,7 @@ static inline unsigned long get_limit(unsigned long segment)
4447 +@@ -268,7 +287,7 @@ static inline unsigned long get_limit(unsigned long segment)
4448 {
4449 unsigned long __limit;
4450 asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
4451 @@ -18411,7 +18440,7 @@ index d7f3b3b..3cc39f1 100644
4452 __switch_canary_iparam \
4453 : "memory", "cc" __EXTRA_CLOBBER)
4454 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
4455 -index 2781119..618b59b 100644
4456 +index 3ba3de4..6c113b2 100644
4457 --- a/arch/x86/include/asm/thread_info.h
4458 +++ b/arch/x86/include/asm/thread_info.h
4459 @@ -10,6 +10,7 @@
4460 @@ -18430,7 +18459,7 @@ index 2781119..618b59b 100644
4461 struct exec_domain *exec_domain; /* execution domain */
4462 __u32 flags; /* low level flags */
4463 __u32 status; /* thread synchronous flags */
4464 -@@ -33,19 +33,13 @@ struct thread_info {
4465 +@@ -32,19 +32,13 @@ struct thread_info {
4466 mm_segment_t addr_limit;
4467 struct restart_block restart_block;
4468 void __user *sysenter_return;
4469 @@ -18452,7 +18481,7 @@ index 2781119..618b59b 100644
4470 .exec_domain = &default_exec_domain, \
4471 .flags = 0, \
4472 .cpu = 0, \
4473 -@@ -56,7 +50,7 @@ struct thread_info {
4474 +@@ -55,7 +49,7 @@ struct thread_info {
4475 }, \
4476 }
4477
4478 @@ -18461,7 +18490,7 @@ index 2781119..618b59b 100644
4479 #define init_stack (init_thread_union.stack)
4480
4481 #else /* !__ASSEMBLY__ */
4482 -@@ -96,6 +90,7 @@ struct thread_info {
4483 +@@ -95,6 +89,7 @@ struct thread_info {
4484 #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */
4485 #define TIF_ADDR32 29 /* 32-bit address space on 64 bits */
4486 #define TIF_X32 30 /* 32-bit native x86-64 binary */
4487 @@ -18469,7 +18498,7 @@ index 2781119..618b59b 100644
4488
4489 #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
4490 #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
4491 -@@ -119,17 +114,18 @@ struct thread_info {
4492 +@@ -118,17 +113,18 @@ struct thread_info {
4493 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
4494 #define _TIF_ADDR32 (1 << TIF_ADDR32)
4495 #define _TIF_X32 (1 << TIF_X32)
4496 @@ -18490,7 +18519,7 @@ index 2781119..618b59b 100644
4497
4498 /* work to do on interrupt/exception return */
4499 #define _TIF_WORK_MASK \
4500 -@@ -140,7 +136,7 @@ struct thread_info {
4501 +@@ -139,7 +135,7 @@ struct thread_info {
4502 /* work to do on any return to user space */
4503 #define _TIF_ALLWORK_MASK \
4504 ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
4505 @@ -18499,9 +18528,9 @@ index 2781119..618b59b 100644
4506
4507 /* Only used for 64 bit */
4508 #define _TIF_DO_NOTIFY_MASK \
4509 -@@ -156,45 +152,40 @@ struct thread_info {
4510 -
4511 - #define PREEMPT_ACTIVE 0x10000000
4512 +@@ -153,45 +149,40 @@ struct thread_info {
4513 + #define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY)
4514 + #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW)
4515
4516 -#ifdef CONFIG_X86_32
4517 -
4518 @@ -18570,7 +18599,7 @@ index 2781119..618b59b 100644
4519 /*
4520 * macros/functions for gaining access to the thread information structure
4521 * preempt_count needs to be 1 initially, until the scheduler is functional.
4522 -@@ -202,27 +193,8 @@ static inline struct thread_info *current_thread_info(void)
4523 +@@ -199,27 +190,8 @@ static inline struct thread_info *current_thread_info(void)
4524 #ifndef __ASSEMBLY__
4525 DECLARE_PER_CPU(unsigned long, kernel_stack);
4526
4527 @@ -18600,7 +18629,7 @@ index 2781119..618b59b 100644
4528 #endif
4529
4530 #endif /* !X86_32 */
4531 -@@ -281,5 +253,12 @@ static inline bool is_ia32_task(void)
4532 +@@ -278,5 +250,12 @@ static inline bool is_ia32_task(void)
4533 extern void arch_task_cache_init(void);
4534 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
4535 extern void arch_release_task_struct(struct task_struct *tsk);
4536 @@ -18712,14 +18741,14 @@ index e6d90ba..0897f44 100644
4537 }
4538
4539 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
4540 -index 5838fa9..f7ae572 100644
4541 +index 8ec57c0..3ee58c9 100644
4542 --- a/arch/x86/include/asm/uaccess.h
4543 +++ b/arch/x86/include/asm/uaccess.h
4544 @@ -7,6 +7,7 @@
4545 #include <linux/compiler.h>
4546 #include <linux/thread_info.h>
4547 #include <linux/string.h>
4548 -+#include <linux/sched.h>
4549 ++#include <linux/spinlock.h>
4550 #include <asm/asm.h>
4551 #include <asm/page.h>
4552 #include <asm/smap.h>
4553 @@ -18736,12 +18765,13 @@ index 5838fa9..f7ae572 100644
4554
4555 #define segment_eq(a, b) ((a).seg == (b).seg)
4556
4557 -@@ -77,8 +83,33 @@
4558 +@@ -77,8 +83,34 @@
4559 * checks that the pointer is in the user space range - after calling
4560 * this function, memory access functions may still return -EFAULT.
4561 */
4562 -#define access_ok(type, addr, size) \
4563 - (likely(__range_not_ok(addr, size, user_addr_max()) == 0))
4564 ++extern int _cond_resched(void);
4565 +#define __access_ok(type, addr, size) (likely(__range_not_ok(addr, size, user_addr_max()) == 0))
4566 +#define access_ok(type, addr, size) \
4567 +({ \
4568 @@ -18755,7 +18785,7 @@ index 5838fa9..f7ae572 100644
4569 + char __c_ao; \
4570 + __addr_ao += PAGE_SIZE; \
4571 + if (__size > PAGE_SIZE) \
4572 -+ cond_resched(); \
4573 ++ _cond_resched(); \
4574 + if (__get_user(__c_ao, (char __user *)__addr)) \
4575 + break; \
4576 + if (type != VERIFY_WRITE) { \
4577 @@ -18772,7 +18802,7 @@ index 5838fa9..f7ae572 100644
4578
4579 /*
4580 * The exception table consists of pairs of addresses relative to the
4581 -@@ -168,10 +199,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4582 +@@ -168,10 +200,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4583 register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
4584 __chk_user_ptr(ptr); \
4585 might_fault(); \
4586 @@ -18785,7 +18815,7 @@ index 5838fa9..f7ae572 100644
4587 __ret_gu; \
4588 })
4589
4590 -@@ -179,13 +212,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4591 +@@ -179,13 +213,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4592 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
4593 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
4594
4595 @@ -18810,7 +18840,7 @@ index 5838fa9..f7ae572 100644
4596 "3: " ASM_CLAC "\n" \
4597 ".section .fixup,\"ax\"\n" \
4598 "4: movl %3,%0\n" \
4599 -@@ -198,8 +239,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4600 +@@ -198,8 +240,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
4601
4602 #define __put_user_asm_ex_u64(x, addr) \
4603 asm volatile(ASM_STAC "\n" \
4604 @@ -18821,7 +18851,7 @@ index 5838fa9..f7ae572 100644
4605 "3: " ASM_CLAC "\n" \
4606 _ASM_EXTABLE_EX(1b, 2b) \
4607 _ASM_EXTABLE_EX(2b, 3b) \
4608 -@@ -249,7 +290,8 @@ extern void __put_user_8(void);
4609 +@@ -249,7 +291,8 @@ extern void __put_user_8(void);
4610 __typeof__(*(ptr)) __pu_val; \
4611 __chk_user_ptr(ptr); \
4612 might_fault(); \
4613 @@ -18831,7 +18861,7 @@ index 5838fa9..f7ae572 100644
4614 switch (sizeof(*(ptr))) { \
4615 case 1: \
4616 __put_user_x(1, __pu_val, ptr, __ret_pu); \
4617 -@@ -267,6 +309,7 @@ extern void __put_user_8(void);
4618 +@@ -267,6 +310,7 @@ extern void __put_user_8(void);
4619 __put_user_x(X, __pu_val, ptr, __ret_pu); \
4620 break; \
4621 } \
4622 @@ -18839,7 +18869,7 @@ index 5838fa9..f7ae572 100644
4623 __ret_pu; \
4624 })
4625
4626 -@@ -347,8 +390,10 @@ do { \
4627 +@@ -347,8 +391,10 @@ do { \
4628 } while (0)
4629
4630 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
4631 @@ -18851,7 +18881,7 @@ index 5838fa9..f7ae572 100644
4632 "2: " ASM_CLAC "\n" \
4633 ".section .fixup,\"ax\"\n" \
4634 "3: mov %3,%0\n" \
4635 -@@ -356,8 +401,10 @@ do { \
4636 +@@ -356,8 +402,10 @@ do { \
4637 " jmp 2b\n" \
4638 ".previous\n" \
4639 _ASM_EXTABLE(1b, 3b) \
4640 @@ -18864,7 +18894,7 @@ index 5838fa9..f7ae572 100644
4641
4642 #define __get_user_size_ex(x, ptr, size) \
4643 do { \
4644 -@@ -381,7 +428,7 @@ do { \
4645 +@@ -381,7 +429,7 @@ do { \
4646 } while (0)
4647
4648 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
4649 @@ -18873,7 +18903,7 @@ index 5838fa9..f7ae572 100644
4650 "2:\n" \
4651 _ASM_EXTABLE_EX(1b, 2b) \
4652 : ltype(x) : "m" (__m(addr)))
4653 -@@ -398,13 +445,24 @@ do { \
4654 +@@ -398,13 +446,24 @@ do { \
4655 int __gu_err; \
4656 unsigned long __gu_val; \
4657 __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
4658 @@ -18900,7 +18930,7 @@ index 5838fa9..f7ae572 100644
4659
4660 /*
4661 * Tell gcc we read from memory instead of writing: this is because
4662 -@@ -412,8 +470,10 @@ struct __large_struct { unsigned long buf[100]; };
4663 +@@ -412,8 +471,10 @@ struct __large_struct { unsigned long buf[100]; };
4664 * aliasing issues.
4665 */
4666 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
4667 @@ -18912,7 +18942,7 @@ index 5838fa9..f7ae572 100644
4668 "2: " ASM_CLAC "\n" \
4669 ".section .fixup,\"ax\"\n" \
4670 "3: mov %3,%0\n" \
4671 -@@ -421,10 +481,12 @@ struct __large_struct { unsigned long buf[100]; };
4672 +@@ -421,10 +482,12 @@ struct __large_struct { unsigned long buf[100]; };
4673 ".previous\n" \
4674 _ASM_EXTABLE(1b, 3b) \
4675 : "=r"(err) \
4676 @@ -18927,7 +18957,7 @@ index 5838fa9..f7ae572 100644
4677 "2:\n" \
4678 _ASM_EXTABLE_EX(1b, 2b) \
4679 : : ltype(x), "m" (__m(addr)))
4680 -@@ -434,11 +496,13 @@ struct __large_struct { unsigned long buf[100]; };
4681 +@@ -434,11 +497,13 @@ struct __large_struct { unsigned long buf[100]; };
4682 */
4683 #define uaccess_try do { \
4684 current_thread_info()->uaccess_err = 0; \
4685 @@ -18941,7 +18971,7 @@ index 5838fa9..f7ae572 100644
4686 (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
4687 } while (0)
4688
4689 -@@ -463,8 +527,12 @@ struct __large_struct { unsigned long buf[100]; };
4690 +@@ -463,8 +528,12 @@ struct __large_struct { unsigned long buf[100]; };
4691 * On error, the variable @x is set to zero.
4692 */
4693
4694 @@ -18954,7 +18984,7 @@ index 5838fa9..f7ae572 100644
4695
4696 /**
4697 * __put_user: - Write a simple value into user space, with less checking.
4698 -@@ -486,8 +554,12 @@ struct __large_struct { unsigned long buf[100]; };
4699 +@@ -486,8 +555,12 @@ struct __large_struct { unsigned long buf[100]; };
4700 * Returns zero on success, or -EFAULT on error.
4701 */
4702
4703 @@ -18967,7 +18997,7 @@ index 5838fa9..f7ae572 100644
4704
4705 #define __get_user_unaligned __get_user
4706 #define __put_user_unaligned __put_user
4707 -@@ -505,7 +577,7 @@ struct __large_struct { unsigned long buf[100]; };
4708 +@@ -505,7 +578,7 @@ struct __large_struct { unsigned long buf[100]; };
4709 #define get_user_ex(x, ptr) do { \
4710 unsigned long __gue_val; \
4711 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
4712 @@ -18976,8 +19006,110 @@ index 5838fa9..f7ae572 100644
4713 } while (0)
4714
4715 #define put_user_try uaccess_try
4716 +@@ -536,17 +609,6 @@ extern struct movsl_mask {
4717 +
4718 + #define ARCH_HAS_NOCACHE_UACCESS 1
4719 +
4720 +-#ifdef CONFIG_X86_32
4721 +-# include <asm/uaccess_32.h>
4722 +-#else
4723 +-# include <asm/uaccess_64.h>
4724 +-#endif
4725 +-
4726 +-unsigned long __must_check _copy_from_user(void *to, const void __user *from,
4727 +- unsigned n);
4728 +-unsigned long __must_check _copy_to_user(void __user *to, const void *from,
4729 +- unsigned n);
4730 +-
4731 + #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
4732 + # define copy_user_diag __compiletime_error
4733 + #else
4734 +@@ -556,7 +618,7 @@ unsigned long __must_check _copy_to_user(void __user *to, const void *from,
4735 + extern void copy_user_diag("copy_from_user() buffer size is too small")
4736 + copy_from_user_overflow(void);
4737 + extern void copy_user_diag("copy_to_user() buffer size is too small")
4738 +-copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
4739 ++copy_to_user_overflow(void);
4740 +
4741 + #undef copy_user_diag
4742 +
4743 +@@ -569,7 +631,7 @@ __copy_from_user_overflow(void) __asm__("copy_from_user_overflow");
4744 +
4745 + extern void
4746 + __compiletime_warning("copy_to_user() buffer size is not provably correct")
4747 +-__copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
4748 ++__copy_to_user_overflow(void) __asm__("copy_to_user_overflow");
4749 + #define __copy_to_user_overflow(size, count) __copy_to_user_overflow()
4750 +
4751 + #else
4752 +@@ -584,10 +646,16 @@ __copy_from_user_overflow(int size, unsigned long count)
4753 +
4754 + #endif
4755 +
4756 ++#ifdef CONFIG_X86_32
4757 ++# include <asm/uaccess_32.h>
4758 ++#else
4759 ++# include <asm/uaccess_64.h>
4760 ++#endif
4761 ++
4762 + static inline unsigned long __must_check
4763 + copy_from_user(void *to, const void __user *from, unsigned long n)
4764 + {
4765 +- int sz = __compiletime_object_size(to);
4766 ++ size_t sz = __compiletime_object_size(to);
4767 +
4768 + might_fault();
4769 +
4770 +@@ -609,12 +677,15 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
4771 + * case, and do only runtime checking for non-constant sizes.
4772 + */
4773 +
4774 +- if (likely(sz < 0 || sz >= n))
4775 +- n = _copy_from_user(to, from, n);
4776 +- else if(__builtin_constant_p(n))
4777 +- copy_from_user_overflow();
4778 +- else
4779 +- __copy_from_user_overflow(sz, n);
4780 ++ if (likely(sz != (size_t)-1 && sz < n)) {
4781 ++ if(__builtin_constant_p(n))
4782 ++ copy_from_user_overflow();
4783 ++ else
4784 ++ __copy_from_user_overflow(sz, n);
4785 ++ } if (access_ok(VERIFY_READ, from, n))
4786 ++ n = __copy_from_user(to, from, n);
4787 ++ else if ((long)n > 0)
4788 ++ memset(to, 0, n);
4789 +
4790 + return n;
4791 + }
4792 +@@ -622,17 +693,18 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
4793 + static inline unsigned long __must_check
4794 + copy_to_user(void __user *to, const void *from, unsigned long n)
4795 + {
4796 +- int sz = __compiletime_object_size(from);
4797 ++ size_t sz = __compiletime_object_size(from);
4798 +
4799 + might_fault();
4800 +
4801 + /* See the comment in copy_from_user() above. */
4802 +- if (likely(sz < 0 || sz >= n))
4803 +- n = _copy_to_user(to, from, n);
4804 +- else if(__builtin_constant_p(n))
4805 +- copy_to_user_overflow();
4806 +- else
4807 +- __copy_to_user_overflow(sz, n);
4808 ++ if (likely(sz != (size_t)-1 && sz < n)) {
4809 ++ if(__builtin_constant_p(n))
4810 ++ copy_to_user_overflow();
4811 ++ else
4812 ++ __copy_to_user_overflow(sz, n);
4813 ++ } else if (access_ok(VERIFY_WRITE, to, n))
4814 ++ n = __copy_to_user(to, from, n);
4815 +
4816 + return n;
4817 + }
4818 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
4819 -index 7f760a9..b596b9a 100644
4820 +index 3c03a5d..1071638 100644
4821 --- a/arch/x86/include/asm/uaccess_32.h
4822 +++ b/arch/x86/include/asm/uaccess_32.h
4823 @@ -43,6 +43,11 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
4824 @@ -19033,7 +19165,7 @@ index 7f760a9..b596b9a 100644
4825 if (__builtin_constant_p(n)) {
4826 unsigned long ret;
4827
4828 -@@ -181,15 +200,19 @@ static __always_inline unsigned long
4829 +@@ -181,7 +200,10 @@ static __always_inline unsigned long
4830 __copy_from_user_inatomic_nocache(void *to, const void __user *from,
4831 unsigned long n)
4832 {
4833 @@ -19044,93 +19176,9 @@ index 7f760a9..b596b9a 100644
4834 + return __copy_from_user_ll_nocache_nozero(to, from, n);
4835 }
4836
4837 --unsigned long __must_check copy_to_user(void __user *to,
4838 -- const void *from, unsigned long n);
4839 --unsigned long __must_check _copy_from_user(void *to,
4840 -- const void __user *from,
4841 -- unsigned long n);
4842 --
4843 -+extern void copy_to_user_overflow(void)
4844 -+#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
4845 -+ __compiletime_error("copy_to_user() buffer size is not provably correct")
4846 -+#else
4847 -+ __compiletime_warning("copy_to_user() buffer size is not provably correct")
4848 -+#endif
4849 -+;
4850 -
4851 - extern void copy_from_user_overflow(void)
4852 - #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
4853 -@@ -199,17 +222,60 @@ extern void copy_from_user_overflow(void)
4854 - #endif
4855 - ;
4856 -
4857 --static inline unsigned long __must_check copy_from_user(void *to,
4858 -- const void __user *from,
4859 -- unsigned long n)
4860 -+/**
4861 -+ * copy_to_user: - Copy a block of data into user space.
4862 -+ * @to: Destination address, in user space.
4863 -+ * @from: Source address, in kernel space.
4864 -+ * @n: Number of bytes to copy.
4865 -+ *
4866 -+ * Context: User context only. This function may sleep.
4867 -+ *
4868 -+ * Copy data from kernel space to user space.
4869 -+ *
4870 -+ * Returns number of bytes that could not be copied.
4871 -+ * On success, this will be zero.
4872 -+ */
4873 -+static inline unsigned long __must_check
4874 -+copy_to_user(void __user *to, const void *from, unsigned long n)
4875 - {
4876 -- int sz = __compiletime_object_size(to);
4877 -+ size_t sz = __compiletime_object_size(from);
4878 -
4879 -- if (likely(sz == -1 || sz >= n))
4880 -- n = _copy_from_user(to, from, n);
4881 -- else
4882 -+ if (unlikely(sz != (size_t)-1 && sz < n))
4883 -+ copy_to_user_overflow();
4884 -+ else if (access_ok(VERIFY_WRITE, to, n))
4885 -+ n = __copy_to_user(to, from, n);
4886 -+ return n;
4887 -+}
4888 -+
4889 -+/**
4890 -+ * copy_from_user: - Copy a block of data from user space.
4891 -+ * @to: Destination address, in kernel space.
4892 -+ * @from: Source address, in user space.
4893 -+ * @n: Number of bytes to copy.
4894 -+ *
4895 -+ * Context: User context only. This function may sleep.
4896 -+ *
4897 -+ * Copy data from user space to kernel space.
4898 -+ *
4899 -+ * Returns number of bytes that could not be copied.
4900 -+ * On success, this will be zero.
4901 -+ *
4902 -+ * If some data could not be copied, this function will pad the copied
4903 -+ * data to the requested size using zero bytes.
4904 -+ */
4905 -+static inline unsigned long __must_check
4906 -+copy_from_user(void *to, const void __user *from, unsigned long n)
4907 -+{
4908 -+ size_t sz = __compiletime_object_size(to);
4909 -+
4910 -+ check_object_size(to, n, false);
4911 -+
4912 -+ if (unlikely(sz != (size_t)-1 && sz < n))
4913 - copy_from_user_overflow();
4914 --
4915 -+ else if (access_ok(VERIFY_READ, from, n))
4916 -+ n = __copy_from_user(to, from, n);
4917 -+ else if ((long)n > 0)
4918 -+ memset(to, 0, n);
4919 - return n;
4920 - }
4921 -
4922 + #endif /* _ASM_X86_UACCESS_32_H */
4923 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
4924 -index 4f7923d..201b58d 100644
4925 +index 190413d..bf69468 100644
4926 --- a/arch/x86/include/asm/uaccess_64.h
4927 +++ b/arch/x86/include/asm/uaccess_64.h
4928 @@ -10,6 +10,9 @@
4929 @@ -19156,89 +19204,26 @@ index 4f7923d..201b58d 100644
4930 -copy_user_generic_unrolled(void *to, const void *from, unsigned len);
4931 +copy_user_generic_unrolled(void *to, const void *from, unsigned len) __size_overflow(3);
4932
4933 --static __always_inline __must_check unsigned long
4934 + static __always_inline __must_check unsigned long
4935 -copy_user_generic(void *to, const void *from, unsigned len)
4936 -+static __always_inline __must_check unsigned long
4937 +copy_user_generic(void *to, const void *from, unsigned long len)
4938 {
4939 unsigned ret;
4940
4941 -@@ -45,138 +48,200 @@ copy_user_generic(void *to, const void *from, unsigned len)
4942 - return ret;
4943 +@@ -46,121 +49,170 @@ copy_user_generic(void *to, const void *from, unsigned len)
4944 }
4945
4946 -+static __always_inline __must_check unsigned long
4947 -+__copy_to_user(void __user *to, const void *from, unsigned long len);
4948 -+static __always_inline __must_check unsigned long
4949 -+__copy_from_user(void *to, const void __user *from, unsigned long len);
4950 __must_check unsigned long
4951 --_copy_to_user(void __user *to, const void *from, unsigned len);
4952 --__must_check unsigned long
4953 --_copy_from_user(void *to, const void __user *from, unsigned len);
4954 --__must_check unsigned long
4955 -copy_in_user(void __user *to, const void __user *from, unsigned len);
4956 +copy_in_user(void __user *to, const void __user *from, unsigned long len);
4957 -+
4958 -+extern void copy_to_user_overflow(void)
4959 -+#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
4960 -+ __compiletime_error("copy_to_user() buffer size is not provably correct")
4961 -+#else
4962 -+ __compiletime_warning("copy_to_user() buffer size is not provably correct")
4963 -+#endif
4964 -+;
4965 -+
4966 -+extern void copy_from_user_overflow(void)
4967 -+#ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
4968 -+ __compiletime_error("copy_from_user() buffer size is not provably correct")
4969 -+#else
4970 -+ __compiletime_warning("copy_from_user() buffer size is not provably correct")
4971 -+#endif
4972 -+;
4973 -
4974 - static inline unsigned long __must_check copy_from_user(void *to,
4975 - const void __user *from,
4976 - unsigned long n)
4977 - {
4978 -- int sz = __compiletime_object_size(to);
4979 --
4980 - might_fault();
4981 -- if (likely(sz == -1 || sz >= n))
4982 -- n = _copy_from_user(to, from, n);
4983 --#ifdef CONFIG_DEBUG_VM
4984 -- else
4985 -- WARN(1, "Buffer overflow detected!\n");
4986 --#endif
4987 -+
4988 -+ check_object_size(to, n, false);
4989 -+
4990 -+ if (access_ok(VERIFY_READ, from, n))
4991 -+ n = __copy_from_user(to, from, n);
4992 -+ else if (n < INT_MAX)
4993 -+ memset(to, 0, n);
4994 - return n;
4995 - }
4996
4997 static __always_inline __must_check
4998 --int copy_to_user(void __user *dst, const void *src, unsigned size)
4999 -+int copy_to_user(void __user *dst, const void *src, unsigned long size)
5000 - {
5001 - might_fault();
5002 -
5003 -- return _copy_to_user(dst, src, size);
5004 -+ if (access_ok(VERIFY_WRITE, dst, size))
5005 -+ size = __copy_to_user(dst, src, size);
5006 -+ return size;
5007 - }
5008 -
5009 - static __always_inline __must_check
5010 --int __copy_from_user(void *dst, const void __user *src, unsigned size)
5011 -+unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
5012 +-int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size)
5013 ++unsigned long __copy_from_user_nocheck(void *dst, const void __user *src, unsigned long size)
5014 {
5015 - int ret = 0;
5016 + size_t sz = __compiletime_object_size(dst);
5017 + unsigned ret = 0;
5018 -
5019 - might_fault();
5020 +
5021 + if (size > INT_MAX)
5022 + return size;
5023 @@ -19251,10 +19236,13 @@ index 4f7923d..201b58d 100644
5024 +#endif
5025 +
5026 + if (unlikely(sz != (size_t)-1 && sz < size)) {
5027 -+ copy_from_user_overflow();
5028 ++ if(__builtin_constant_p(size))
5029 ++ copy_from_user_overflow();
5030 ++ else
5031 ++ __copy_from_user_overflow(sz, size);
5032 + return size;
5033 + }
5034 -+
5035 +
5036 if (!__builtin_constant_p(size))
5037 - return copy_user_generic(dst, (__force void *)src, size);
5038 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
5039 @@ -19304,14 +19292,20 @@ index 4f7923d..201b58d 100644
5040 }
5041
5042 static __always_inline __must_check
5043 --int __copy_to_user(void __user *dst, const void *src, unsigned size)
5044 -+unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
5045 +-int __copy_from_user(void *dst, const void __user *src, unsigned size)
5046 ++unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
5047 + {
5048 + might_fault();
5049 + return __copy_from_user_nocheck(dst, src, size);
5050 + }
5051 +
5052 + static __always_inline __must_check
5053 +-int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size)
5054 ++unsigned long __copy_to_user_nocheck(void __user *dst, const void *src, unsigned long size)
5055 {
5056 - int ret = 0;
5057 + size_t sz = __compiletime_object_size(src);
5058 + unsigned ret = 0;
5059 -
5060 - might_fault();
5061 +
5062 + if (size > INT_MAX)
5063 + return size;
5064 @@ -19324,10 +19318,13 @@ index 4f7923d..201b58d 100644
5065 +#endif
5066 +
5067 + if (unlikely(sz != (size_t)-1 && sz < size)) {
5068 -+ copy_to_user_overflow();
5069 ++ if(__builtin_constant_p(size))
5070 ++ copy_to_user_overflow();
5071 ++ else
5072 ++ __copy_to_user_overflow(sz, size);
5073 + return size;
5074 + }
5075 -+
5076 +
5077 if (!__builtin_constant_p(size))
5078 - return copy_user_generic((__force void *)dst, src, size);
5079 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
5080 @@ -19377,8 +19374,16 @@ index 4f7923d..201b58d 100644
5081 }
5082
5083 static __always_inline __must_check
5084 +-int __copy_to_user(void __user *dst, const void *src, unsigned size)
5085 ++unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
5086 + {
5087 + might_fault();
5088 + return __copy_to_user_nocheck(dst, src, size);
5089 + }
5090 +
5091 + static __always_inline __must_check
5092 -int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5093 -+unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned long size)
5094 ++unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5095 {
5096 - int ret = 0;
5097 + unsigned ret = 0;
5098 @@ -19408,7 +19413,7 @@ index 4f7923d..201b58d 100644
5099 ret, "b", "b", "=q", 1);
5100 if (likely(!ret))
5101 __put_user_asm(tmp, (u8 __user *)dst,
5102 -@@ -185,7 +250,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5103 +@@ -169,7 +221,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5104 }
5105 case 2: {
5106 u16 tmp;
5107 @@ -19417,7 +19422,7 @@ index 4f7923d..201b58d 100644
5108 ret, "w", "w", "=r", 2);
5109 if (likely(!ret))
5110 __put_user_asm(tmp, (u16 __user *)dst,
5111 -@@ -195,7 +260,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5112 +@@ -179,7 +231,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5113
5114 case 4: {
5115 u32 tmp;
5116 @@ -19426,7 +19431,7 @@ index 4f7923d..201b58d 100644
5117 ret, "l", "k", "=r", 4);
5118 if (likely(!ret))
5119 __put_user_asm(tmp, (u32 __user *)dst,
5120 -@@ -204,7 +269,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5121 +@@ -188,7 +240,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5122 }
5123 case 8: {
5124 u64 tmp;
5125 @@ -19435,7 +19440,7 @@ index 4f7923d..201b58d 100644
5126 ret, "q", "", "=r", 8);
5127 if (likely(!ret))
5128 __put_user_asm(tmp, (u64 __user *)dst,
5129 -@@ -212,41 +277,74 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5130 +@@ -196,41 +248,58 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
5131 return ret;
5132 }
5133 default:
5134 @@ -19451,16 +19456,8 @@ index 4f7923d..201b58d 100644
5135 +static __must_check __always_inline unsigned long
5136 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
5137 {
5138 -- return copy_user_generic(dst, (__force const void *)src, size);
5139 -+ if (size > INT_MAX)
5140 -+ return size;
5141 -+
5142 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
5143 -+ if (!__access_ok(VERIFY_READ, src, size))
5144 -+ return size;
5145 -+#endif
5146 -+
5147 -+ return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
5148 +- return __copy_from_user_nocheck(dst, (__force const void *)src, size);
5149 ++ return __copy_from_user_nocheck(dst, ____m(src), size);
5150 }
5151
5152 -static __must_check __always_inline int
5153 @@ -19468,16 +19465,8 @@ index 4f7923d..201b58d 100644
5154 +static __must_check __always_inline unsigned long
5155 +__copy_to_user_inatomic(void __user *dst, const void *src, unsigned long size)
5156 {
5157 -- return copy_user_generic((__force void *)dst, src, size);
5158 -+ if (size > INT_MAX)
5159 -+ return size;
5160 -+
5161 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
5162 -+ if (!__access_ok(VERIFY_WRITE, dst, size))
5163 -+ return size;
5164 -+#endif
5165 -+
5166 -+ return copy_user_generic((__force_kernel void *)____m(dst), src, size);
5167 +- return __copy_to_user_nocheck((__force void *)dst, src, size);
5168 ++ return __copy_to_user_nocheck(____m(dst), src, size);
5169 }
5170
5171 -extern long __copy_user_nocache(void *dst, const void __user *src,
5172 @@ -19539,7 +19528,7 @@ index 5b238981..77fdd78 100644
5173
5174 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
5175 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
5176 -index 828a156..650e625 100644
5177 +index 0f1be11..f7542bf 100644
5178 --- a/arch/x86/include/asm/x86_init.h
5179 +++ b/arch/x86/include/asm/x86_init.h
5180 @@ -129,7 +129,7 @@ struct x86_init_ops {
5181 @@ -19569,16 +19558,16 @@ index 828a156..650e625 100644
5182
5183 struct pci_dev;
5184 struct msi_msg;
5185 -@@ -182,7 +182,7 @@ struct x86_msi_ops {
5186 - void (*teardown_msi_irqs)(struct pci_dev *dev);
5187 - void (*restore_msi_irqs)(struct pci_dev *dev, int irq);
5188 +@@ -185,7 +185,7 @@ struct x86_msi_ops {
5189 int (*setup_hpet_msi)(unsigned int irq, unsigned int id);
5190 + u32 (*msi_mask_irq)(struct msi_desc *desc, u32 mask, u32 flag);
5191 + u32 (*msix_mask_irq)(struct msi_desc *desc, u32 flag);
5192 -};
5193 +} __no_const;
5194
5195 struct IO_APIC_route_entry;
5196 struct io_apic_irq_attr;
5197 -@@ -203,7 +203,7 @@ struct x86_io_apic_ops {
5198 +@@ -206,7 +206,7 @@ struct x86_io_apic_ops {
5199 unsigned int destination, int vector,
5200 struct io_apic_irq_attr *attr);
5201 void (*eoi_ioapic_pin)(int apic, int pin, int vector);
5202 @@ -19676,7 +19665,7 @@ index 7b0a55a..ad115bf 100644
5203
5204 /* top of stack page */
5205 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
5206 -index a5408b9..5133813 100644
5207 +index 9b0a34e..fc7e553 100644
5208 --- a/arch/x86/kernel/Makefile
5209 +++ b/arch/x86/kernel/Makefile
5210 @@ -24,7 +24,7 @@ obj-y += time.o ioport.o ldt.o dumpstack.o nmi.o
5211 @@ -19689,10 +19678,10 @@ index a5408b9..5133813 100644
5212 obj-y += syscall_$(BITS).o
5213 obj-$(CONFIG_X86_64) += vsyscall_64.o
5214 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
5215 -index 40c7660..f709f4b 100644
5216 +index 6c0b43b..e67bb31 100644
5217 --- a/arch/x86/kernel/acpi/boot.c
5218 +++ b/arch/x86/kernel/acpi/boot.c
5219 -@@ -1365,7 +1365,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
5220 +@@ -1315,7 +1315,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
5221 * If your system is blacklisted here, but you find that acpi=force
5222 * works for you, please contact linux-acpi@×××××××××××.org
5223 */
5224 @@ -19701,7 +19690,7 @@ index 40c7660..f709f4b 100644
5225 /*
5226 * Boxes that need ACPI disabled
5227 */
5228 -@@ -1440,7 +1440,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
5229 +@@ -1390,7 +1390,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
5230 };
5231
5232 /* second table for DMI checks that should run after early-quirks */
5233 @@ -19711,10 +19700,10 @@ index 40c7660..f709f4b 100644
5234 * HP laptops which use a DSDT reporting as HP/SB400/10000,
5235 * which includes some code which overrides all temperature
5236 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
5237 -index 3312010..a65ca7b 100644
5238 +index 3a2ae4c..9db31d6 100644
5239 --- a/arch/x86/kernel/acpi/sleep.c
5240 +++ b/arch/x86/kernel/acpi/sleep.c
5241 -@@ -88,8 +88,12 @@ int x86_acpi_suspend_lowlevel(void)
5242 +@@ -99,8 +99,12 @@ int x86_acpi_suspend_lowlevel(void)
5243 #else /* CONFIG_64BIT */
5244 #ifdef CONFIG_SMP
5245 stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
5246 @@ -19728,7 +19717,7 @@ index 3312010..a65ca7b 100644
5247 #endif
5248 initial_code = (unsigned long)wakeup_long64;
5249 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
5250 -index d1daa66..59fecba 100644
5251 +index 665c6b7..eae4d56 100644
5252 --- a/arch/x86/kernel/acpi/wakeup_32.S
5253 +++ b/arch/x86/kernel/acpi/wakeup_32.S
5254 @@ -29,13 +29,11 @@ wakeup_pmode_return:
5255 @@ -19748,7 +19737,7 @@ index d1daa66..59fecba 100644
5256 bogus_magic:
5257 jmp bogus_magic
5258 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
5259 -index 15e8563..323cbe1 100644
5260 +index df94598..f3b29bf 100644
5261 --- a/arch/x86/kernel/alternative.c
5262 +++ b/arch/x86/kernel/alternative.c
5263 @@ -269,6 +269,13 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
5264 @@ -19801,7 +19790,7 @@ index 15e8563..323cbe1 100644
5265 text_poke(ptr, ((unsigned char []){0x3E}), 1);
5266 }
5267 mutex_unlock(&text_mutex);
5268 -@@ -469,7 +488,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
5269 +@@ -458,7 +477,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
5270
5271 BUG_ON(p->len > MAX_PATCH_LEN);
5272 /* prep the buffer with the original instructions */
5273 @@ -19810,7 +19799,7 @@ index 15e8563..323cbe1 100644
5274 used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
5275 (unsigned long)p->instr, p->len);
5276
5277 -@@ -516,7 +535,7 @@ void __init alternative_instructions(void)
5278 +@@ -505,7 +524,7 @@ void __init alternative_instructions(void)
5279 if (!uniproc_patched || num_possible_cpus() == 1)
5280 free_init_pages("SMP alternatives",
5281 (unsigned long)__smp_locks,
5282 @@ -19819,7 +19808,7 @@ index 15e8563..323cbe1 100644
5283 #endif
5284
5285 apply_paravirt(__parainstructions, __parainstructions_end);
5286 -@@ -536,13 +555,17 @@ void __init alternative_instructions(void)
5287 +@@ -525,13 +544,17 @@ void __init alternative_instructions(void)
5288 * instructions. And on the local CPU you need to be protected again NMI or MCE
5289 * handlers seeing an inconsistent instruction while you patch.
5290 */
5291 @@ -19839,7 +19828,7 @@ index 15e8563..323cbe1 100644
5292 local_irq_restore(flags);
5293 /* Could also do a CLFLUSH here to speed up CPU recovery; but
5294 that causes hangs on some VIA CPUs. */
5295 -@@ -564,36 +587,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
5296 +@@ -553,36 +576,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
5297 */
5298 void *__kprobes text_poke(void *addr, const void *opcode, size_t len)
5299 {
5300 @@ -19884,7 +19873,7 @@ index 15e8563..323cbe1 100644
5301 return addr;
5302 }
5303
5304 -@@ -613,7 +622,7 @@ int poke_int3_handler(struct pt_regs *regs)
5305 +@@ -602,7 +611,7 @@ int poke_int3_handler(struct pt_regs *regs)
5306 if (likely(!bp_patching_in_progress))
5307 return 0;
5308
5309 @@ -19893,7 +19882,7 @@ index 15e8563..323cbe1 100644
5310 return 0;
5311
5312 /* set up the specified breakpoint handler */
5313 -@@ -647,7 +656,7 @@ int poke_int3_handler(struct pt_regs *regs)
5314 +@@ -636,7 +645,7 @@ int poke_int3_handler(struct pt_regs *regs)
5315 */
5316 void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
5317 {
5318 @@ -19903,10 +19892,10 @@ index 15e8563..323cbe1 100644
5319 bp_int3_handler = handler;
5320 bp_int3_addr = (u8 *)addr + sizeof(int3);
5321 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
5322 -index a7eb82d..f6e52d4 100644
5323 +index d278736..0b4af9a8 100644
5324 --- a/arch/x86/kernel/apic/apic.c
5325 +++ b/arch/x86/kernel/apic/apic.c
5326 -@@ -190,7 +190,7 @@ int first_system_vector = 0xfe;
5327 +@@ -191,7 +191,7 @@ int first_system_vector = 0xfe;
5328 /*
5329 * Debug level, exported for io_apic.c
5330 */
5331 @@ -19915,7 +19904,7 @@ index a7eb82d..f6e52d4 100644
5332
5333 int pic_mode;
5334
5335 -@@ -1985,7 +1985,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
5336 +@@ -1986,7 +1986,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
5337 apic_write(APIC_ESR, 0);
5338 v1 = apic_read(APIC_ESR);
5339 ack_APIC_irq();
5340 @@ -20111,10 +20100,10 @@ index 562a76d..a003c0f 100644
5341 .name = "physical x2apic",
5342 .probe = x2apic_phys_probe,
5343 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
5344 -index a419814..1dd34a0 100644
5345 +index ad0dc04..0d9cc56 100644
5346 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
5347 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
5348 -@@ -357,7 +357,7 @@ static int uv_probe(void)
5349 +@@ -350,7 +350,7 @@ static int uv_probe(void)
5350 return apic == &apic_x2apic_uv_x;
5351 }
5352
5353 @@ -20199,19 +20188,19 @@ index 3ab0343..814c4787 100644
5354 proc_create("apm", 0, NULL, &apm_file_ops);
5355
5356 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
5357 -index 2861082..6d4718e 100644
5358 +index 9f6b934..cf5ffb3 100644
5359 --- a/arch/x86/kernel/asm-offsets.c
5360 +++ b/arch/x86/kernel/asm-offsets.c
5361 -@@ -33,6 +33,8 @@ void common(void) {
5362 +@@ -32,6 +32,8 @@ void common(void) {
5363 + OFFSET(TI_flags, thread_info, flags);
5364 OFFSET(TI_status, thread_info, status);
5365 OFFSET(TI_addr_limit, thread_info, addr_limit);
5366 - OFFSET(TI_preempt_count, thread_info, preempt_count);
5367 + OFFSET(TI_lowest_stack, thread_info, lowest_stack);
5368 + DEFINE(TI_task_thread_sp0, offsetof(struct task_struct, thread.sp0) - offsetof(struct task_struct, tinfo));
5369
5370 BLANK();
5371 OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
5372 -@@ -53,8 +55,26 @@ void common(void) {
5373 +@@ -52,8 +54,26 @@ void common(void) {
5374 OFFSET(PV_CPU_irq_enable_sysexit, pv_cpu_ops, irq_enable_sysexit);
5375 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
5376 OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2);
5377 @@ -20266,7 +20255,7 @@ index 47b56a7..efc2bc6 100644
5378 obj-y += proc.o capflags.o powerflags.o common.o
5379 obj-y += rdrand.o
5380 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
5381 -index 903a264..fc955f3 100644
5382 +index bca023b..c544908 100644
5383 --- a/arch/x86/kernel/cpu/amd.c
5384 +++ b/arch/x86/kernel/cpu/amd.c
5385 @@ -743,7 +743,7 @@ static void init_amd(struct cpuinfo_x86 *c)
5386 @@ -20279,7 +20268,7 @@ index 903a264..fc955f3 100644
5387 if (c->x86_model == 3 && c->x86_mask == 0)
5388 size = 64;
5389 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
5390 -index 2793d1f..b4f313a 100644
5391 +index 6abc172..3b0df94 100644
5392 --- a/arch/x86/kernel/cpu/common.c
5393 +++ b/arch/x86/kernel/cpu/common.c
5394 @@ -88,60 +88,6 @@ static const struct cpu_dev default_cpu = {
5395 @@ -20403,7 +20392,7 @@ index 2793d1f..b4f313a 100644
5396 /*
5397 * Some CPU features depend on higher CPUID levels, which may not always
5398 * be available due to CPUID level capping or broken virtualization
5399 -@@ -386,7 +385,7 @@ void switch_to_new_gdt(int cpu)
5400 +@@ -388,7 +387,7 @@ void switch_to_new_gdt(int cpu)
5401 {
5402 struct desc_ptr gdt_descr;
5403
5404 @@ -20412,7 +20401,7 @@ index 2793d1f..b4f313a 100644
5405 gdt_descr.size = GDT_SIZE - 1;
5406 load_gdt(&gdt_descr);
5407 /* Reload the per-cpu base */
5408 -@@ -875,6 +874,10 @@ static void identify_cpu(struct cpuinfo_x86 *c)
5409 +@@ -877,6 +876,10 @@ static void identify_cpu(struct cpuinfo_x86 *c)
5410 setup_smep(c);
5411 setup_smap(c);
5412
5413 @@ -20423,7 +20412,7 @@ index 2793d1f..b4f313a 100644
5414 /*
5415 * The vendor-specific functions might have changed features.
5416 * Now we do "generic changes."
5417 -@@ -883,6 +886,10 @@ static void identify_cpu(struct cpuinfo_x86 *c)
5418 +@@ -885,6 +888,10 @@ static void identify_cpu(struct cpuinfo_x86 *c)
5419 /* Filter out anything that depends on CPUID levels we don't have */
5420 filter_cpuid_features(c, true);
5421
5422 @@ -20434,7 +20423,7 @@ index 2793d1f..b4f313a 100644
5423 /* If the model name is still unset, do table lookup. */
5424 if (!c->x86_model_id[0]) {
5425 const char *p;
5426 -@@ -1070,10 +1077,12 @@ static __init int setup_disablecpuid(char *arg)
5427 +@@ -1072,10 +1079,12 @@ static __init int setup_disablecpuid(char *arg)
5428 }
5429 __setup("clearcpuid=", setup_disablecpuid);
5430
5431 @@ -20450,7 +20439,7 @@ index 2793d1f..b4f313a 100644
5432
5433 DEFINE_PER_CPU_FIRST(union irq_stack_union,
5434 irq_stack_union) __aligned(PAGE_SIZE) __visible;
5435 -@@ -1087,7 +1096,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
5436 +@@ -1089,7 +1098,7 @@ DEFINE_PER_CPU(struct task_struct *, current_task) ____cacheline_aligned =
5437 EXPORT_PER_CPU_SYMBOL(current_task);
5438
5439 DEFINE_PER_CPU(unsigned long, kernel_stack) =
5440 @@ -20459,7 +20448,7 @@ index 2793d1f..b4f313a 100644
5441 EXPORT_PER_CPU_SYMBOL(kernel_stack);
5442
5443 DEFINE_PER_CPU(char *, irq_stack_ptr) =
5444 -@@ -1232,7 +1241,7 @@ void cpu_init(void)
5445 +@@ -1239,7 +1248,7 @@ void cpu_init(void)
5446 load_ucode_ap();
5447
5448 cpu = stack_smp_processor_id();
5449 @@ -20468,7 +20457,7 @@ index 2793d1f..b4f313a 100644
5450 oist = &per_cpu(orig_ist, cpu);
5451
5452 #ifdef CONFIG_NUMA
5453 -@@ -1267,7 +1276,6 @@ void cpu_init(void)
5454 +@@ -1274,7 +1283,6 @@ void cpu_init(void)
5455 wrmsrl(MSR_KERNEL_GS_BASE, 0);
5456 barrier();
5457
5458 @@ -20476,7 +20465,7 @@ index 2793d1f..b4f313a 100644
5459 enable_x2apic();
5460
5461 /*
5462 -@@ -1319,7 +1327,7 @@ void cpu_init(void)
5463 +@@ -1326,7 +1334,7 @@ void cpu_init(void)
5464 {
5465 int cpu = smp_processor_id();
5466 struct task_struct *curr = current;
5467 @@ -20486,7 +20475,7 @@ index 2793d1f..b4f313a 100644
5468
5469 show_ucode_info_early();
5470 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
5471 -index 1414c90..1159406 100644
5472 +index 0641113..06f5ba4 100644
5473 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
5474 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
5475 @@ -1014,6 +1014,22 @@ static struct attribute *default_attrs[] = {
5476 @@ -20790,7 +20779,7 @@ index df5e41f..816c719 100644
5477 extern int generic_get_free_region(unsigned long base, unsigned long size,
5478 int replace_reg);
5479 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
5480 -index 8a87a32..682a22a 100644
5481 +index 8e13293..9bfd68c 100644
5482 --- a/arch/x86/kernel/cpu/perf_event.c
5483 +++ b/arch/x86/kernel/cpu/perf_event.c
5484 @@ -1348,7 +1348,7 @@ static void __init pmu_check_apic(void)
5485 @@ -20843,10 +20832,10 @@ index 639d128..e92d7e5 100644
5486
5487 while (amd_iommu_v2_event_descs[i].attr.attr.name)
5488 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
5489 -index f31a165..7b46cd8 100644
5490 +index 0fa4f24..17990ed 100644
5491 --- a/arch/x86/kernel/cpu/perf_event_intel.c
5492 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
5493 -@@ -2247,10 +2247,10 @@ __init int intel_pmu_init(void)
5494 +@@ -2314,10 +2314,10 @@ __init int intel_pmu_init(void)
5495 * v2 and above have a perf capabilities MSR
5496 */
5497 if (version > 1) {
5498 @@ -20861,10 +20850,10 @@ index f31a165..7b46cd8 100644
5499
5500 intel_ds_init();
5501 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
5502 -index 4118f9f..f91d0ab 100644
5503 +index 29c2487..a5606fa 100644
5504 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
5505 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
5506 -@@ -3204,7 +3204,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
5507 +@@ -3318,7 +3318,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
5508 static int __init uncore_type_init(struct intel_uncore_type *type)
5509 {
5510 struct intel_uncore_pmu *pmus;
5511 @@ -20964,7 +20953,7 @@ index 5d3fe8d..02e1429 100644
5512
5513 .__cr3 = __pa_nodebug(swapper_pg_dir),
5514 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
5515 -index deb6421..76bbc12 100644
5516 +index d9c12d3..7858b62 100644
5517 --- a/arch/x86/kernel/dumpstack.c
5518 +++ b/arch/x86/kernel/dumpstack.c
5519 @@ -2,6 +2,9 @@
5520 @@ -20977,7 +20966,7 @@ index deb6421..76bbc12 100644
5521 #include <linux/kallsyms.h>
5522 #include <linux/kprobes.h>
5523 #include <linux/uaccess.h>
5524 -@@ -35,16 +38,14 @@ void printk_address(unsigned long address, int reliable)
5525 +@@ -40,16 +43,14 @@ void printk_address(unsigned long address)
5526 static void
5527 print_ftrace_graph_addr(unsigned long addr, void *data,
5528 const struct stacktrace_ops *ops,
5529 @@ -20995,7 +20984,7 @@ index deb6421..76bbc12 100644
5530 index = task->curr_ret_stack;
5531
5532 if (!task->ret_stack || index < *graph)
5533 -@@ -61,7 +62,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
5534 +@@ -66,7 +67,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
5535 static inline void
5536 print_ftrace_graph_addr(unsigned long addr, void *data,
5537 const struct stacktrace_ops *ops,
5538 @@ -21004,7 +20993,7 @@ index deb6421..76bbc12 100644
5539 { }
5540 #endif
5541
5542 -@@ -72,10 +73,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
5543 +@@ -77,10 +78,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
5544 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
5545 */
5546
5547 @@ -21016,7 +21005,7 @@ index deb6421..76bbc12 100644
5548 if (end) {
5549 if (p < end && p >= (end-THREAD_SIZE))
5550 return 1;
5551 -@@ -86,14 +85,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
5552 +@@ -91,14 +90,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
5553 }
5554
5555 unsigned long
5556 @@ -21033,7 +21022,7 @@ index deb6421..76bbc12 100644
5557 unsigned long addr;
5558
5559 addr = *stack;
5560 -@@ -105,7 +104,7 @@ print_context_stack(struct thread_info *tinfo,
5561 +@@ -110,7 +109,7 @@ print_context_stack(struct thread_info *tinfo,
5562 } else {
5563 ops->address(data, addr, 0);
5564 }
5565 @@ -21042,7 +21031,7 @@ index deb6421..76bbc12 100644
5566 }
5567 stack++;
5568 }
5569 -@@ -114,7 +113,7 @@ print_context_stack(struct thread_info *tinfo,
5570 +@@ -119,7 +118,7 @@ print_context_stack(struct thread_info *tinfo,
5571 EXPORT_SYMBOL_GPL(print_context_stack);
5572
5573 unsigned long
5574 @@ -21051,7 +21040,7 @@ index deb6421..76bbc12 100644
5575 unsigned long *stack, unsigned long bp,
5576 const struct stacktrace_ops *ops, void *data,
5577 unsigned long *end, int *graph)
5578 -@@ -122,7 +121,7 @@ print_context_stack_bp(struct thread_info *tinfo,
5579 +@@ -127,7 +126,7 @@ print_context_stack_bp(struct thread_info *tinfo,
5580 struct stack_frame *frame = (struct stack_frame *)bp;
5581 unsigned long *ret_addr = &frame->return_address;
5582
5583 @@ -21060,7 +21049,7 @@ index deb6421..76bbc12 100644
5584 unsigned long addr = *ret_addr;
5585
5586 if (!__kernel_text_address(addr))
5587 -@@ -131,7 +130,7 @@ print_context_stack_bp(struct thread_info *tinfo,
5588 +@@ -136,7 +135,7 @@ print_context_stack_bp(struct thread_info *tinfo,
5589 ops->address(data, addr, 1);
5590 frame = frame->next_frame;
5591 ret_addr = &frame->return_address;
5592 @@ -21069,16 +21058,16 @@ index deb6421..76bbc12 100644
5593 }
5594
5595 return (unsigned long)frame;
5596 -@@ -150,7 +149,7 @@ static int print_trace_stack(void *data, char *name)
5597 +@@ -155,7 +154,7 @@ static int print_trace_stack(void *data, char *name)
5598 static void print_trace_address(void *data, unsigned long addr, int reliable)
5599 {
5600 touch_nmi_watchdog();
5601 - printk(data);
5602 + printk("%s", (char *)data);
5603 - printk_address(addr, reliable);
5604 + printk_stack_address(addr, reliable);
5605 }
5606
5607 -@@ -219,6 +218,8 @@ unsigned __kprobes long oops_begin(void)
5608 +@@ -224,6 +223,8 @@ unsigned __kprobes long oops_begin(void)
5609 }
5610 EXPORT_SYMBOL_GPL(oops_begin);
5611
5612 @@ -21087,7 +21076,7 @@ index deb6421..76bbc12 100644
5613 void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
5614 {
5615 if (regs && kexec_should_crash(current))
5616 -@@ -240,7 +241,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
5617 +@@ -245,7 +246,10 @@ void __kprobes oops_end(unsigned long flags, struct pt_regs *regs, int signr)
5618 panic("Fatal exception in interrupt");
5619 if (panic_on_oops)
5620 panic("Fatal exception");
5621 @@ -21099,7 +21088,7 @@ index deb6421..76bbc12 100644
5622 }
5623
5624 int __kprobes __die(const char *str, struct pt_regs *regs, long err)
5625 -@@ -268,7 +272,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
5626 +@@ -273,7 +277,7 @@ int __kprobes __die(const char *str, struct pt_regs *regs, long err)
5627 print_modules();
5628 show_regs(regs);
5629 #ifdef CONFIG_X86_32
5630 @@ -21108,7 +21097,7 @@ index deb6421..76bbc12 100644
5631 sp = regs->sp;
5632 ss = regs->ss & 0xffff;
5633 } else {
5634 -@@ -296,7 +300,7 @@ void die(const char *str, struct pt_regs *regs, long err)
5635 +@@ -301,7 +305,7 @@ void die(const char *str, struct pt_regs *regs, long err)
5636 unsigned long flags = oops_begin();
5637 int sig = SIGSEGV;
5638
5639 @@ -21339,7 +21328,7 @@ index 174da5f..5e55606 100644
5640
5641 static int userdef __initdata;
5642 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
5643 -index d15f575..d692043 100644
5644 +index 01d1c18..8073693 100644
5645 --- a/arch/x86/kernel/early_printk.c
5646 +++ b/arch/x86/kernel/early_printk.c
5647 @@ -7,6 +7,7 @@
5648 @@ -21351,7 +21340,7 @@ index d15f575..d692043 100644
5649 #include <asm/processor.h>
5650 #include <asm/fcntl.h>
5651 diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
5652 -index f0dcb0c..9f39b80 100644
5653 +index a2a4f46..6cab058 100644
5654 --- a/arch/x86/kernel/entry_32.S
5655 +++ b/arch/x86/kernel/entry_32.S
5656 @@ -177,13 +177,153 @@
5657 @@ -21570,7 +21559,7 @@ index f0dcb0c..9f39b80 100644
5658
5659 #ifdef CONFIG_PREEMPT
5660 ENTRY(resume_kernel)
5661 -@@ -372,7 +529,7 @@ need_resched:
5662 +@@ -369,7 +526,7 @@ need_resched:
5663 jz restore_all
5664 call preempt_schedule_irq
5665 jmp need_resched
5666 @@ -21579,7 +21568,7 @@ index f0dcb0c..9f39b80 100644
5667 #endif
5668 CFI_ENDPROC
5669 /*
5670 -@@ -406,30 +563,45 @@ sysenter_past_esp:
5671 +@@ -403,30 +560,45 @@ sysenter_past_esp:
5672 /*CFI_REL_OFFSET cs, 0*/
5673 /*
5674 * Push current_thread_info()->sysenter_return to the stack.
5675 @@ -21628,7 +21617,7 @@ index f0dcb0c..9f39b80 100644
5676 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)
5677 jnz sysenter_audit
5678 sysenter_do_call:
5679 -@@ -444,12 +616,24 @@ sysenter_do_call:
5680 +@@ -441,12 +613,24 @@ sysenter_do_call:
5681 testl $_TIF_ALLWORK_MASK, %ecx
5682 jne sysexit_audit
5683 sysenter_exit:
5684 @@ -21653,7 +21642,7 @@ index f0dcb0c..9f39b80 100644
5685 PTGS_TO_GS
5686 ENABLE_INTERRUPTS_SYSEXIT
5687
5688 -@@ -466,6 +650,9 @@ sysenter_audit:
5689 +@@ -463,6 +647,9 @@ sysenter_audit:
5690 movl %eax,%edx /* 2nd arg: syscall number */
5691 movl $AUDIT_ARCH_I386,%eax /* 1st arg: audit arch */
5692 call __audit_syscall_entry
5693 @@ -21663,7 +21652,7 @@ index f0dcb0c..9f39b80 100644
5694 pushl_cfi %ebx
5695 movl PT_EAX(%esp),%eax /* reload syscall number */
5696 jmp sysenter_do_call
5697 -@@ -491,10 +678,16 @@ sysexit_audit:
5698 +@@ -488,10 +675,16 @@ sysexit_audit:
5699
5700 CFI_ENDPROC
5701 .pushsection .fixup,"ax"
5702 @@ -21682,7 +21671,7 @@ index f0dcb0c..9f39b80 100644
5703 PTGS_TO_GS_EX
5704 ENDPROC(ia32_sysenter_target)
5705
5706 -@@ -509,6 +702,11 @@ ENTRY(system_call)
5707 +@@ -506,6 +699,11 @@ ENTRY(system_call)
5708 pushl_cfi %eax # save orig_eax
5709 SAVE_ALL
5710 GET_THREAD_INFO(%ebp)
5711 @@ -21694,7 +21683,7 @@ index f0dcb0c..9f39b80 100644
5712 # system call tracing in operation / emulation
5713 testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%ebp)
5714 jnz syscall_trace_entry
5715 -@@ -527,6 +725,15 @@ syscall_exit:
5716 +@@ -524,6 +722,15 @@ syscall_exit:
5717 testl $_TIF_ALLWORK_MASK, %ecx # current->work
5718 jne syscall_exit_work
5719
5720 @@ -21710,7 +21699,7 @@ index f0dcb0c..9f39b80 100644
5721 restore_all:
5722 TRACE_IRQS_IRET
5723 restore_all_notrace:
5724 -@@ -583,14 +790,34 @@ ldt_ss:
5725 +@@ -580,14 +787,34 @@ ldt_ss:
5726 * compensating for the offset by changing to the ESPFIX segment with
5727 * a base address that matches for the difference.
5728 */
5729 @@ -21748,7 +21737,7 @@ index f0dcb0c..9f39b80 100644
5730 pushl_cfi $__ESPFIX_SS
5731 pushl_cfi %eax /* new kernel esp */
5732 /* Disable interrupts, but do not irqtrace this section: we
5733 -@@ -619,20 +846,18 @@ work_resched:
5734 +@@ -616,20 +843,18 @@ work_resched:
5735 movl TI_flags(%ebp), %ecx
5736 andl $_TIF_WORK_MASK, %ecx # is there any work to be done other
5737 # than syscall tracing?
5738 @@ -21771,7 +21760,7 @@ index f0dcb0c..9f39b80 100644
5739 #endif
5740 TRACE_IRQS_ON
5741 ENABLE_INTERRUPTS(CLBR_NONE)
5742 -@@ -653,7 +878,7 @@ work_notifysig_v86:
5743 +@@ -650,7 +875,7 @@ work_notifysig_v86:
5744 movl %eax, %esp
5745 jmp 1b
5746 #endif
5747 @@ -21780,7 +21769,7 @@ index f0dcb0c..9f39b80 100644
5748
5749 # perform syscall exit tracing
5750 ALIGN
5751 -@@ -661,11 +886,14 @@ syscall_trace_entry:
5752 +@@ -658,11 +883,14 @@ syscall_trace_entry:
5753 movl $-ENOSYS,PT_EAX(%esp)
5754 movl %esp, %eax
5755 call syscall_trace_enter
5756 @@ -21796,7 +21785,7 @@ index f0dcb0c..9f39b80 100644
5757
5758 # perform syscall exit tracing
5759 ALIGN
5760 -@@ -678,21 +906,25 @@ syscall_exit_work:
5761 +@@ -675,21 +903,25 @@ syscall_exit_work:
5762 movl %esp, %eax
5763 call syscall_trace_leave
5764 jmp resume_userspace
5765 @@ -21825,7 +21814,7 @@ index f0dcb0c..9f39b80 100644
5766 CFI_ENDPROC
5767 /*
5768 * End of kprobes section
5769 -@@ -708,8 +940,15 @@ END(syscall_badsys)
5770 +@@ -705,8 +937,15 @@ END(syscall_badsys)
5771 * normal stack and adjusts ESP with the matching offset.
5772 */
5773 /* fixup the stack */
5774 @@ -21843,7 +21832,7 @@ index f0dcb0c..9f39b80 100644
5775 shl $16, %eax
5776 addl %esp, %eax /* the adjusted stack pointer */
5777 pushl_cfi $__KERNEL_DS
5778 -@@ -762,7 +1001,7 @@ vector=vector+1
5779 +@@ -759,7 +998,7 @@ vector=vector+1
5780 .endr
5781 2: jmp common_interrupt
5782 .endr
5783 @@ -21852,7 +21841,7 @@ index f0dcb0c..9f39b80 100644
5784
5785 .previous
5786 END(interrupt)
5787 -@@ -823,7 +1062,7 @@ ENTRY(coprocessor_error)
5788 +@@ -820,7 +1059,7 @@ ENTRY(coprocessor_error)
5789 pushl_cfi $do_coprocessor_error
5790 jmp error_code
5791 CFI_ENDPROC
5792 @@ -21861,7 +21850,7 @@ index f0dcb0c..9f39b80 100644
5793
5794 ENTRY(simd_coprocessor_error)
5795 RING0_INT_FRAME
5796 -@@ -836,7 +1075,7 @@ ENTRY(simd_coprocessor_error)
5797 +@@ -833,7 +1072,7 @@ ENTRY(simd_coprocessor_error)
5798 .section .altinstructions,"a"
5799 altinstruction_entry 661b, 663f, X86_FEATURE_XMM, 662b-661b, 664f-663f
5800 .previous
5801 @@ -21870,7 +21859,7 @@ index f0dcb0c..9f39b80 100644
5802 663: pushl $do_simd_coprocessor_error
5803 664:
5804 .previous
5805 -@@ -845,7 +1084,7 @@ ENTRY(simd_coprocessor_error)
5806 +@@ -842,7 +1081,7 @@ ENTRY(simd_coprocessor_error)
5807 #endif
5808 jmp error_code
5809 CFI_ENDPROC
5810 @@ -21879,7 +21868,7 @@ index f0dcb0c..9f39b80 100644
5811
5812 ENTRY(device_not_available)
5813 RING0_INT_FRAME
5814 -@@ -854,18 +1093,18 @@ ENTRY(device_not_available)
5815 +@@ -851,18 +1090,18 @@ ENTRY(device_not_available)
5816 pushl_cfi $do_device_not_available
5817 jmp error_code
5818 CFI_ENDPROC
5819 @@ -21901,7 +21890,7 @@ index f0dcb0c..9f39b80 100644
5820 #endif
5821
5822 ENTRY(overflow)
5823 -@@ -875,7 +1114,7 @@ ENTRY(overflow)
5824 +@@ -872,7 +1111,7 @@ ENTRY(overflow)
5825 pushl_cfi $do_overflow
5826 jmp error_code
5827 CFI_ENDPROC
5828 @@ -21910,7 +21899,7 @@ index f0dcb0c..9f39b80 100644
5829
5830 ENTRY(bounds)
5831 RING0_INT_FRAME
5832 -@@ -884,7 +1123,7 @@ ENTRY(bounds)
5833 +@@ -881,7 +1120,7 @@ ENTRY(bounds)
5834 pushl_cfi $do_bounds
5835 jmp error_code
5836 CFI_ENDPROC
5837 @@ -21919,7 +21908,7 @@ index f0dcb0c..9f39b80 100644
5838
5839 ENTRY(invalid_op)
5840 RING0_INT_FRAME
5841 -@@ -893,7 +1132,7 @@ ENTRY(invalid_op)
5842 +@@ -890,7 +1129,7 @@ ENTRY(invalid_op)
5843 pushl_cfi $do_invalid_op
5844 jmp error_code
5845 CFI_ENDPROC
5846 @@ -21928,7 +21917,7 @@ index f0dcb0c..9f39b80 100644
5847
5848 ENTRY(coprocessor_segment_overrun)
5849 RING0_INT_FRAME
5850 -@@ -902,7 +1141,7 @@ ENTRY(coprocessor_segment_overrun)
5851 +@@ -899,7 +1138,7 @@ ENTRY(coprocessor_segment_overrun)
5852 pushl_cfi $do_coprocessor_segment_overrun
5853 jmp error_code
5854 CFI_ENDPROC
5855 @@ -21937,7 +21926,7 @@ index f0dcb0c..9f39b80 100644
5856
5857 ENTRY(invalid_TSS)
5858 RING0_EC_FRAME
5859 -@@ -910,7 +1149,7 @@ ENTRY(invalid_TSS)
5860 +@@ -907,7 +1146,7 @@ ENTRY(invalid_TSS)
5861 pushl_cfi $do_invalid_TSS
5862 jmp error_code
5863 CFI_ENDPROC
5864 @@ -21946,7 +21935,7 @@ index f0dcb0c..9f39b80 100644
5865
5866 ENTRY(segment_not_present)
5867 RING0_EC_FRAME
5868 -@@ -918,7 +1157,7 @@ ENTRY(segment_not_present)
5869 +@@ -915,7 +1154,7 @@ ENTRY(segment_not_present)
5870 pushl_cfi $do_segment_not_present
5871 jmp error_code
5872 CFI_ENDPROC
5873 @@ -21955,7 +21944,7 @@ index f0dcb0c..9f39b80 100644
5874
5875 ENTRY(stack_segment)
5876 RING0_EC_FRAME
5877 -@@ -926,7 +1165,7 @@ ENTRY(stack_segment)
5878 +@@ -923,7 +1162,7 @@ ENTRY(stack_segment)
5879 pushl_cfi $do_stack_segment
5880 jmp error_code
5881 CFI_ENDPROC
5882 @@ -21964,7 +21953,7 @@ index f0dcb0c..9f39b80 100644
5883
5884 ENTRY(alignment_check)
5885 RING0_EC_FRAME
5886 -@@ -934,7 +1173,7 @@ ENTRY(alignment_check)
5887 +@@ -931,7 +1170,7 @@ ENTRY(alignment_check)
5888 pushl_cfi $do_alignment_check
5889 jmp error_code
5890 CFI_ENDPROC
5891 @@ -21973,7 +21962,7 @@ index f0dcb0c..9f39b80 100644
5892
5893 ENTRY(divide_error)
5894 RING0_INT_FRAME
5895 -@@ -943,7 +1182,7 @@ ENTRY(divide_error)
5896 +@@ -940,7 +1179,7 @@ ENTRY(divide_error)
5897 pushl_cfi $do_divide_error
5898 jmp error_code
5899 CFI_ENDPROC
5900 @@ -21982,7 +21971,7 @@ index f0dcb0c..9f39b80 100644
5901
5902 #ifdef CONFIG_X86_MCE
5903 ENTRY(machine_check)
5904 -@@ -953,7 +1192,7 @@ ENTRY(machine_check)
5905 +@@ -950,7 +1189,7 @@ ENTRY(machine_check)
5906 pushl_cfi machine_check_vector
5907 jmp error_code
5908 CFI_ENDPROC
5909 @@ -21991,7 +21980,7 @@ index f0dcb0c..9f39b80 100644
5910 #endif
5911
5912 ENTRY(spurious_interrupt_bug)
5913 -@@ -963,7 +1202,7 @@ ENTRY(spurious_interrupt_bug)
5914 +@@ -960,7 +1199,7 @@ ENTRY(spurious_interrupt_bug)
5915 pushl_cfi $do_spurious_interrupt_bug
5916 jmp error_code
5917 CFI_ENDPROC
5918 @@ -22000,7 +21989,7 @@ index f0dcb0c..9f39b80 100644
5919 /*
5920 * End of kprobes section
5921 */
5922 -@@ -1073,7 +1312,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
5923 +@@ -1070,7 +1309,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
5924
5925 ENTRY(mcount)
5926 ret
5927 @@ -22009,7 +21998,7 @@ index f0dcb0c..9f39b80 100644
5928
5929 ENTRY(ftrace_caller)
5930 cmpl $0, function_trace_stop
5931 -@@ -1106,7 +1345,7 @@ ftrace_graph_call:
5932 +@@ -1103,7 +1342,7 @@ ftrace_graph_call:
5933 .globl ftrace_stub
5934 ftrace_stub:
5935 ret
5936 @@ -22018,7 +22007,7 @@ index f0dcb0c..9f39b80 100644
5937
5938 ENTRY(ftrace_regs_caller)
5939 pushf /* push flags before compare (in cs location) */
5940 -@@ -1210,7 +1449,7 @@ trace:
5941 +@@ -1207,7 +1446,7 @@ trace:
5942 popl %ecx
5943 popl %eax
5944 jmp ftrace_stub
5945 @@ -22027,7 +22016,7 @@ index f0dcb0c..9f39b80 100644
5946 #endif /* CONFIG_DYNAMIC_FTRACE */
5947 #endif /* CONFIG_FUNCTION_TRACER */
5948
5949 -@@ -1228,7 +1467,7 @@ ENTRY(ftrace_graph_caller)
5950 +@@ -1225,7 +1464,7 @@ ENTRY(ftrace_graph_caller)
5951 popl %ecx
5952 popl %eax
5953 ret
5954 @@ -22036,7 +22025,7 @@ index f0dcb0c..9f39b80 100644
5955
5956 .globl return_to_handler
5957 return_to_handler:
5958 -@@ -1284,15 +1523,18 @@ error_code:
5959 +@@ -1291,15 +1530,18 @@ error_code:
5960 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
5961 REG_TO_PTGS %ecx
5962 SET_KERNEL_GS %ecx
5963 @@ -22057,7 +22046,7 @@ index f0dcb0c..9f39b80 100644
5964
5965 /*
5966 * Debug traps and NMI can happen at the one SYSENTER instruction
5967 -@@ -1335,7 +1577,7 @@ debug_stack_correct:
5968 +@@ -1342,7 +1584,7 @@ debug_stack_correct:
5969 call do_debug
5970 jmp ret_from_exception
5971 CFI_ENDPROC
5972 @@ -22066,7 +22055,7 @@ index f0dcb0c..9f39b80 100644
5973
5974 /*
5975 * NMI is doubly nasty. It can happen _while_ we're handling
5976 -@@ -1373,6 +1615,9 @@ nmi_stack_correct:
5977 +@@ -1380,6 +1622,9 @@ nmi_stack_correct:
5978 xorl %edx,%edx # zero error code
5979 movl %esp,%eax # pt_regs pointer
5980 call do_nmi
5981 @@ -22076,7 +22065,7 @@ index f0dcb0c..9f39b80 100644
5982 jmp restore_all_notrace
5983 CFI_ENDPROC
5984
5985 -@@ -1409,12 +1654,15 @@ nmi_espfix_stack:
5986 +@@ -1416,12 +1661,15 @@ nmi_espfix_stack:
5987 FIXUP_ESPFIX_STACK # %eax == %esp
5988 xorl %edx,%edx # zero error code
5989 call do_nmi
5990 @@ -22093,7 +22082,7 @@ index f0dcb0c..9f39b80 100644
5991
5992 ENTRY(int3)
5993 RING0_INT_FRAME
5994 -@@ -1427,14 +1675,14 @@ ENTRY(int3)
5995 +@@ -1434,14 +1682,14 @@ ENTRY(int3)
5996 call do_int3
5997 jmp ret_from_exception
5998 CFI_ENDPROC
5999 @@ -22110,7 +22099,7 @@ index f0dcb0c..9f39b80 100644
6000
6001 #ifdef CONFIG_KVM_GUEST
6002 ENTRY(async_page_fault)
6003 -@@ -1443,7 +1691,7 @@ ENTRY(async_page_fault)
6004 +@@ -1450,7 +1698,7 @@ ENTRY(async_page_fault)
6005 pushl_cfi $do_async_page_fault
6006 jmp error_code
6007 CFI_ENDPROC
6008 @@ -22120,7 +22109,7 @@ index f0dcb0c..9f39b80 100644
6009
6010 /*
6011 diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
6012 -index b077f4c..8e0df9f 100644
6013 +index 1e96c36..86f2033 100644
6014 --- a/arch/x86/kernel/entry_64.S
6015 +++ b/arch/x86/kernel/entry_64.S
6016 @@ -59,6 +59,8 @@
6017 @@ -22715,20 +22704,62 @@ index b077f4c..8e0df9f 100644
6018 je 1f
6019 SWAPGS
6020 /*
6021 -@@ -514,9 +927,10 @@ ENTRY(save_paranoid)
6022 +@@ -514,9 +927,52 @@ ENTRY(save_paranoid)
6023 js 1f /* negative -> in kernel */
6024 SWAPGS
6025 xorl %ebx,%ebx
6026 -1: ret
6027 -+1: pax_force_retaddr_bts
6028 ++1:
6029 ++#ifdef CONFIG_PAX_MEMORY_UDEREF
6030 ++ testb $3, CS+8(%rsp)
6031 ++ jnz 1f
6032 ++ pax_enter_kernel
6033 ++ jmp 2f
6034 ++1: pax_enter_kernel_user
6035 ++2:
6036 ++#else
6037 ++ pax_enter_kernel
6038 ++#endif
6039 ++ pax_force_retaddr
6040 + ret
6041 CFI_ENDPROC
6042 -END(save_paranoid)
6043 +ENDPROC(save_paranoid)
6044 ++
6045 ++ENTRY(save_paranoid_nmi)
6046 ++ XCPT_FRAME 1 RDI+8
6047 ++ cld
6048 ++ movq_cfi rdi, RDI+8
6049 ++ movq_cfi rsi, RSI+8
6050 ++ movq_cfi rdx, RDX+8
6051 ++ movq_cfi rcx, RCX+8
6052 ++ movq_cfi rax, RAX+8
6053 ++ movq_cfi r8, R8+8
6054 ++ movq_cfi r9, R9+8
6055 ++ movq_cfi r10, R10+8
6056 ++ movq_cfi r11, R11+8
6057 ++ movq_cfi rbx, RBX+8
6058 ++ movq_cfi rbp, RBP+8
6059 ++ movq_cfi r12, R12+8
6060 ++ movq_cfi r13, R13+8
6061 ++ movq_cfi r14, R14+8
6062 ++ movq_cfi r15, R15+8
6063 ++ movl $1,%ebx
6064 ++ movl $MSR_GS_BASE,%ecx
6065 ++ rdmsr
6066 ++ testl %edx,%edx
6067 ++ js 1f /* negative -> in kernel */
6068 ++ SWAPGS
6069 ++ xorl %ebx,%ebx
6070 ++1: pax_enter_kernel_nmi
6071 ++ pax_force_retaddr
6072 ++ ret
6073 ++ CFI_ENDPROC
6074 ++ENDPROC(save_paranoid_nmi)
6075 .popsection
6076
6077 /*
6078 -@@ -538,7 +952,7 @@ ENTRY(ret_from_fork)
6079 +@@ -538,7 +994,7 @@ ENTRY(ret_from_fork)
6080
6081 RESTORE_REST
6082
6083 @@ -22737,7 +22768,7 @@ index b077f4c..8e0df9f 100644
6084 jz 1f
6085
6086 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
6087 -@@ -548,15 +962,13 @@ ENTRY(ret_from_fork)
6088 +@@ -548,15 +1004,13 @@ ENTRY(ret_from_fork)
6089 jmp ret_from_sys_call # go to the SYSRET fastpath
6090
6091 1:
6092 @@ -22754,7 +22785,7 @@ index b077f4c..8e0df9f 100644
6093
6094 /*
6095 * System call entry. Up to 6 arguments in registers are supported.
6096 -@@ -593,7 +1005,7 @@ END(ret_from_fork)
6097 +@@ -593,7 +1047,7 @@ END(ret_from_fork)
6098 ENTRY(system_call)
6099 CFI_STARTPROC simple
6100 CFI_SIGNAL_FRAME
6101 @@ -22763,7 +22794,7 @@ index b077f4c..8e0df9f 100644
6102 CFI_REGISTER rip,rcx
6103 /*CFI_REGISTER rflags,r11*/
6104 SWAPGS_UNSAFE_STACK
6105 -@@ -606,16 +1018,23 @@ GLOBAL(system_call_after_swapgs)
6106 +@@ -606,16 +1060,23 @@ GLOBAL(system_call_after_swapgs)
6107
6108 movq %rsp,PER_CPU_VAR(old_rsp)
6109 movq PER_CPU_VAR(kernel_stack),%rsp
6110 @@ -22789,7 +22820,7 @@ index b077f4c..8e0df9f 100644
6111 jnz tracesys
6112 system_call_fastpath:
6113 #if __SYSCALL_MASK == ~0
6114 -@@ -639,10 +1058,13 @@ sysret_check:
6115 +@@ -639,10 +1100,13 @@ sysret_check:
6116 LOCKDEP_SYS_EXIT
6117 DISABLE_INTERRUPTS(CLBR_NONE)
6118 TRACE_IRQS_OFF
6119 @@ -22804,7 +22835,7 @@ index b077f4c..8e0df9f 100644
6120 /*
6121 * sysretq will re-enable interrupts:
6122 */
6123 -@@ -701,6 +1123,9 @@ auditsys:
6124 +@@ -701,6 +1165,9 @@ auditsys:
6125 movq %rax,%rsi /* 2nd arg: syscall number */
6126 movl $AUDIT_ARCH_X86_64,%edi /* 1st arg: audit arch */
6127 call __audit_syscall_entry
6128 @@ -22814,7 +22845,7 @@ index b077f4c..8e0df9f 100644
6129 LOAD_ARGS 0 /* reload call-clobbered registers */
6130 jmp system_call_fastpath
6131
6132 -@@ -722,7 +1147,7 @@ sysret_audit:
6133 +@@ -722,7 +1189,7 @@ sysret_audit:
6134 /* Do syscall tracing */
6135 tracesys:
6136 #ifdef CONFIG_AUDITSYSCALL
6137 @@ -22823,7 +22854,7 @@ index b077f4c..8e0df9f 100644
6138 jz auditsys
6139 #endif
6140 SAVE_REST
6141 -@@ -730,12 +1155,15 @@ tracesys:
6142 +@@ -730,12 +1197,15 @@ tracesys:
6143 FIXUP_TOP_OF_STACK %rdi
6144 movq %rsp,%rdi
6145 call syscall_trace_enter
6146 @@ -22840,7 +22871,7 @@ index b077f4c..8e0df9f 100644
6147 RESTORE_REST
6148 #if __SYSCALL_MASK == ~0
6149 cmpq $__NR_syscall_max,%rax
6150 -@@ -765,7 +1193,9 @@ GLOBAL(int_with_check)
6151 +@@ -765,7 +1235,9 @@ GLOBAL(int_with_check)
6152 andl %edi,%edx
6153 jnz int_careful
6154 andl $~TS_COMPAT,TI_status(%rcx)
6155 @@ -22851,7 +22882,7 @@ index b077f4c..8e0df9f 100644
6156
6157 /* Either reschedule or signal or syscall exit tracking needed. */
6158 /* First do a reschedule test. */
6159 -@@ -811,7 +1241,7 @@ int_restore_rest:
6160 +@@ -811,7 +1283,7 @@ int_restore_rest:
6161 TRACE_IRQS_OFF
6162 jmp int_with_check
6163 CFI_ENDPROC
6164 @@ -22860,7 +22891,7 @@ index b077f4c..8e0df9f 100644
6165
6166 .macro FORK_LIKE func
6167 ENTRY(stub_\func)
6168 -@@ -824,9 +1254,10 @@ ENTRY(stub_\func)
6169 +@@ -824,9 +1296,10 @@ ENTRY(stub_\func)
6170 DEFAULT_FRAME 0 8 /* offset 8: return address */
6171 call sys_\func
6172 RESTORE_TOP_OF_STACK %r11, 8
6173 @@ -22873,7 +22904,7 @@ index b077f4c..8e0df9f 100644
6174 .endm
6175
6176 .macro FIXED_FRAME label,func
6177 -@@ -836,9 +1267,10 @@ ENTRY(\label)
6178 +@@ -836,9 +1309,10 @@ ENTRY(\label)
6179 FIXUP_TOP_OF_STACK %r11, 8-ARGOFFSET
6180 call \func
6181 RESTORE_TOP_OF_STACK %r11, 8-ARGOFFSET
6182 @@ -22885,7 +22916,7 @@ index b077f4c..8e0df9f 100644
6183 .endm
6184
6185 FORK_LIKE clone
6186 -@@ -846,19 +1278,6 @@ END(\label)
6187 +@@ -846,19 +1320,6 @@ END(\label)
6188 FORK_LIKE vfork
6189 FIXED_FRAME stub_iopl, sys_iopl
6190
6191 @@ -22905,7 +22936,7 @@ index b077f4c..8e0df9f 100644
6192 ENTRY(stub_execve)
6193 CFI_STARTPROC
6194 addq $8, %rsp
6195 -@@ -870,7 +1289,7 @@ ENTRY(stub_execve)
6196 +@@ -870,7 +1331,7 @@ ENTRY(stub_execve)
6197 RESTORE_REST
6198 jmp int_ret_from_sys_call
6199 CFI_ENDPROC
6200 @@ -22914,7 +22945,7 @@ index b077f4c..8e0df9f 100644
6201
6202 /*
6203 * sigreturn is special because it needs to restore all registers on return.
6204 -@@ -887,7 +1306,7 @@ ENTRY(stub_rt_sigreturn)
6205 +@@ -887,7 +1348,7 @@ ENTRY(stub_rt_sigreturn)
6206 RESTORE_REST
6207 jmp int_ret_from_sys_call
6208 CFI_ENDPROC
6209 @@ -22923,7 +22954,7 @@ index b077f4c..8e0df9f 100644
6210
6211 #ifdef CONFIG_X86_X32_ABI
6212 ENTRY(stub_x32_rt_sigreturn)
6213 -@@ -901,7 +1320,7 @@ ENTRY(stub_x32_rt_sigreturn)
6214 +@@ -901,7 +1362,7 @@ ENTRY(stub_x32_rt_sigreturn)
6215 RESTORE_REST
6216 jmp int_ret_from_sys_call
6217 CFI_ENDPROC
6218 @@ -22932,7 +22963,7 @@ index b077f4c..8e0df9f 100644
6219
6220 ENTRY(stub_x32_execve)
6221 CFI_STARTPROC
6222 -@@ -915,7 +1334,7 @@ ENTRY(stub_x32_execve)
6223 +@@ -915,7 +1376,7 @@ ENTRY(stub_x32_execve)
6224 RESTORE_REST
6225 jmp int_ret_from_sys_call
6226 CFI_ENDPROC
6227 @@ -22941,7 +22972,7 @@ index b077f4c..8e0df9f 100644
6228
6229 #endif
6230
6231 -@@ -952,7 +1371,7 @@ vector=vector+1
6232 +@@ -952,7 +1413,7 @@ vector=vector+1
6233 2: jmp common_interrupt
6234 .endr
6235 CFI_ENDPROC
6236 @@ -22950,7 +22981,7 @@ index b077f4c..8e0df9f 100644
6237
6238 .previous
6239 END(interrupt)
6240 -@@ -969,9 +1388,19 @@ END(interrupt)
6241 +@@ -969,9 +1430,19 @@ END(interrupt)
6242 /* 0(%rsp): ~(interrupt number) */
6243 .macro interrupt func
6244 /* reserve pt_regs for scratch regs and rbp */
6245 @@ -22972,7 +23003,7 @@ index b077f4c..8e0df9f 100644
6246 call \func
6247 .endm
6248
6249 -@@ -997,14 +1426,14 @@ ret_from_intr:
6250 +@@ -997,14 +1468,14 @@ ret_from_intr:
6251
6252 /* Restore saved previous stack */
6253 popq %rsi
6254 @@ -22991,7 +23022,7 @@ index b077f4c..8e0df9f 100644
6255 je retint_kernel
6256
6257 /* Interrupt came from user space */
6258 -@@ -1026,12 +1455,16 @@ retint_swapgs: /* return to user-space */
6259 +@@ -1026,12 +1497,16 @@ retint_swapgs: /* return to user-space */
6260 * The iretq could re-enable interrupts:
6261 */
6262 DISABLE_INTERRUPTS(CLBR_ANY)
6263 @@ -23008,7 +23039,7 @@ index b077f4c..8e0df9f 100644
6264 /*
6265 * The iretq could re-enable interrupts:
6266 */
6267 -@@ -1114,7 +1547,7 @@ ENTRY(retint_kernel)
6268 +@@ -1112,7 +1587,7 @@ ENTRY(retint_kernel)
6269 #endif
6270
6271 CFI_ENDPROC
6272 @@ -23017,7 +23048,7 @@ index b077f4c..8e0df9f 100644
6273 /*
6274 * End of kprobes section
6275 */
6276 -@@ -1132,7 +1565,7 @@ ENTRY(\sym)
6277 +@@ -1130,7 +1605,7 @@ ENTRY(\sym)
6278 interrupt \do_sym
6279 jmp ret_from_intr
6280 CFI_ENDPROC
6281 @@ -23026,22 +23057,7 @@ index b077f4c..8e0df9f 100644
6282 .endm
6283
6284 #ifdef CONFIG_TRACING
6285 -@@ -1215,12 +1648,22 @@ ENTRY(\sym)
6286 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
6287 - call error_entry
6288 - DEFAULT_FRAME 0
6289 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
6290 -+ testb $3, CS(%rsp)
6291 -+ jnz 1f
6292 -+ pax_enter_kernel
6293 -+ jmp 2f
6294 -+1: pax_enter_kernel_user
6295 -+2:
6296 -+#else
6297 -+ pax_enter_kernel
6298 -+#endif
6299 - movq %rsp,%rdi /* pt_regs pointer */
6300 - xorl %esi,%esi /* no error code */
6301 +@@ -1218,7 +1693,7 @@ ENTRY(\sym)
6302 call \do_sym
6303 jmp error_exit /* %ebx: no swapgs flag */
6304 CFI_ENDPROC
6305 @@ -23050,22 +23066,7 @@ index b077f4c..8e0df9f 100644
6306 .endm
6307
6308 .macro paranoidzeroentry sym do_sym
6309 -@@ -1233,15 +1676,25 @@ ENTRY(\sym)
6310 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
6311 - call save_paranoid
6312 - TRACE_IRQS_OFF
6313 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
6314 -+ testb $3, CS(%rsp)
6315 -+ jnz 1f
6316 -+ pax_enter_kernel
6317 -+ jmp 2f
6318 -+1: pax_enter_kernel_user
6319 -+2:
6320 -+#else
6321 -+ pax_enter_kernel
6322 -+#endif
6323 - movq %rsp,%rdi /* pt_regs pointer */
6324 - xorl %esi,%esi /* no error code */
6325 +@@ -1236,10 +1711,10 @@ ENTRY(\sym)
6326 call \do_sym
6327 jmp paranoid_exit /* %ebx: no swapgs flag */
6328 CFI_ENDPROC
6329 @@ -23078,20 +23079,8 @@ index b077f4c..8e0df9f 100644
6330 .macro paranoidzeroentry_ist sym do_sym ist
6331 ENTRY(\sym)
6332 INTR_FRAME
6333 -@@ -1252,14 +1705,30 @@ ENTRY(\sym)
6334 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
6335 - call save_paranoid
6336 +@@ -1252,12 +1727,18 @@ ENTRY(\sym)
6337 TRACE_IRQS_OFF_DEBUG
6338 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
6339 -+ testb $3, CS(%rsp)
6340 -+ jnz 1f
6341 -+ pax_enter_kernel
6342 -+ jmp 2f
6343 -+1: pax_enter_kernel_user
6344 -+2:
6345 -+#else
6346 -+ pax_enter_kernel
6347 -+#endif
6348 movq %rsp,%rdi /* pt_regs pointer */
6349 xorl %esi,%esi /* no error code */
6350 +#ifdef CONFIG_SMP
6351 @@ -23110,23 +23099,7 @@ index b077f4c..8e0df9f 100644
6352 .endm
6353
6354 .macro errorentry sym do_sym
6355 -@@ -1271,13 +1740,23 @@ ENTRY(\sym)
6356 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
6357 - call error_entry
6358 - DEFAULT_FRAME 0
6359 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
6360 -+ testb $3, CS(%rsp)
6361 -+ jnz 1f
6362 -+ pax_enter_kernel
6363 -+ jmp 2f
6364 -+1: pax_enter_kernel_user
6365 -+2:
6366 -+#else
6367 -+ pax_enter_kernel
6368 -+#endif
6369 - movq %rsp,%rdi /* pt_regs pointer */
6370 - movq ORIG_RAX(%rsp),%rsi /* get error code */
6371 - movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
6372 +@@ -1275,7 +1756,7 @@ ENTRY(\sym)
6373 call \do_sym
6374 jmp error_exit /* %ebx: no swapgs flag */
6375 CFI_ENDPROC
6376 @@ -23134,24 +23107,8 @@ index b077f4c..8e0df9f 100644
6377 +ENDPROC(\sym)
6378 .endm
6379
6380 - /* error code is on the stack already */
6381 -@@ -1291,13 +1770,23 @@ ENTRY(\sym)
6382 - call save_paranoid
6383 - DEFAULT_FRAME 0
6384 - TRACE_IRQS_OFF
6385 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
6386 -+ testb $3, CS(%rsp)
6387 -+ jnz 1f
6388 -+ pax_enter_kernel
6389 -+ jmp 2f
6390 -+1: pax_enter_kernel_user
6391 -+2:
6392 -+#else
6393 -+ pax_enter_kernel
6394 -+#endif
6395 - movq %rsp,%rdi /* pt_regs pointer */
6396 - movq ORIG_RAX(%rsp),%rsi /* get error code */
6397 - movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
6398 + #ifdef CONFIG_TRACING
6399 +@@ -1306,7 +1787,7 @@ ENTRY(\sym)
6400 call \do_sym
6401 jmp paranoid_exit /* %ebx: no swapgs flag */
6402 CFI_ENDPROC
6403 @@ -23160,7 +23117,7 @@ index b077f4c..8e0df9f 100644
6404 .endm
6405
6406 zeroentry divide_error do_divide_error
6407 -@@ -1327,9 +1816,10 @@ gs_change:
6408 +@@ -1336,9 +1817,10 @@ gs_change:
6409 2: mfence /* workaround */
6410 SWAPGS
6411 popfq_cfi
6412 @@ -23172,19 +23129,19 @@ index b077f4c..8e0df9f 100644
6413
6414 _ASM_EXTABLE(gs_change,bad_gs)
6415 .section .fixup,"ax"
6416 -@@ -1357,9 +1847,10 @@ ENTRY(call_softirq)
6417 +@@ -1366,9 +1848,10 @@ ENTRY(do_softirq_own_stack)
6418 CFI_DEF_CFA_REGISTER rsp
6419 CFI_ADJUST_CFA_OFFSET -8
6420 decl PER_CPU_VAR(irq_count)
6421 + pax_force_retaddr
6422 ret
6423 CFI_ENDPROC
6424 --END(call_softirq)
6425 -+ENDPROC(call_softirq)
6426 +-END(do_softirq_own_stack)
6427 ++ENDPROC(do_softirq_own_stack)
6428
6429 #ifdef CONFIG_XEN
6430 zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
6431 -@@ -1397,7 +1888,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
6432 +@@ -1406,7 +1889,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
6433 decl PER_CPU_VAR(irq_count)
6434 jmp error_exit
6435 CFI_ENDPROC
6436 @@ -23193,7 +23150,7 @@ index b077f4c..8e0df9f 100644
6437
6438 /*
6439 * Hypervisor uses this for application faults while it executes.
6440 -@@ -1456,7 +1947,7 @@ ENTRY(xen_failsafe_callback)
6441 +@@ -1465,7 +1948,7 @@ ENTRY(xen_failsafe_callback)
6442 SAVE_ALL
6443 jmp error_exit
6444 CFI_ENDPROC
6445 @@ -23202,7 +23159,7 @@ index b077f4c..8e0df9f 100644
6446
6447 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
6448 xen_hvm_callback_vector xen_evtchn_do_upcall
6449 -@@ -1508,18 +1999,33 @@ ENTRY(paranoid_exit)
6450 +@@ -1517,18 +2000,33 @@ ENTRY(paranoid_exit)
6451 DEFAULT_FRAME
6452 DISABLE_INTERRUPTS(CLBR_NONE)
6453 TRACE_IRQS_OFF_DEBUG
6454 @@ -23238,7 +23195,7 @@ index b077f4c..8e0df9f 100644
6455 jmp irq_return
6456 paranoid_userspace:
6457 GET_THREAD_INFO(%rcx)
6458 -@@ -1548,7 +2054,7 @@ paranoid_schedule:
6459 +@@ -1557,7 +2055,7 @@ paranoid_schedule:
6460 TRACE_IRQS_OFF
6461 jmp paranoid_userspace
6462 CFI_ENDPROC
6463 @@ -23247,7 +23204,7 @@ index b077f4c..8e0df9f 100644
6464
6465 /*
6466 * Exception entry point. This expects an error code/orig_rax on the stack.
6467 -@@ -1575,12 +2081,13 @@ ENTRY(error_entry)
6468 +@@ -1584,12 +2082,23 @@ ENTRY(error_entry)
6469 movq_cfi r14, R14+8
6470 movq_cfi r15, R15+8
6471 xorl %ebx,%ebx
6472 @@ -23257,12 +23214,22 @@ index b077f4c..8e0df9f 100644
6473 error_swapgs:
6474 SWAPGS
6475 error_sti:
6476 ++#ifdef CONFIG_PAX_MEMORY_UDEREF
6477 ++ testb $3, CS+8(%rsp)
6478 ++ jnz 1f
6479 ++ pax_enter_kernel
6480 ++ jmp 2f
6481 ++1: pax_enter_kernel_user
6482 ++2:
6483 ++#else
6484 ++ pax_enter_kernel
6485 ++#endif
6486 TRACE_IRQS_OFF
6487 -+ pax_force_retaddr_bts
6488 ++ pax_force_retaddr
6489 ret
6490
6491 /*
6492 -@@ -1607,7 +2114,7 @@ bstep_iret:
6493 +@@ -1616,7 +2125,7 @@ bstep_iret:
6494 movq %rcx,RIP+8(%rsp)
6495 jmp error_swapgs
6496 CFI_ENDPROC
6497 @@ -23271,7 +23238,7 @@ index b077f4c..8e0df9f 100644
6498
6499
6500 /* ebx: no swapgs flag (1: don't need swapgs, 0: need it) */
6501 -@@ -1618,7 +2125,7 @@ ENTRY(error_exit)
6502 +@@ -1627,7 +2136,7 @@ ENTRY(error_exit)
6503 DISABLE_INTERRUPTS(CLBR_NONE)
6504 TRACE_IRQS_OFF
6505 GET_THREAD_INFO(%rcx)
6506 @@ -23280,7 +23247,7 @@ index b077f4c..8e0df9f 100644
6507 jne retint_kernel
6508 LOCKDEP_SYS_EXIT_IRQ
6509 movl TI_flags(%rcx),%edx
6510 -@@ -1627,7 +2134,7 @@ ENTRY(error_exit)
6511 +@@ -1636,7 +2145,7 @@ ENTRY(error_exit)
6512 jnz retint_careful
6513 jmp retint_swapgs
6514 CFI_ENDPROC
6515 @@ -23289,7 +23256,7 @@ index b077f4c..8e0df9f 100644
6516
6517 /*
6518 * Test if a given stack is an NMI stack or not.
6519 -@@ -1685,9 +2192,11 @@ ENTRY(nmi)
6520 +@@ -1694,9 +2203,11 @@ ENTRY(nmi)
6521 * If %cs was not the kernel segment, then the NMI triggered in user
6522 * space, which means it is definitely not nested.
6523 */
6524 @@ -23302,7 +23269,7 @@ index b077f4c..8e0df9f 100644
6525 /*
6526 * Check the special variable on the stack to see if NMIs are
6527 * executing.
6528 -@@ -1721,8 +2230,7 @@ nested_nmi:
6529 +@@ -1730,8 +2241,7 @@ nested_nmi:
6530
6531 1:
6532 /* Set up the interrupted NMIs stack to jump to repeat_nmi */
6533 @@ -23312,7 +23279,7 @@ index b077f4c..8e0df9f 100644
6534 CFI_ADJUST_CFA_OFFSET 1*8
6535 leaq -10*8(%rsp), %rdx
6536 pushq_cfi $__KERNEL_DS
6537 -@@ -1740,6 +2248,7 @@ nested_nmi_out:
6538 +@@ -1749,6 +2259,7 @@ nested_nmi_out:
6539 CFI_RESTORE rdx
6540
6541 /* No need to check faults here */
6542 @@ -23320,7 +23287,23 @@ index b077f4c..8e0df9f 100644
6543 INTERRUPT_RETURN
6544
6545 CFI_RESTORE_STATE
6546 -@@ -1852,9 +2361,11 @@ end_repeat_nmi:
6547 +@@ -1845,13 +2356,13 @@ end_repeat_nmi:
6548 + subq $ORIG_RAX-R15, %rsp
6549 + CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
6550 + /*
6551 +- * Use save_paranoid to handle SWAPGS, but no need to use paranoid_exit
6552 ++ * Use save_paranoid_nmi to handle SWAPGS, but no need to use paranoid_exit
6553 + * as we should not be calling schedule in NMI context.
6554 + * Even with normal interrupts enabled. An NMI should not be
6555 + * setting NEED_RESCHED or anything that normal interrupts and
6556 + * exceptions might do.
6557 + */
6558 +- call save_paranoid
6559 ++ call save_paranoid_nmi
6560 + DEFAULT_FRAME 0
6561 +
6562 + /*
6563 +@@ -1861,9 +2372,9 @@ end_repeat_nmi:
6564 * NMI itself takes a page fault, the page fault that was preempted
6565 * will read the information from the NMI page fault and not the
6566 * origin fault. Save it off and restore it if it changes.
6567 @@ -23329,12 +23312,10 @@ index b077f4c..8e0df9f 100644
6568 */
6569 - movq %cr2, %r12
6570 + movq %cr2, %r13
6571 -+
6572 -+ pax_enter_kernel_nmi
6573
6574 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
6575 movq %rsp,%rdi
6576 -@@ -1863,31 +2374,36 @@ end_repeat_nmi:
6577 +@@ -1872,31 +2383,36 @@ end_repeat_nmi:
6578
6579 /* Did the NMI take a page fault? Restore cr2 if it did */
6580 movq %cr2, %rcx
6581 @@ -23444,7 +23425,7 @@ index d4bdd25..912664c 100644
6582 return -EFAULT;
6583
6584 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
6585 -index 1be8e43..d9b9ef6 100644
6586 +index 85126cc..1bbce17 100644
6587 --- a/arch/x86/kernel/head64.c
6588 +++ b/arch/x86/kernel/head64.c
6589 @@ -67,12 +67,12 @@ again:
6590 @@ -24173,7 +24154,7 @@ index e1aabdb..fee4fee 100644
6591 NEXT_PAGE(empty_zero_page)
6592 .skip PAGE_SIZE
6593 diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
6594 -index 0fa6912..b37438b 100644
6595 +index 05fd74f..c3548b1 100644
6596 --- a/arch/x86/kernel/i386_ksyms_32.c
6597 +++ b/arch/x86/kernel/i386_ksyms_32.c
6598 @@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
6599 @@ -24189,10 +24170,10 @@ index 0fa6912..b37438b 100644
6600
6601 EXPORT_SYMBOL(__get_user_1);
6602 EXPORT_SYMBOL(__get_user_2);
6603 -@@ -37,3 +41,11 @@ EXPORT_SYMBOL(strstr);
6604 -
6605 - EXPORT_SYMBOL(csum_partial);
6606 - EXPORT_SYMBOL(empty_zero_page);
6607 +@@ -44,3 +48,11 @@ EXPORT_SYMBOL(___preempt_schedule);
6608 + EXPORT_SYMBOL(___preempt_schedule_context);
6609 + #endif
6610 + #endif
6611 +
6612 +#ifdef CONFIG_PAX_KERNEXEC
6613 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
6614 @@ -24202,7 +24183,7 @@ index 0fa6912..b37438b 100644
6615 +EXPORT_SYMBOL(cpu_pgd);
6616 +#endif
6617 diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c
6618 -index 5d576ab..1403a03 100644
6619 +index e8368c6..9c1a712 100644
6620 --- a/arch/x86/kernel/i387.c
6621 +++ b/arch/x86/kernel/i387.c
6622 @@ -51,7 +51,7 @@ static inline bool interrupted_kernel_fpu_idle(void)
6623 @@ -24215,7 +24196,7 @@ index 5d576ab..1403a03 100644
6624
6625 /*
6626 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
6627 -index 9a5c460..84868423 100644
6628 +index 2e977b5..5f2c273 100644
6629 --- a/arch/x86/kernel/i8259.c
6630 +++ b/arch/x86/kernel/i8259.c
6631 @@ -110,7 +110,7 @@ static int i8259A_irq_pending(unsigned int irq)
6632 @@ -24236,7 +24217,7 @@ index 9a5c460..84868423 100644
6633 /*
6634 * Theoretically we do not have to handle this IRQ,
6635 * but in Linux this does not cause problems and is
6636 -@@ -333,14 +333,16 @@ static void init_8259A(int auto_eoi)
6637 +@@ -332,14 +332,16 @@ static void init_8259A(int auto_eoi)
6638 /* (slave's support for AEOI in flat mode is to be investigated) */
6639 outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR);
6640
6641 @@ -24350,7 +24331,7 @@ index 22d0687..e07b2a5 100644
6642 }
6643
6644 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
6645 -index 4186755..18d6a9e 100644
6646 +index d7fcbed..1f747f7 100644
6647 --- a/arch/x86/kernel/irq_32.c
6648 +++ b/arch/x86/kernel/irq_32.c
6649 @@ -39,7 +39,7 @@ static int check_stack_overflow(void)
6650 @@ -24385,7 +24366,7 @@ index 4186755..18d6a9e 100644
6651 irqctx = __this_cpu_read(hardirq_ctx);
6652
6653 /*
6654 -@@ -92,16 +91,16 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6655 +@@ -92,13 +91,16 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6656 * handler) we can't do that and just have to keep using the
6657 * current stack (which is the irq stack already after all)
6658 */
6659 @@ -24399,16 +24380,14 @@ index 4186755..18d6a9e 100644
6660 - irqctx->tinfo.previous_esp = current_stack_pointer;
6661 + isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
6662 + irqctx->previous_esp = current_stack_pointer;
6663 -
6664 -- /* Copy the preempt_count so that the [soft]irq checks work. */
6665 -- irqctx->tinfo.preempt_count = curctx->tinfo.preempt_count;
6666 ++
6667 +#ifdef CONFIG_PAX_MEMORY_UDEREF
6668 + __set_fs(MAKE_MM_SEG(0));
6669 +#endif
6670
6671 if (unlikely(overflow))
6672 call_on_stack(print_stack_overflow, isp);
6673 -@@ -113,6 +112,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6674 +@@ -110,6 +112,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6675 : "0" (irq), "1" (desc), "2" (isp),
6676 "D" (desc->handle_irq)
6677 : "memory", "cc", "ecx");
6678 @@ -24420,7 +24399,7 @@ index 4186755..18d6a9e 100644
6679 return 1;
6680 }
6681
6682 -@@ -121,29 +125,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6683 +@@ -118,48 +125,34 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
6684 */
6685 void irq_ctx_init(int cpu)
6686 {
6687 @@ -24434,7 +24413,6 @@ index 4186755..18d6a9e 100644
6688 - THREAD_SIZE_ORDER));
6689 - memset(&irqctx->tinfo, 0, sizeof(struct thread_info));
6690 - irqctx->tinfo.cpu = cpu;
6691 -- irqctx->tinfo.preempt_count = HARDIRQ_OFFSET;
6692 - irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
6693 -
6694 - per_cpu(hardirq_ctx, cpu) = irqctx;
6695 @@ -24447,47 +24425,43 @@ index 4186755..18d6a9e 100644
6696 - irqctx->tinfo.addr_limit = MAKE_MM_SEG(0);
6697 -
6698 - per_cpu(softirq_ctx, cpu) = irqctx;
6699 +-
6700 +- printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
6701 +- cpu, per_cpu(hardirq_ctx, cpu), per_cpu(softirq_ctx, cpu));
6702 + per_cpu(hardirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
6703 + per_cpu(softirq_ctx, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
6704 + }
6705
6706 - printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
6707 - cpu, per_cpu(hardirq_ctx, cpu), per_cpu(softirq_ctx, cpu));
6708 -@@ -152,7 +138,6 @@ void irq_ctx_init(int cpu)
6709 - asmlinkage void do_softirq(void)
6710 + void do_softirq_own_stack(void)
6711 {
6712 - unsigned long flags;
6713 - struct thread_info *curctx;
6714 union irq_ctx *irqctx;
6715 u32 *isp;
6716
6717 -@@ -162,15 +147,22 @@ asmlinkage void do_softirq(void)
6718 - local_irq_save(flags);
6719 -
6720 - if (local_softirq_pending()) {
6721 -- curctx = current_thread_info();
6722 - irqctx = __this_cpu_read(softirq_ctx);
6723 -- irqctx->tinfo.task = curctx->task;
6724 -- irqctx->tinfo.previous_esp = current_stack_pointer;
6725 -+ irqctx->previous_esp = current_stack_pointer;
6726 +- curctx = current_thread_info();
6727 + irqctx = __this_cpu_read(softirq_ctx);
6728 +- irqctx->tinfo.task = curctx->task;
6729 +- irqctx->tinfo.previous_esp = current_stack_pointer;
6730 ++ irqctx->previous_esp = current_stack_pointer;
6731
6732 - /* build the stack frame on the softirq stack */
6733 -- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
6734 -+ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
6735 + /* build the stack frame on the softirq stack */
6736 +- isp = (u32 *) ((char *)irqctx + sizeof(*irqctx));
6737 ++ isp = (u32 *) ((char *)irqctx + sizeof(*irqctx) - 8);
6738 +
6739 +#ifdef CONFIG_PAX_MEMORY_UDEREF
6740 -+ __set_fs(MAKE_MM_SEG(0));
6741 ++ __set_fs(MAKE_MM_SEG(0));
6742 +#endif
6743
6744 - call_on_stack(__do_softirq, isp);
6745 + call_on_stack(__do_softirq, isp);
6746 +
6747 +#ifdef CONFIG_PAX_MEMORY_UDEREF
6748 -+ __set_fs(current_thread_info()->addr_limit);
6749 ++ __set_fs(current_thread_info()->addr_limit);
6750 +#endif
6751 +
6752 - /*
6753 - * Shouldn't happen, we returned above if in_interrupt():
6754 - */
6755 -@@ -191,7 +183,7 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
6756 + }
6757 +
6758 + bool handle_irq(unsigned irq, struct pt_regs *regs)
6759 +@@ -173,7 +166,7 @@ bool handle_irq(unsigned irq, struct pt_regs *regs)
6760 if (unlikely(!desc))
6761 return false;
6762
6763 @@ -24497,7 +24471,7 @@ index 4186755..18d6a9e 100644
6764 print_stack_overflow();
6765 desc->handle_irq(irq, desc);
6766 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
6767 -index d04d3ec..ea4b374 100644
6768 +index 4d1c746..232961d 100644
6769 --- a/arch/x86/kernel/irq_64.c
6770 +++ b/arch/x86/kernel/irq_64.c
6771 @@ -44,7 +44,7 @@ static inline void stack_overflow_check(struct pt_regs *regs)
6772 @@ -24510,22 +24484,31 @@ index d04d3ec..ea4b374 100644
6773
6774 if (regs->sp >= curbase + sizeof(struct thread_info) +
6775 diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
6776 -index ee11b7d..4df4d0c 100644
6777 +index 26d5a55..a01160a 100644
6778 --- a/arch/x86/kernel/jump_label.c
6779 +++ b/arch/x86/kernel/jump_label.c
6780 -@@ -49,7 +49,7 @@ static void __jump_label_transform(struct jump_entry *entry,
6781 - * We are enabling this jump label. If it is not a nop
6782 - * then something must have gone wrong.
6783 - */
6784 -- if (unlikely(memcmp((void *)entry->code, ideal_nop, 5) != 0))
6785 -+ if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5) != 0))
6786 - bug_at((void *)entry->code, __LINE__);
6787 -
6788 - code.jump = 0xe9;
6789 -@@ -64,13 +64,13 @@ static void __jump_label_transform(struct jump_entry *entry,
6790 +@@ -51,7 +51,7 @@ static void __jump_label_transform(struct jump_entry *entry,
6791 + * Jump label is enabled for the first time.
6792 + * So we expect a default_nop...
6793 + */
6794 +- if (unlikely(memcmp((void *)entry->code, default_nop, 5)
6795 ++ if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5)
6796 + != 0))
6797 + bug_at((void *)entry->code, __LINE__);
6798 + } else {
6799 +@@ -59,7 +59,7 @@ static void __jump_label_transform(struct jump_entry *entry,
6800 + * ...otherwise expect an ideal_nop. Otherwise
6801 + * something went horribly wrong.
6802 + */
6803 +- if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
6804 ++ if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5)
6805 + != 0))
6806 + bug_at((void *)entry->code, __LINE__);
6807 + }
6808 +@@ -75,13 +75,13 @@ static void __jump_label_transform(struct jump_entry *entry,
6809 + * are converting the default nop to the ideal nop.
6810 */
6811 if (init) {
6812 - const unsigned char default_nop[] = { STATIC_KEY_INIT_NOP };
6813 - if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
6814 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
6815 bug_at((void *)entry->code, __LINE__);
6816 @@ -24950,7 +24933,7 @@ index 5fb2ceb..3ae90bb 100644
6817
6818 static void microcode_fini_cpu(int cpu)
6819 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
6820 -index 216a4d7..228255a 100644
6821 +index 18be189..4a9fe40 100644
6822 --- a/arch/x86/kernel/module.c
6823 +++ b/arch/x86/kernel/module.c
6824 @@ -43,15 +43,60 @@ do { \
6825 @@ -24966,7 +24949,7 @@ index 216a4d7..228255a 100644
6826 return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
6827 - GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
6828 + GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, prot,
6829 - -1, __builtin_return_address(0));
6830 + NUMA_NO_NODE, __builtin_return_address(0));
6831 }
6832
6833 +void *module_alloc(unsigned long size)
6834 @@ -25087,7 +25070,7 @@ index 216a4d7..228255a 100644
6835 if ((s64)val != *(s32 *)loc)
6836 goto overflow;
6837 diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
6838 -index 88458fa..349f7a4 100644
6839 +index 05266b5..1577fde 100644
6840 --- a/arch/x86/kernel/msr.c
6841 +++ b/arch/x86/kernel/msr.c
6842 @@ -233,7 +233,7 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
6843 @@ -25360,6 +25343,33 @@ index 6c483ba..d10ce2f 100644
6844 }
6845
6846 static struct dma_map_ops swiotlb_dma_ops = {
6847 +diff --git a/arch/x86/kernel/preempt.S b/arch/x86/kernel/preempt.S
6848 +index ca7f0d5..8996469 100644
6849 +--- a/arch/x86/kernel/preempt.S
6850 ++++ b/arch/x86/kernel/preempt.S
6851 +@@ -3,12 +3,14 @@
6852 + #include <asm/dwarf2.h>
6853 + #include <asm/asm.h>
6854 + #include <asm/calling.h>
6855 ++#include <asm/alternative-asm.h>
6856 +
6857 + ENTRY(___preempt_schedule)
6858 + CFI_STARTPROC
6859 + SAVE_ALL
6860 + call preempt_schedule
6861 + RESTORE_ALL
6862 ++ pax_force_retaddr
6863 + ret
6864 + CFI_ENDPROC
6865 +
6866 +@@ -19,6 +21,7 @@ ENTRY(___preempt_schedule_context)
6867 + SAVE_ALL
6868 + call preempt_schedule_context
6869 + RESTORE_ALL
6870 ++ pax_force_retaddr
6871 + ret
6872 + CFI_ENDPROC
6873 +
6874 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
6875 index 3fb8d95..254dc51 100644
6876 --- a/arch/x86/kernel/process.c
6877 @@ -25469,7 +25479,7 @@ index 3fb8d95..254dc51 100644
6878 +}
6879 +#endif
6880 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
6881 -index 884f98f..ec23e04 100644
6882 +index 6f1236c..fd448d4 100644
6883 --- a/arch/x86/kernel/process_32.c
6884 +++ b/arch/x86/kernel/process_32.c
6885 @@ -65,6 +65,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
6886 @@ -25549,7 +25559,7 @@ index 884f98f..ec23e04 100644
6887 /*
6888 * Load the per-thread Thread-Local Storage descriptor.
6889 */
6890 -@@ -307,6 +312,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6891 +@@ -315,6 +320,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6892 */
6893 arch_end_context_switch(next_p);
6894
6895 @@ -25559,7 +25569,7 @@ index 884f98f..ec23e04 100644
6896 /*
6897 * Restore %gs if needed (which is common)
6898 */
6899 -@@ -315,8 +323,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6900 +@@ -323,8 +331,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6901
6902 switch_fpu_finish(next_p, fpu);
6903
6904 @@ -25568,13 +25578,13 @@ index 884f98f..ec23e04 100644
6905 return prev_p;
6906 }
6907
6908 -@@ -346,4 +352,3 @@ unsigned long get_wchan(struct task_struct *p)
6909 +@@ -354,4 +360,3 @@ unsigned long get_wchan(struct task_struct *p)
6910 } while (count++ < 16);
6911 return 0;
6912 }
6913 -
6914 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
6915 -index bb1dc51..08dda7f 100644
6916 +index 9c0280f..5bbb1c0 100644
6917 --- a/arch/x86/kernel/process_64.c
6918 +++ b/arch/x86/kernel/process_64.c
6919 @@ -158,10 +158,11 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
6920 @@ -25588,7 +25598,7 @@ index bb1dc51..08dda7f 100644
6921 p->thread.usersp = me->thread.usersp;
6922 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p);
6923 set_tsk_thread_flag(p, TIF_FORK);
6924 - p->fpu_counter = 0;
6925 + p->thread.fpu_counter = 0;
6926 p->thread.io_bitmap_ptr = NULL;
6927 @@ -172,6 +173,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
6928 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
6929 @@ -25618,12 +25628,18 @@ index bb1dc51..08dda7f 100644
6930
6931 /* We must save %fs and %gs before load_TLS() because
6932 * %fs and %gs may be cleared by load_TLS().
6933 -@@ -362,10 +368,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6934 +@@ -362,6 +368,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6935 prev->usersp = this_cpu_read(old_rsp);
6936 this_cpu_write(old_rsp, next->usersp);
6937 this_cpu_write(current_task, next_p);
6938 + this_cpu_write(current_tinfo, &next_p->tinfo);
6939
6940 + /*
6941 + * If it were not for PREEMPT_ACTIVE we could guarantee that the
6942 +@@ -371,9 +378,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
6943 + task_thread_info(prev_p)->saved_preempt_count = this_cpu_read(__preempt_count);
6944 + this_cpu_write(__preempt_count, task_thread_info(next_p)->saved_preempt_count);
6945 +
6946 - this_cpu_write(kernel_stack,
6947 - (unsigned long)task_stack_page(next_p) +
6948 - THREAD_SIZE - KERNEL_STACK_OFFSET);
6949 @@ -25631,7 +25647,7 @@ index bb1dc51..08dda7f 100644
6950
6951 /*
6952 * Now maybe reload the debug registers and handle I/O bitmaps
6953 -@@ -434,12 +439,11 @@ unsigned long get_wchan(struct task_struct *p)
6954 +@@ -442,12 +447,11 @@ unsigned long get_wchan(struct task_struct *p)
6955 if (!p || p == current || p->state == TASK_RUNNING)
6956 return 0;
6957 stack = (unsigned long)task_stack_page(p);
6958 @@ -25776,11 +25792,11 @@ index 7461f50..1334029 100644
6959
6960 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
6961 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
6962 -index a16bae3..1f65f25 100644
6963 +index 2f355d2..e75ed0a 100644
6964 --- a/arch/x86/kernel/pvclock.c
6965 +++ b/arch/x86/kernel/pvclock.c
6966 -@@ -43,11 +43,11 @@ unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
6967 - return pv_tsc_khz;
6968 +@@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
6969 + reset_hung_task_detector();
6970 }
6971
6972 -static atomic64_t last_value = ATOMIC64_INIT(0);
6973 @@ -25793,7 +25809,7 @@ index a16bae3..1f65f25 100644
6974 }
6975
6976 u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
6977 -@@ -92,11 +92,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
6978 +@@ -105,11 +105,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
6979 * updating at the same time, and one of them could be slightly behind,
6980 * making the assumption that last_value always go forward fail to hold.
6981 */
6982 @@ -25808,7 +25824,7 @@ index a16bae3..1f65f25 100644
6983
6984 return ret;
6985 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
6986 -index 618ce26..ec7e21c 100644
6987 +index c752cb4..866c432 100644
6988 --- a/arch/x86/kernel/reboot.c
6989 +++ b/arch/x86/kernel/reboot.c
6990 @@ -68,6 +68,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
6991 @@ -25854,7 +25870,7 @@ index 618ce26..ec7e21c 100644
6992 "rm" (real_mode_header->machine_real_restart_asm),
6993 "a" (type));
6994 #else
6995 -@@ -466,7 +493,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
6996 +@@ -470,7 +497,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
6997 * try to force a triple fault and then cycle between hitting the keyboard
6998 * controller and doing that
6999 */
7000 @@ -25863,7 +25879,7 @@ index 618ce26..ec7e21c 100644
7001 {
7002 int i;
7003 int attempt = 0;
7004 -@@ -575,13 +602,13 @@ void native_machine_shutdown(void)
7005 +@@ -593,13 +620,13 @@ void native_machine_shutdown(void)
7006 #endif
7007 }
7008
7009 @@ -25879,7 +25895,7 @@ index 618ce26..ec7e21c 100644
7010 {
7011 pr_notice("machine restart\n");
7012
7013 -@@ -590,7 +617,7 @@ static void native_machine_restart(char *__unused)
7014 +@@ -608,7 +635,7 @@ static void native_machine_restart(char *__unused)
7015 __machine_emergency_restart(0);
7016 }
7017
7018 @@ -25888,7 +25904,7 @@ index 618ce26..ec7e21c 100644
7019 {
7020 /* Stop other cpus and apics */
7021 machine_shutdown();
7022 -@@ -600,7 +627,7 @@ static void native_machine_halt(void)
7023 +@@ -618,7 +645,7 @@ static void native_machine_halt(void)
7024 stop_this_cpu(NULL);
7025 }
7026
7027 @@ -25897,7 +25913,7 @@ index 618ce26..ec7e21c 100644
7028 {
7029 if (pm_power_off) {
7030 if (!reboot_force)
7031 -@@ -609,9 +636,10 @@ static void native_machine_power_off(void)
7032 +@@ -627,9 +654,10 @@ static void native_machine_power_off(void)
7033 }
7034 /* A fallback in case there is no PM info available */
7035 tboot_shutdown(TB_SHUTDOWN_HALT);
7036 @@ -25953,7 +25969,7 @@ index 3fd2c69..16ef367 100644
7037
7038 1:
7039 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
7040 -index f0de629..a4978a8f 100644
7041 +index cb233bc..23b4879 100644
7042 --- a/arch/x86/kernel/setup.c
7043 +++ b/arch/x86/kernel/setup.c
7044 @@ -110,6 +110,7 @@
7045 @@ -26237,10 +26253,10 @@ index 7c3a5a6..f0a8961 100644
7046 .smp_prepare_cpus = native_smp_prepare_cpus,
7047 .smp_cpus_done = native_smp_cpus_done,
7048 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
7049 -index 6cacab6..750636a 100644
7050 +index 85dc05a..1241266 100644
7051 --- a/arch/x86/kernel/smpboot.c
7052 +++ b/arch/x86/kernel/smpboot.c
7053 -@@ -251,14 +251,18 @@ static void notrace start_secondary(void *unused)
7054 +@@ -229,14 +229,18 @@ static void notrace start_secondary(void *unused)
7055
7056 enable_start_cpu0 = 0;
7057
7058 @@ -26265,7 +26281,7 @@ index 6cacab6..750636a 100644
7059 /*
7060 * Check TSC synchronization with the BP:
7061 */
7062 -@@ -749,6 +753,7 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
7063 +@@ -751,6 +755,7 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
7064 idle->thread.sp = (unsigned long) (((struct pt_regs *)
7065 (THREAD_SIZE + task_stack_page(idle))) - 1);
7066 per_cpu(current_task, cpu) = idle;
7067 @@ -26273,7 +26289,7 @@ index 6cacab6..750636a 100644
7068
7069 #ifdef CONFIG_X86_32
7070 /* Stack for startup_32 can be just as for start_secondary onwards */
7071 -@@ -756,11 +761,13 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
7072 +@@ -758,11 +763,13 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
7073 #else
7074 clear_tsk_thread_flag(idle, TIF_FORK);
7075 initial_gs = per_cpu_offset(cpu);
7076 @@ -26290,7 +26306,7 @@ index 6cacab6..750636a 100644
7077 initial_code = (unsigned long)start_secondary;
7078 stack_start = idle->thread.sp;
7079
7080 -@@ -909,6 +916,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
7081 +@@ -911,6 +918,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
7082 /* the FPU context is blank, nobody can own it */
7083 __cpu_disable_lazy_restore(cpu);
7084
7085 @@ -26633,7 +26649,7 @@ index 30277e2..5664a29 100644
7086 if (!(addr & ~PAGE_MASK))
7087 return addr;
7088 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
7089 -index 91a4496..1730bff 100644
7090 +index 91a4496..bb87552 100644
7091 --- a/arch/x86/kernel/tboot.c
7092 +++ b/arch/x86/kernel/tboot.c
7093 @@ -221,7 +221,7 @@ static int tboot_setup_sleep(void)
7094 @@ -26650,7 +26666,7 @@ index 91a4496..1730bff 100644
7095 switch_to_tboot_pt();
7096
7097 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
7098 -+ shutdown = (void *)tboot->shutdown_entry;
7099 ++ shutdown = (void *)(unsigned long)tboot->shutdown_entry;
7100 shutdown();
7101
7102 /* should not reach here */
7103 @@ -26762,7 +26778,7 @@ index 1c113db..287b42e 100644
7104 static int trace_irq_vector_refcount;
7105 static DEFINE_MUTEX(irq_vector_mutex);
7106 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
7107 -index 8c8093b..c93f581 100644
7108 +index b857ed8..51ae4cb 100644
7109 --- a/arch/x86/kernel/traps.c
7110 +++ b/arch/x86/kernel/traps.c
7111 @@ -66,7 +66,7 @@
7112 @@ -27025,7 +27041,7 @@ index e8edcf5..27f9344 100644
7113 goto cannot_handle;
7114 if ((segoffs >> 16) == BIOSSEG)
7115 diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
7116 -index 10c4f30..65408b9 100644
7117 +index da6b35a..977e9cf 100644
7118 --- a/arch/x86/kernel/vmlinux.lds.S
7119 +++ b/arch/x86/kernel/vmlinux.lds.S
7120 @@ -26,6 +26,13 @@
7121 @@ -27226,7 +27242,7 @@ index 10c4f30..65408b9 100644
7122
7123 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
7124 __x86_cpu_dev_start = .;
7125 -@@ -253,19 +333,12 @@ SECTIONS
7126 +@@ -262,19 +342,12 @@ SECTIONS
7127 }
7128
7129 . = ALIGN(8);
7130 @@ -27247,7 +27263,7 @@ index 10c4f30..65408b9 100644
7131 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
7132 #endif
7133
7134 -@@ -284,16 +357,10 @@ SECTIONS
7135 +@@ -293,16 +366,10 @@ SECTIONS
7136 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
7137 __smp_locks = .;
7138 *(.smp_locks)
7139 @@ -27265,7 +27281,7 @@ index 10c4f30..65408b9 100644
7140 /* BSS */
7141 . = ALIGN(PAGE_SIZE);
7142 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
7143 -@@ -309,6 +376,7 @@ SECTIONS
7144 +@@ -318,6 +385,7 @@ SECTIONS
7145 __brk_base = .;
7146 . += 64 * 1024; /* 64k alignment slop space */
7147 *(.brk_reservation) /* areas brk users have reserved */
7148 @@ -27273,7 +27289,7 @@ index 10c4f30..65408b9 100644
7149 __brk_limit = .;
7150 }
7151
7152 -@@ -335,13 +403,12 @@ SECTIONS
7153 +@@ -344,13 +412,12 @@ SECTIONS
7154 * for the boot processor.
7155 */
7156 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
7157 @@ -27332,7 +27348,7 @@ index 1f96f93..d5c8f7a 100644
7158 (unsigned long)VSYSCALL_START);
7159
7160 diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
7161 -index b014d94..e775258 100644
7162 +index 04068192..4d75aa6 100644
7163 --- a/arch/x86/kernel/x8664_ksyms_64.c
7164 +++ b/arch/x86/kernel/x8664_ksyms_64.c
7165 @@ -34,8 +34,6 @@ EXPORT_SYMBOL(copy_user_generic_string);
7166 @@ -27344,16 +27360,16 @@ index b014d94..e775258 100644
7167
7168 EXPORT_SYMBOL(copy_page);
7169 EXPORT_SYMBOL(clear_page);
7170 -@@ -66,3 +64,7 @@ EXPORT_SYMBOL(empty_zero_page);
7171 - #ifndef CONFIG_PARAVIRT
7172 - EXPORT_SYMBOL(native_load_gs_index);
7173 +@@ -73,3 +71,7 @@ EXPORT_SYMBOL(___preempt_schedule);
7174 + EXPORT_SYMBOL(___preempt_schedule_context);
7175 + #endif
7176 #endif
7177 +
7178 +#ifdef CONFIG_PAX_PER_CPU_PGD
7179 +EXPORT_SYMBOL(cpu_pgd);
7180 +#endif
7181 diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
7182 -index 8ce0072..431a0e7 100644
7183 +index 021783b..6511282 100644
7184 --- a/arch/x86/kernel/x86_init.c
7185 +++ b/arch/x86/kernel/x86_init.c
7186 @@ -93,7 +93,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
7187 @@ -27374,7 +27390,7 @@ index 8ce0072..431a0e7 100644
7188 .setup_msi_irqs = native_setup_msi_irqs,
7189 .compose_msi_msg = native_compose_msi_msg,
7190 .teardown_msi_irq = native_teardown_msi_irq,
7191 -@@ -140,7 +140,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev, int irq)
7192 +@@ -150,7 +150,7 @@ u32 arch_msix_mask_irq(struct msi_desc *desc, u32 flag)
7193 }
7194 #endif
7195
7196 @@ -27384,9 +27400,40 @@ index 8ce0072..431a0e7 100644
7197 .read = native_io_apic_read,
7198 .write = native_io_apic_write,
7199 diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
7200 -index 422fd82..c3687ca 100644
7201 +index 422fd82..b2d262e 100644
7202 --- a/arch/x86/kernel/xsave.c
7203 +++ b/arch/x86/kernel/xsave.c
7204 +@@ -164,18 +164,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
7205 +
7206 + /* Setup the bytes not touched by the [f]xsave and reserved for SW. */
7207 + sw_bytes = ia32_frame ? &fx_sw_reserved_ia32 : &fx_sw_reserved;
7208 +- err = __copy_to_user(&x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
7209 ++ err = __copy_to_user(x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
7210 +
7211 + if (!use_xsave())
7212 + return err;
7213 +
7214 +- err |= __put_user(FP_XSTATE_MAGIC2, (__u32 *)(buf + xstate_size));
7215 ++ err |= __put_user(FP_XSTATE_MAGIC2, (__u32 __user *)(buf + xstate_size));
7216 +
7217 + /*
7218 + * Read the xstate_bv which we copied (directly from the cpu or
7219 + * from the state in task struct) to the user buffers.
7220 + */
7221 +- err |= __get_user(xstate_bv, (__u32 *)&x->xsave_hdr.xstate_bv);
7222 ++ err |= __get_user(xstate_bv, (__u32 __user *)&x->xsave_hdr.xstate_bv);
7223 +
7224 + /*
7225 + * For legacy compatible, we always set FP/SSE bits in the bit
7226 +@@ -190,7 +190,7 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
7227 + */
7228 + xstate_bv |= XSTATE_FPSSE;
7229 +
7230 +- err |= __put_user(xstate_bv, (__u32 *)&x->xsave_hdr.xstate_bv);
7231 ++ err |= __put_user(xstate_bv, (__u32 __user *)&x->xsave_hdr.xstate_bv);
7232 +
7233 + return err;
7234 + }
7235 @@ -199,6 +199,7 @@ static inline int save_user_xstate(struct xsave_struct __user *buf)
7236 {
7237 int err;
7238 @@ -27404,10 +27451,10 @@ index 422fd82..c3687ca 100644
7239 if ((unsigned long)buf % 64 || fx_only) {
7240 u64 init_bv = pcntxt_mask & ~XSTATE_FPSSE;
7241 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
7242 -index b110fe6..d9c19f2 100644
7243 +index c697625..a032162 100644
7244 --- a/arch/x86/kvm/cpuid.c
7245 +++ b/arch/x86/kvm/cpuid.c
7246 -@@ -124,15 +124,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
7247 +@@ -156,15 +156,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
7248 struct kvm_cpuid2 *cpuid,
7249 struct kvm_cpuid_entry2 __user *entries)
7250 {
7251 @@ -27431,7 +27478,7 @@ index b110fe6..d9c19f2 100644
7252 vcpu->arch.cpuid_nent = cpuid->nent;
7253 kvm_apic_set_version(vcpu);
7254 kvm_x86_ops->cpuid_update(vcpu);
7255 -@@ -147,15 +152,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
7256 +@@ -179,15 +184,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
7257 struct kvm_cpuid2 *cpuid,
7258 struct kvm_cpuid_entry2 __user *entries)
7259 {
7260 @@ -27455,7 +27502,7 @@ index b110fe6..d9c19f2 100644
7261
7262 out:
7263 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
7264 -index 1673940..4bce95e 100644
7265 +index 775702f..737d4a9 100644
7266 --- a/arch/x86/kvm/lapic.c
7267 +++ b/arch/x86/kvm/lapic.c
7268 @@ -55,7 +55,7 @@
7269 @@ -27481,10 +27528,10 @@ index ad75d77..a679d32 100644
7270 goto error;
7271 walker->ptep_user[walker->level - 1] = ptep_user;
7272 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
7273 -index c0bc803..6837a50 100644
7274 +index c7168a5..09070fc 100644
7275 --- a/arch/x86/kvm/svm.c
7276 +++ b/arch/x86/kvm/svm.c
7277 -@@ -3501,7 +3501,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
7278 +@@ -3497,7 +3497,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
7279 int cpu = raw_smp_processor_id();
7280
7281 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
7282 @@ -27496,7 +27543,7 @@ index c0bc803..6837a50 100644
7283 load_TR_desc();
7284 }
7285
7286 -@@ -3902,6 +3906,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
7287 +@@ -3898,6 +3902,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
7288 #endif
7289 #endif
7290
7291 @@ -27508,7 +27555,7 @@ index c0bc803..6837a50 100644
7292
7293 local_irq_disable();
7294 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
7295 -index 6128914..8be1dd2 100644
7296 +index da7837e..86c6ebf 100644
7297 --- a/arch/x86/kvm/vmx.c
7298 +++ b/arch/x86/kvm/vmx.c
7299 @@ -1316,12 +1316,12 @@ static void vmcs_write64(unsigned long field, u64 value)
7300 @@ -27549,7 +27596,7 @@ index 6128914..8be1dd2 100644
7301 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
7302 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
7303 vmx->loaded_vmcs->cpu = cpu;
7304 -@@ -2037,7 +2045,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
7305 +@@ -2033,7 +2041,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
7306 * reads and returns guest's timestamp counter "register"
7307 * guest_tsc = host_tsc + tsc_offset -- 21.3
7308 */
7309 @@ -27558,7 +27605,7 @@ index 6128914..8be1dd2 100644
7310 {
7311 u64 host_tsc, tsc_offset;
7312
7313 -@@ -2982,8 +2990,11 @@ static __init int hardware_setup(void)
7314 +@@ -2987,8 +2995,11 @@ static __init int hardware_setup(void)
7315 if (!cpu_has_vmx_flexpriority())
7316 flexpriority_enabled = 0;
7317
7318 @@ -27572,7 +27619,7 @@ index 6128914..8be1dd2 100644
7319
7320 if (enable_ept && !cpu_has_vmx_ept_2m_page())
7321 kvm_disable_largepages();
7322 -@@ -2994,13 +3005,15 @@ static __init int hardware_setup(void)
7323 +@@ -2999,13 +3010,15 @@ static __init int hardware_setup(void)
7324 if (!cpu_has_vmx_apicv())
7325 enable_apicv = 0;
7326
7327 @@ -27592,7 +27639,7 @@ index 6128914..8be1dd2 100644
7328
7329 if (nested)
7330 nested_vmx_setup_ctls_msrs();
7331 -@@ -4127,7 +4140,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
7332 +@@ -4134,7 +4147,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
7333
7334 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
7335 vmcs_writel(HOST_CR4, read_cr4()); /* 22.2.3, 22.2.5 */
7336 @@ -27603,7 +27650,7 @@ index 6128914..8be1dd2 100644
7337
7338 vmcs_write16(HOST_CS_SELECTOR, __KERNEL_CS); /* 22.2.4 */
7339 #ifdef CONFIG_X86_64
7340 -@@ -4149,7 +4165,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
7341 +@@ -4156,7 +4172,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
7342 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
7343 vmx->host_idt_base = dt.address;
7344
7345 @@ -27612,7 +27659,7 @@ index 6128914..8be1dd2 100644
7346
7347 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
7348 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
7349 -@@ -7191,6 +7207,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7350 +@@ -7219,6 +7235,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7351 "jmp 2f \n\t"
7352 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
7353 "2: "
7354 @@ -27625,7 +27672,7 @@ index 6128914..8be1dd2 100644
7355 /* Save guest registers, load host registers, keep flags */
7356 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
7357 "pop %0 \n\t"
7358 -@@ -7243,6 +7265,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7359 +@@ -7271,6 +7293,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7360 #endif
7361 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
7362 [wordsize]"i"(sizeof(ulong))
7363 @@ -27637,7 +27684,7 @@ index 6128914..8be1dd2 100644
7364 : "cc", "memory"
7365 #ifdef CONFIG_X86_64
7366 , "rax", "rbx", "rdi", "rsi"
7367 -@@ -7256,7 +7283,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7368 +@@ -7284,7 +7311,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7369 if (debugctlmsr)
7370 update_debugctlmsr(debugctlmsr);
7371
7372 @@ -27646,7 +27693,7 @@ index 6128914..8be1dd2 100644
7373 /*
7374 * The sysexit path does not restore ds/es, so we must set them to
7375 * a reasonable value ourselves.
7376 -@@ -7265,8 +7292,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7377 +@@ -7293,8 +7320,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
7378 * may be executed in interrupt context, which saves and restore segments
7379 * around it, nullifying its effect.
7380 */
7381 @@ -27668,10 +27715,10 @@ index 6128914..8be1dd2 100644
7382
7383 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
7384 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
7385 -index eb9b9c9..0f30b12 100644
7386 +index 5d004da..0802480 100644
7387 --- a/arch/x86/kvm/x86.c
7388 +++ b/arch/x86/kvm/x86.c
7389 -@@ -1779,8 +1779,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
7390 +@@ -1788,8 +1788,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
7391 {
7392 struct kvm *kvm = vcpu->kvm;
7393 int lm = is_long_mode(vcpu);
7394 @@ -27682,7 +27729,7 @@ index eb9b9c9..0f30b12 100644
7395 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
7396 : kvm->arch.xen_hvm_config.blob_size_32;
7397 u32 page_num = data & ~PAGE_MASK;
7398 -@@ -2663,6 +2663,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
7399 +@@ -2673,6 +2673,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
7400 if (n < msr_list.nmsrs)
7401 goto out;
7402 r = -EFAULT;
7403 @@ -27691,7 +27738,7 @@ index eb9b9c9..0f30b12 100644
7404 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
7405 num_msrs_to_save * sizeof(u32)))
7406 goto out;
7407 -@@ -5461,7 +5463,7 @@ static struct notifier_block pvclock_gtod_notifier = {
7408 +@@ -5482,7 +5484,7 @@ static struct notifier_block pvclock_gtod_notifier = {
7409 };
7410 #endif
7411
7412 @@ -29854,7 +29901,7 @@ index a63efd6..8149fbe 100644
7413 ret
7414 CFI_ENDPROC
7415 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
7416 -index 3eb18ac..4b22130 100644
7417 +index e2f5e21..4b22130 100644
7418 --- a/arch/x86/lib/usercopy_32.c
7419 +++ b/arch/x86/lib/usercopy_32.c
7420 @@ -42,11 +42,13 @@ do { \
7421 @@ -30351,7 +30398,7 @@ index 3eb18ac..4b22130 100644
7422 clac();
7423 return n;
7424 }
7425 -@@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
7426 +@@ -632,58 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
7427 if (n > 64 && cpu_has_xmm2)
7428 n = __copy_user_intel_nocache(to, from, n);
7429 else
7430 @@ -30379,8 +30426,7 @@ index 3eb18ac..4b22130 100644
7431 - * Returns number of bytes that could not be copied.
7432 - * On success, this will be zero.
7433 - */
7434 --unsigned long
7435 --copy_to_user(void __user *to, const void *from, unsigned long n)
7436 +-unsigned long _copy_to_user(void __user *to, const void *from, unsigned n)
7437 +#ifdef CONFIG_PAX_MEMORY_UDEREF
7438 +void __set_fs(mm_segment_t x)
7439 {
7440 @@ -30401,7 +30447,7 @@ index 3eb18ac..4b22130 100644
7441 + BUG();
7442 + }
7443 }
7444 --EXPORT_SYMBOL(copy_to_user);
7445 +-EXPORT_SYMBOL(_copy_to_user);
7446 +EXPORT_SYMBOL(__set_fs);
7447
7448 -/**
7449 @@ -30420,8 +30466,7 @@ index 3eb18ac..4b22130 100644
7450 - * If some data could not be copied, this function will pad the copied
7451 - * data to the requested size using zero bytes.
7452 - */
7453 --unsigned long
7454 --_copy_from_user(void *to, const void __user *from, unsigned long n)
7455 +-unsigned long _copy_from_user(void *to, const void __user *from, unsigned n)
7456 +void set_fs(mm_segment_t x)
7457 {
7458 - if (access_ok(VERIFY_READ, from, n))
7459 @@ -30499,10 +30544,10 @@ index c905e89..01ab928 100644
7460 return len;
7461 }
7462 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
7463 -index 23d8e5f..9ccc13a 100644
7464 +index 6a19ad9..1c48f9a 100644
7465 --- a/arch/x86/mm/Makefile
7466 +++ b/arch/x86/mm/Makefile
7467 -@@ -28,3 +28,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
7468 +@@ -30,3 +30,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
7469 obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
7470
7471 obj-$(CONFIG_MEMTEST) += memtest.o
7472 @@ -30565,7 +30610,7 @@ index 903ec1e..c4166b2 100644
7473 }
7474
7475 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
7476 -index 3aaeffc..42ea9fb 100644
7477 +index 9d591c8..2e61790 100644
7478 --- a/arch/x86/mm/fault.c
7479 +++ b/arch/x86/mm/fault.c
7480 @@ -14,11 +14,18 @@
7481 @@ -30585,9 +30630,9 @@ index 3aaeffc..42ea9fb 100644
7482 +#include <asm/stacktrace.h>
7483 +#endif
7484
7485 - /*
7486 - * Page fault error code bits:
7487 -@@ -56,7 +63,7 @@ static inline int __kprobes notify_page_fault(struct pt_regs *regs)
7488 + #define CREATE_TRACE_POINTS
7489 + #include <asm/trace/exceptions.h>
7490 +@@ -59,7 +66,7 @@ static inline int __kprobes kprobes_fault(struct pt_regs *regs)
7491 int ret = 0;
7492
7493 /* kprobe_running() needs smp_processor_id() */
7494 @@ -30596,7 +30641,7 @@ index 3aaeffc..42ea9fb 100644
7495 preempt_disable();
7496 if (kprobe_running() && kprobe_fault_handler(regs, 14))
7497 ret = 1;
7498 -@@ -117,7 +124,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
7499 +@@ -120,7 +127,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
7500 return !instr_lo || (instr_lo>>1) == 1;
7501 case 0x00:
7502 /* Prefetch instruction is 0x0F0D or 0x0F18 */
7503 @@ -30608,7 +30653,7 @@ index 3aaeffc..42ea9fb 100644
7504 return 0;
7505
7506 *prefetch = (instr_lo == 0xF) &&
7507 -@@ -151,7 +161,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
7508 +@@ -154,7 +164,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
7509 while (instr < max_instr) {
7510 unsigned char opcode;
7511
7512 @@ -30620,7 +30665,7 @@ index 3aaeffc..42ea9fb 100644
7513 break;
7514
7515 instr++;
7516 -@@ -182,6 +195,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
7517 +@@ -185,6 +198,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
7518 force_sig_info(si_signo, &info, tsk);
7519 }
7520
7521 @@ -30655,7 +30700,7 @@ index 3aaeffc..42ea9fb 100644
7522 DEFINE_SPINLOCK(pgd_lock);
7523 LIST_HEAD(pgd_list);
7524
7525 -@@ -232,10 +273,27 @@ void vmalloc_sync_all(void)
7526 +@@ -235,10 +276,27 @@ void vmalloc_sync_all(void)
7527 for (address = VMALLOC_START & PMD_MASK;
7528 address >= TASK_SIZE && address < FIXADDR_TOP;
7529 address += PMD_SIZE) {
7530 @@ -30683,7 +30728,7 @@ index 3aaeffc..42ea9fb 100644
7531 spinlock_t *pgt_lock;
7532 pmd_t *ret;
7533
7534 -@@ -243,8 +301,14 @@ void vmalloc_sync_all(void)
7535 +@@ -246,8 +304,14 @@ void vmalloc_sync_all(void)
7536 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
7537
7538 spin_lock(pgt_lock);
7539 @@ -30699,7 +30744,7 @@ index 3aaeffc..42ea9fb 100644
7540
7541 if (!ret)
7542 break;
7543 -@@ -278,6 +342,12 @@ static noinline __kprobes int vmalloc_fault(unsigned long address)
7544 +@@ -281,6 +345,12 @@ static noinline __kprobes int vmalloc_fault(unsigned long address)
7545 * an interrupt in the middle of a task switch..
7546 */
7547 pgd_paddr = read_cr3();
7548 @@ -30712,7 +30757,7 @@ index 3aaeffc..42ea9fb 100644
7549 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
7550 if (!pmd_k)
7551 return -1;
7552 -@@ -373,11 +443,25 @@ static noinline __kprobes int vmalloc_fault(unsigned long address)
7553 +@@ -376,11 +446,25 @@ static noinline __kprobes int vmalloc_fault(unsigned long address)
7554 * happen within a race in page table update. In the later
7555 * case just flush:
7556 */
7557 @@ -30739,7 +30784,7 @@ index 3aaeffc..42ea9fb 100644
7558 if (pgd_none(*pgd)) {
7559 set_pgd(pgd, *pgd_ref);
7560 arch_flush_lazy_mmu_mode();
7561 -@@ -543,7 +627,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
7562 +@@ -546,7 +630,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
7563 static int is_errata100(struct pt_regs *regs, unsigned long address)
7564 {
7565 #ifdef CONFIG_X86_64
7566 @@ -30748,7 +30793,7 @@ index 3aaeffc..42ea9fb 100644
7567 return 1;
7568 #endif
7569 return 0;
7570 -@@ -570,7 +654,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
7571 +@@ -573,7 +657,7 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
7572 }
7573
7574 static const char nx_warning[] = KERN_CRIT
7575 @@ -30757,7 +30802,7 @@ index 3aaeffc..42ea9fb 100644
7576
7577 static void
7578 show_fault_oops(struct pt_regs *regs, unsigned long error_code,
7579 -@@ -579,15 +663,27 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
7580 +@@ -582,15 +666,27 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
7581 if (!oops_may_print())
7582 return;
7583
7584 @@ -30787,7 +30832,7 @@ index 3aaeffc..42ea9fb 100644
7585 printk(KERN_ALERT "BUG: unable to handle kernel ");
7586 if (address < PAGE_SIZE)
7587 printk(KERN_CONT "NULL pointer dereference");
7588 -@@ -750,6 +846,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
7589 +@@ -771,6 +867,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
7590 return;
7591 }
7592 #endif
7593 @@ -30810,7 +30855,7 @@ index 3aaeffc..42ea9fb 100644
7594 /* Kernel addresses are always protection faults: */
7595 if (address >= TASK_SIZE)
7596 error_code |= PF_PROT;
7597 -@@ -835,7 +947,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
7598 +@@ -856,7 +968,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
7599 if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
7600 printk(KERN_ERR
7601 "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
7602 @@ -30819,7 +30864,7 @@ index 3aaeffc..42ea9fb 100644
7603 code = BUS_MCEERR_AR;
7604 }
7605 #endif
7606 -@@ -889,6 +1001,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
7607 +@@ -910,6 +1022,99 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
7608 return 1;
7609 }
7610
7611 @@ -30919,7 +30964,7 @@ index 3aaeffc..42ea9fb 100644
7612 /*
7613 * Handle a spurious fault caused by a stale TLB entry.
7614 *
7615 -@@ -955,6 +1160,9 @@ int show_unhandled_signals = 1;
7616 +@@ -976,6 +1181,9 @@ int show_unhandled_signals = 1;
7617 static inline int
7618 access_error(unsigned long error_code, struct vm_area_struct *vma)
7619 {
7620 @@ -30929,7 +30974,7 @@ index 3aaeffc..42ea9fb 100644
7621 if (error_code & PF_WRITE) {
7622 /* write, present and write, not present: */
7623 if (unlikely(!(vma->vm_flags & VM_WRITE)))
7624 -@@ -983,7 +1191,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
7625 +@@ -1004,7 +1212,7 @@ static inline bool smap_violation(int error_code, struct pt_regs *regs)
7626 if (error_code & PF_USER)
7627 return false;
7628
7629 @@ -30938,7 +30983,7 @@ index 3aaeffc..42ea9fb 100644
7630 return false;
7631
7632 return true;
7633 -@@ -1010,6 +1218,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
7634 +@@ -1031,6 +1239,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
7635 /* Get the faulting address: */
7636 address = read_cr2();
7637
7638 @@ -30961,7 +31006,7 @@ index 3aaeffc..42ea9fb 100644
7639 /*
7640 * Detect and handle instructions that would cause a page fault for
7641 * both a tracked kernel page and a userspace page.
7642 -@@ -1069,7 +1293,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
7643 +@@ -1110,7 +1334,7 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code)
7644 * User-mode registers count as a user access even for any
7645 * potential system fault or CPU buglet:
7646 */
7647 @@ -30970,7 +31015,7 @@ index 3aaeffc..42ea9fb 100644
7648 local_irq_enable();
7649 error_code |= PF_USER;
7650 flags |= FAULT_FLAG_USER;
7651 -@@ -1135,6 +1359,11 @@ retry:
7652 +@@ -1157,6 +1381,11 @@ retry:
7653 might_sleep();
7654 }
7655
7656 @@ -30982,7 +31027,7 @@ index 3aaeffc..42ea9fb 100644
7657 vma = find_vma(mm, address);
7658 if (unlikely(!vma)) {
7659 bad_area(regs, error_code, address);
7660 -@@ -1146,18 +1375,24 @@ retry:
7661 +@@ -1168,18 +1397,24 @@ retry:
7662 bad_area(regs, error_code, address);
7663 return;
7664 }
7665 @@ -31018,7 +31063,7 @@ index 3aaeffc..42ea9fb 100644
7666 if (unlikely(expand_stack(vma, address))) {
7667 bad_area(regs, error_code, address);
7668 return;
7669 -@@ -1231,3 +1466,292 @@ do_page_fault(struct pt_regs *regs, unsigned long error_code)
7670 +@@ -1273,3 +1508,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
7671 __do_page_fault(regs, error_code);
7672 exception_exit(prev_state);
7673 }
7674 @@ -31460,7 +31505,7 @@ index 9d980d8..6bbfacb 100644
7675
7676 #endif /*HAVE_ARCH_HUGETLB_UNMAPPED_AREA*/
7677 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
7678 -index 04664cd..dae6e5d 100644
7679 +index f971306..e83e0f6 100644
7680 --- a/arch/x86/mm/init.c
7681 +++ b/arch/x86/mm/init.c
7682 @@ -4,6 +4,7 @@
7683 @@ -31480,7 +31525,7 @@ index 04664cd..dae6e5d 100644
7684
7685 #include "mm_internal.h"
7686
7687 -@@ -465,7 +468,18 @@ void __init init_mem_mapping(void)
7688 +@@ -563,7 +566,18 @@ void __init init_mem_mapping(void)
7689 early_ioremap_page_table_range_init();
7690 #endif
7691
7692 @@ -31499,7 +31544,7 @@ index 04664cd..dae6e5d 100644
7693 __flush_tlb_all();
7694
7695 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
7696 -@@ -481,10 +495,40 @@ void __init init_mem_mapping(void)
7697 +@@ -579,10 +593,40 @@ void __init init_mem_mapping(void)
7698 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
7699 * mmio resources as well as potential bios/acpi data regions.
7700 */
7701 @@ -31541,7 +31586,7 @@ index 04664cd..dae6e5d 100644
7702 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
7703 return 0;
7704 if (!page_is_ram(pagenr))
7705 -@@ -530,8 +574,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
7706 +@@ -628,8 +672,117 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
7707 #endif
7708 }
7709
7710 @@ -32277,7 +32322,7 @@ index 0057a7a..95c7edd 100644
7711 might_sleep();
7712 if (is_enabled()) /* recheck and proper locking in *_core() */
7713 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
7714 -index 8bf93ba..dbcd670 100644
7715 +index 24aec58..c39fe8b 100644
7716 --- a/arch/x86/mm/numa.c
7717 +++ b/arch/x86/mm/numa.c
7718 @@ -474,7 +474,7 @@ static bool __init numa_meminfo_cover_memory(const struct numa_meminfo *mi)
7719 @@ -32504,10 +32549,10 @@ index 9f0614d..92ae64a 100644
7720 p += get_opcode(p, &opcode);
7721 for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
7722 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
7723 -index dfa537a..fd45c64 100644
7724 +index c96314a..433b127 100644
7725 --- a/arch/x86/mm/pgtable.c
7726 +++ b/arch/x86/mm/pgtable.c
7727 -@@ -91,10 +91,67 @@ static inline void pgd_list_del(pgd_t *pgd)
7728 +@@ -97,10 +97,71 @@ static inline void pgd_list_del(pgd_t *pgd)
7729 list_del(&page->lru);
7730 }
7731
7732 @@ -32556,6 +32601,8 @@ index dfa537a..fd45c64 100644
7733 +#define pxd_t pud_t
7734 +#define pyd_t pgd_t
7735 +#define paravirt_release_pxd(pfn) paravirt_release_pud(pfn)
7736 ++#define pgtable_pxd_page_ctor(page) true
7737 ++#define pgtable_pxd_page_dtor(page)
7738 +#define pxd_free(mm, pud) pud_free((mm), (pud))
7739 +#define pyd_populate(mm, pgd, pud) pgd_populate((mm), (pgd), (pud))
7740 +#define pyd_offset(mm, address) pgd_offset((mm), (address))
7741 @@ -32564,6 +32611,8 @@ index dfa537a..fd45c64 100644
7742 +#define pxd_t pmd_t
7743 +#define pyd_t pud_t
7744 +#define paravirt_release_pxd(pfn) paravirt_release_pmd(pfn)
7745 ++#define pgtable_pxd_page_ctor(page) pgtable_pmd_page_ctor(page)
7746 ++#define pgtable_pxd_page_dtor(page) pgtable_pmd_page_dtor(page)
7747 +#define pxd_free(mm, pud) pmd_free((mm), (pud))
7748 +#define pyd_populate(mm, pgd, pud) pud_populate((mm), (pgd), (pud))
7749 +#define pyd_offset(mm, address) pud_offset((mm), (address))
7750 @@ -32577,7 +32626,7 @@ index dfa537a..fd45c64 100644
7751 static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
7752 {
7753 BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
7754 -@@ -135,6 +192,7 @@ static void pgd_dtor(pgd_t *pgd)
7755 +@@ -141,6 +202,7 @@ static void pgd_dtor(pgd_t *pgd)
7756 pgd_list_del(pgd);
7757 spin_unlock(&pgd_lock);
7758 }
7759 @@ -32585,7 +32634,7 @@ index dfa537a..fd45c64 100644
7760
7761 /*
7762 * List of all pgd's needed for non-PAE so it can invalidate entries
7763 -@@ -147,7 +205,7 @@ static void pgd_dtor(pgd_t *pgd)
7764 +@@ -153,7 +215,7 @@ static void pgd_dtor(pgd_t *pgd)
7765 * -- nyc
7766 */
7767
7768 @@ -32594,7 +32643,7 @@ index dfa537a..fd45c64 100644
7769 /*
7770 * In PAE mode, we need to do a cr3 reload (=tlb flush) when
7771 * updating the top-level pagetable entries to guarantee the
7772 -@@ -159,7 +217,7 @@ static void pgd_dtor(pgd_t *pgd)
7773 +@@ -165,7 +227,7 @@ static void pgd_dtor(pgd_t *pgd)
7774 * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
7775 * and initialize the kernel pmds here.
7776 */
7777 @@ -32603,7 +32652,7 @@ index dfa537a..fd45c64 100644
7778
7779 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
7780 {
7781 -@@ -177,36 +235,38 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
7782 +@@ -183,43 +245,45 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
7783 */
7784 flush_tlb_mm(mm);
7785 }
7786 @@ -32623,11 +32672,14 @@ index dfa537a..fd45c64 100644
7787 int i;
7788
7789 - for(i = 0; i < PREALLOCATED_PMDS; i++)
7790 -- if (pmds[i])
7791 +- if (pmds[i]) {
7792 +- pgtable_pmd_page_dtor(virt_to_page(pmds[i]));
7793 - free_page((unsigned long)pmds[i]);
7794 + for(i = 0; i < PREALLOCATED_PXDS; i++)
7795 -+ if (pxds[i])
7796 ++ if (pxds[i]) {
7797 ++ pgtable_pxd_page_dtor(virt_to_page(pxds[i]));
7798 + free_page((unsigned long)pxds[i]);
7799 + }
7800 }
7801
7802 -static int preallocate_pmds(pmd_t *pmds[])
7803 @@ -32638,11 +32690,19 @@ index dfa537a..fd45c64 100644
7804
7805 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
7806 - pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
7807 -- if (pmd == NULL)
7808 +- if (!pmd)
7809 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
7810 + pxd_t *pxd = (pxd_t *)__get_free_page(PGALLOC_GFP);
7811 -+ if (pxd == NULL)
7812 ++ if (!pxd)
7813 + failed = true;
7814 +- if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
7815 +- free_page((unsigned long)pmd);
7816 +- pmd = NULL;
7817 ++ if (pxd && !pgtable_pxd_page_ctor(virt_to_page(pxd))) {
7818 ++ free_page((unsigned long)pxd);
7819 ++ pxd = NULL;
7820 failed = true;
7821 + }
7822 - pmds[i] = pmd;
7823 + pxds[i] = pxd;
7824 }
7825 @@ -32653,7 +32713,7 @@ index dfa537a..fd45c64 100644
7826 return -ENOMEM;
7827 }
7828
7829 -@@ -219,49 +279,52 @@ static int preallocate_pmds(pmd_t *pmds[])
7830 +@@ -232,49 +296,52 @@ static int preallocate_pmds(pmd_t *pmds[])
7831 * preallocate which never got a corresponding vma will need to be
7832 * freed manually.
7833 */
7834 @@ -32723,7 +32783,7 @@ index dfa537a..fd45c64 100644
7835
7836 pgd = (pgd_t *)__get_free_page(PGALLOC_GFP);
7837
7838 -@@ -270,11 +333,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
7839 +@@ -283,11 +350,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
7840
7841 mm->pgd = pgd;
7842
7843 @@ -32737,7 +32797,7 @@ index dfa537a..fd45c64 100644
7844
7845 /*
7846 * Make sure that pre-populating the pmds is atomic with
7847 -@@ -284,14 +347,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
7848 +@@ -297,14 +364,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
7849 spin_lock(&pgd_lock);
7850
7851 pgd_ctor(mm, pgd);
7852 @@ -32755,7 +32815,7 @@ index dfa537a..fd45c64 100644
7853 out_free_pgd:
7854 free_page((unsigned long)pgd);
7855 out:
7856 -@@ -300,7 +363,7 @@ out:
7857 +@@ -313,7 +380,7 @@ out:
7858
7859 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
7860 {
7861 @@ -33010,7 +33070,7 @@ index 877b9a1..a8ecf42 100644
7862 + pax_force_retaddr
7863 ret
7864 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
7865 -index 26328e8..8dfe0d5 100644
7866 +index 4ed75dd..8dfe0d5 100644
7867 --- a/arch/x86/net/bpf_jit_comp.c
7868 +++ b/arch/x86/net/bpf_jit_comp.c
7869 @@ -50,13 +50,90 @@ static inline u8 *emit_code(u8 *ptr, u32 bytes, unsigned int len)
7870 @@ -33240,14 +33300,9 @@ index 26328e8..8dfe0d5 100644
7871 break;
7872 case BPF_S_ALU_DIV_X: /* A /= X; */
7873 seen |= SEEN_XREG;
7874 -@@ -359,15 +456,29 @@ void bpf_jit_compile(struct sk_filter *fp)
7875 - EMIT2(0x89, 0xd0); /* mov %edx,%eax */
7876 - break;
7877 - case BPF_S_ALU_MOD_K: /* A %= K; */
7878 -+ if (K == 1) {
7879 -+ CLEAR_A();
7880 -+ break;
7881 -+ }
7882 +@@ -364,7 +461,11 @@ void bpf_jit_compile(struct sk_filter *fp)
7883 + break;
7884 + }
7885 EMIT2(0x31, 0xd2); /* xor %edx,%edx */
7886 +#ifdef CONFIG_GRKERNSEC_JIT_HARDEN
7887 + DILUTE_CONST_SEQUENCE(K, randkey);
7888 @@ -33257,24 +33312,19 @@ index 26328e8..8dfe0d5 100644
7889 EMIT2(0xf7, 0xf1); /* div %ecx */
7890 EMIT2(0x89, 0xd0); /* mov %edx,%eax */
7891 break;
7892 -- case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K); */
7893 -- EMIT3(0x48, 0x69, 0xc0); /* imul imm32,%rax,%rax */
7894 -- EMIT(K, 4);
7895 -- EMIT4(0x48, 0xc1, 0xe8, 0x20); /* shr $0x20,%rax */
7896 -+ case BPF_S_ALU_DIV_K: /* A /= K */
7897 -+ if (K == 1)
7898 -+ break;
7899 -+ EMIT2(0x31, 0xd2); /* xor %edx,%edx */
7900 +@@ -372,7 +473,11 @@ void bpf_jit_compile(struct sk_filter *fp)
7901 + if (K == 1)
7902 + break;
7903 + EMIT2(0x31, 0xd2); /* xor %edx,%edx */
7904 +#ifdef CONFIG_GRKERNSEC_JIT_HARDEN
7905 + DILUTE_CONST_SEQUENCE(K, randkey);
7906 +#else
7907 -+ EMIT1(0xb9);EMIT(K, 4); /* mov imm32,%ecx */
7908 + EMIT1(0xb9);EMIT(K, 4); /* mov imm32,%ecx */
7909 +#endif
7910 -+ EMIT2(0xf7, 0xf1); /* div %ecx */
7911 + EMIT2(0xf7, 0xf1); /* div %ecx */
7912 break;
7913 case BPF_S_ALU_AND_X:
7914 - seen |= SEEN_XREG;
7915 -@@ -637,8 +748,7 @@ common_load_ind: seen |= SEEN_DATAREF | SEEN_XREG;
7916 +@@ -643,8 +748,7 @@ common_load_ind: seen |= SEEN_DATAREF | SEEN_XREG;
7917 if (is_imm8(K)) {
7918 EMIT3(0x8d, 0x73, K); /* lea imm8(%rbx), %esi */
7919 } else {
7920 @@ -33284,7 +33334,7 @@ index 26328e8..8dfe0d5 100644
7921 }
7922 } else {
7923 EMIT2(0x89,0xde); /* mov %ebx,%esi */
7924 -@@ -728,10 +838,12 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
7925 +@@ -734,10 +838,12 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
7926 if (unlikely(proglen + ilen > oldproglen)) {
7927 pr_err("bpb_jit_compile fatal error\n");
7928 kfree(addrs);
7929 @@ -33298,7 +33348,7 @@ index 26328e8..8dfe0d5 100644
7930 }
7931 proglen += ilen;
7932 addrs[i] = proglen;
7933 -@@ -764,7 +876,6 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
7934 +@@ -770,7 +876,6 @@ cond_branch: f_offset = addrs[i + filter[i].jf] - addrs[i];
7935
7936 if (image) {
7937 bpf_flush_icache(header, image + proglen);
7938 @@ -33306,7 +33356,7 @@ index 26328e8..8dfe0d5 100644
7939 fp->bpf_func = (void *)image;
7940 }
7941 out:
7942 -@@ -776,10 +887,9 @@ static void bpf_jit_free_deferred(struct work_struct *work)
7943 +@@ -782,10 +887,9 @@ static void bpf_jit_free_deferred(struct work_struct *work)
7944 {
7945 struct sk_filter *fp = container_of(work, struct sk_filter, work);
7946 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
7947 @@ -33320,7 +33370,7 @@ index 26328e8..8dfe0d5 100644
7948 }
7949
7950 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
7951 -index d6aa6e8..266395a 100644
7952 +index 5d04be5..2beeaa2 100644
7953 --- a/arch/x86/oprofile/backtrace.c
7954 +++ b/arch/x86/oprofile/backtrace.c
7955 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
7956 @@ -33329,7 +33379,7 @@ index d6aa6e8..266395a 100644
7957
7958 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
7959 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
7960 - if (bytes != sizeof(bufhead))
7961 + if (bytes != 0)
7962 return NULL;
7963
7964 - fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame);
7965 @@ -33343,7 +33393,7 @@ index d6aa6e8..266395a 100644
7966
7967 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
7968 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
7969 - if (bytes != sizeof(bufhead))
7970 + if (bytes != 0)
7971 return NULL;
7972
7973 @@ -111,7 +111,7 @@ x86_backtrace(struct pt_regs * const regs, unsigned int depth)
7974 @@ -33438,6 +33488,19 @@ index 71e8a67..6a313bb 100644
7975
7976 struct op_counter_config;
7977
7978 +diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
7979 +index 51384ca..a25f51e 100644
7980 +--- a/arch/x86/pci/intel_mid_pci.c
7981 ++++ b/arch/x86/pci/intel_mid_pci.c
7982 +@@ -241,7 +241,7 @@ int __init intel_mid_pci_init(void)
7983 + pr_info("Intel MID platform detected, using MID PCI ops\n");
7984 + pci_mmcfg_late_init();
7985 + pcibios_enable_irq = intel_mid_pci_irq_enable;
7986 +- pci_root_ops = intel_mid_pci_ops;
7987 ++ memcpy((void *)&pci_root_ops, &intel_mid_pci_ops, sizeof pci_root_ops);
7988 + pci_soc_mode = 1;
7989 + /* Continue with standard init */
7990 + return 1;
7991 diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
7992 index 372e9b8..e775a6c 100644
7993 --- a/arch/x86/pci/irq.c
7994 @@ -33478,21 +33541,6 @@ index 372e9b8..e775a6c 100644
7995 {
7996 .callback = fix_broken_hp_bios_irq9,
7997 .ident = "HP Pavilion N5400 Series Laptop",
7998 -diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
7999 -index 903fded..94b0d88 100644
8000 ---- a/arch/x86/pci/mrst.c
8001 -+++ b/arch/x86/pci/mrst.c
8002 -@@ -241,7 +241,9 @@ int __init pci_mrst_init(void)
8003 - pr_info("Intel MID platform detected, using MID PCI ops\n");
8004 - pci_mmcfg_late_init();
8005 - pcibios_enable_irq = mrst_pci_irq_enable;
8006 -- pci_root_ops = pci_mrst_ops;
8007 -+ pax_open_kernel();
8008 -+ memcpy((void *)&pci_root_ops, &pci_mrst_ops, sizeof(pci_mrst_ops));
8009 -+ pax_close_kernel();
8010 - pci_soc_mode = 1;
8011 - /* Continue with standard init */
8012 - return 1;
8013 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
8014 index c77b24a..c979855 100644
8015 --- a/arch/x86/pci/pcbios.c
8016 @@ -34071,28 +34119,22 @@ index 4c07cca..2c8427d 100644
8017 + pax_force_retaddr 0, 1
8018 ret
8019 ENDPROC(efi_call6)
8020 -diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
8021 -index 3ca5957..7909c18 100644
8022 ---- a/arch/x86/platform/mrst/mrst.c
8023 -+++ b/arch/x86/platform/mrst/mrst.c
8024 -@@ -78,13 +78,15 @@ struct sfi_rtc_table_entry sfi_mrtc_array[SFI_MRTC_MAX];
8025 - EXPORT_SYMBOL_GPL(sfi_mrtc_array);
8026 - int sfi_mrtc_num;
8027 -
8028 --static void mrst_power_off(void)
8029 -+static __noreturn void mrst_power_off(void)
8030 +diff --git a/arch/x86/platform/intel-mid/intel-mid.c b/arch/x86/platform/intel-mid/intel-mid.c
8031 +index f90e290..435f0dd 100644
8032 +--- a/arch/x86/platform/intel-mid/intel-mid.c
8033 ++++ b/arch/x86/platform/intel-mid/intel-mid.c
8034 +@@ -65,9 +65,10 @@ static void intel_mid_power_off(void)
8035 {
8036 -+ BUG();
8037 }
8038
8039 --static void mrst_reboot(void)
8040 -+static __noreturn void mrst_reboot(void)
8041 +-static void intel_mid_reboot(void)
8042 ++static void __noreturn intel_mid_reboot(void)
8043 {
8044 intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
8045 + BUG();
8046 }
8047
8048 - /* parse all the mtimer info to a static mtimer array */
8049 + static unsigned long __init intel_mid_calibrate_tsc(void)
8050 diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
8051 index d6ee929..3637cb5 100644
8052 --- a/arch/x86/platform/olpc/olpc_dt.c
8053 @@ -34792,7 +34834,7 @@ index fa6ade7..73da73a5 100644
8054
8055 #ifdef CONFIG_ACPI_NUMA
8056 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
8057 -index fdc3ba2..23cae00 100644
8058 +index ce563be..7327d91 100644
8059 --- a/arch/x86/xen/mmu.c
8060 +++ b/arch/x86/xen/mmu.c
8061 @@ -379,7 +379,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
8062 @@ -34844,7 +34886,7 @@ index fdc3ba2..23cae00 100644
8063 .alloc_pud = xen_alloc_pmd_init,
8064 .release_pud = xen_release_pmd_init,
8065 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
8066 -index 31d0475..51af671 100644
8067 +index c36b325..b0f1518 100644
8068 --- a/arch/x86/xen/smp.c
8069 +++ b/arch/x86/xen/smp.c
8070 @@ -274,17 +274,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
8071 @@ -35056,7 +35098,7 @@ index 4e491d9..c8e18e4 100644
8072 spin_lock_init(&blkcg->lock);
8073 INIT_RADIX_TREE(&blkcg->blkg_tree, GFP_ATOMIC);
8074 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
8075 -index 4b8d9b54..a7178c0 100644
8076 +index 1855bf5..af12b06 100644
8077 --- a/block/blk-iopoll.c
8078 +++ b/block/blk-iopoll.c
8079 @@ -77,7 +77,7 @@ void blk_iopoll_complete(struct blk_iopoll *iopoll)
8080 @@ -35066,7 +35108,7 @@ index 4b8d9b54..a7178c0 100644
8081 -static void blk_iopoll_softirq(struct softirq_action *h)
8082 +static __latent_entropy void blk_iopoll_softirq(void)
8083 {
8084 - struct list_head *list = &__get_cpu_var(blk_cpu_iopoll);
8085 + struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
8086 int rearm = 0, budget = blk_iopoll_budget;
8087 diff --git a/block/blk-map.c b/block/blk-map.c
8088 index 623e1cd..ca1e109 100644
8089 @@ -35082,7 +35124,7 @@ index 623e1cd..ca1e109 100644
8090 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
8091 else
8092 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
8093 -index ec9e606..3f38839 100644
8094 +index 57790c1..5e988dd 100644
8095 --- a/block/blk-softirq.c
8096 +++ b/block/blk-softirq.c
8097 @@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
8098 @@ -35126,9 +35168,18 @@ index 420a5a9..23834aa 100644
8099 if (blk_verify_command(rq->cmd, has_write_perm))
8100 return -EPERM;
8101 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
8102 -index fbd5a67..5d631b5 100644
8103 +index fbd5a67..f24fd95 100644
8104 --- a/block/compat_ioctl.c
8105 +++ b/block/compat_ioctl.c
8106 +@@ -156,7 +156,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
8107 + cgc = compat_alloc_user_space(sizeof(*cgc));
8108 + cgc32 = compat_ptr(arg);
8109 +
8110 +- if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
8111 ++ if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
8112 + get_user(data, &cgc32->buffer) ||
8113 + put_user(compat_ptr(data), &cgc->buffer) ||
8114 + copy_in_user(&cgc->buflen, &cgc32->buflen,
8115 @@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
8116 err |= __get_user(f->spec1, &uf->spec1);
8117 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
8118 @@ -35171,10 +35222,10 @@ index 791f419..89f21c4 100644
8119
8120 EXPORT_SYMBOL(blk_unregister_region);
8121 diff --git a/block/partitions/efi.c b/block/partitions/efi.c
8122 -index a8287b4..241a48e 100644
8123 +index dc51f46..d5446a8 100644
8124 --- a/block/partitions/efi.c
8125 +++ b/block/partitions/efi.c
8126 -@@ -292,14 +292,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
8127 +@@ -293,14 +293,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
8128 if (!gpt)
8129 return NULL;
8130
8131 @@ -35196,7 +35247,7 @@ index a8287b4..241a48e 100644
8132 (u8 *) pte, count) < count) {
8133 kfree(pte);
8134 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
8135 -index a5ffcc9..e057498 100644
8136 +index 625e3e4..b5339f9 100644
8137 --- a/block/scsi_ioctl.c
8138 +++ b/block/scsi_ioctl.c
8139 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
8140 @@ -35230,7 +35281,7 @@ index a5ffcc9..e057498 100644
8141 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
8142 return -EPERM;
8143
8144 -@@ -434,6 +446,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
8145 +@@ -415,6 +427,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
8146 int err;
8147 unsigned int in_len, out_len, bytes, opcode, cmdlen;
8148 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
8149 @@ -35239,7 +35290,7 @@ index a5ffcc9..e057498 100644
8150
8151 if (!sic)
8152 return -EINVAL;
8153 -@@ -467,9 +481,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
8154 +@@ -448,9 +462,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
8155 */
8156 err = -EFAULT;
8157 rq->cmd_len = cmdlen;
8158 @@ -35294,8 +35345,30 @@ index f8c920c..ab2cb5a 100644
8159 if (!ret)
8160 kobject_uevent(&pinst->kobj, KOBJ_ADD);
8161
8162 +diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
8163 +index 15dddc1..b61cf0c 100644
8164 +--- a/drivers/acpi/acpica/hwxfsleep.c
8165 ++++ b/drivers/acpi/acpica/hwxfsleep.c
8166 +@@ -63,11 +63,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
8167 + /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE */
8168 +
8169 + static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
8170 +- {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
8171 +- acpi_hw_extended_sleep},
8172 +- {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
8173 +- acpi_hw_extended_wake_prep},
8174 +- {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), acpi_hw_extended_wake}
8175 ++ {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
8176 ++ .extended_function = acpi_hw_extended_sleep},
8177 ++ {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
8178 ++ .extended_function = acpi_hw_extended_wake_prep},
8179 ++ {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake),
8180 ++ .extended_function = acpi_hw_extended_wake}
8181 + };
8182 +
8183 + /*
8184 diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
8185 -index f220d64..d359ad6 100644
8186 +index 21ba34a..cb05966 100644
8187 --- a/drivers/acpi/apei/apei-internal.h
8188 +++ b/drivers/acpi/apei/apei-internal.h
8189 @@ -20,7 +20,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx,
8190 @@ -35307,34 +35380,13 @@ index f220d64..d359ad6 100644
8191
8192 struct apei_exec_context {
8193 u32 ip;
8194 -diff --git a/drivers/acpi/apei/cper.c b/drivers/acpi/apei/cper.c
8195 -index 33dc6a0..4b24b47 100644
8196 ---- a/drivers/acpi/apei/cper.c
8197 -+++ b/drivers/acpi/apei/cper.c
8198 -@@ -39,12 +39,12 @@
8199 - */
8200 - u64 cper_next_record_id(void)
8201 - {
8202 -- static atomic64_t seq;
8203 -+ static atomic64_unchecked_t seq;
8204 -
8205 -- if (!atomic64_read(&seq))
8206 -- atomic64_set(&seq, ((u64)get_seconds()) << 32);
8207 -+ if (!atomic64_read_unchecked(&seq))
8208 -+ atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
8209 -
8210 -- return atomic64_inc_return(&seq);
8211 -+ return atomic64_inc_return_unchecked(&seq);
8212 - }
8213 - EXPORT_SYMBOL_GPL(cper_next_record_id);
8214 -
8215 diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
8216 -index 8ec37bb..b0716e5 100644
8217 +index a30bc31..b91c4d5 100644
8218 --- a/drivers/acpi/apei/ghes.c
8219 +++ b/drivers/acpi/apei/ghes.c
8220 @@ -498,7 +498,7 @@ static void __ghes_print_estatus(const char *pfx,
8221 const struct acpi_hest_generic *generic,
8222 - const struct acpi_hest_generic_status *estatus)
8223 + const struct acpi_generic_status *estatus)
8224 {
8225 - static atomic_t seqno;
8226 + static atomic_unchecked_t seqno;
8227 @@ -35368,7 +35420,7 @@ index a83e3c6..c3d617f 100644
8228 bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
8229 if (!bgrt_kobj)
8230 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
8231 -index 9515f18..4b149c9 100644
8232 +index 078c4f7..410e272 100644
8233 --- a/drivers/acpi/blacklist.c
8234 +++ b/drivers/acpi/blacklist.c
8235 @@ -52,7 +52,7 @@ struct acpi_blacklist_item {
8236 @@ -35380,7 +35432,7 @@ index 9515f18..4b149c9 100644
8237
8238 /*
8239 * POLICY: If *anything* doesn't work, put it on the blacklist.
8240 -@@ -199,7 +199,7 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
8241 +@@ -164,7 +164,7 @@ static int __init dmi_disable_osi_win8(const struct dmi_system_id *d)
8242 return 0;
8243 }
8244
8245 @@ -35405,10 +35457,10 @@ index 12b62f2..dc2aac8 100644
8246 /* parse the table header to get the table length */
8247 if (count <= sizeof(struct acpi_table_header))
8248 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
8249 -index c7414a5..d5afd71 100644
8250 +index 644516d..643937e 100644
8251 --- a/drivers/acpi/processor_idle.c
8252 +++ b/drivers/acpi/processor_idle.c
8253 -@@ -966,7 +966,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
8254 +@@ -963,7 +963,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
8255 {
8256 int i, count = CPUIDLE_DRIVER_STATE_START;
8257 struct acpi_processor_cx *cx;
8258 @@ -35418,10 +35470,10 @@ index c7414a5..d5afd71 100644
8259
8260 if (!pr->flags.power_setup_done)
8261 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
8262 -index 05306a5..733d1f0 100644
8263 +index 6dbc3ca..b8b59a0 100644
8264 --- a/drivers/acpi/sysfs.c
8265 +++ b/drivers/acpi/sysfs.c
8266 -@@ -423,11 +423,11 @@ static u32 num_counters;
8267 +@@ -425,11 +425,11 @@ static u32 num_counters;
8268 static struct attribute **all_attrs;
8269 static u32 acpi_gpe_count;
8270
8271 @@ -35436,7 +35488,7 @@ index 05306a5..733d1f0 100644
8272 static void delete_gpe_attr_array(void)
8273 {
8274 diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
8275 -index cfb7447..98f2149 100644
8276 +index c482f8c..c832240 100644
8277 --- a/drivers/ata/libahci.c
8278 +++ b/drivers/ata/libahci.c
8279 @@ -1239,7 +1239,7 @@ int ahci_kick_engine(struct ata_port *ap)
8280 @@ -35449,7 +35501,7 @@ index cfb7447..98f2149 100644
8281 unsigned long timeout_msec)
8282 {
8283 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
8284 -index 2c2780a..5ebc310 100644
8285 +index 1393a58..3bf8cbe 100644
8286 --- a/drivers/ata/libata-core.c
8287 +++ b/drivers/ata/libata-core.c
8288 @@ -98,7 +98,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
8289 @@ -35534,7 +35586,7 @@ index 45b5ab3..98446b8 100644
8290 extern int libata_fua;
8291 extern int libata_noacpi;
8292 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
8293 -index 853f610..97d24da 100644
8294 +index 73492dd..ca2bff5 100644
8295 --- a/drivers/ata/pata_arasan_cf.c
8296 +++ b/drivers/ata/pata_arasan_cf.c
8297 @@ -865,7 +865,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
8298 @@ -36545,10 +36597,10 @@ index 969c3c2..9b72956 100644
8299 }
8300
8301 diff --git a/drivers/base/bus.c b/drivers/base/bus.c
8302 -index 4c289ab..de1c333 100644
8303 +index 73f6c29..b0c0e13 100644
8304 --- a/drivers/base/bus.c
8305 +++ b/drivers/base/bus.c
8306 -@@ -1193,7 +1193,7 @@ int subsys_interface_register(struct subsys_interface *sif)
8307 +@@ -1115,7 +1115,7 @@ int subsys_interface_register(struct subsys_interface *sif)
8308 return -EINVAL;
8309
8310 mutex_lock(&subsys->p->mutex);
8311 @@ -36557,7 +36609,7 @@ index 4c289ab..de1c333 100644
8312 if (sif->add_dev) {
8313 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
8314 while ((dev = subsys_dev_iter_next(&iter)))
8315 -@@ -1218,7 +1218,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
8316 +@@ -1140,7 +1140,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
8317 subsys = sif->subsys;
8318
8319 mutex_lock(&subsys->p->mutex);
8320 @@ -36567,7 +36619,7 @@ index 4c289ab..de1c333 100644
8321 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
8322 while ((dev = subsys_dev_iter_next(&iter)))
8323 diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c
8324 -index 7413d06..79155fa 100644
8325 +index 0f38201..6c2b444 100644
8326 --- a/drivers/base/devtmpfs.c
8327 +++ b/drivers/base/devtmpfs.c
8328 @@ -354,7 +354,7 @@ int devtmpfs_mount(const char *mntdir)
8329 @@ -36704,7 +36756,7 @@ index e8d11b6..7b1b36f 100644
8330 }
8331 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
8332 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
8333 -index edfa251..1734d4d 100644
8334 +index b35fc4f..c902870 100644
8335 --- a/drivers/block/cciss.c
8336 +++ b/drivers/block/cciss.c
8337 @@ -3011,7 +3011,7 @@ static void start_io(ctlr_info_t *h)
8338 @@ -36822,7 +36874,7 @@ index edfa251..1734d4d 100644
8339 }
8340
8341 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
8342 -index 7fda30e..eb5dfe0 100644
8343 +index 7fda30e..2f27946 100644
8344 --- a/drivers/block/cciss.h
8345 +++ b/drivers/block/cciss.h
8346 @@ -101,7 +101,7 @@ struct ctlr_info
8347 @@ -36834,6 +36886,49 @@ index 7fda30e..eb5dfe0 100644
8348
8349 /* queue and queue Info */
8350 struct list_head reqQ;
8351 +@@ -402,27 +402,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
8352 + }
8353 +
8354 + static struct access_method SA5_access = {
8355 +- SA5_submit_command,
8356 +- SA5_intr_mask,
8357 +- SA5_fifo_full,
8358 +- SA5_intr_pending,
8359 +- SA5_completed,
8360 ++ .submit_command = SA5_submit_command,
8361 ++ .set_intr_mask = SA5_intr_mask,
8362 ++ .fifo_full = SA5_fifo_full,
8363 ++ .intr_pending = SA5_intr_pending,
8364 ++ .command_completed = SA5_completed,
8365 + };
8366 +
8367 + static struct access_method SA5B_access = {
8368 +- SA5_submit_command,
8369 +- SA5B_intr_mask,
8370 +- SA5_fifo_full,
8371 +- SA5B_intr_pending,
8372 +- SA5_completed,
8373 ++ .submit_command = SA5_submit_command,
8374 ++ .set_intr_mask = SA5B_intr_mask,
8375 ++ .fifo_full = SA5_fifo_full,
8376 ++ .intr_pending = SA5B_intr_pending,
8377 ++ .command_completed = SA5_completed,
8378 + };
8379 +
8380 + static struct access_method SA5_performant_access = {
8381 +- SA5_submit_command,
8382 +- SA5_performant_intr_mask,
8383 +- SA5_fifo_full,
8384 +- SA5_performant_intr_pending,
8385 +- SA5_performant_completed,
8386 ++ .submit_command = SA5_submit_command,
8387 ++ .set_intr_mask = SA5_performant_intr_mask,
8388 ++ .fifo_full = SA5_fifo_full,
8389 ++ .intr_pending = SA5_performant_intr_pending,
8390 ++ .command_completed = SA5_performant_completed,
8391 + };
8392 +
8393 + struct board_type {
8394 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
8395 index 2b94403..fd6ad1f 100644
8396 --- a/drivers/block/cpqarray.c
8397 @@ -36968,7 +37063,7 @@ index be73e9d..7fbf140 100644
8398 cmdlist_t *reqQ;
8399 cmdlist_t *cmpQ;
8400 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
8401 -index 2d7f608..11245fe 100644
8402 +index 0e06f0c..c47b81d 100644
8403 --- a/drivers/block/drbd/drbd_int.h
8404 +++ b/drivers/block/drbd/drbd_int.h
8405 @@ -582,7 +582,7 @@ struct drbd_epoch {
8406 @@ -36989,7 +37084,7 @@ index 2d7f608..11245fe 100644
8407 unsigned int peer_seq;
8408 spinlock_t peer_seq_lock;
8409 unsigned int minor;
8410 -@@ -1572,7 +1572,7 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname,
8411 +@@ -1573,7 +1573,7 @@ static inline int drbd_setsockopt(struct socket *sock, int level, int optname,
8412 char __user *uoptval;
8413 int err;
8414
8415 @@ -36998,8 +37093,25 @@ index 2d7f608..11245fe 100644
8416
8417 set_fs(KERNEL_DS);
8418 if (level == SOL_SOCKET)
8419 +diff --git a/drivers/block/drbd/drbd_interval.c b/drivers/block/drbd/drbd_interval.c
8420 +index 89c497c..9c736ae 100644
8421 +--- a/drivers/block/drbd/drbd_interval.c
8422 ++++ b/drivers/block/drbd/drbd_interval.c
8423 +@@ -67,9 +67,9 @@ static void augment_rotate(struct rb_node *rb_old, struct rb_node *rb_new)
8424 + }
8425 +
8426 + static const struct rb_augment_callbacks augment_callbacks = {
8427 +- augment_propagate,
8428 +- augment_copy,
8429 +- augment_rotate,
8430 ++ .propagate = augment_propagate,
8431 ++ .copy = augment_copy,
8432 ++ .rotate = augment_rotate,
8433 + };
8434 +
8435 + /**
8436 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
8437 -index 55635ed..40e837c 100644
8438 +index 9e3818b..7b64c92 100644
8439 --- a/drivers/block/drbd/drbd_main.c
8440 +++ b/drivers/block/drbd/drbd_main.c
8441 @@ -1317,7 +1317,7 @@ static int _drbd_send_ack(struct drbd_conf *mdev, enum drbd_packet cmd,
8442 @@ -37032,7 +37144,7 @@ index 55635ed..40e837c 100644
8443
8444 idr_destroy(&tconn->volumes);
8445 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
8446 -index 8cc1e64..ba7ffa9 100644
8447 +index c706d50..5e1b472 100644
8448 --- a/drivers/block/drbd/drbd_nl.c
8449 +++ b/drivers/block/drbd/drbd_nl.c
8450 @@ -3440,7 +3440,7 @@ out:
8451 @@ -37054,7 +37166,7 @@ index 8cc1e64..ba7ffa9 100644
8452 if (!msg)
8453 goto failed;
8454 diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
8455 -index cc29cd3..d4b058b 100644
8456 +index 6fa6673..b7f97e9 100644
8457 --- a/drivers/block/drbd/drbd_receiver.c
8458 +++ b/drivers/block/drbd/drbd_receiver.c
8459 @@ -834,7 +834,7 @@ int drbd_connected(struct drbd_conf *mdev)
8460 @@ -37107,7 +37219,7 @@ index cc29cd3..d4b058b 100644
8461 list_add(&epoch->list, &tconn->current_epoch->list);
8462 tconn->current_epoch = epoch;
8463 tconn->epochs++;
8464 -@@ -2172,7 +2172,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
8465 +@@ -2163,7 +2163,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
8466
8467 err = wait_for_and_update_peer_seq(mdev, peer_seq);
8468 drbd_send_ack_dp(mdev, P_NEG_ACK, p, pi->size);
8469 @@ -37116,7 +37228,7 @@ index cc29cd3..d4b058b 100644
8470 err2 = drbd_drain_block(mdev, pi->size);
8471 if (!err)
8472 err = err2;
8473 -@@ -2206,7 +2206,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
8474 +@@ -2197,7 +2197,7 @@ static int receive_Data(struct drbd_tconn *tconn, struct packet_info *pi)
8475
8476 spin_lock(&tconn->epoch_lock);
8477 peer_req->epoch = tconn->current_epoch;
8478 @@ -37125,7 +37237,7 @@ index cc29cd3..d4b058b 100644
8479 atomic_inc(&peer_req->epoch->active);
8480 spin_unlock(&tconn->epoch_lock);
8481
8482 -@@ -4347,7 +4347,7 @@ struct data_cmd {
8483 +@@ -4344,7 +4344,7 @@ struct data_cmd {
8484 int expect_payload;
8485 size_t pkt_size;
8486 int (*fn)(struct drbd_tconn *, struct packet_info *);
8487 @@ -37134,7 +37246,7 @@ index cc29cd3..d4b058b 100644
8488
8489 static struct data_cmd drbd_cmd_handler[] = {
8490 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
8491 -@@ -4467,7 +4467,7 @@ static void conn_disconnect(struct drbd_tconn *tconn)
8492 +@@ -4464,7 +4464,7 @@ static void conn_disconnect(struct drbd_tconn *tconn)
8493 if (!list_empty(&tconn->current_epoch->list))
8494 conn_err(tconn, "ASSERTION FAILED: tconn->current_epoch->list not empty\n");
8495 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
8496 @@ -37143,7 +37255,7 @@ index cc29cd3..d4b058b 100644
8497 tconn->send.seen_any_write_yet = false;
8498
8499 conn_info(tconn, "Connection closed\n");
8500 -@@ -5223,7 +5223,7 @@ static int tconn_finish_peer_reqs(struct drbd_tconn *tconn)
8501 +@@ -5220,7 +5220,7 @@ static int tconn_finish_peer_reqs(struct drbd_tconn *tconn)
8502 struct asender_cmd {
8503 size_t pkt_size;
8504 int (*fn)(struct drbd_tconn *tconn, struct packet_info *);
8505 @@ -37165,8 +37277,57 @@ index c8dac73..1800093 100644
8506 set_fs(old_fs);
8507 file_end_write(file);
8508 if (likely(bw == len))
8509 +diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
8510 +index 83a598e..2de5ce3 100644
8511 +--- a/drivers/block/null_blk.c
8512 ++++ b/drivers/block/null_blk.c
8513 +@@ -407,14 +407,24 @@ static int null_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
8514 + return 0;
8515 + }
8516 +
8517 +-static struct blk_mq_ops null_mq_ops = {
8518 +- .queue_rq = null_queue_rq,
8519 +- .map_queue = blk_mq_map_queue,
8520 ++static struct blk_mq_ops null_mq_single_ops = {
8521 ++ .queue_rq = null_queue_rq,
8522 ++ .map_queue = blk_mq_map_queue,
8523 + .init_hctx = null_init_hctx,
8524 ++ .alloc_hctx = blk_mq_alloc_single_hw_queue,
8525 ++ .free_hctx = blk_mq_free_single_hw_queue,
8526 ++};
8527 ++
8528 ++static struct blk_mq_ops null_mq_per_node_ops = {
8529 ++ .queue_rq = null_queue_rq,
8530 ++ .map_queue = blk_mq_map_queue,
8531 ++ .init_hctx = null_init_hctx,
8532 ++ .alloc_hctx = null_alloc_hctx,
8533 ++ .free_hctx = null_free_hctx,
8534 + };
8535 +
8536 + static struct blk_mq_reg null_mq_reg = {
8537 +- .ops = &null_mq_ops,
8538 ++ .ops = &null_mq_single_ops,
8539 + .queue_depth = 64,
8540 + .cmd_size = sizeof(struct nullb_cmd),
8541 + .flags = BLK_MQ_F_SHOULD_MERGE,
8542 +@@ -545,13 +555,8 @@ static int null_add_dev(void)
8543 + null_mq_reg.queue_depth = hw_queue_depth;
8544 + null_mq_reg.nr_hw_queues = submit_queues;
8545 +
8546 +- if (use_per_node_hctx) {
8547 +- null_mq_reg.ops->alloc_hctx = null_alloc_hctx;
8548 +- null_mq_reg.ops->free_hctx = null_free_hctx;
8549 +- } else {
8550 +- null_mq_reg.ops->alloc_hctx = blk_mq_alloc_single_hw_queue;
8551 +- null_mq_reg.ops->free_hctx = blk_mq_free_single_hw_queue;
8552 +- }
8553 ++ if (use_per_node_hctx)
8554 ++ null_mq_reg.ops = &null_mq_per_node_ops;
8555 +
8556 + nullb->q = blk_mq_init_queue(&null_mq_reg, nullb);
8557 + } else if (queue_mode == NULL_Q_BIO) {
8558 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
8559 -index 5618847..5a46f3b 100644
8560 +index ff8668c..f62167a 100644
8561 --- a/drivers/block/pktcdvd.c
8562 +++ b/drivers/block/pktcdvd.c
8563 @@ -108,7 +108,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
8564 @@ -37178,7 +37339,7 @@ index 5618847..5a46f3b 100644
8565 }
8566
8567 /*
8568 -@@ -1897,7 +1897,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
8569 +@@ -1883,7 +1883,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
8570 return -EROFS;
8571 }
8572 pd->settings.fp = ti.fp;
8573 @@ -37187,11 +37348,81 @@ index 5618847..5a46f3b 100644
8574
8575 if (ti.nwa_v) {
8576 pd->nwa = be32_to_cpu(ti.next_writable);
8577 +diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h
8578 +index e5565fb..71be10b4 100644
8579 +--- a/drivers/block/smart1,2.h
8580 ++++ b/drivers/block/smart1,2.h
8581 +@@ -108,11 +108,11 @@ static unsigned long smart4_intr_pending(ctlr_info_t *h)
8582 + }
8583 +
8584 + static struct access_method smart4_access = {
8585 +- smart4_submit_command,
8586 +- smart4_intr_mask,
8587 +- smart4_fifo_full,
8588 +- smart4_intr_pending,
8589 +- smart4_completed,
8590 ++ .submit_command = smart4_submit_command,
8591 ++ .set_intr_mask = smart4_intr_mask,
8592 ++ .fifo_full = smart4_fifo_full,
8593 ++ .intr_pending = smart4_intr_pending,
8594 ++ .command_completed = smart4_completed,
8595 + };
8596 +
8597 + /*
8598 +@@ -144,11 +144,11 @@ static unsigned long smart2_intr_pending(ctlr_info_t *h)
8599 + }
8600 +
8601 + static struct access_method smart2_access = {
8602 +- smart2_submit_command,
8603 +- smart2_intr_mask,
8604 +- smart2_fifo_full,
8605 +- smart2_intr_pending,
8606 +- smart2_completed,
8607 ++ .submit_command = smart2_submit_command,
8608 ++ .set_intr_mask = smart2_intr_mask,
8609 ++ .fifo_full = smart2_fifo_full,
8610 ++ .intr_pending = smart2_intr_pending,
8611 ++ .command_completed = smart2_completed,
8612 + };
8613 +
8614 + /*
8615 +@@ -180,11 +180,11 @@ static unsigned long smart2e_intr_pending(ctlr_info_t *h)
8616 + }
8617 +
8618 + static struct access_method smart2e_access = {
8619 +- smart2e_submit_command,
8620 +- smart2e_intr_mask,
8621 +- smart2e_fifo_full,
8622 +- smart2e_intr_pending,
8623 +- smart2e_completed,
8624 ++ .submit_command = smart2e_submit_command,
8625 ++ .set_intr_mask = smart2e_intr_mask,
8626 ++ .fifo_full = smart2e_fifo_full,
8627 ++ .intr_pending = smart2e_intr_pending,
8628 ++ .command_completed = smart2e_completed,
8629 + };
8630 +
8631 + /*
8632 +@@ -270,9 +270,9 @@ static unsigned long smart1_intr_pending(ctlr_info_t *h)
8633 + }
8634 +
8635 + static struct access_method smart1_access = {
8636 +- smart1_submit_command,
8637 +- smart1_intr_mask,
8638 +- smart1_fifo_full,
8639 +- smart1_intr_pending,
8640 +- smart1_completed,
8641 ++ .submit_command = smart1_submit_command,
8642 ++ .set_intr_mask = smart1_intr_mask,
8643 ++ .fifo_full = smart1_fifo_full,
8644 ++ .intr_pending = smart1_intr_pending,
8645 ++ .command_completed = smart1_completed,
8646 + };
8647 diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
8648 -index 60abf59..80789e1 100644
8649 +index f038dba..bb74c08 100644
8650 --- a/drivers/bluetooth/btwilink.c
8651 +++ b/drivers/bluetooth/btwilink.c
8652 -@@ -293,7 +293,7 @@ static int ti_st_send_frame(struct sk_buff *skb)
8653 +@@ -288,7 +288,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
8654
8655 static int bt_ti_probe(struct platform_device *pdev)
8656 {
8657 @@ -37201,10 +37432,10 @@ index 60abf59..80789e1 100644
8658 int err;
8659
8660 diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
8661 -index 2009266..7be9ca2 100644
8662 +index b6739cb..962fd35 100644
8663 --- a/drivers/bus/arm-cci.c
8664 +++ b/drivers/bus/arm-cci.c
8665 -@@ -405,7 +405,7 @@ static int __init cci_probe(void)
8666 +@@ -979,7 +979,7 @@ static int cci_probe(void)
8667
8668 nb_cci_ports = cci_config->nb_ace + cci_config->nb_ace_lite;
8669
8670 @@ -37278,7 +37509,7 @@ index 5980cb9..6d7bd7e 100644
8671
8672 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
8673 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
8674 -index 1421997..33f5d6d 100644
8675 +index fa3243d..8c98297 100644
8676 --- a/drivers/char/Kconfig
8677 +++ b/drivers/char/Kconfig
8678 @@ -8,7 +8,8 @@ source "drivers/tty/Kconfig"
8679 @@ -37291,7 +37522,7 @@ index 1421997..33f5d6d 100644
8680 help
8681 Say Y here if you want to support the /dev/kmem device. The
8682 /dev/kmem device is rarely used, but can be used for certain
8683 -@@ -570,6 +571,7 @@ config DEVPORT
8684 +@@ -576,6 +577,7 @@ config DEVPORT
8685 bool
8686 depends on !M68K
8687 depends on ISA || PCI
8688 @@ -37347,10 +37578,10 @@ index 4f94375..413694e 100644
8689 return -EINVAL;
8690 else
8691 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
8692 -index 448ce5e..3a76625 100644
8693 +index 5d9c31d..c94ccb5 100644
8694 --- a/drivers/char/hpet.c
8695 +++ b/drivers/char/hpet.c
8696 -@@ -559,7 +559,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
8697 +@@ -578,7 +578,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
8698 }
8699
8700 static int
8701 @@ -37674,43 +37905,49 @@ index d39cca6..8c1e269 100644
8702
8703 if (cmd != SIOCWANDEV)
8704 diff --git a/drivers/char/random.c b/drivers/char/random.c
8705 -index 7a744d3..895af8f 100644
8706 +index 429b75b..03d60db 100644
8707 --- a/drivers/char/random.c
8708 +++ b/drivers/char/random.c
8709 -@@ -269,8 +269,13 @@
8710 +@@ -270,10 +270,17 @@
8711 /*
8712 * Configuration information
8713 */
8714 +#ifdef CONFIG_GRKERNSEC_RANDNET
8715 -+#define INPUT_POOL_WORDS 512
8716 -+#define OUTPUT_POOL_WORDS 128
8717 ++#define INPUT_POOL_SHIFT 14
8718 ++#define INPUT_POOL_WORDS (1 << (INPUT_POOL_SHIFT-5))
8719 ++#define OUTPUT_POOL_SHIFT 12
8720 ++#define OUTPUT_POOL_WORDS (1 << (OUTPUT_POOL_SHIFT-5))
8721 +#else
8722 - #define INPUT_POOL_WORDS 128
8723 - #define OUTPUT_POOL_WORDS 32
8724 + #define INPUT_POOL_SHIFT 12
8725 + #define INPUT_POOL_WORDS (1 << (INPUT_POOL_SHIFT-5))
8726 + #define OUTPUT_POOL_SHIFT 10
8727 + #define OUTPUT_POOL_WORDS (1 << (OUTPUT_POOL_SHIFT-5))
8728 +#endif
8729 - #define SEC_XFER_SIZE 512
8730 - #define EXTRACT_SIZE 10
8731 + #define SEC_XFER_SIZE 512
8732 + #define EXTRACT_SIZE 10
8733
8734 -@@ -310,10 +315,17 @@ static struct poolinfo {
8735 - int poolwords;
8736 +@@ -361,12 +368,19 @@ static struct poolinfo {
8737 + #define S(x) ilog2(x)+5, (x), (x)*4, (x)*32, (x) << (ENTROPY_SHIFT+5)
8738 int tap1, tap2, tap3, tap4, tap5;
8739 } poolinfo_table[] = {
8740 +#ifdef CONFIG_GRKERNSEC_RANDNET
8741 + /* x^512 + x^411 + x^308 + x^208 +x^104 + x + 1 -- 225 */
8742 -+ { 512, 411, 308, 208, 104, 1 },
8743 -+ /* x^128 + x^103 + x^76 + x^51 + x^25 + x + 1 -- 105 */
8744 -+ { 128, 103, 76, 51, 25, 1 },
8745 ++ { S(512), 411, 308, 208, 104, 1 },
8746 ++ /* x^128 + x^104 + x^76 + x^51 + x^25 + x + 1 -- 105 */
8747 ++ { S(128), 104, 76, 51, 25, 1 },
8748 +#else
8749 - /* x^128 + x^103 + x^76 + x^51 +x^25 + x + 1 -- 105 */
8750 - { 128, 103, 76, 51, 25, 1 },
8751 - /* x^32 + x^26 + x^20 + x^14 + x^7 + x + 1 -- 15 */
8752 - { 32, 26, 20, 14, 7, 1 },
8753 + /* was: x^128 + x^103 + x^76 + x^51 +x^25 + x + 1 */
8754 + /* x^128 + x^104 + x^76 + x^51 +x^25 + x + 1 */
8755 + { S(128), 104, 76, 51, 25, 1 },
8756 + /* was: x^32 + x^26 + x^20 + x^14 + x^7 + x + 1 */
8757 + /* x^32 + x^26 + x^19 + x^14 + x^7 + x + 1 */
8758 + { S(32), 26, 19, 14, 7, 1 },
8759 +#endif
8760 #if 0
8761 /* x^2048 + x^1638 + x^1231 + x^819 + x^411 + x + 1 -- 115 */
8762 - { 2048, 1638, 1231, 819, 411, 1 },
8763 -@@ -521,8 +533,8 @@ static void _mix_pool_bytes(struct entropy_store *r, const void *in,
8764 - input_rotate += i ? 7 : 14;
8765 + { S(2048), 1638, 1231, 819, 411, 1 },
8766 +@@ -524,8 +538,8 @@ static void _mix_pool_bytes(struct entropy_store *r, const void *in,
8767 + input_rotate = (input_rotate + (i ? 7 : 14)) & 31;
8768 }
8769
8770 - ACCESS_ONCE(r->input_rotate) = input_rotate;
8771 @@ -37720,20 +37957,7 @@ index 7a744d3..895af8f 100644
8772 smp_wmb();
8773
8774 if (out)
8775 -@@ -603,8 +615,11 @@ retry:
8776 -
8777 - if (!r->initialized && nbits > 0) {
8778 - r->entropy_total += nbits;
8779 -- if (r->entropy_total > 128)
8780 -+ if (r->entropy_total > 128) {
8781 - r->initialized = 1;
8782 -+ if (r == &nonblocking_pool)
8783 -+ prandom_reseed_late();
8784 -+ }
8785 - }
8786 -
8787 - trace_credit_entropy_bits(r->name, nbits, entropy_count,
8788 -@@ -1029,7 +1044,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
8789 +@@ -1151,7 +1165,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
8790
8791 extract_buf(r, tmp);
8792 i = min_t(int, nbytes, EXTRACT_SIZE);
8793 @@ -37742,7 +37966,7 @@ index 7a744d3..895af8f 100644
8794 ret = -EFAULT;
8795 break;
8796 }
8797 -@@ -1365,7 +1380,7 @@ EXPORT_SYMBOL(generate_random_uuid);
8798 +@@ -1507,7 +1521,7 @@ EXPORT_SYMBOL(generate_random_uuid);
8799 #include <linux/sysctl.h>
8800
8801 static int min_read_thresh = 8, min_write_thresh;
8802 @@ -37751,7 +37975,7 @@ index 7a744d3..895af8f 100644
8803 static int max_write_thresh = INPUT_POOL_WORDS * 32;
8804 static char sysctl_bootid[16];
8805
8806 -@@ -1381,7 +1396,7 @@ static char sysctl_bootid[16];
8807 +@@ -1523,7 +1537,7 @@ static char sysctl_bootid[16];
8808 static int proc_do_uuid(struct ctl_table *table, int write,
8809 void __user *buffer, size_t *lenp, loff_t *ppos)
8810 {
8811 @@ -37760,6 +37984,15 @@ index 7a744d3..895af8f 100644
8812 unsigned char buf[64], tmp_uuid[16], *uuid;
8813
8814 uuid = table->data;
8815 +@@ -1553,7 +1567,7 @@ static int proc_do_uuid(struct ctl_table *table, int write,
8816 + static int proc_do_entropy(ctl_table *table, int write,
8817 + void __user *buffer, size_t *lenp, loff_t *ppos)
8818 + {
8819 +- ctl_table fake_table;
8820 ++ ctl_table_no_const fake_table;
8821 + int entropy_count;
8822 +
8823 + entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
8824 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
8825 index 7cc1fe22..b602d6b 100644
8826 --- a/drivers/char/sonypi.c
8827 @@ -37821,7 +38054,7 @@ index 64420b3..5c40b56 100644
8828 acpi_os_unmap_memory(virt, len);
8829 return 0;
8830 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
8831 -index 84ddc55..1d32f1e 100644
8832 +index 59f7cb2..bac8b6d 100644
8833 --- a/drivers/char/tpm/tpm_eventlog.c
8834 +++ b/drivers/char/tpm/tpm_eventlog.c
8835 @@ -95,7 +95,7 @@ static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos)
8836 @@ -37853,10 +38086,10 @@ index 84ddc55..1d32f1e 100644
8837 return 0;
8838 }
8839 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
8840 -index b79cf3e..de172d64f 100644
8841 +index feea87c..18aefff 100644
8842 --- a/drivers/char/virtio_console.c
8843 +++ b/drivers/char/virtio_console.c
8844 -@@ -682,7 +682,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
8845 +@@ -684,7 +684,7 @@ static ssize_t fill_readbuf(struct port *port, char *out_buf, size_t out_count,
8846 if (to_user) {
8847 ssize_t ret;
8848
8849 @@ -37865,7 +38098,7 @@ index b79cf3e..de172d64f 100644
8850 if (ret)
8851 return -EFAULT;
8852 } else {
8853 -@@ -785,7 +785,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
8854 +@@ -787,7 +787,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
8855 if (!port_has_data(port) && !port->host_connected)
8856 return 0;
8857
8858 @@ -37922,7 +38155,7 @@ index 81dd31a..ef5c542 100644
8859 .get_parent = socfpga_clk_get_parent,
8860 .set_parent = socfpga_clk_set_parent,
8861 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
8862 -index 506fd23..01a593f 100644
8863 +index caf41eb..223d27a 100644
8864 --- a/drivers/cpufreq/acpi-cpufreq.c
8865 +++ b/drivers/cpufreq/acpi-cpufreq.c
8866 @@ -172,7 +172,7 @@ static ssize_t show_global_boost(struct kobject *kobj,
8867 @@ -37934,7 +38167,7 @@ index 506fd23..01a593f 100644
8868 show_global_boost,
8869 store_global_boost);
8870
8871 -@@ -721,8 +721,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
8872 +@@ -693,8 +693,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
8873 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
8874 per_cpu(acfreq_data, cpu) = data;
8875
8876 @@ -37948,7 +38181,7 @@ index 506fd23..01a593f 100644
8877
8878 result = acpi_processor_register_performance(data->acpi_data, cpu);
8879 if (result)
8880 -@@ -850,7 +853,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
8881 +@@ -827,7 +830,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
8882 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
8883 break;
8884 case ACPI_ADR_SPACE_FIXED_HARDWARE:
8885 @@ -37956,14 +38189,23 @@ index 506fd23..01a593f 100644
8886 + pax_open_kernel();
8887 + *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
8888 + pax_close_kernel();
8889 - policy->cur = get_cur_freq_on_cpu(cpu);
8890 break;
8891 default:
8892 + break;
8893 diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
8894 -index 04548f7..457a342 100644
8895 +index 8d19f7c..6bc2daa 100644
8896 --- a/drivers/cpufreq/cpufreq.c
8897 +++ b/drivers/cpufreq/cpufreq.c
8898 -@@ -2069,7 +2069,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
8899 +@@ -1885,7 +1885,7 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
8900 + #endif
8901 +
8902 + mutex_lock(&cpufreq_governor_mutex);
8903 +- list_del(&governor->governor_list);
8904 ++ pax_list_del(&governor->governor_list);
8905 + mutex_unlock(&cpufreq_governor_mutex);
8906 + return;
8907 + }
8908 +@@ -2115,7 +2115,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
8909 return NOTIFY_OK;
8910 }
8911
8912 @@ -37972,7 +38214,7 @@ index 04548f7..457a342 100644
8913 .notifier_call = cpufreq_cpu_callback,
8914 };
8915
8916 -@@ -2101,8 +2101,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
8917 +@@ -2148,8 +2148,11 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
8918
8919 pr_debug("trying to register driver %s\n", driver_data->name);
8920
8921 @@ -37987,7 +38229,7 @@ index 04548f7..457a342 100644
8922 write_lock_irqsave(&cpufreq_driver_lock, flags);
8923 if (cpufreq_driver) {
8924 diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
8925 -index 0806c31..6a73276 100644
8926 +index e6be635..f8a90dc 100644
8927 --- a/drivers/cpufreq/cpufreq_governor.c
8928 +++ b/drivers/cpufreq/cpufreq_governor.c
8929 @@ -187,7 +187,7 @@ int cpufreq_governor_dbs(struct cpufreq_policy *policy,
8930 @@ -38018,10 +38260,10 @@ index 0806c31..6a73276 100644
8931 cpufreq_unregister_notifier(cs_ops->notifier_block,
8932 CPUFREQ_TRANSITION_NOTIFIER);
8933 diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
8934 -index 88cd39f..87f0393 100644
8935 +index b5f2b86..daa801b 100644
8936 --- a/drivers/cpufreq/cpufreq_governor.h
8937 +++ b/drivers/cpufreq/cpufreq_governor.h
8938 -@@ -202,7 +202,7 @@ struct common_dbs_data {
8939 +@@ -205,7 +205,7 @@ struct common_dbs_data {
8940 void (*exit)(struct dbs_data *dbs_data);
8941
8942 /* Governor specific ops, see below */
8943 @@ -38030,7 +38272,7 @@ index 88cd39f..87f0393 100644
8944 };
8945
8946 /* Governor Per policy data */
8947 -@@ -222,7 +222,7 @@ struct od_ops {
8948 +@@ -225,7 +225,7 @@ struct od_ops {
8949 unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
8950 unsigned int freq_next, unsigned int relation);
8951 void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
8952 @@ -38040,10 +38282,10 @@ index 88cd39f..87f0393 100644
8953 struct cs_ops {
8954 struct notifier_block *notifier_block;
8955 diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
8956 -index 32f26f6..feb657b 100644
8957 +index 18d4091..434be15 100644
8958 --- a/drivers/cpufreq/cpufreq_ondemand.c
8959 +++ b/drivers/cpufreq/cpufreq_ondemand.c
8960 -@@ -522,7 +522,7 @@ static void od_exit(struct dbs_data *dbs_data)
8961 +@@ -521,7 +521,7 @@ static void od_exit(struct dbs_data *dbs_data)
8962
8963 define_get_cpu_dbs_routines(od_cpu_dbs_info);
8964
8965 @@ -38052,7 +38294,7 @@ index 32f26f6..feb657b 100644
8966 .powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
8967 .powersave_bias_target = generic_powersave_bias_target,
8968 .freq_increase = dbs_freq_increase,
8969 -@@ -577,14 +577,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
8970 +@@ -576,14 +576,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
8971 (struct cpufreq_policy *, unsigned int, unsigned int),
8972 unsigned int powersave_bias)
8973 {
8974 @@ -38086,11 +38328,84 @@ index 4cf0d28..5830372 100644
8975 .notifier_call = cpufreq_stat_cpu_callback,
8976 .priority = 1,
8977 };
8978 +diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
8979 +index d51f17ed..9f43b15 100644
8980 +--- a/drivers/cpufreq/intel_pstate.c
8981 ++++ b/drivers/cpufreq/intel_pstate.c
8982 +@@ -112,10 +112,10 @@ struct pstate_funcs {
8983 + struct cpu_defaults {
8984 + struct pstate_adjust_policy pid_policy;
8985 + struct pstate_funcs funcs;
8986 +-};
8987 ++} __do_const;
8988 +
8989 + static struct pstate_adjust_policy pid_params;
8990 +-static struct pstate_funcs pstate_funcs;
8991 ++static struct pstate_funcs *pstate_funcs;
8992 +
8993 + struct perf_limits {
8994 + int no_turbo;
8995 +@@ -462,7 +462,7 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate)
8996 +
8997 + cpu->pstate.current_pstate = pstate;
8998 +
8999 +- pstate_funcs.set(pstate);
9000 ++ pstate_funcs->set(pstate);
9001 + }
9002 +
9003 + static inline void intel_pstate_pstate_increase(struct cpudata *cpu, int steps)
9004 +@@ -484,9 +484,9 @@ static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
9005 + {
9006 + sprintf(cpu->name, "Intel 2nd generation core");
9007 +
9008 +- cpu->pstate.min_pstate = pstate_funcs.get_min();
9009 +- cpu->pstate.max_pstate = pstate_funcs.get_max();
9010 +- cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
9011 ++ cpu->pstate.min_pstate = pstate_funcs->get_min();
9012 ++ cpu->pstate.max_pstate = pstate_funcs->get_max();
9013 ++ cpu->pstate.turbo_pstate = pstate_funcs->get_turbo();
9014 +
9015 + /*
9016 + * goto max pstate so we don't slow up boot if we are built-in if we are
9017 +@@ -750,9 +750,9 @@ static int intel_pstate_msrs_not_valid(void)
9018 + rdmsrl(MSR_IA32_APERF, aperf);
9019 + rdmsrl(MSR_IA32_MPERF, mperf);
9020 +
9021 +- if (!pstate_funcs.get_max() ||
9022 +- !pstate_funcs.get_min() ||
9023 +- !pstate_funcs.get_turbo())
9024 ++ if (!pstate_funcs->get_max() ||
9025 ++ !pstate_funcs->get_min() ||
9026 ++ !pstate_funcs->get_turbo())
9027 + return -ENODEV;
9028 +
9029 + rdmsrl(MSR_IA32_APERF, tmp);
9030 +@@ -766,7 +766,7 @@ static int intel_pstate_msrs_not_valid(void)
9031 + return 0;
9032 + }
9033 +
9034 +-static void copy_pid_params(struct pstate_adjust_policy *policy)
9035 ++static void copy_pid_params(const struct pstate_adjust_policy *policy)
9036 + {
9037 + pid_params.sample_rate_ms = policy->sample_rate_ms;
9038 + pid_params.p_gain_pct = policy->p_gain_pct;
9039 +@@ -778,10 +778,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
9040 +
9041 + static void copy_cpu_funcs(struct pstate_funcs *funcs)
9042 + {
9043 +- pstate_funcs.get_max = funcs->get_max;
9044 +- pstate_funcs.get_min = funcs->get_min;
9045 +- pstate_funcs.get_turbo = funcs->get_turbo;
9046 +- pstate_funcs.set = funcs->set;
9047 ++ pstate_funcs = funcs;
9048 + }
9049 +
9050 + #if IS_ENABLED(CONFIG_ACPI)
9051 diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
9052 -index 2f0a2a6..93d728e 100644
9053 +index 3d1cba9..0ab21d2 100644
9054 --- a/drivers/cpufreq/p4-clockmod.c
9055 +++ b/drivers/cpufreq/p4-clockmod.c
9056 -@@ -160,10 +160,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
9057 +@@ -134,10 +134,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
9058 case 0x0F: /* Core Duo */
9059 case 0x16: /* Celeron Core */
9060 case 0x1C: /* Atom */
9061 @@ -38107,7 +38422,7 @@ index 2f0a2a6..93d728e 100644
9062 /* fall through */
9063 case 0x09: /* Pentium M (Banias) */
9064 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
9065 -@@ -175,7 +179,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
9066 +@@ -149,7 +153,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
9067
9068 /* on P-4s, the TSC runs with constant frequency independent whether
9069 * throttling is active or not. */
9070 @@ -38119,7 +38434,7 @@ index 2f0a2a6..93d728e 100644
9071 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
9072 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
9073 diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
9074 -index ac76b48..2445bc6 100644
9075 +index 724ffbd..ad83692 100644
9076 --- a/drivers/cpufreq/sparc-us3-cpufreq.c
9077 +++ b/drivers/cpufreq/sparc-us3-cpufreq.c
9078 @@ -18,14 +18,12 @@
9079 @@ -38138,13 +38453,16 @@ index ac76b48..2445bc6 100644
9080
9081 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
9082 * in the Safari config register.
9083 -@@ -186,12 +184,25 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
9084 +@@ -156,14 +154,26 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
9085
9086 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
9087 {
9088 -- if (cpufreq_us3_driver)
9089 -- us3_set_cpu_divider_index(policy, 0);
9090 -+ us3_set_cpu_divider_index(policy->cpu, 0);
9091 +- if (cpufreq_us3_driver) {
9092 +- cpufreq_frequency_table_put_attr(policy->cpu);
9093 +- us3_freq_target(policy, 0);
9094 +- }
9095 ++ cpufreq_frequency_table_put_attr(policy->cpu);
9096 ++ us3_freq_target(policy, 0);
9097
9098 return 0;
9099 }
9100 @@ -38153,20 +38471,20 @@ index ac76b48..2445bc6 100644
9101 +static void __exit us3_freq_exit(void);
9102 +
9103 +static struct cpufreq_driver cpufreq_us3_driver = {
9104 -+ .init = us3_freq_cpu_init,
9105 -+ .verify = us3_freq_verify,
9106 -+ .target = us3_freq_target,
9107 -+ .get = us3_freq_get,
9108 -+ .exit = us3_freq_cpu_exit,
9109 -+ .owner = THIS_MODULE,
9110 -+ .name = "UltraSPARC-III",
9111 ++ .init = us3_freq_cpu_init,
9112 ++ .verify = cpufreq_generic_frequency_table_verify,
9113 ++ .target_index = us3_freq_target,
9114 ++ .get = us3_freq_get,
9115 ++ .exit = us3_freq_cpu_exit,
9116 ++ .owner = THIS_MODULE,
9117 ++ .name = "UltraSPARC-III",
9118 +
9119 +};
9120 +
9121 static int __init us3_freq_init(void)
9122 {
9123 unsigned long manuf, impl, ver;
9124 -@@ -208,55 +219,15 @@ static int __init us3_freq_init(void)
9125 +@@ -180,55 +190,15 @@ static int __init us3_freq_init(void)
9126 (impl == CHEETAH_IMPL ||
9127 impl == CHEETAH_PLUS_IMPL ||
9128 impl == JAGUAR_IMPL ||
9129 @@ -38184,8 +38502,8 @@ index ac76b48..2445bc6 100644
9130 - goto err_out;
9131 -
9132 - driver->init = us3_freq_cpu_init;
9133 -- driver->verify = us3_freq_verify;
9134 -- driver->target = us3_freq_target;
9135 +- driver->verify = cpufreq_generic_frequency_table_verify;
9136 +- driver->target_index = us3_freq_target;
9137 - driver->get = us3_freq_get;
9138 - driver->exit = us3_freq_cpu_exit;
9139 - strcpy(driver->name, "UltraSPARC-III");
9140 @@ -38226,10 +38544,10 @@ index ac76b48..2445bc6 100644
9141
9142 MODULE_AUTHOR("David S. Miller <davem@××××××.com>");
9143 diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
9144 -index f897d51..15da295 100644
9145 +index 4e1daca..e707b61 100644
9146 --- a/drivers/cpufreq/speedstep-centrino.c
9147 +++ b/drivers/cpufreq/speedstep-centrino.c
9148 -@@ -353,8 +353,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
9149 +@@ -351,8 +351,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
9150 !cpu_has(cpu, X86_FEATURE_EST))
9151 return -ENODEV;
9152
9153 @@ -38243,11 +38561,11 @@ index f897d51..15da295 100644
9154
9155 if (policy->cpu != 0)
9156 return -ENODEV;
9157 -diff --git a/drivers/cpuidle/cpuidle.c b/drivers/cpuidle/cpuidle.c
9158 -index 22c07fb..9dff5ac 100644
9159 ---- a/drivers/cpuidle/cpuidle.c
9160 -+++ b/drivers/cpuidle/cpuidle.c
9161 -@@ -252,7 +252,7 @@ static int poll_idle(struct cpuidle_device *dev,
9162 +diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
9163 +index 06dbe7c..c2c8671 100644
9164 +--- a/drivers/cpuidle/driver.c
9165 ++++ b/drivers/cpuidle/driver.c
9166 +@@ -202,7 +202,7 @@ static int poll_idle(struct cpuidle_device *dev,
9167
9168 static void poll_idle_init(struct cpuidle_driver *drv)
9169 {
9170 @@ -38257,7 +38575,7 @@ index 22c07fb..9dff5ac 100644
9171 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
9172 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
9173 diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
9174 -index ea2f8e7..70ac501 100644
9175 +index ca89412..a7b9c49 100644
9176 --- a/drivers/cpuidle/governor.c
9177 +++ b/drivers/cpuidle/governor.c
9178 @@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
9179 @@ -38269,20 +38587,11 @@ index ea2f8e7..70ac501 100644
9180 if (!cpuidle_curr_governor ||
9181 cpuidle_curr_governor->rating < gov->rating)
9182 cpuidle_switch_governor(gov);
9183 -@@ -135,7 +135,7 @@ void cpuidle_unregister_governor(struct cpuidle_governor *gov)
9184 - new_gov = cpuidle_replace_governor(gov->rating);
9185 - cpuidle_switch_governor(new_gov);
9186 - }
9187 -- list_del(&gov->governor_list);
9188 -+ pax_list_del((struct list_head *)&gov->governor_list);
9189 - mutex_unlock(&cpuidle_lock);
9190 - }
9191 -
9192 diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
9193 -index 8739cc0..dc859d0 100644
9194 +index e918b6d..f87ea80 100644
9195 --- a/drivers/cpuidle/sysfs.c
9196 +++ b/drivers/cpuidle/sysfs.c
9197 -@@ -134,7 +134,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
9198 +@@ -135,7 +135,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
9199 NULL
9200 };
9201
9202 @@ -38314,7 +38623,7 @@ index 12fea3e..1e28f47 100644
9203 err = pci_request_regions(pdev, name);
9204 if (err)
9205 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
9206 -index c99c00d..990a4b2 100644
9207 +index a0b2f7e..1b6f028 100644
9208 --- a/drivers/devfreq/devfreq.c
9209 +++ b/drivers/devfreq/devfreq.c
9210 @@ -607,7 +607,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
9211 @@ -38336,7 +38645,7 @@ index c99c00d..990a4b2 100644
9212 mutex_unlock(&devfreq_list_lock);
9213
9214 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
9215 -index 1069e88..dfcd642 100644
9216 +index 0d765c0..60b7480 100644
9217 --- a/drivers/dma/sh/shdmac.c
9218 +++ b/drivers/dma/sh/shdmac.c
9219 @@ -511,7 +511,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
9220 @@ -38349,7 +38658,7 @@ index 1069e88..dfcd642 100644
9221
9222 /* Run before NMI debug handler and KGDB */
9223 diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
9224 -index 211021d..201d47f 100644
9225 +index 1026743..80b081c 100644
9226 --- a/drivers/edac/edac_device.c
9227 +++ b/drivers/edac/edac_device.c
9228 @@ -474,9 +474,9 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
9229 @@ -38399,7 +38708,7 @@ index 9f7e0e60..348c875 100644
9230 &dev_attr_sdram_scrub_rate);
9231 if (err) {
9232 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
9233 -index dd370f9..0281629 100644
9234 +index 2cf44b4d..6dd2dc7 100644
9235 --- a/drivers/edac/edac_pci.c
9236 +++ b/drivers/edac/edac_pci.c
9237 @@ -29,7 +29,7 @@
9238 @@ -38568,7 +38877,7 @@ index de4aa40..49ab1f2 100644
9239 static ssize_t show_immediate(struct device *dev,
9240 struct device_attribute *dattr, char *buf)
9241 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
9242 -index e5af0e3..d318058 100644
9243 +index 0e79951..b180217 100644
9244 --- a/drivers/firewire/core-transaction.c
9245 +++ b/drivers/firewire/core-transaction.c
9246 @@ -38,6 +38,7 @@
9247 @@ -38605,10 +38914,10 @@ index 94a58a0..f5eba42 100644
9248 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
9249
9250 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
9251 -index fa0affb..aa448eb 100644
9252 +index c7e81ff..94a7401 100644
9253 --- a/drivers/firmware/dmi_scan.c
9254 +++ b/drivers/firmware/dmi_scan.c
9255 -@@ -791,7 +791,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
9256 +@@ -835,7 +835,7 @@ int dmi_walk(void (*decode)(const struct dmi_header *, void *),
9257 if (buf == NULL)
9258 return -1;
9259
9260 @@ -38617,11 +38926,32 @@ index fa0affb..aa448eb 100644
9261
9262 iounmap(buf);
9263 return 0;
9264 +diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
9265 +index 1491dd4..aa910db 100644
9266 +--- a/drivers/firmware/efi/cper.c
9267 ++++ b/drivers/firmware/efi/cper.c
9268 +@@ -41,12 +41,12 @@
9269 + */
9270 + u64 cper_next_record_id(void)
9271 + {
9272 +- static atomic64_t seq;
9273 ++ static atomic64_unchecked_t seq;
9274 +
9275 +- if (!atomic64_read(&seq))
9276 +- atomic64_set(&seq, ((u64)get_seconds()) << 32);
9277 ++ if (!atomic64_read_unchecked(&seq))
9278 ++ atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
9279 +
9280 +- return atomic64_inc_return(&seq);
9281 ++ return atomic64_inc_return_unchecked(&seq);
9282 + }
9283 + EXPORT_SYMBOL_GPL(cper_next_record_id);
9284 +
9285 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
9286 -index 5145fa3..0d3babd 100644
9287 +index 2e2fbde..7676c8b 100644
9288 --- a/drivers/firmware/efi/efi.c
9289 +++ b/drivers/firmware/efi/efi.c
9290 -@@ -65,14 +65,16 @@ static struct attribute_group efi_subsys_attr_group = {
9291 +@@ -81,14 +81,16 @@ static struct attribute_group efi_subsys_attr_group = {
9292 };
9293
9294 static struct efivars generic_efivars;
9295 @@ -38644,7 +38974,7 @@ index 5145fa3..0d3babd 100644
9296 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
9297 }
9298 diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
9299 -index 8c5a61a..cf07bd0 100644
9300 +index 3dc2482..7bd2f61 100644
9301 --- a/drivers/firmware/efi/efivars.c
9302 +++ b/drivers/firmware/efi/efivars.c
9303 @@ -456,7 +456,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
9304 @@ -38697,11 +39027,24 @@ index 9902732..64b62dd 100644
9305
9306 return -EINVAL;
9307 }
9308 +diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
9309 +index d6cf77c..2842146 100644
9310 +--- a/drivers/gpu/drm/drm_crtc.c
9311 ++++ b/drivers/gpu/drm/drm_crtc.c
9312 +@@ -3102,7 +3102,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
9313 + goto done;
9314 + }
9315 +
9316 +- if (copy_to_user(&enum_ptr[copied].name,
9317 ++ if (copy_to_user(enum_ptr[copied].name,
9318 + &prop_enum->name, DRM_PROP_NAME_LEN)) {
9319 + ret = -EFAULT;
9320 + goto done;
9321 diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
9322 -index c722c3b..2ec6040 100644
9323 +index 01361ab..891e821 100644
9324 --- a/drivers/gpu/drm/drm_crtc_helper.c
9325 +++ b/drivers/gpu/drm/drm_crtc_helper.c
9326 -@@ -328,7 +328,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
9327 +@@ -338,7 +338,7 @@ static bool drm_encoder_crtc_ok(struct drm_encoder *encoder,
9328 struct drm_crtc *tmp;
9329 int crtc_mask = 1;
9330
9331 @@ -38711,19 +39054,10 @@ index c722c3b..2ec6040 100644
9332 dev = crtc->dev;
9333
9334 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
9335 -index fe58d08..07bc38e 100644
9336 +index d9137e4..69b73a0 100644
9337 --- a/drivers/gpu/drm/drm_drv.c
9338 +++ b/drivers/gpu/drm/drm_drv.c
9339 -@@ -186,7 +186,7 @@ static void drm_legacy_dev_reinit(struct drm_device *dev)
9340 - atomic_set(&dev->vma_count, 0);
9341 -
9342 - for (i = 0; i < ARRAY_SIZE(dev->counts); i++)
9343 -- atomic_set(&dev->counts[i], 0);
9344 -+ atomic_set_unchecked(&dev->counts[i], 0);
9345 -
9346 - dev->sigdata.lock = NULL;
9347 -
9348 -@@ -302,7 +302,7 @@ module_exit(drm_core_exit);
9349 +@@ -233,7 +233,7 @@ module_exit(drm_core_exit);
9350 /**
9351 * Copy and IOCTL return string to user space
9352 */
9353 @@ -38732,7 +39066,7 @@ index fe58d08..07bc38e 100644
9354 {
9355 int len;
9356
9357 -@@ -372,7 +372,7 @@ long drm_ioctl(struct file *filp,
9358 +@@ -303,7 +303,7 @@ long drm_ioctl(struct file *filp,
9359 struct drm_file *file_priv = filp->private_data;
9360 struct drm_device *dev;
9361 const struct drm_ioctl_desc *ioctl = NULL;
9362 @@ -38741,17 +39075,8 @@ index fe58d08..07bc38e 100644
9363 unsigned int nr = DRM_IOCTL_NR(cmd);
9364 int retcode = -EINVAL;
9365 char stack_kdata[128];
9366 -@@ -385,7 +385,7 @@ long drm_ioctl(struct file *filp,
9367 - return -ENODEV;
9368 -
9369 - atomic_inc(&dev->ioctl_count);
9370 -- atomic_inc(&dev->counts[_DRM_STAT_IOCTLS]);
9371 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_IOCTLS]);
9372 - ++file_priv->ioctl_count;
9373 -
9374 - if ((nr >= DRM_CORE_IOCTL_COUNT) &&
9375 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
9376 -index 3f84277..c627c54 100644
9377 +index c5b929c..8a3b8be 100644
9378 --- a/drivers/gpu/drm/drm_fops.c
9379 +++ b/drivers/gpu/drm/drm_fops.c
9380 @@ -97,7 +97,7 @@ int drm_open(struct inode *inode, struct file *filp)
9381 @@ -38763,16 +39088,7 @@ index 3f84277..c627c54 100644
9382 need_setup = 1;
9383 mutex_lock(&dev->struct_mutex);
9384 old_imapping = inode->i_mapping;
9385 -@@ -113,7 +113,7 @@ int drm_open(struct inode *inode, struct file *filp)
9386 - retcode = drm_open_helper(inode, filp, dev);
9387 - if (retcode)
9388 - goto err_undo;
9389 -- atomic_inc(&dev->counts[_DRM_STAT_OPENS]);
9390 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_OPENS]);
9391 - if (need_setup) {
9392 - retcode = drm_setup(dev);
9393 - if (retcode)
9394 -@@ -128,7 +128,7 @@ err_undo:
9395 +@@ -127,7 +127,7 @@ err_undo:
9396 iput(container_of(dev->dev_mapping, struct inode, i_data));
9397 dev->dev_mapping = old_mapping;
9398 mutex_unlock(&dev->struct_mutex);
9399 @@ -38781,7 +39097,7 @@ index 3f84277..c627c54 100644
9400 return retcode;
9401 }
9402 EXPORT_SYMBOL(drm_open);
9403 -@@ -405,7 +405,7 @@ int drm_release(struct inode *inode, struct file *filp)
9404 +@@ -467,7 +467,7 @@ int drm_release(struct inode *inode, struct file *filp)
9405
9406 mutex_lock(&drm_global_mutex);
9407
9408 @@ -38790,7 +39106,7 @@ index 3f84277..c627c54 100644
9409
9410 if (dev->driver->preclose)
9411 dev->driver->preclose(dev, file_priv);
9412 -@@ -414,10 +414,10 @@ int drm_release(struct inode *inode, struct file *filp)
9413 +@@ -476,10 +476,10 @@ int drm_release(struct inode *inode, struct file *filp)
9414 * Begin inline drm_release
9415 */
9416
9417 @@ -38803,19 +39119,17 @@ index 3f84277..c627c54 100644
9418
9419 /* Release any auth tokens that might point to this file_priv,
9420 (do that under the drm_global_mutex) */
9421 -@@ -516,8 +516,8 @@ int drm_release(struct inode *inode, struct file *filp)
9422 +@@ -577,7 +577,7 @@ int drm_release(struct inode *inode, struct file *filp)
9423 * End inline drm_release
9424 */
9425
9426 -- atomic_inc(&dev->counts[_DRM_STAT_CLOSES]);
9427 - if (!--dev->open_count) {
9428 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_CLOSES]);
9429 + if (local_dec_and_test(&dev->open_count)) {
9430 if (atomic_read(&dev->ioctl_count)) {
9431 DRM_ERROR("Device busy: %d\n",
9432 atomic_read(&dev->ioctl_count));
9433 diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c
9434 -index f731116..629842c 100644
9435 +index 3d2e91c..d31c4c9 100644
9436 --- a/drivers/gpu/drm/drm_global.c
9437 +++ b/drivers/gpu/drm/drm_global.c
9438 @@ -36,7 +36,7 @@
9439 @@ -38845,8 +39159,8 @@ index f731116..629842c 100644
9440 }
9441 }
9442
9443 -@@ -70,7 +70,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
9444 - void *object;
9445 +@@ -69,7 +69,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
9446 + struct drm_global_item *item = &glob[ref->global_type];
9447
9448 mutex_lock(&item->mutex);
9449 - if (item->refcount == 0) {
9450 @@ -38854,16 +39168,16 @@ index f731116..629842c 100644
9451 item->object = kzalloc(ref->size, GFP_KERNEL);
9452 if (unlikely(item->object == NULL)) {
9453 ret = -ENOMEM;
9454 -@@ -83,7 +83,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
9455 +@@ -82,7 +82,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
9456 goto out_err;
9457
9458 }
9459 - ++item->refcount;
9460 + atomic_inc(&item->refcount);
9461 ref->object = item->object;
9462 - object = item->object;
9463 mutex_unlock(&item->mutex);
9464 -@@ -100,9 +100,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
9465 + return 0;
9466 +@@ -98,9 +98,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
9467 struct drm_global_item *item = &glob[ref->global_type];
9468
9469 mutex_lock(&item->mutex);
9470 @@ -38876,7 +39190,7 @@ index f731116..629842c 100644
9471 item->object = NULL;
9472 }
9473 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
9474 -index 5329832..b503f49 100644
9475 +index 7d5a152..d7186da 100644
9476 --- a/drivers/gpu/drm/drm_info.c
9477 +++ b/drivers/gpu/drm/drm_info.c
9478 @@ -75,10 +75,14 @@ int drm_vm_info(struct seq_file *m, void *data)
9479 @@ -38971,33 +39285,11 @@ index 2f4c434..dd12cd2 100644
9480 else
9481 ret = drm_ioctl(filp, cmd, arg);
9482
9483 -diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
9484 -index d752c96..fe08455 100644
9485 ---- a/drivers/gpu/drm/drm_lock.c
9486 -+++ b/drivers/gpu/drm/drm_lock.c
9487 -@@ -86,7 +86,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
9488 - if (drm_lock_take(&master->lock, lock->context)) {
9489 - master->lock.file_priv = file_priv;
9490 - master->lock.lock_time = jiffies;
9491 -- atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
9492 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_LOCKS]);
9493 - break; /* Got lock */
9494 - }
9495 -
9496 -@@ -157,7 +157,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
9497 - return -EINVAL;
9498 - }
9499 -
9500 -- atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]);
9501 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_UNLOCKS]);
9502 -
9503 - if (drm_lock_free(&master->lock, lock->context)) {
9504 - /* FIXME: Should really bail out here. */
9505 diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
9506 -index 39d8645..59e06fa 100644
9507 +index 66dd3a0..3bed6c4 100644
9508 --- a/drivers/gpu/drm/drm_stub.c
9509 +++ b/drivers/gpu/drm/drm_stub.c
9510 -@@ -484,7 +484,7 @@ void drm_unplug_dev(struct drm_device *dev)
9511 +@@ -403,7 +403,7 @@ void drm_unplug_dev(struct drm_device *dev)
9512
9513 drm_device_set_unplugged(dev);
9514
9515 @@ -39007,44 +39299,18 @@ index 39d8645..59e06fa 100644
9516 }
9517 mutex_unlock(&drm_global_mutex);
9518 diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
9519 -index 2290b3b..22056a1 100644
9520 +index c22c309..ae758c3 100644
9521 --- a/drivers/gpu/drm/drm_sysfs.c
9522 +++ b/drivers/gpu/drm/drm_sysfs.c
9523 -@@ -524,7 +524,7 @@ EXPORT_SYMBOL(drm_sysfs_hotplug_event);
9524 +@@ -505,7 +505,7 @@ static void drm_sysfs_release(struct device *dev)
9525 + */
9526 int drm_sysfs_device_add(struct drm_minor *minor)
9527 {
9528 - int err;
9529 - char *minor_str;
9530 + const char *minor_str;
9531 + int r;
9532
9533 - minor->kdev.parent = minor->dev->dev;
9534 -
9535 -diff --git a/drivers/gpu/drm/i810/i810_dma.c b/drivers/gpu/drm/i810/i810_dma.c
9536 -index ab1892eb..d7009ca 100644
9537 ---- a/drivers/gpu/drm/i810/i810_dma.c
9538 -+++ b/drivers/gpu/drm/i810/i810_dma.c
9539 -@@ -944,8 +944,8 @@ static int i810_dma_vertex(struct drm_device *dev, void *data,
9540 - dma->buflist[vertex->idx],
9541 - vertex->discard, vertex->used);
9542 -
9543 -- atomic_add(vertex->used, &dev->counts[_DRM_STAT_SECONDARY]);
9544 -- atomic_inc(&dev->counts[_DRM_STAT_DMA]);
9545 -+ atomic_add_unchecked(vertex->used, &dev->counts[_DRM_STAT_SECONDARY]);
9546 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_DMA]);
9547 - sarea_priv->last_enqueue = dev_priv->counter - 1;
9548 - sarea_priv->last_dispatch = (int)hw_status[5];
9549 -
9550 -@@ -1105,8 +1105,8 @@ static int i810_dma_mc(struct drm_device *dev, void *data,
9551 - i810_dma_dispatch_mc(dev, dma->buflist[mc->idx], mc->used,
9552 - mc->last_render);
9553 -
9554 -- atomic_add(mc->used, &dev->counts[_DRM_STAT_SECONDARY]);
9555 -- atomic_inc(&dev->counts[_DRM_STAT_DMA]);
9556 -+ atomic_add_unchecked(mc->used, &dev->counts[_DRM_STAT_SECONDARY]);
9557 -+ atomic_inc_unchecked(&dev->counts[_DRM_STAT_DMA]);
9558 - sarea_priv->last_enqueue = dev_priv->counter - 1;
9559 - sarea_priv->last_dispatch = (int)hw_status[5];
9560 -
9561 + if (minor->type == DRM_MINOR_CONTROL)
9562 diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
9563 index d4d16ed..8fb0b51 100644
9564 --- a/drivers/gpu/drm/i810/i810_drv.h
9565 @@ -39061,20 +39327,20 @@ index d4d16ed..8fb0b51 100644
9566 int front_offset;
9567 } drm_i810_private_t;
9568 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
9569 -index a6f4cb5..6b2beb2 100644
9570 +index 6ed45a9..eb6dc41 100644
9571 --- a/drivers/gpu/drm/i915/i915_debugfs.c
9572 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
9573 -@@ -624,7 +624,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
9574 +@@ -702,7 +702,7 @@ static int i915_interrupt_info(struct seq_file *m, void *data)
9575 I915_READ(GTIMR));
9576 }
9577 seq_printf(m, "Interrupts received: %d\n",
9578 - atomic_read(&dev_priv->irq_received));
9579 + atomic_read_unchecked(&dev_priv->irq_received));
9580 for_each_ring(ring, dev_priv, i) {
9581 - if (IS_GEN6(dev) || IS_GEN7(dev)) {
9582 + if (INTEL_INFO(dev)->gen >= 6) {
9583 seq_printf(m,
9584 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
9585 -index 5a25f24..5af2004 100644
9586 +index 5c64842..f14bdf8 100644
9587 --- a/drivers/gpu/drm/i915/i915_dma.c
9588 +++ b/drivers/gpu/drm/i915/i915_dma.c
9589 @@ -1271,7 +1271,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
9590 @@ -39087,10 +39353,10 @@ index 5a25f24..5af2004 100644
9591 return can_switch;
9592 }
9593 diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
9594 -index ab0f2c0..53c1bda 100644
9595 +index 90fcccb..b8aabc9 100644
9596 --- a/drivers/gpu/drm/i915/i915_drv.h
9597 +++ b/drivers/gpu/drm/i915/i915_drv.h
9598 -@@ -1181,7 +1181,7 @@ typedef struct drm_i915_private {
9599 +@@ -1325,7 +1325,7 @@ typedef struct drm_i915_private {
9600 drm_dma_handle_t *status_page_dmah;
9601 struct resource mch_res;
9602
9603 @@ -39100,10 +39366,10 @@ index ab0f2c0..53c1bda 100644
9604 /* protects the irq masks */
9605 spinlock_t irq_lock;
9606 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
9607 -index bf34577..3fd2ffa 100644
9608 +index a3ba9a8..ee52ddd 100644
9609 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
9610 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
9611 -@@ -768,9 +768,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
9612 +@@ -861,9 +861,9 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
9613
9614 static int
9615 validate_exec_list(struct drm_i915_gem_exec_object2 *exec,
9616 @@ -39112,8 +39378,8 @@ index bf34577..3fd2ffa 100644
9617 {
9618 - int i;
9619 + unsigned int i;
9620 - int relocs_total = 0;
9621 - int relocs_max = INT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
9622 + unsigned relocs_total = 0;
9623 + unsigned relocs_max = UINT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
9624
9625 diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
9626 index 3c59584..500f2e9 100644
9627 @@ -39151,10 +39417,10 @@ index 3c59584..500f2e9 100644
9628
9629 return ret;
9630 diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
9631 -index 4b91228..590c643 100644
9632 +index f13d5ed..8e6f36d 100644
9633 --- a/drivers/gpu/drm/i915/i915_irq.c
9634 +++ b/drivers/gpu/drm/i915/i915_irq.c
9635 -@@ -1085,7 +1085,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
9636 +@@ -1420,7 +1420,7 @@ static irqreturn_t valleyview_irq_handler(int irq, void *arg)
9637 int pipe;
9638 u32 pipe_stats[I915_MAX_PIPES];
9639
9640 @@ -39163,16 +39429,25 @@ index 4b91228..590c643 100644
9641
9642 while (true) {
9643 iir = I915_READ(VLV_IIR);
9644 -@@ -1390,7 +1390,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
9645 +@@ -1730,7 +1730,7 @@ static irqreturn_t ironlake_irq_handler(int irq, void *arg)
9646 + u32 de_iir, gt_iir, de_ier, sde_ier = 0;
9647 irqreturn_t ret = IRQ_NONE;
9648 - bool err_int_reenable = false;
9649
9650 - atomic_inc(&dev_priv->irq_received);
9651 + atomic_inc_unchecked(&dev_priv->irq_received);
9652
9653 /* We get interrupts on unclaimed registers, so check for this before we
9654 * do any I915_{READ,WRITE}. */
9655 -@@ -2146,7 +2146,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
9656 +@@ -1800,7 +1800,7 @@ static irqreturn_t gen8_irq_handler(int irq, void *arg)
9657 + uint32_t tmp = 0;
9658 + enum pipe pipe;
9659 +
9660 +- atomic_inc(&dev_priv->irq_received);
9661 ++ atomic_inc_unchecked(&dev_priv->irq_received);
9662 +
9663 + master_ctl = I915_READ(GEN8_MASTER_IRQ);
9664 + master_ctl &= ~GEN8_MASTER_IRQ_CONTROL;
9665 +@@ -2624,7 +2624,7 @@ static void ironlake_irq_preinstall(struct drm_device *dev)
9666 {
9667 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
9668
9669 @@ -39181,7 +39456,7 @@ index 4b91228..590c643 100644
9670
9671 I915_WRITE(HWSTAM, 0xeffe);
9672
9673 -@@ -2164,7 +2164,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev)
9674 +@@ -2642,7 +2642,7 @@ static void valleyview_irq_preinstall(struct drm_device *dev)
9675 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
9676 int pipe;
9677
9678 @@ -39190,7 +39465,25 @@ index 4b91228..590c643 100644
9679
9680 /* VLV magic */
9681 I915_WRITE(VLV_IMR, 0);
9682 -@@ -2452,7 +2452,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev)
9683 +@@ -2673,7 +2673,7 @@ static void gen8_irq_preinstall(struct drm_device *dev)
9684 + struct drm_i915_private *dev_priv = dev->dev_private;
9685 + int pipe;
9686 +
9687 +- atomic_set(&dev_priv->irq_received, 0);
9688 ++ atomic_set_unchecked(&dev_priv->irq_received, 0);
9689 +
9690 + I915_WRITE(GEN8_MASTER_IRQ, 0);
9691 + POSTING_READ(GEN8_MASTER_IRQ);
9692 +@@ -2999,7 +2999,7 @@ static void gen8_irq_uninstall(struct drm_device *dev)
9693 + if (!dev_priv)
9694 + return;
9695 +
9696 +- atomic_set(&dev_priv->irq_received, 0);
9697 ++ atomic_set_unchecked(&dev_priv->irq_received, 0);
9698 +
9699 + I915_WRITE(GEN8_MASTER_IRQ, 0);
9700 +
9701 +@@ -3093,7 +3093,7 @@ static void i8xx_irq_preinstall(struct drm_device * dev)
9702 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
9703 int pipe;
9704
9705 @@ -39199,7 +39492,7 @@ index 4b91228..590c643 100644
9706
9707 for_each_pipe(pipe)
9708 I915_WRITE(PIPESTAT(pipe), 0);
9709 -@@ -2530,7 +2530,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
9710 +@@ -3179,7 +3179,7 @@ static irqreturn_t i8xx_irq_handler(int irq, void *arg)
9711 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
9712 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
9713
9714 @@ -39208,7 +39501,7 @@ index 4b91228..590c643 100644
9715
9716 iir = I915_READ16(IIR);
9717 if (iir == 0)
9718 -@@ -2604,7 +2604,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
9719 +@@ -3254,7 +3254,7 @@ static void i915_irq_preinstall(struct drm_device * dev)
9720 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
9721 int pipe;
9722
9723 @@ -39217,7 +39510,7 @@ index 4b91228..590c643 100644
9724
9725 if (I915_HAS_HOTPLUG(dev)) {
9726 I915_WRITE(PORT_HOTPLUG_EN, 0);
9727 -@@ -2703,7 +2703,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
9728 +@@ -3361,7 +3361,7 @@ static irqreturn_t i915_irq_handler(int irq, void *arg)
9729 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
9730 int pipe, ret = IRQ_NONE;
9731
9732 @@ -39226,7 +39519,7 @@ index 4b91228..590c643 100644
9733
9734 iir = I915_READ(IIR);
9735 do {
9736 -@@ -2827,7 +2827,7 @@ static void i965_irq_preinstall(struct drm_device * dev)
9737 +@@ -3488,7 +3488,7 @@ static void i965_irq_preinstall(struct drm_device * dev)
9738 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
9739 int pipe;
9740
9741 @@ -39235,7 +39528,7 @@ index 4b91228..590c643 100644
9742
9743 I915_WRITE(PORT_HOTPLUG_EN, 0);
9744 I915_WRITE(PORT_HOTPLUG_STAT, I915_READ(PORT_HOTPLUG_STAT));
9745 -@@ -2941,7 +2941,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
9746 +@@ -3604,7 +3604,7 @@ static irqreturn_t i965_irq_handler(int irq, void *arg)
9747 I915_DISPLAY_PLANE_A_FLIP_PENDING_INTERRUPT |
9748 I915_DISPLAY_PLANE_B_FLIP_PENDING_INTERRUPT;
9749
9750 @@ -39245,10 +39538,10 @@ index 4b91228..590c643 100644
9751 iir = I915_READ(IIR);
9752
9753 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
9754 -index aad6f7b..dcc91447 100644
9755 +index 2bde35d..529646c 100644
9756 --- a/drivers/gpu/drm/i915/intel_display.c
9757 +++ b/drivers/gpu/drm/i915/intel_display.c
9758 -@@ -10019,13 +10019,13 @@ struct intel_quirk {
9759 +@@ -10492,13 +10492,13 @@ struct intel_quirk {
9760 int subsystem_vendor;
9761 int subsystem_device;
9762 void (*hook)(struct drm_device *dev);
9763 @@ -39264,7 +39557,7 @@ index aad6f7b..dcc91447 100644
9764
9765 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
9766 {
9767 -@@ -10033,18 +10033,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
9768 +@@ -10506,18 +10506,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
9769 return 1;
9770 }
9771
9772 @@ -39347,7 +39640,7 @@ index 709e90d..89a1c0d 100644
9773
9774 return ret;
9775 diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
9776 -index 598c281..60d590e 100644
9777 +index 2b0ceb8..517e99e 100644
9778 --- a/drivers/gpu/drm/mga/mga_irq.c
9779 +++ b/drivers/gpu/drm/mga/mga_irq.c
9780 @@ -43,7 +43,7 @@ u32 mga_get_vblank_counter(struct drm_device *dev, int crtc)
9781 @@ -39387,7 +39680,7 @@ index 598c281..60d590e 100644
9782
9783 *sequence = cur_fence;
9784 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
9785 -index 3e72876..d1c15ad 100644
9786 +index 4c3feaa..26391ce 100644
9787 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
9788 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
9789 @@ -965,7 +965,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
9790 @@ -39400,10 +39693,10 @@ index 3e72876..d1c15ad 100644
9791 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
9792
9793 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
9794 -index 994fd6e..6e12565 100644
9795 +index 4b0fb6c..67667a9 100644
9796 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
9797 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
9798 -@@ -94,7 +94,6 @@ struct nouveau_drm {
9799 +@@ -96,7 +96,6 @@ struct nouveau_drm {
9800 struct drm_global_reference mem_global_ref;
9801 struct ttm_bo_global_ref bo_global_ref;
9802 struct ttm_bo_device bdev;
9803 @@ -39424,6 +39717,61 @@ index c1a7e5a..38b8539 100644
9804 int ret;
9805
9806 if (nr < DRM_COMMAND_BASE)
9807 +diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
9808 +index 19e3757..ad16478 100644
9809 +--- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
9810 ++++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
9811 +@@ -130,11 +130,11 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
9812 + }
9813 +
9814 + const struct ttm_mem_type_manager_func nouveau_vram_manager = {
9815 +- nouveau_vram_manager_init,
9816 +- nouveau_vram_manager_fini,
9817 +- nouveau_vram_manager_new,
9818 +- nouveau_vram_manager_del,
9819 +- nouveau_vram_manager_debug
9820 ++ .init = nouveau_vram_manager_init,
9821 ++ .takedown = nouveau_vram_manager_fini,
9822 ++ .get_node = nouveau_vram_manager_new,
9823 ++ .put_node = nouveau_vram_manager_del,
9824 ++ .debug = nouveau_vram_manager_debug
9825 + };
9826 +
9827 + static int
9828 +@@ -198,11 +198,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
9829 + }
9830 +
9831 + const struct ttm_mem_type_manager_func nouveau_gart_manager = {
9832 +- nouveau_gart_manager_init,
9833 +- nouveau_gart_manager_fini,
9834 +- nouveau_gart_manager_new,
9835 +- nouveau_gart_manager_del,
9836 +- nouveau_gart_manager_debug
9837 ++ .init = nouveau_gart_manager_init,
9838 ++ .takedown = nouveau_gart_manager_fini,
9839 ++ .get_node = nouveau_gart_manager_new,
9840 ++ .put_node = nouveau_gart_manager_del,
9841 ++ .debug = nouveau_gart_manager_debug
9842 + };
9843 +
9844 + #include <core/subdev/vm/nv04.h>
9845 +@@ -270,11 +270,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
9846 + }
9847 +
9848 + const struct ttm_mem_type_manager_func nv04_gart_manager = {
9849 +- nv04_gart_manager_init,
9850 +- nv04_gart_manager_fini,
9851 +- nv04_gart_manager_new,
9852 +- nv04_gart_manager_del,
9853 +- nv04_gart_manager_debug
9854 ++ .init = nv04_gart_manager_init,
9855 ++ .takedown = nv04_gart_manager_fini,
9856 ++ .get_node = nv04_gart_manager_new,
9857 ++ .put_node = nv04_gart_manager_del,
9858 ++ .debug = nv04_gart_manager_debug
9859 + };
9860 +
9861 + int
9862 diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
9863 index 81638d7..2e45854 100644
9864 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c
9865 @@ -39495,7 +39843,7 @@ index c3c2bbd..bc3c0fb 100644
9866 return 0;
9867 }
9868 diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
9869 -index f7c9add..fb971d2 100644
9870 +index 7bda32f..dd98fc5 100644
9871 --- a/drivers/gpu/drm/qxl/qxl_drv.h
9872 +++ b/drivers/gpu/drm/qxl/qxl_drv.h
9873 @@ -290,10 +290,10 @@ struct qxl_device {
9874 @@ -39513,6 +39861,37 @@ index f7c9add..fb971d2 100644
9875 unsigned irq_received_error;
9876 wait_queue_head_t display_event;
9877 wait_queue_head_t cursor_event;
9878 +diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
9879 +index 7b95c75..9cffb4f 100644
9880 +--- a/drivers/gpu/drm/qxl/qxl_ioctl.c
9881 ++++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
9882 +@@ -181,7 +181,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
9883 +
9884 + /* TODO copy slow path code from i915 */
9885 + fb_cmd = qxl_bo_kmap_atomic_page(qdev, cmd_bo, (release->release_offset & PAGE_SIZE));
9886 +- unwritten = __copy_from_user_inatomic_nocache(fb_cmd + sizeof(union qxl_release_info) + (release->release_offset & ~PAGE_SIZE), (void *)(unsigned long)cmd->command, cmd->command_size);
9887 ++ unwritten = __copy_from_user_inatomic_nocache(fb_cmd + sizeof(union qxl_release_info) + (release->release_offset & ~PAGE_SIZE), (void __force_user *)(unsigned long)cmd->command, cmd->command_size);
9888 +
9889 + {
9890 + struct qxl_drawable *draw = fb_cmd;
9891 +@@ -201,7 +201,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
9892 + struct drm_qxl_reloc reloc;
9893 +
9894 + if (DRM_COPY_FROM_USER(&reloc,
9895 +- &((struct drm_qxl_reloc *)(uintptr_t)cmd->relocs)[i],
9896 ++ &((struct drm_qxl_reloc __force_user *)(uintptr_t)cmd->relocs)[i],
9897 + sizeof(reloc))) {
9898 + ret = -EFAULT;
9899 + goto out_free_bos;
9900 +@@ -297,7 +297,7 @@ static int qxl_execbuffer_ioctl(struct drm_device *dev, void *data,
9901 + struct drm_qxl_command *commands =
9902 + (struct drm_qxl_command *)(uintptr_t)execbuffer->commands;
9903 +
9904 +- if (DRM_COPY_FROM_USER(&user_cmd, &commands[cmd_num],
9905 ++ if (DRM_COPY_FROM_USER(&user_cmd, (struct drm_qxl_command __force_user *)&commands[cmd_num],
9906 + sizeof(user_cmd)))
9907 + return -EFAULT;
9908 +
9909 diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
9910 index 21393dc..329f3a9 100644
9911 --- a/drivers/gpu/drm/qxl/qxl_irq.c
9912 @@ -39557,7 +39936,7 @@ index 21393dc..329f3a9 100644
9913 ret = drm_irq_install(qdev->ddev);
9914 qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
9915 diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
9916 -index 037786d..2a95e33 100644
9917 +index c7e7e65..7dddd4d 100644
9918 --- a/drivers/gpu/drm/qxl/qxl_ttm.c
9919 +++ b/drivers/gpu/drm/qxl/qxl_ttm.c
9920 @@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
9921 @@ -39580,7 +39959,7 @@ index 037786d..2a95e33 100644
9922 }
9923 vma->vm_ops = &qxl_ttm_vm_ops;
9924 return 0;
9925 -@@ -558,25 +560,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
9926 +@@ -560,25 +562,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
9927 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
9928 {
9929 #if defined(CONFIG_DEBUG_FS)
9930 @@ -39751,10 +40130,10 @@ index af85299..ed9ac8d 100644
9931 if (regcomp
9932 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
9933 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
9934 -index 841d0e0..9eaa268 100644
9935 +index 39b033b..6efc056 100644
9936 --- a/drivers/gpu/drm/radeon/radeon_device.c
9937 +++ b/drivers/gpu/drm/radeon/radeon_device.c
9938 -@@ -1117,7 +1117,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
9939 +@@ -1120,7 +1120,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
9940 bool can_switch;
9941
9942 spin_lock(&dev->count_lock);
9943 @@ -39764,10 +40143,10 @@ index 841d0e0..9eaa268 100644
9944 return can_switch;
9945 }
9946 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
9947 -index b369d42..8dd04eb 100644
9948 +index 00e0d44..08381a4 100644
9949 --- a/drivers/gpu/drm/radeon/radeon_drv.h
9950 +++ b/drivers/gpu/drm/radeon/radeon_drv.h
9951 -@@ -258,7 +258,7 @@ typedef struct drm_radeon_private {
9952 +@@ -262,7 +262,7 @@ typedef struct drm_radeon_private {
9953
9954 /* SW interrupt */
9955 wait_queue_head_t swi_queue;
9956 @@ -39777,7 +40156,7 @@ index b369d42..8dd04eb 100644
9957 uint32_t irq_enable_reg;
9958 uint32_t r500_disp_irq_reg;
9959 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
9960 -index c180df8..5fd8186 100644
9961 +index bdb0f93..5ff558f 100644
9962 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
9963 +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c
9964 @@ -358,7 +358,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
9965 @@ -39954,23 +40333,39 @@ index 71245d6..94c556d 100644
9966 #endif
9967 return radeon_debugfs_add_files(rdev, radeon_mem_types_list, i);
9968
9969 -diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c
9970 -index 3c38f0a..13816e3 100644
9971 ---- a/drivers/gpu/drm/radeon/rs690.c
9972 -+++ b/drivers/gpu/drm/radeon/rs690.c
9973 -@@ -355,9 +355,11 @@ static void rs690_crtc_bandwidth_compute(struct radeon_device *rdev,
9974 - if (max_bandwidth.full > rdev->pm.sideport_bandwidth.full &&
9975 - rdev->pm.sideport_bandwidth.full)
9976 - max_bandwidth = rdev->pm.sideport_bandwidth;
9977 -- read_delay_latency.full = dfixed_const(370 * 800 * 1000);
9978 -+ read_delay_latency.full = dfixed_const(800 * 1000);
9979 - read_delay_latency.full = dfixed_div(read_delay_latency,
9980 - rdev->pm.igp_sideport_mclk);
9981 -+ a.full = dfixed_const(370);
9982 -+ read_delay_latency.full = dfixed_mul(read_delay_latency, a);
9983 - } else {
9984 - if (max_bandwidth.full > rdev->pm.k8_bandwidth.full &&
9985 - rdev->pm.k8_bandwidth.full)
9986 +diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
9987 +index ae1cb31..5b5b6b7c 100644
9988 +--- a/drivers/gpu/drm/tegra/dc.c
9989 ++++ b/drivers/gpu/drm/tegra/dc.c
9990 +@@ -1064,7 +1064,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
9991 + }
9992 +
9993 + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
9994 +- dc->debugfs_files[i].data = dc;
9995 ++ *(void **)&dc->debugfs_files[i].data = dc;
9996 +
9997 + err = drm_debugfs_create_files(dc->debugfs_files,
9998 + ARRAY_SIZE(debugfs_files),
9999 +diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
10000 +index c58eba33..83c2728 100644
10001 +--- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
10002 ++++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
10003 +@@ -141,10 +141,10 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
10004 + }
10005 +
10006 + const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
10007 +- ttm_bo_man_init,
10008 +- ttm_bo_man_takedown,
10009 +- ttm_bo_man_get_node,
10010 +- ttm_bo_man_put_node,
10011 +- ttm_bo_man_debug
10012 ++ .init = ttm_bo_man_init,
10013 ++ .takedown = ttm_bo_man_takedown,
10014 ++ .get_node = ttm_bo_man_get_node,
10015 ++ .put_node = ttm_bo_man_put_node,
10016 ++ .debug = ttm_bo_man_debug
10017 + };
10018 + EXPORT_SYMBOL(ttm_bo_manager_func);
10019 diff --git a/drivers/gpu/drm/ttm/ttm_memory.c b/drivers/gpu/drm/ttm/ttm_memory.c
10020 index dbc2def..0a9f710 100644
10021 --- a/drivers/gpu/drm/ttm/ttm_memory.c
10022 @@ -40118,10 +40513,10 @@ index ac98964..5dbf512 100644
10023 case VIA_IRQ_ABSOLUTE:
10024 break;
10025 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
10026 -index 150ec64..f5165f2 100644
10027 +index 20890ad..699e4f2 100644
10028 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
10029 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
10030 -@@ -290,7 +290,7 @@ struct vmw_private {
10031 +@@ -342,7 +342,7 @@ struct vmw_private {
10032 * Fencing and IRQs.
10033 */
10034
10035 @@ -40170,11 +40565,30 @@ index 3eb1486..0a47ee9 100644
10036 } while (*seqno == 0);
10037
10038 if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
10039 +diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
10040 +index c5c054a..46f0548 100644
10041 +--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
10042 ++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
10043 +@@ -153,9 +153,9 @@ static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
10044 + }
10045 +
10046 + const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
10047 +- vmw_gmrid_man_init,
10048 +- vmw_gmrid_man_takedown,
10049 +- vmw_gmrid_man_get_node,
10050 +- vmw_gmrid_man_put_node,
10051 +- vmw_gmrid_man_debug
10052 ++ .init = vmw_gmrid_man_init,
10053 ++ .takedown = vmw_gmrid_man_takedown,
10054 ++ .get_node = vmw_gmrid_man_get_node,
10055 ++ .put_node = vmw_gmrid_man_put_node,
10056 ++ .debug = vmw_gmrid_man_debug
10057 + };
10058 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
10059 -index c509d40..3b640c3 100644
10060 +index 45d5b5a..f3f5e4e 100644
10061 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
10062 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
10063 -@@ -138,7 +138,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
10064 +@@ -141,7 +141,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
10065 int ret;
10066
10067 num_clips = arg->num_clips;
10068 @@ -40183,7 +40597,7 @@ index c509d40..3b640c3 100644
10069
10070 if (unlikely(num_clips == 0))
10071 return 0;
10072 -@@ -222,7 +222,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
10073 +@@ -225,7 +225,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
10074 int ret;
10075
10076 num_clips = arg->num_clips;
10077 @@ -40227,19 +40641,6 @@ index 8a8725c2..afed796 100644
10078 else {
10079 marker = list_first_entry(&queue->head,
10080 struct vmw_marker, head);
10081 -diff --git a/drivers/gpu/host1x/drm/dc.c b/drivers/gpu/host1x/drm/dc.c
10082 -index b1a05ad..1c9d899 100644
10083 ---- a/drivers/gpu/host1x/drm/dc.c
10084 -+++ b/drivers/gpu/host1x/drm/dc.c
10085 -@@ -1004,7 +1004,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
10086 - }
10087 -
10088 - for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
10089 -- dc->debugfs_files[i].data = dc;
10090 -+ *(void **)&dc->debugfs_files[i].data = dc;
10091 -
10092 - err = drm_debugfs_create_files(dc->debugfs_files,
10093 - ARRAY_SIZE(debugfs_files),
10094 diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
10095 index ec0ae2d..dc0780b 100644
10096 --- a/drivers/gpu/vga/vga_switcheroo.c
10097 @@ -40263,7 +40664,7 @@ index ec0ae2d..dc0780b 100644
10098 /* copy over all the bus versions */
10099 if (dev->bus && dev->bus->pm) {
10100 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
10101 -index aedfe50..1dc929b 100644
10102 +index 253fe23..0dfec5f 100644
10103 --- a/drivers/hid/hid-core.c
10104 +++ b/drivers/hid/hid-core.c
10105 @@ -2416,7 +2416,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
10106 @@ -40329,10 +40730,10 @@ index cedc6da..2c3da2a 100644
10107 if (atomic_read(&uhid->report_done))
10108 goto unlock;
10109 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
10110 -index 6de6c98..18319e9 100644
10111 +index cea623c..73011b0 100644
10112 --- a/drivers/hv/channel.c
10113 +++ b/drivers/hv/channel.c
10114 -@@ -406,8 +406,8 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
10115 +@@ -362,8 +362,8 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
10116 int ret = 0;
10117 int t;
10118
10119 @@ -40344,7 +40745,7 @@ index 6de6c98..18319e9 100644
10120 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
10121 if (ret)
10122 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
10123 -index 88f4096..e50452e 100644
10124 +index f0c5e07..399256e 100644
10125 --- a/drivers/hv/hv.c
10126 +++ b/drivers/hv/hv.c
10127 @@ -112,7 +112,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
10128 @@ -40442,10 +40843,10 @@ index 7e17a54..a50a33d 100644
10129 cap_msg.caps.cap_bits.balloon = 1;
10130 cap_msg.caps.cap_bits.hot_add = 1;
10131 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
10132 -index d84918f..7f38f9f 100644
10133 +index e055176..c22ff1f 100644
10134 --- a/drivers/hv/hyperv_vmbus.h
10135 +++ b/drivers/hv/hyperv_vmbus.h
10136 -@@ -595,7 +595,7 @@ enum vmbus_connect_state {
10137 +@@ -602,7 +602,7 @@ enum vmbus_connect_state {
10138 struct vmbus_connection {
10139 enum vmbus_connect_state conn_state;
10140
10141 @@ -40455,10 +40856,10 @@ index d84918f..7f38f9f 100644
10142 /*
10143 * Represents channel interrupts. Each bit position represents a
10144 diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
10145 -index f9fe46f..356b119 100644
10146 +index 48aad4f..c768fb2 100644
10147 --- a/drivers/hv/vmbus_drv.c
10148 +++ b/drivers/hv/vmbus_drv.c
10149 -@@ -672,10 +672,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
10150 +@@ -846,10 +846,10 @@ int vmbus_device_register(struct hv_device *child_device_obj)
10151 {
10152 int ret = 0;
10153
10154 @@ -40472,7 +40873,7 @@ index f9fe46f..356b119 100644
10155 child_device_obj->device.bus = &hv_bus;
10156 child_device_obj->device.parent = &hv_acpi_dev->dev;
10157 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
10158 -index a9e3d01..9dd246e 100644
10159 +index 6a34f7f..aa4c3a6 100644
10160 --- a/drivers/hwmon/acpi_power_meter.c
10161 +++ b/drivers/hwmon/acpi_power_meter.c
10162 @@ -117,7 +117,7 @@ struct sensor_template {
10163 @@ -40484,7 +40885,7 @@ index a9e3d01..9dd246e 100644
10164
10165 /* Averaging interval */
10166 static int update_avg_interval(struct acpi_power_meter_resource *resource)
10167 -@@ -629,7 +629,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
10168 +@@ -632,7 +632,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
10169 struct sensor_template *attrs)
10170 {
10171 struct device *dev = &resource->acpi_dev->dev;
10172 @@ -40507,10 +40908,10 @@ index 3288f13..71cfb4e 100644
10173
10174 for (grp = groups; grp->format; grp++) {
10175 diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
10176 -index b25c643..a13460d 100644
10177 +index dafc63c..4abb96c 100644
10178 --- a/drivers/hwmon/asus_atk0110.c
10179 +++ b/drivers/hwmon/asus_atk0110.c
10180 -@@ -152,10 +152,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
10181 +@@ -151,10 +151,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
10182 struct atk_sensor_data {
10183 struct list_head list;
10184 struct atk_data *data;
10185 @@ -40525,7 +40926,7 @@ index b25c643..a13460d 100644
10186 char label_attr_name[ATTR_NAME_SIZE];
10187 char input_attr_name[ATTR_NAME_SIZE];
10188 char limit1_attr_name[ATTR_NAME_SIZE];
10189 -@@ -275,7 +275,7 @@ static ssize_t atk_name_show(struct device *dev,
10190 +@@ -274,7 +274,7 @@ static ssize_t atk_name_show(struct device *dev,
10191 static struct device_attribute atk_name_attr =
10192 __ATTR(name, 0444, atk_name_show, NULL);
10193
10194 @@ -40535,7 +40936,7 @@ index b25c643..a13460d 100644
10195 {
10196 sysfs_attr_init(&attr->attr);
10197 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
10198 -index 78be661..4dd032f 100644
10199 +index 9425098..7646cc5 100644
10200 --- a/drivers/hwmon/coretemp.c
10201 +++ b/drivers/hwmon/coretemp.c
10202 @@ -797,7 +797,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
10203 @@ -40574,10 +40975,10 @@ index 708081b..fe2d4ab 100644
10204 int in_i = 1, temp_i = 1, curr_i = 1;
10205 enum iio_chan_type type;
10206 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
10207 -index 6eb03ce..bea7e3e 100644
10208 +index cf811c1..4c17110 100644
10209 --- a/drivers/hwmon/nct6775.c
10210 +++ b/drivers/hwmon/nct6775.c
10211 -@@ -936,10 +936,10 @@ static struct attribute_group *
10212 +@@ -944,10 +944,10 @@ static struct attribute_group *
10213 nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
10214 int repeat)
10215 {
10216 @@ -40590,12 +40991,12 @@ index 6eb03ce..bea7e3e 100644
10217 + sensor_device_attribute_2_no_const *a2;
10218 struct attribute **attrs;
10219 struct sensor_device_template **t;
10220 - int err, i, j, count;
10221 + int i, count;
10222 diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
10223 -index 9319fcf..189ff45 100644
10224 +index 3cbf66e..8c5cc2a 100644
10225 --- a/drivers/hwmon/pmbus/pmbus_core.c
10226 +++ b/drivers/hwmon/pmbus/pmbus_core.c
10227 -@@ -781,7 +781,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
10228 +@@ -782,7 +782,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
10229 return 0;
10230 }
10231
10232 @@ -40604,7 +41005,7 @@ index 9319fcf..189ff45 100644
10233 const char *name,
10234 umode_t mode,
10235 ssize_t (*show)(struct device *dev,
10236 -@@ -798,7 +798,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
10237 +@@ -799,7 +799,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
10238 dev_attr->store = store;
10239 }
10240
10241 @@ -40613,7 +41014,7 @@ index 9319fcf..189ff45 100644
10242 const char *name,
10243 umode_t mode,
10244 ssize_t (*show)(struct device *dev,
10245 -@@ -820,7 +820,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
10246 +@@ -821,7 +821,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
10247 u16 reg, u8 mask)
10248 {
10249 struct pmbus_boolean *boolean;
10250 @@ -40622,7 +41023,7 @@ index 9319fcf..189ff45 100644
10251
10252 boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL);
10253 if (!boolean)
10254 -@@ -845,7 +845,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
10255 +@@ -846,7 +846,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
10256 bool update, bool readonly)
10257 {
10258 struct pmbus_sensor *sensor;
10259 @@ -40631,7 +41032,7 @@ index 9319fcf..189ff45 100644
10260
10261 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL);
10262 if (!sensor)
10263 -@@ -876,7 +876,7 @@ static int pmbus_add_label(struct pmbus_data *data,
10264 +@@ -877,7 +877,7 @@ static int pmbus_add_label(struct pmbus_data *data,
10265 const char *lstring, int index)
10266 {
10267 struct pmbus_label *label;
10268 @@ -40719,10 +41120,10 @@ index 07f01ac..d79ad3d 100644
10269 /* Wrapper access functions for multiplexed SMBus */
10270 static DEFINE_MUTEX(amd756_lock);
10271 diff --git a/drivers/i2c/busses/i2c-diolan-u2c.c b/drivers/i2c/busses/i2c-diolan-u2c.c
10272 -index dae3ddf..26e21d1 100644
10273 +index 721f7eb..0fd2a09 100644
10274 --- a/drivers/i2c/busses/i2c-diolan-u2c.c
10275 +++ b/drivers/i2c/busses/i2c-diolan-u2c.c
10276 -@@ -99,7 +99,7 @@ MODULE_PARM_DESC(frequency, "I2C clock frequency in hertz");
10277 +@@ -98,7 +98,7 @@ MODULE_PARM_DESC(frequency, "I2C clock frequency in hertz");
10278 /* usb layer */
10279
10280 /* Send command to device, and get response. */
10281 @@ -40745,10 +41146,10 @@ index 2ca268d..c6acbdf 100644
10282 /* Wrapper access functions for multiplexed SMBus */
10283 static DEFINE_MUTEX(nforce2_lock);
10284 diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
10285 -index c3ccdea..5b3dc1a 100644
10286 +index 80b47e8..1a6040d9 100644
10287 --- a/drivers/i2c/i2c-dev.c
10288 +++ b/drivers/i2c/i2c-dev.c
10289 -@@ -271,7 +271,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
10290 +@@ -277,7 +277,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
10291 break;
10292 }
10293
10294 @@ -40771,10 +41172,10 @@ index 0b510ba..4fbb5085 100644
10295 }
10296 }
10297 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
10298 -index f95c697..0a1b05c 100644
10299 +index 18f72e3..3722327 100644
10300 --- a/drivers/iio/industrialio-core.c
10301 +++ b/drivers/iio/industrialio-core.c
10302 -@@ -506,7 +506,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
10303 +@@ -521,7 +521,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
10304 }
10305
10306 static
10307 @@ -40784,7 +41185,7 @@ index f95c697..0a1b05c 100644
10308 struct iio_chan_spec const *chan,
10309 ssize_t (*readfunc)(struct device *dev,
10310 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
10311 -index 784b97c..c9ceadf 100644
10312 +index f2ef7ef..743d02f 100644
10313 --- a/drivers/infiniband/core/cm.c
10314 +++ b/drivers/infiniband/core/cm.c
10315 @@ -114,7 +114,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
10316 @@ -40796,7 +41197,7 @@ index 784b97c..c9ceadf 100644
10317 };
10318
10319 struct cm_counter_attribute {
10320 -@@ -1395,7 +1395,7 @@ static void cm_dup_req_handler(struct cm_work *work,
10321 +@@ -1392,7 +1392,7 @@ static void cm_dup_req_handler(struct cm_work *work,
10322 struct ib_mad_send_buf *msg = NULL;
10323 int ret;
10324
10325 @@ -40805,7 +41206,7 @@ index 784b97c..c9ceadf 100644
10326 counter[CM_REQ_COUNTER]);
10327
10328 /* Quick state check to discard duplicate REQs. */
10329 -@@ -1779,7 +1779,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
10330 +@@ -1776,7 +1776,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
10331 if (!cm_id_priv)
10332 return;
10333
10334 @@ -40814,7 +41215,7 @@ index 784b97c..c9ceadf 100644
10335 counter[CM_REP_COUNTER]);
10336 ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
10337 if (ret)
10338 -@@ -1946,7 +1946,7 @@ static int cm_rtu_handler(struct cm_work *work)
10339 +@@ -1943,7 +1943,7 @@ static int cm_rtu_handler(struct cm_work *work)
10340 if (cm_id_priv->id.state != IB_CM_REP_SENT &&
10341 cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
10342 spin_unlock_irq(&cm_id_priv->lock);
10343 @@ -40823,7 +41224,7 @@ index 784b97c..c9ceadf 100644
10344 counter[CM_RTU_COUNTER]);
10345 goto out;
10346 }
10347 -@@ -2129,7 +2129,7 @@ static int cm_dreq_handler(struct cm_work *work)
10348 +@@ -2126,7 +2126,7 @@ static int cm_dreq_handler(struct cm_work *work)
10349 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
10350 dreq_msg->local_comm_id);
10351 if (!cm_id_priv) {
10352 @@ -40832,7 +41233,7 @@ index 784b97c..c9ceadf 100644
10353 counter[CM_DREQ_COUNTER]);
10354 cm_issue_drep(work->port, work->mad_recv_wc);
10355 return -EINVAL;
10356 -@@ -2154,7 +2154,7 @@ static int cm_dreq_handler(struct cm_work *work)
10357 +@@ -2151,7 +2151,7 @@ static int cm_dreq_handler(struct cm_work *work)
10358 case IB_CM_MRA_REP_RCVD:
10359 break;
10360 case IB_CM_TIMEWAIT:
10361 @@ -40841,7 +41242,7 @@ index 784b97c..c9ceadf 100644
10362 counter[CM_DREQ_COUNTER]);
10363 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
10364 goto unlock;
10365 -@@ -2168,7 +2168,7 @@ static int cm_dreq_handler(struct cm_work *work)
10366 +@@ -2165,7 +2165,7 @@ static int cm_dreq_handler(struct cm_work *work)
10367 cm_free_msg(msg);
10368 goto deref;
10369 case IB_CM_DREQ_RCVD:
10370 @@ -40850,7 +41251,7 @@ index 784b97c..c9ceadf 100644
10371 counter[CM_DREQ_COUNTER]);
10372 goto unlock;
10373 default:
10374 -@@ -2535,7 +2535,7 @@ static int cm_mra_handler(struct cm_work *work)
10375 +@@ -2532,7 +2532,7 @@ static int cm_mra_handler(struct cm_work *work)
10376 ib_modify_mad(cm_id_priv->av.port->mad_agent,
10377 cm_id_priv->msg, timeout)) {
10378 if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
10379 @@ -40859,7 +41260,7 @@ index 784b97c..c9ceadf 100644
10380 counter_group[CM_RECV_DUPLICATES].
10381 counter[CM_MRA_COUNTER]);
10382 goto out;
10383 -@@ -2544,7 +2544,7 @@ static int cm_mra_handler(struct cm_work *work)
10384 +@@ -2541,7 +2541,7 @@ static int cm_mra_handler(struct cm_work *work)
10385 break;
10386 case IB_CM_MRA_REQ_RCVD:
10387 case IB_CM_MRA_REP_RCVD:
10388 @@ -40868,7 +41269,7 @@ index 784b97c..c9ceadf 100644
10389 counter[CM_MRA_COUNTER]);
10390 /* fall through */
10391 default:
10392 -@@ -2706,7 +2706,7 @@ static int cm_lap_handler(struct cm_work *work)
10393 +@@ -2703,7 +2703,7 @@ static int cm_lap_handler(struct cm_work *work)
10394 case IB_CM_LAP_IDLE:
10395 break;
10396 case IB_CM_MRA_LAP_SENT:
10397 @@ -40877,7 +41278,7 @@ index 784b97c..c9ceadf 100644
10398 counter[CM_LAP_COUNTER]);
10399 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
10400 goto unlock;
10401 -@@ -2722,7 +2722,7 @@ static int cm_lap_handler(struct cm_work *work)
10402 +@@ -2719,7 +2719,7 @@ static int cm_lap_handler(struct cm_work *work)
10403 cm_free_msg(msg);
10404 goto deref;
10405 case IB_CM_LAP_RCVD:
10406 @@ -40886,7 +41287,7 @@ index 784b97c..c9ceadf 100644
10407 counter[CM_LAP_COUNTER]);
10408 goto unlock;
10409 default:
10410 -@@ -3006,7 +3006,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
10411 +@@ -3003,7 +3003,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
10412 cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
10413 if (cur_cm_id_priv) {
10414 spin_unlock_irq(&cm.lock);
10415 @@ -40895,7 +41296,7 @@ index 784b97c..c9ceadf 100644
10416 counter[CM_SIDR_REQ_COUNTER]);
10417 goto out; /* Duplicate message. */
10418 }
10419 -@@ -3218,10 +3218,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
10420 +@@ -3215,10 +3215,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
10421 if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
10422 msg->retries = 1;
10423
10424 @@ -40908,7 +41309,7 @@ index 784b97c..c9ceadf 100644
10425 &port->counter_group[CM_XMIT_RETRIES].
10426 counter[attr_index]);
10427
10428 -@@ -3431,7 +3431,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
10429 +@@ -3428,7 +3428,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
10430 }
10431
10432 attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
10433 @@ -40917,7 +41318,7 @@ index 784b97c..c9ceadf 100644
10434 counter[attr_id - CM_ATTR_ID_OFFSET]);
10435
10436 work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
10437 -@@ -3636,7 +3636,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
10438 +@@ -3633,7 +3633,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
10439 cm_attr = container_of(attr, struct cm_counter_attribute, attr);
10440
10441 return sprintf(buf, "%ld\n",
10442 @@ -40998,7 +41399,7 @@ index 9f5ad7c..588cd84 100644
10443 }
10444 }
10445 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
10446 -index 4cb8eb2..146bf60 100644
10447 +index 84e4500..2c9beeb 100644
10448 --- a/drivers/infiniband/hw/cxgb4/mem.c
10449 +++ b/drivers/infiniband/hw/cxgb4/mem.c
10450 @@ -249,7 +249,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
10451 @@ -41019,6 +41420,41 @@ index 4cb8eb2..146bf60 100644
10452 }
10453 PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
10454 __func__, stag_state, type, pdid, stag_idx);
10455 +diff --git a/drivers/infiniband/hw/ipath/ipath_dma.c b/drivers/infiniband/hw/ipath/ipath_dma.c
10456 +index 644c2c7..ecf0879 100644
10457 +--- a/drivers/infiniband/hw/ipath/ipath_dma.c
10458 ++++ b/drivers/infiniband/hw/ipath/ipath_dma.c
10459 +@@ -176,17 +176,17 @@ static void ipath_dma_free_coherent(struct ib_device *dev, size_t size,
10460 + }
10461 +
10462 + struct ib_dma_mapping_ops ipath_dma_mapping_ops = {
10463 +- ipath_mapping_error,
10464 +- ipath_dma_map_single,
10465 +- ipath_dma_unmap_single,
10466 +- ipath_dma_map_page,
10467 +- ipath_dma_unmap_page,
10468 +- ipath_map_sg,
10469 +- ipath_unmap_sg,
10470 +- ipath_sg_dma_address,
10471 +- ipath_sg_dma_len,
10472 +- ipath_sync_single_for_cpu,
10473 +- ipath_sync_single_for_device,
10474 +- ipath_dma_alloc_coherent,
10475 +- ipath_dma_free_coherent
10476 ++ .mapping_error = ipath_mapping_error,
10477 ++ .map_single = ipath_dma_map_single,
10478 ++ .unmap_single = ipath_dma_unmap_single,
10479 ++ .map_page = ipath_dma_map_page,
10480 ++ .unmap_page = ipath_dma_unmap_page,
10481 ++ .map_sg = ipath_map_sg,
10482 ++ .unmap_sg = ipath_unmap_sg,
10483 ++ .dma_address = ipath_sg_dma_address,
10484 ++ .dma_len = ipath_sg_dma_len,
10485 ++ .sync_single_for_cpu = ipath_sync_single_for_cpu,
10486 ++ .sync_single_for_device = ipath_sync_single_for_device,
10487 ++ .alloc_coherent = ipath_dma_alloc_coherent,
10488 ++ .free_coherent = ipath_dma_free_coherent
10489 + };
10490 diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
10491 index 79b3dbc..96e5fcc 100644
10492 --- a/drivers/infiniband/hw/ipath/ipath_rc.c
10493 @@ -41291,7 +41727,7 @@ index 33cc589..3bd6538 100644
10494 extern u32 int_mod_timer_init;
10495 extern u32 int_mod_cq_depth_256;
10496 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
10497 -index 6b29249..57081dd 100644
10498 +index 6b29249..461d143 100644
10499 --- a/drivers/infiniband/hw/nes/nes_cm.c
10500 +++ b/drivers/infiniband/hw/nes/nes_cm.c
10501 @@ -68,14 +68,14 @@ u32 cm_packets_dropped;
10502 @@ -41316,7 +41752,33 @@ index 6b29249..57081dd 100644
10503
10504 static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
10505 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
10506 -@@ -148,13 +148,13 @@ static struct nes_cm_ops nes_cm_api = {
10507 +@@ -133,28 +133,28 @@ static void print_core(struct nes_cm_core *core);
10508 + /* instance of function pointers for client API */
10509 + /* set address of this instance to cm_core->cm_ops at cm_core alloc */
10510 + static struct nes_cm_ops nes_cm_api = {
10511 +- mini_cm_accelerated,
10512 +- mini_cm_listen,
10513 +- mini_cm_del_listen,
10514 +- mini_cm_connect,
10515 +- mini_cm_close,
10516 +- mini_cm_accept,
10517 +- mini_cm_reject,
10518 +- mini_cm_recv_pkt,
10519 +- mini_cm_dealloc_core,
10520 +- mini_cm_get,
10521 +- mini_cm_set
10522 ++ .accelerated = mini_cm_accelerated,
10523 ++ .listen = mini_cm_listen,
10524 ++ .stop_listener = mini_cm_del_listen,
10525 ++ .connect = mini_cm_connect,
10526 ++ .close = mini_cm_close,
10527 ++ .accept = mini_cm_accept,
10528 ++ .reject = mini_cm_reject,
10529 ++ .recv_pkt = mini_cm_recv_pkt,
10530 ++ .destroy_cm_core = mini_cm_dealloc_core,
10531 ++ .get = mini_cm_get,
10532 ++ .set = mini_cm_set
10533 + };
10534
10535 static struct nes_cm_core *g_cm_core;
10536
10537 @@ -41588,7 +42050,7 @@ index 49eb511..a774366 100644
10538
10539 /**
10540 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
10541 -index 5b53ca5..443da3c 100644
10542 +index 8308e36..ae0d3b5 100644
10543 --- a/drivers/infiniband/hw/nes/nes_verbs.c
10544 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
10545 @@ -46,9 +46,9 @@
10546 @@ -41635,10 +42097,10 @@ index 1946101..09766d2 100644
10547 #include "qib_common.h"
10548 #include "qib_verbs.h"
10549 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
10550 -index 922a7fe..bb035db 100644
10551 +index 24c41ba..102d71f 100644
10552 --- a/drivers/input/gameport/gameport.c
10553 +++ b/drivers/input/gameport/gameport.c
10554 -@@ -487,14 +487,14 @@ EXPORT_SYMBOL(gameport_set_phys);
10555 +@@ -490,14 +490,14 @@ EXPORT_SYMBOL(gameport_set_phys);
10556 */
10557 static void gameport_init_port(struct gameport *gameport)
10558 {
10559 @@ -41656,7 +42118,7 @@ index 922a7fe..bb035db 100644
10560 gameport->dev.release = gameport_release_port;
10561 if (gameport->parent)
10562 diff --git a/drivers/input/input.c b/drivers/input/input.c
10563 -index 74f4798..d9f7168 100644
10564 +index d2965e4..f52b7d7 100644
10565 --- a/drivers/input/input.c
10566 +++ b/drivers/input/input.c
10567 @@ -1734,7 +1734,7 @@ EXPORT_SYMBOL_GPL(input_class);
10568 @@ -41760,10 +42222,10 @@ index 4c842c3..590b0bf 100644
10569
10570 return count;
10571 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
10572 -index 2b56855..5a55837 100644
10573 +index 8f4c4ab..5fc8a45 100644
10574 --- a/drivers/input/serio/serio.c
10575 +++ b/drivers/input/serio/serio.c
10576 -@@ -496,7 +496,7 @@ static void serio_release_port(struct device *dev)
10577 +@@ -505,7 +505,7 @@ static void serio_release_port(struct device *dev)
10578 */
10579 static void serio_init_port(struct serio *serio)
10580 {
10581 @@ -41772,7 +42234,7 @@ index 2b56855..5a55837 100644
10582
10583 __module_get(THIS_MODULE);
10584
10585 -@@ -507,7 +507,7 @@ static void serio_init_port(struct serio *serio)
10586 +@@ -516,7 +516,7 @@ static void serio_init_port(struct serio *serio)
10587 mutex_init(&serio->drv_mutex);
10588 device_initialize(&serio->dev);
10589 dev_set_name(&serio->dev, "serio%ld",
10590 @@ -41804,10 +42266,10 @@ index 59df2e7..8f1cafb 100644
10591 INIT_LIST_HEAD(&serio_raw->client_list);
10592 init_waitqueue_head(&serio_raw->wait);
10593 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
10594 -index fbe9ca7..dbee61d 100644
10595 +index e5555fc..937986d 100644
10596 --- a/drivers/iommu/iommu.c
10597 +++ b/drivers/iommu/iommu.c
10598 -@@ -583,7 +583,7 @@ static struct notifier_block iommu_bus_nb = {
10599 +@@ -588,7 +588,7 @@ static struct notifier_block iommu_bus_nb = {
10600 static void iommu_bus_init(struct bus_type *bus, struct iommu_ops *ops)
10601 {
10602 bus_register_notifier(bus, &iommu_bus_nb);
10603 @@ -41847,7 +42309,7 @@ index 39f81ae..2660096 100644
10604
10605 bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
10606 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
10607 -index d0e9480..d2b6340 100644
10608 +index 341c601..e5f407e 100644
10609 --- a/drivers/irqchip/irq-gic.c
10610 +++ b/drivers/irqchip/irq-gic.c
10611 @@ -84,7 +84,7 @@ static u8 gic_cpu_map[NR_GIC_CPU_IF] __read_mostly;
10612 @@ -41859,7 +42321,7 @@ index d0e9480..d2b6340 100644
10613 .irq_eoi = NULL,
10614 .irq_mask = NULL,
10615 .irq_unmask = NULL,
10616 -@@ -333,7 +333,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
10617 +@@ -332,7 +332,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
10618 chained_irq_exit(chip, desc);
10619 }
10620
10621 @@ -41909,6 +42371,49 @@ index ac6f72b..81150f2 100644
10622 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
10623 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
10624 capimsg_setu16(skb->data, 16, len); /* Data length */
10625 +diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
10626 +index c44950d..10ac276 100644
10627 +--- a/drivers/isdn/gigaset/bas-gigaset.c
10628 ++++ b/drivers/isdn/gigaset/bas-gigaset.c
10629 +@@ -2564,22 +2564,22 @@ static int gigaset_post_reset(struct usb_interface *intf)
10630 +
10631 +
10632 + static const struct gigaset_ops gigops = {
10633 +- gigaset_write_cmd,
10634 +- gigaset_write_room,
10635 +- gigaset_chars_in_buffer,
10636 +- gigaset_brkchars,
10637 +- gigaset_init_bchannel,
10638 +- gigaset_close_bchannel,
10639 +- gigaset_initbcshw,
10640 +- gigaset_freebcshw,
10641 +- gigaset_reinitbcshw,
10642 +- gigaset_initcshw,
10643 +- gigaset_freecshw,
10644 +- gigaset_set_modem_ctrl,
10645 +- gigaset_baud_rate,
10646 +- gigaset_set_line_ctrl,
10647 +- gigaset_isoc_send_skb,
10648 +- gigaset_isoc_input,
10649 ++ .write_cmd = gigaset_write_cmd,
10650 ++ .write_room = gigaset_write_room,
10651 ++ .chars_in_buffer = gigaset_chars_in_buffer,
10652 ++ .brkchars = gigaset_brkchars,
10653 ++ .init_bchannel = gigaset_init_bchannel,
10654 ++ .close_bchannel = gigaset_close_bchannel,
10655 ++ .initbcshw = gigaset_initbcshw,
10656 ++ .freebcshw = gigaset_freebcshw,
10657 ++ .reinitbcshw = gigaset_reinitbcshw,
10658 ++ .initcshw = gigaset_initcshw,
10659 ++ .freecshw = gigaset_freecshw,
10660 ++ .set_modem_ctrl = gigaset_set_modem_ctrl,
10661 ++ .baud_rate = gigaset_baud_rate,
10662 ++ .set_line_ctrl = gigaset_set_line_ctrl,
10663 ++ .send_skb = gigaset_isoc_send_skb,
10664 ++ .handle_input = gigaset_isoc_input,
10665 + };
10666 +
10667 + /* bas_gigaset_init
10668 diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
10669 index 600c79b..3752bab 100644
10670 --- a/drivers/isdn/gigaset/interface.c
10671 @@ -41937,8 +42442,51 @@ index 600c79b..3752bab 100644
10672 tty_port_tty_set(&cs->port, NULL);
10673
10674 mutex_unlock(&cs->mutex);
10675 +diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/isdn/gigaset/ser-gigaset.c
10676 +index 8c91fd5..14f13ce 100644
10677 +--- a/drivers/isdn/gigaset/ser-gigaset.c
10678 ++++ b/drivers/isdn/gigaset/ser-gigaset.c
10679 +@@ -453,22 +453,22 @@ static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag)
10680 + }
10681 +
10682 + static const struct gigaset_ops ops = {
10683 +- gigaset_write_cmd,
10684 +- gigaset_write_room,
10685 +- gigaset_chars_in_buffer,
10686 +- gigaset_brkchars,
10687 +- gigaset_init_bchannel,
10688 +- gigaset_close_bchannel,
10689 +- gigaset_initbcshw,
10690 +- gigaset_freebcshw,
10691 +- gigaset_reinitbcshw,
10692 +- gigaset_initcshw,
10693 +- gigaset_freecshw,
10694 +- gigaset_set_modem_ctrl,
10695 +- gigaset_baud_rate,
10696 +- gigaset_set_line_ctrl,
10697 +- gigaset_m10x_send_skb, /* asyncdata.c */
10698 +- gigaset_m10x_input, /* asyncdata.c */
10699 ++ .write_cmd = gigaset_write_cmd,
10700 ++ .write_room = gigaset_write_room,
10701 ++ .chars_in_buffer = gigaset_chars_in_buffer,
10702 ++ .brkchars = gigaset_brkchars,
10703 ++ .init_bchannel = gigaset_init_bchannel,
10704 ++ .close_bchannel = gigaset_close_bchannel,
10705 ++ .initbcshw = gigaset_initbcshw,
10706 ++ .freebcshw = gigaset_freebcshw,
10707 ++ .reinitbcshw = gigaset_reinitbcshw,
10708 ++ .initcshw = gigaset_initcshw,
10709 ++ .freecshw = gigaset_freecshw,
10710 ++ .set_modem_ctrl = gigaset_set_modem_ctrl,
10711 ++ .baud_rate = gigaset_baud_rate,
10712 ++ .set_line_ctrl = gigaset_set_line_ctrl,
10713 ++ .send_skb = gigaset_m10x_send_skb, /* asyncdata.c */
10714 ++ .handle_input = gigaset_m10x_input, /* asyncdata.c */
10715 + };
10716 +
10717 +
10718 diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
10719 -index d0a41cb..f0cdb8c 100644
10720 +index d0a41cb..b953e50 100644
10721 --- a/drivers/isdn/gigaset/usb-gigaset.c
10722 +++ b/drivers/isdn/gigaset/usb-gigaset.c
10723 @@ -547,7 +547,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
10724 @@ -41950,6 +42498,45 @@ index d0a41cb..f0cdb8c 100644
10725 }
10726
10727 static void gigaset_freebcshw(struct bc_state *bcs)
10728 +@@ -869,22 +869,22 @@ static int gigaset_pre_reset(struct usb_interface *intf)
10729 + }
10730 +
10731 + static const struct gigaset_ops ops = {
10732 +- gigaset_write_cmd,
10733 +- gigaset_write_room,
10734 +- gigaset_chars_in_buffer,
10735 +- gigaset_brkchars,
10736 +- gigaset_init_bchannel,
10737 +- gigaset_close_bchannel,
10738 +- gigaset_initbcshw,
10739 +- gigaset_freebcshw,
10740 +- gigaset_reinitbcshw,
10741 +- gigaset_initcshw,
10742 +- gigaset_freecshw,
10743 +- gigaset_set_modem_ctrl,
10744 +- gigaset_baud_rate,
10745 +- gigaset_set_line_ctrl,
10746 +- gigaset_m10x_send_skb,
10747 +- gigaset_m10x_input,
10748 ++ .write_cmd = gigaset_write_cmd,
10749 ++ .write_room = gigaset_write_room,
10750 ++ .chars_in_buffer = gigaset_chars_in_buffer,
10751 ++ .brkchars = gigaset_brkchars,
10752 ++ .init_bchannel = gigaset_init_bchannel,
10753 ++ .close_bchannel = gigaset_close_bchannel,
10754 ++ .initbcshw = gigaset_initbcshw,
10755 ++ .freebcshw = gigaset_freebcshw,
10756 ++ .reinitbcshw = gigaset_reinitbcshw,
10757 ++ .initcshw = gigaset_initcshw,
10758 ++ .freecshw = gigaset_freecshw,
10759 ++ .set_modem_ctrl = gigaset_set_modem_ctrl,
10760 ++ .baud_rate = gigaset_baud_rate,
10761 ++ .set_line_ctrl = gigaset_set_line_ctrl,
10762 ++ .send_skb = gigaset_m10x_send_skb,
10763 ++ .handle_input = gigaset_m10x_input,
10764 + };
10765 +
10766 + /*
10767 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
10768 index 4d9b195..455075c 100644
10769 --- a/drivers/isdn/hardware/avm/b1.c
10770 @@ -41985,6 +42572,23 @@ index 9bb12ba..d4262f7 100644
10771 if (arg) {
10772 if (copy_to_user(argp, &dev, sizeof(ulong)))
10773 return -EFAULT;
10774 +diff --git a/drivers/isdn/i4l/isdn_concap.c b/drivers/isdn/i4l/isdn_concap.c
10775 +index 91d5730..336523e 100644
10776 +--- a/drivers/isdn/i4l/isdn_concap.c
10777 ++++ b/drivers/isdn/i4l/isdn_concap.c
10778 +@@ -80,9 +80,9 @@ static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
10779 + }
10780 +
10781 + struct concap_device_ops isdn_concap_reliable_dl_dops = {
10782 +- &isdn_concap_dl_data_req,
10783 +- &isdn_concap_dl_connect_req,
10784 +- &isdn_concap_dl_disconn_req
10785 ++ .data_req = &isdn_concap_dl_data_req,
10786 ++ .connect_req = &isdn_concap_dl_connect_req,
10787 ++ .disconn_req = &isdn_concap_dl_disconn_req
10788 + };
10789 +
10790 + /* The following should better go into a dedicated source file such that
10791 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
10792 index 3c5f249..5fac4d0 100644
10793 --- a/drivers/isdn/i4l/isdn_tty.c
10794 @@ -42050,8 +42654,35 @@ index 3c5f249..5fac4d0 100644
10795 continue;
10796 if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) && /* SI1 is matching */
10797 (info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
10798 +diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
10799 +index e2d4e58..40cd045 100644
10800 +--- a/drivers/isdn/i4l/isdn_x25iface.c
10801 ++++ b/drivers/isdn/i4l/isdn_x25iface.c
10802 +@@ -53,14 +53,14 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *);
10803 +
10804 +
10805 + static struct concap_proto_ops ix25_pops = {
10806 +- &isdn_x25iface_proto_new,
10807 +- &isdn_x25iface_proto_del,
10808 +- &isdn_x25iface_proto_restart,
10809 +- &isdn_x25iface_proto_close,
10810 +- &isdn_x25iface_xmit,
10811 +- &isdn_x25iface_receive,
10812 +- &isdn_x25iface_connect_ind,
10813 +- &isdn_x25iface_disconn_ind
10814 ++ .proto_new = &isdn_x25iface_proto_new,
10815 ++ .proto_del = &isdn_x25iface_proto_del,
10816 ++ .restart = &isdn_x25iface_proto_restart,
10817 ++ .close = &isdn_x25iface_proto_close,
10818 ++ .encap_and_xmit = &isdn_x25iface_xmit,
10819 ++ .data_ind = &isdn_x25iface_receive,
10820 ++ .connect_ind = &isdn_x25iface_connect_ind,
10821 ++ .disconn_ind = &isdn_x25iface_disconn_ind
10822 + };
10823 +
10824 + /* error message helper function */
10825 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
10826 -index e74df7c..03a03ba 100644
10827 +index 53d487f..f020f41 100644
10828 --- a/drivers/isdn/icn/icn.c
10829 +++ b/drivers/isdn/icn/icn.c
10830 @@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
10831 @@ -42147,7 +42778,7 @@ index bfb39bb..08a603b 100644
10832 /* If the entry's not present, there's nothing to release. */
10833 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
10834 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
10835 -index 5169239..47cb4db 100644
10836 +index 922a1ac..9dd0c2a 100644
10837 --- a/drivers/lguest/x86/core.c
10838 +++ b/drivers/lguest/x86/core.c
10839 @@ -59,7 +59,7 @@ static struct {
10840 @@ -42173,7 +42804,7 @@ index 5169239..47cb4db 100644
10841 /*
10842 * Set up the Guest's page tables to see this CPU's pages (and no
10843 * other CPU's pages).
10844 -@@ -475,7 +481,7 @@ void __init lguest_arch_host_init(void)
10845 +@@ -477,7 +483,7 @@ void __init lguest_arch_host_init(void)
10846 * compiled-in switcher code and the high-mapped copy we just made.
10847 */
10848 for (i = 0; i < IDT_ENTRIES; i++)
10849 @@ -42182,7 +42813,7 @@ index 5169239..47cb4db 100644
10850
10851 /*
10852 * Set up the Switcher's per-cpu areas.
10853 -@@ -558,7 +564,7 @@ void __init lguest_arch_host_init(void)
10854 +@@ -560,7 +566,7 @@ void __init lguest_arch_host_init(void)
10855 * it will be undisturbed when we switch. To change %cs and jump we
10856 * need this structure to feed to Intel's "lcall" instruction.
10857 */
10858 @@ -42254,10 +42885,10 @@ index 40634b0..4f5855e 100644
10859 // Every interrupt can come to us here
10860 // But we must truly tell each apart.
10861 diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
10862 -index 0003992..854bbce 100644
10863 +index 9762f1b..3e79734 100644
10864 --- a/drivers/md/bcache/closure.h
10865 +++ b/drivers/md/bcache/closure.h
10866 -@@ -622,7 +622,7 @@ static inline void closure_wake_up(struct closure_waitlist *list)
10867 +@@ -483,7 +483,7 @@ static inline void closure_queue(struct closure *cl)
10868 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
10869 struct workqueue_struct *wq)
10870 {
10871 @@ -42266,21 +42897,8 @@ index 0003992..854bbce 100644
10872 closure_set_ip(cl);
10873 cl->fn = fn;
10874 cl->wq = wq;
10875 -diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c
10876 -index 547c4c5..5be1de4 100644
10877 ---- a/drivers/md/bcache/super.c
10878 -+++ b/drivers/md/bcache/super.c
10879 -@@ -1644,7 +1644,7 @@ err_unlock_gc:
10880 - err:
10881 - closure_sync(&op.cl);
10882 - /* XXX: test this, it's broken */
10883 -- bch_cache_set_error(c, err);
10884 -+ bch_cache_set_error(c, "%s", err);
10885 - }
10886 -
10887 - static bool can_attach_cache(struct cache *ca, struct cache_set *c)
10888 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
10889 -index a7fd821..9dcf6c3 100644
10890 +index 12dc29b..1596277 100644
10891 --- a/drivers/md/bitmap.c
10892 +++ b/drivers/md/bitmap.c
10893 @@ -1779,7 +1779,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
10894 @@ -42293,10 +42911,10 @@ index a7fd821..9dcf6c3 100644
10895
10896 seq_printf(seq, "\n");
10897 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
10898 -index afe0814..8cf3794 100644
10899 +index 5152142..623d141 100644
10900 --- a/drivers/md/dm-ioctl.c
10901 +++ b/drivers/md/dm-ioctl.c
10902 -@@ -1745,7 +1745,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
10903 +@@ -1769,7 +1769,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
10904 cmd == DM_LIST_VERSIONS_CMD)
10905 return 0;
10906
10907 @@ -42448,7 +43066,7 @@ index 73c1712..7347292 100644
10908 schedule_work(&sc->trigger_event);
10909 }
10910 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
10911 -index 20a8cc0..5447b11 100644
10912 +index 3ba6a38..b0fa9b0 100644
10913 --- a/drivers/md/dm-table.c
10914 +++ b/drivers/md/dm-table.c
10915 @@ -291,7 +291,7 @@ static struct dm_dev_internal *find_device(struct list_head *l, dev_t dev)
10916 @@ -42492,10 +43110,10 @@ index 8a30ad5..72792d3 100644
10917 pmd->bl_info.value_type.inc = data_block_inc;
10918 pmd->bl_info.value_type.dec = data_block_dec;
10919 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
10920 -index b3e26c7..1efca94 100644
10921 +index 0704c52..0a33d61 100644
10922 --- a/drivers/md/dm.c
10923 +++ b/drivers/md/dm.c
10924 -@@ -179,9 +179,9 @@ struct mapped_device {
10925 +@@ -185,9 +185,9 @@ struct mapped_device {
10926 /*
10927 * Event handling.
10928 */
10929 @@ -42507,7 +43125,7 @@ index b3e26c7..1efca94 100644
10930 struct list_head uevent_list;
10931 spinlock_t uevent_lock; /* Protect access to uevent_list */
10932
10933 -@@ -1985,8 +1985,8 @@ static struct mapped_device *alloc_dev(int minor)
10934 +@@ -2021,8 +2021,8 @@ static struct mapped_device *alloc_dev(int minor)
10935 spin_lock_init(&md->deferred_lock);
10936 atomic_set(&md->holders, 1);
10937 atomic_set(&md->open_count, 0);
10938 @@ -42518,7 +43136,7 @@ index b3e26c7..1efca94 100644
10939 INIT_LIST_HEAD(&md->uevent_list);
10940 spin_lock_init(&md->uevent_lock);
10941
10942 -@@ -2139,7 +2139,7 @@ static void event_callback(void *context)
10943 +@@ -2175,7 +2175,7 @@ static void event_callback(void *context)
10944
10945 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
10946
10947 @@ -42527,7 +43145,7 @@ index b3e26c7..1efca94 100644
10948 wake_up(&md->eventq);
10949 }
10950
10951 -@@ -2832,18 +2832,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
10952 +@@ -2868,18 +2868,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
10953
10954 uint32_t dm_next_uevent_seq(struct mapped_device *md)
10955 {
10956 @@ -42550,10 +43168,10 @@ index b3e26c7..1efca94 100644
10957
10958 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
10959 diff --git a/drivers/md/md.c b/drivers/md/md.c
10960 -index ba46d97..f8f5019 100644
10961 +index 369d919..ba7049c 100644
10962 --- a/drivers/md/md.c
10963 +++ b/drivers/md/md.c
10964 -@@ -234,10 +234,10 @@ EXPORT_SYMBOL_GPL(md_trim_bio);
10965 +@@ -194,10 +194,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
10966 * start build, activate spare
10967 */
10968 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
10969 @@ -42566,7 +43184,7 @@ index ba46d97..f8f5019 100644
10970 wake_up(&md_event_waiters);
10971 }
10972 EXPORT_SYMBOL_GPL(md_new_event);
10973 -@@ -247,7 +247,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
10974 +@@ -207,7 +207,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
10975 */
10976 static void md_new_event_inintr(struct mddev *mddev)
10977 {
10978 @@ -42575,7 +43193,7 @@ index ba46d97..f8f5019 100644
10979 wake_up(&md_event_waiters);
10980 }
10981
10982 -@@ -1502,7 +1502,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
10983 +@@ -1463,7 +1463,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
10984 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
10985 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
10986 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
10987 @@ -42584,7 +43202,7 @@ index ba46d97..f8f5019 100644
10988
10989 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
10990 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
10991 -@@ -1746,7 +1746,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
10992 +@@ -1710,7 +1710,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
10993 else
10994 sb->resync_offset = cpu_to_le64(0);
10995
10996 @@ -42593,7 +43211,7 @@ index ba46d97..f8f5019 100644
10997
10998 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
10999 sb->size = cpu_to_le64(mddev->dev_sectors);
11000 -@@ -2751,7 +2751,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
11001 +@@ -2715,7 +2715,7 @@ __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store);
11002 static ssize_t
11003 errors_show(struct md_rdev *rdev, char *page)
11004 {
11005 @@ -42602,7 +43220,7 @@ index ba46d97..f8f5019 100644
11006 }
11007
11008 static ssize_t
11009 -@@ -2760,7 +2760,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
11010 +@@ -2724,7 +2724,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
11011 char *e;
11012 unsigned long n = simple_strtoul(buf, &e, 10);
11013 if (*buf && (*e == 0 || *e == '\n')) {
11014 @@ -42611,7 +43229,7 @@ index ba46d97..f8f5019 100644
11015 return len;
11016 }
11017 return -EINVAL;
11018 -@@ -3208,8 +3208,8 @@ int md_rdev_init(struct md_rdev *rdev)
11019 +@@ -3173,8 +3173,8 @@ int md_rdev_init(struct md_rdev *rdev)
11020 rdev->sb_loaded = 0;
11021 rdev->bb_page = NULL;
11022 atomic_set(&rdev->nr_pending, 0);
11023 @@ -42622,7 +43240,7 @@ index ba46d97..f8f5019 100644
11024
11025 INIT_LIST_HEAD(&rdev->same_set);
11026 init_waitqueue_head(&rdev->blocked_wait);
11027 -@@ -7043,7 +7043,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
11028 +@@ -7038,7 +7038,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
11029
11030 spin_unlock(&pers_lock);
11031 seq_printf(seq, "\n");
11032 @@ -42631,7 +43249,7 @@ index ba46d97..f8f5019 100644
11033 return 0;
11034 }
11035 if (v == (void*)2) {
11036 -@@ -7146,7 +7146,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
11037 +@@ -7141,7 +7141,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
11038 return error;
11039
11040 seq = file->private_data;
11041 @@ -42640,7 +43258,7 @@ index ba46d97..f8f5019 100644
11042 return error;
11043 }
11044
11045 -@@ -7160,7 +7160,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
11046 +@@ -7155,7 +7155,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
11047 /* always allow read */
11048 mask = POLLIN | POLLRDNORM;
11049
11050 @@ -42649,7 +43267,7 @@ index ba46d97..f8f5019 100644
11051 mask |= POLLERR | POLLPRI;
11052 return mask;
11053 }
11054 -@@ -7204,7 +7204,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
11055 +@@ -7199,7 +7199,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
11056 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
11057 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
11058 (int)part_stat_read(&disk->part0, sectors[1]) -
11059 @@ -42659,7 +43277,7 @@ index ba46d97..f8f5019 100644
11060 * as sync_io is counted when a request starts, and
11061 * disk_stats is counted when it completes.
11062 diff --git a/drivers/md/md.h b/drivers/md/md.h
11063 -index 608050c..6e77db5d 100644
11064 +index 0095ec8..c89277a 100644
11065 --- a/drivers/md/md.h
11066 +++ b/drivers/md/md.h
11067 @@ -94,13 +94,13 @@ struct md_rdev {
11068 @@ -42678,7 +43296,7 @@ index 608050c..6e77db5d 100644
11069 * for reporting to userspace and storing
11070 * in superblock.
11071 */
11072 -@@ -446,7 +446,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
11073 +@@ -449,7 +449,7 @@ static inline void rdev_dec_pending(struct md_rdev *rdev, struct mddev *mddev)
11074
11075 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
11076 {
11077 @@ -42700,10 +43318,10 @@ index 3e6d115..ffecdeb 100644
11078 /*----------------------------------------------------------------*/
11079
11080 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
11081 -index aacf6bf..67d63f2 100644
11082 +index a49cfcc..20b9a65 100644
11083 --- a/drivers/md/raid1.c
11084 +++ b/drivers/md/raid1.c
11085 -@@ -1824,7 +1824,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
11086 +@@ -1921,7 +1921,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
11087 if (r1_sync_page_io(rdev, sect, s,
11088 bio->bi_io_vec[idx].bv_page,
11089 READ) != 0)
11090 @@ -42712,7 +43330,7 @@ index aacf6bf..67d63f2 100644
11091 }
11092 sectors -= s;
11093 sect += s;
11094 -@@ -2051,7 +2051,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
11095 +@@ -2148,7 +2148,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
11096 test_bit(In_sync, &rdev->flags)) {
11097 if (r1_sync_page_io(rdev, sect, s,
11098 conf->tmppage, READ)) {
11099 @@ -42722,27 +43340,9 @@ index aacf6bf..67d63f2 100644
11100 "md/raid1:%s: read error corrected "
11101 "(%d sectors at %llu on %s)\n",
11102 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
11103 -index 73dc8a3..859d581f6 100644
11104 +index 06eeb99..770613e 100644
11105 --- a/drivers/md/raid10.c
11106 +++ b/drivers/md/raid10.c
11107 -@@ -1319,7 +1319,7 @@ read_again:
11108 - /* Could not read all from this device, so we will
11109 - * need another r10_bio.
11110 - */
11111 -- sectors_handled = (r10_bio->sectors + max_sectors
11112 -+ sectors_handled = (r10_bio->sector + max_sectors
11113 - - bio->bi_sector);
11114 - r10_bio->sectors = max_sectors;
11115 - spin_lock_irq(&conf->device_lock);
11116 -@@ -1327,7 +1327,7 @@ read_again:
11117 - bio->bi_phys_segments = 2;
11118 - else
11119 - bio->bi_phys_segments++;
11120 -- spin_unlock(&conf->device_lock);
11121 -+ spin_unlock_irq(&conf->device_lock);
11122 - /* Cannot call generic_make_request directly
11123 - * as that will be queued in __generic_make_request
11124 - * and subsequent mempool_alloc might block
11125 @@ -1963,7 +1963,7 @@ static void end_sync_read(struct bio *bio, int error)
11126 /* The write handler will notice the lack of
11127 * R10BIO_Uptodate and record any errors etc
11128 @@ -42802,33 +43402,11 @@ index 73dc8a3..859d581f6 100644
11129 }
11130
11131 rdev_dec_pending(rdev, mddev);
11132 -@@ -3220,10 +3220,6 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
11133 - if (j == conf->copies) {
11134 - /* Cannot recover, so abort the recovery or
11135 - * record a bad block */
11136 -- put_buf(r10_bio);
11137 -- if (rb2)
11138 -- atomic_dec(&rb2->remaining);
11139 -- r10_bio = rb2;
11140 - if (any_working) {
11141 - /* problem is that there are bad blocks
11142 - * on other device(s)
11143 -@@ -3255,6 +3251,10 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
11144 - mirror->recovery_disabled
11145 - = mddev->recovery_disabled;
11146 - }
11147 -+ put_buf(r10_bio);
11148 -+ if (rb2)
11149 -+ atomic_dec(&rb2->remaining);
11150 -+ r10_bio = rb2;
11151 - break;
11152 - }
11153 - }
11154 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
11155 -index 8a0665d..b322118 100644
11156 +index cbb1571..47952f5 100644
11157 --- a/drivers/md/raid5.c
11158 +++ b/drivers/md/raid5.c
11159 -@@ -1887,21 +1887,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
11160 +@@ -1991,21 +1991,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
11161 mdname(conf->mddev), STRIPE_SECTORS,
11162 (unsigned long long)s,
11163 bdevname(rdev->bdev, b));
11164 @@ -42854,7 +43432,7 @@ index 8a0665d..b322118 100644
11165 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
11166 printk_ratelimited(
11167 KERN_WARNING
11168 -@@ -1929,7 +1929,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
11169 +@@ -2033,7 +2033,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
11170 mdname(conf->mddev),
11171 (unsigned long long)s,
11172 bdn);
11173 @@ -42863,29 +43441,11 @@ index 8a0665d..b322118 100644
11174 > conf->max_nr_stripes)
11175 printk(KERN_WARNING
11176 "md/raid:%s: Too many read errors, failing device %s.\n",
11177 -@@ -3502,7 +3502,7 @@ static void analyse_stripe(struct stripe_head *sh, struct stripe_head_state *s)
11178 - */
11179 - set_bit(R5_Insync, &dev->flags);
11180 -
11181 -- if (rdev && test_bit(R5_WriteError, &dev->flags)) {
11182 -+ if (test_bit(R5_WriteError, &dev->flags)) {
11183 - /* This flag does not apply to '.replacement'
11184 - * only to .rdev, so make sure to check that*/
11185 - struct md_rdev *rdev2 = rcu_dereference(
11186 -@@ -3515,7 +3515,7 @@ static void analyse_stripe(struct stripe_head *sh, struct stripe_head_state *s)
11187 - } else
11188 - clear_bit(R5_WriteError, &dev->flags);
11189 - }
11190 -- if (rdev && test_bit(R5_MadeGood, &dev->flags)) {
11191 -+ if (test_bit(R5_MadeGood, &dev->flags)) {
11192 - /* This flag does not apply to '.replacement'
11193 - * only to .rdev, so make sure to check that*/
11194 - struct md_rdev *rdev2 = rcu_dereference(
11195 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
11196 -index 401ef64..836e563 100644
11197 +index 983db75..ef9248c 100644
11198 --- a/drivers/media/dvb-core/dvbdev.c
11199 +++ b/drivers/media/dvb-core/dvbdev.c
11200 -@@ -192,7 +192,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
11201 +@@ -185,7 +185,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
11202 const struct dvb_device *template, void *priv, int type)
11203 {
11204 struct dvb_device *dvbdev;
11205 @@ -42908,7 +43468,7 @@ index 9b6c3bb..baeb5c7 100644
11206 #if IS_ENABLED(CONFIG_DVB_DIB3000MB)
11207 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
11208 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
11209 -index ecf21d9..b992428d 100644
11210 +index ed8cb90..5ef7f79 100644
11211 --- a/drivers/media/pci/cx88/cx88-video.c
11212 +++ b/drivers/media/pci/cx88/cx88-video.c
11213 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
11214 @@ -42925,7 +43485,7 @@ index ecf21d9..b992428d 100644
11215 module_param_array(video_nr, int, NULL, 0444);
11216 module_param_array(vbi_nr, int, NULL, 0444);
11217 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
11218 -index c08ae3e..eb59af1 100644
11219 +index 802642d..5534900 100644
11220 --- a/drivers/media/pci/ivtv/ivtv-driver.c
11221 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
11222 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
11223 @@ -42974,7 +43534,7 @@ index dfd0a21..6bbb465 100644
11224
11225 videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
11226 diff --git a/drivers/media/platform/s5p-tv/mixer.h b/drivers/media/platform/s5p-tv/mixer.h
11227 -index 04e6490..2df65bf 100644
11228 +index fb2acc5..a2fcbdc4 100644
11229 --- a/drivers/media/platform/s5p-tv/mixer.h
11230 +++ b/drivers/media/platform/s5p-tv/mixer.h
11231 @@ -156,7 +156,7 @@ struct mxr_layer {
11232 @@ -42987,7 +43547,7 @@ index 04e6490..2df65bf 100644
11233 const struct mxr_format **fmt_array;
11234 /** size of format array */
11235 diff --git a/drivers/media/platform/s5p-tv/mixer_grp_layer.c b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
11236 -index b93a21f..2535195 100644
11237 +index 74344c7..a39e70e 100644
11238 --- a/drivers/media/platform/s5p-tv/mixer_grp_layer.c
11239 +++ b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
11240 @@ -235,7 +235,7 @@ struct mxr_layer *mxr_graph_layer_create(struct mxr_device *mdev, int idx)
11241 @@ -43013,7 +43573,7 @@ index b713403..53cb5ad 100644
11242 if (done && done != layer->shadow_buf)
11243 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
11244 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
11245 -index 641b1f0..49cff30 100644
11246 +index 81b97db..b089ccd 100644
11247 --- a/drivers/media/platform/s5p-tv/mixer_video.c
11248 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
11249 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
11250 @@ -43113,7 +43673,7 @@ index 641b1f0..49cff30 100644
11251 spin_lock_init(&layer->enq_slock);
11252 INIT_LIST_HEAD(&layer->enq_list);
11253 diff --git a/drivers/media/platform/s5p-tv/mixer_vp_layer.c b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
11254 -index 3d13a63..da31bf1 100644
11255 +index c9388c4..ce71ece 100644
11256 --- a/drivers/media/platform/s5p-tv/mixer_vp_layer.c
11257 +++ b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
11258 @@ -206,7 +206,7 @@ struct mxr_layer *mxr_vp_layer_create(struct mxr_device *mdev, int idx)
11259 @@ -43126,7 +43686,7 @@ index 3d13a63..da31bf1 100644
11260 .buffer_set = mxr_vp_buffer_set,
11261 .stream_set = mxr_vp_stream_set,
11262 diff --git a/drivers/media/platform/vivi.c b/drivers/media/platform/vivi.c
11263 -index 1d3f119..75f40bb 100644
11264 +index 2d4e73b..8b4d5b6 100644
11265 --- a/drivers/media/platform/vivi.c
11266 +++ b/drivers/media/platform/vivi.c
11267 @@ -58,8 +58,8 @@ MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol");
11268 @@ -43176,7 +43736,7 @@ index 5236035..c622c74 100644
11269 #define PCI_VENDOR_ID_GUILLEMOT 0x5046
11270 #define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
11271 diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
11272 -index b914772..7ddbf9b 100644
11273 +index 050b3bb..79f62b9 100644
11274 --- a/drivers/media/radio/radio-shark.c
11275 +++ b/drivers/media/radio/radio-shark.c
11276 @@ -79,7 +79,7 @@ struct shark_device {
11277 @@ -43189,7 +43749,7 @@ index b914772..7ddbf9b 100644
11278 static void shark_write_val(struct snd_tea575x *tea, u32 val)
11279 {
11280 diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
11281 -index 9fb6697..f167415 100644
11282 +index 8654e0d..0608a64 100644
11283 --- a/drivers/media/radio/radio-shark2.c
11284 +++ b/drivers/media/radio/radio-shark2.c
11285 @@ -74,7 +74,7 @@ struct shark_device {
11286 @@ -43202,7 +43762,7 @@ index 9fb6697..f167415 100644
11287 static int shark_write_reg(struct radio_tea5777 *tea, u64 reg)
11288 {
11289 diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
11290 -index 9c9084c..a9e8dfb 100644
11291 +index 2fd9009..278cc1e 100644
11292 --- a/drivers/media/radio/radio-si476x.c
11293 +++ b/drivers/media/radio/radio-si476x.c
11294 @@ -1445,7 +1445,7 @@ static int si476x_radio_probe(struct platform_device *pdev)
11295 @@ -43250,7 +43810,7 @@ index 20e345d..da56fe4 100644
11296 static int dib7070_set_param_override(struct dvb_frontend *fe)
11297 {
11298 diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
11299 -index 71b22f5..a63b33f 100644
11300 +index c1a63b2..dbcbfb6 100644
11301 --- a/drivers/media/usb/dvb-usb/dw2102.c
11302 +++ b/drivers/media/usb/dvb-usb/dw2102.c
11303 @@ -121,7 +121,7 @@ struct su3000_state {
11304 @@ -43263,7 +43823,7 @@ index 71b22f5..a63b33f 100644
11305 /* debug */
11306 static int dvb_usb_dw2102_debug;
11307 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
11308 -index 8f7a6a4..59502dd 100644
11309 +index 8f7a6a4..eb0e1d4 100644
11310 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
11311 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
11312 @@ -326,7 +326,7 @@ struct v4l2_buffer32 {
11313 @@ -43284,6 +43844,51 @@ index 8f7a6a4..59502dd 100644
11314 enum v4l2_memory memory)
11315 {
11316 if (copy_in_user(up32, up, 2 * sizeof(__u32)) ||
11317 +@@ -425,7 +425,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
11318 + * by passing a very big num_planes value */
11319 + uplane = compat_alloc_user_space(num_planes *
11320 + sizeof(struct v4l2_plane));
11321 +- kp->m.planes = uplane;
11322 ++ kp->m.planes = (struct v4l2_plane __force_kernel *)uplane;
11323 +
11324 + while (--num_planes >= 0) {
11325 + ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
11326 +@@ -496,7 +496,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
11327 + if (num_planes == 0)
11328 + return 0;
11329 +
11330 +- uplane = kp->m.planes;
11331 ++ uplane = (struct v4l2_plane __force_user *)kp->m.planes;
11332 + if (get_user(p, &up->m.planes))
11333 + return -EFAULT;
11334 + uplane32 = compat_ptr(p);
11335 +@@ -550,7 +550,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
11336 + get_user(kp->capability, &up->capability) ||
11337 + get_user(kp->flags, &up->flags))
11338 + return -EFAULT;
11339 +- kp->base = compat_ptr(tmp);
11340 ++ kp->base = (void __force_kernel *)compat_ptr(tmp);
11341 + get_v4l2_pix_format(&kp->fmt, &up->fmt);
11342 + return 0;
11343 + }
11344 +@@ -656,7 +656,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
11345 + n * sizeof(struct v4l2_ext_control32)))
11346 + return -EFAULT;
11347 + kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
11348 +- kp->controls = kcontrols;
11349 ++ kp->controls = (struct v4l2_ext_control __force_kernel *)kcontrols;
11350 + while (--n >= 0) {
11351 + if (copy_in_user(kcontrols, ucontrols, sizeof(*ucontrols)))
11352 + return -EFAULT;
11353 +@@ -678,7 +678,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
11354 + static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext_controls32 __user *up)
11355 + {
11356 + struct v4l2_ext_control32 __user *ucontrols;
11357 +- struct v4l2_ext_control __user *kcontrols = kp->controls;
11358 ++ struct v4l2_ext_control __user *kcontrols = (struct v4l2_ext_control __force_user *)kp->controls;
11359 + int n = kp->count;
11360 + compat_caddr_t p;
11361 +
11362 @@ -772,7 +772,7 @@ static int put_v4l2_subdev_edid32(struct v4l2_subdev_edid *kp, struct v4l2_subde
11363 put_user(kp->start_block, &up->start_block) ||
11364 put_user(kp->blocks, &up->blocks) ||
11365 @@ -43293,6 +43898,21 @@ index 8f7a6a4..59502dd 100644
11366 return -EFAULT;
11367 return 0;
11368 }
11369 +diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
11370 +index fb46790..ae1f8fa 100644
11371 +--- a/drivers/media/v4l2-core/v4l2-ctrls.c
11372 ++++ b/drivers/media/v4l2-core/v4l2-ctrls.c
11373 +@@ -1396,8 +1396,8 @@ static int validate_new(const struct v4l2_ctrl *ctrl,
11374 + return 0;
11375 +
11376 + case V4L2_CTRL_TYPE_STRING:
11377 +- len = strlen(c->string);
11378 +- if (len < ctrl->minimum)
11379 ++ len = strlen_user(c->string);
11380 ++ if (!len || len < ctrl->minimum)
11381 + return -ERANGE;
11382 + if ((len - ctrl->minimum) % ctrl->step)
11383 + return -ERANGE;
11384 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
11385 index 02d1b63..5fd6b16 100644
11386 --- a/drivers/media/v4l2-core/v4l2-device.c
11387 @@ -43310,7 +43930,7 @@ index 02d1b63..5fd6b16 100644
11388
11389 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
11390 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
11391 -index 68e6b5e..d8b923e 100644
11392 +index 68e6b5e..8eb2aec 100644
11393 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
11394 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
11395 @@ -1939,7 +1939,8 @@ struct v4l2_ioctl_info {
11396 @@ -43359,6 +43979,15 @@ index 68e6b5e..d8b923e 100644
11397 *kernel_ptr = (void *)&ctrls->controls;
11398 *array_size = sizeof(struct v4l2_ext_control)
11399 * ctrls->count;
11400 +@@ -2340,7 +2341,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
11401 + err = -ENOTTY;
11402 +
11403 + if (has_array_args) {
11404 +- *kernel_ptr = user_ptr;
11405 ++ *kernel_ptr = (void __force_kernel *)user_ptr;
11406 + if (copy_to_user(user_ptr, mbuf, array_size))
11407 + err = -EFAULT;
11408 + goto out_array_args;
11409 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
11410 index 767ff4d..c69d259 100644
11411 --- a/drivers/message/fusion/mptbase.c
11412 @@ -43674,7 +44303,7 @@ index fcbb2e9..2635e11 100644
11413 #include <linux/pci.h>
11414 #include <linux/interrupt.h>
11415 diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
11416 -index de7fb80..7c1b931 100644
11417 +index 176aa26..27811b2 100644
11418 --- a/drivers/mfd/max8925-i2c.c
11419 +++ b/drivers/mfd/max8925-i2c.c
11420 @@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
11421 @@ -43687,10 +44316,10 @@ index de7fb80..7c1b931 100644
11422
11423 if (node && !pdata) {
11424 diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
11425 -index d792772..cd73ba3 100644
11426 +index c0f608e..286f8ec 100644
11427 --- a/drivers/mfd/tps65910.c
11428 +++ b/drivers/mfd/tps65910.c
11429 -@@ -229,7 +229,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
11430 +@@ -230,7 +230,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
11431 struct tps65910_platform_data *pdata)
11432 {
11433 int ret = 0;
11434 @@ -44053,6 +44682,30 @@ index c862cd4..0d176fe 100644
11435
11436 extern struct xpc_interface xpc_interface;
11437
11438 +diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
11439 +index 01be66d..e3a0c7e 100644
11440 +--- a/drivers/misc/sgi-xp/xp_main.c
11441 ++++ b/drivers/misc/sgi-xp/xp_main.c
11442 +@@ -78,13 +78,13 @@ xpc_notloaded(void)
11443 + }
11444 +
11445 + struct xpc_interface xpc_interface = {
11446 +- (void (*)(int))xpc_notloaded,
11447 +- (void (*)(int))xpc_notloaded,
11448 +- (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
11449 +- (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
11450 ++ .connect = (void (*)(int))xpc_notloaded,
11451 ++ .disconnect = (void (*)(int))xpc_notloaded,
11452 ++ .send = (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
11453 ++ .send_notify = (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
11454 + void *))xpc_notloaded,
11455 +- (void (*)(short, int, void *))xpc_notloaded,
11456 +- (enum xp_retval(*)(short, void *))xpc_notloaded
11457 ++ .received = (void (*)(short, int, void *))xpc_notloaded,
11458 ++ .partid_to_nasids = (enum xp_retval(*)(short, void *))xpc_notloaded
11459 + };
11460 + EXPORT_SYMBOL_GPL(xpc_interface);
11461 +
11462 diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
11463 index b94d5f7..7f494c5 100644
11464 --- a/drivers/misc/sgi-xp/xpc.h
11465 @@ -44096,11 +44749,24 @@ index 82dc574..8539ab2 100644
11466 xpc_die_deactivate();
11467
11468 break;
11469 +diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
11470 +index 29d5d98..fea356f 100644
11471 +--- a/drivers/mmc/card/block.c
11472 ++++ b/drivers/mmc/card/block.c
11473 +@@ -575,7 +575,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
11474 + if (idata->ic.postsleep_min_us)
11475 + usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
11476 +
11477 +- if (copy_to_user(&(ic_ptr->response), cmd.resp, sizeof(cmd.resp))) {
11478 ++ if (copy_to_user(ic_ptr->response, cmd.resp, sizeof(cmd.resp))) {
11479 + err = -EFAULT;
11480 + goto cmd_rel_host;
11481 + }
11482 diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c
11483 -index ef18348..1b53cf0 100644
11484 +index e5b5eeb..7bf2212 100644
11485 --- a/drivers/mmc/core/mmc_ops.c
11486 +++ b/drivers/mmc/core/mmc_ops.c
11487 -@@ -213,7 +213,7 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host,
11488 +@@ -247,7 +247,7 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host,
11489 void *data_buf;
11490 int is_on_stack;
11491
11492 @@ -44110,21 +44776,21 @@ index ef18348..1b53cf0 100644
11493 /*
11494 * dma onto stack is unsafe/nonportable, but callers to this
11495 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
11496 -index 81b2994..dce857e 100644
11497 +index 6bf24ab..13d0293b 100644
11498 --- a/drivers/mmc/host/dw_mmc.h
11499 +++ b/drivers/mmc/host/dw_mmc.h
11500 -@@ -203,5 +203,5 @@ struct dw_mci_drv_data {
11501 - void (*prepare_command)(struct dw_mci *host, u32 *cmdr);
11502 - void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
11503 +@@ -258,5 +258,5 @@ struct dw_mci_drv_data {
11504 int (*parse_dt)(struct dw_mci *host);
11505 + int (*execute_tuning)(struct dw_mci_slot *slot, u32 opcode,
11506 + struct dw_mci_tuning_data *tuning_data);
11507 -};
11508 +} __do_const;
11509 #endif /* _DW_MMC_H_ */
11510 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
11511 -index c3785ed..1984c44 100644
11512 +index f320579..7b7ebac 100644
11513 --- a/drivers/mmc/host/mmci.c
11514 +++ b/drivers/mmc/host/mmci.c
11515 -@@ -1482,7 +1482,9 @@ static int mmci_probe(struct amba_device *dev,
11516 +@@ -1504,7 +1504,9 @@ static int mmci_probe(struct amba_device *dev,
11517 }
11518
11519 if (variant->busy_detect) {
11520 @@ -44168,7 +44834,7 @@ index 096993f..f02c23b 100644
11521 if (!ECCBUF_SIZE) {
11522 /* We should fall back to a general writev implementation.
11523 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
11524 -index 2ed2bb3..2d0b82e 100644
11525 +index 370b9dd..1a1176b 100644
11526 --- a/drivers/mtd/nand/denali.c
11527 +++ b/drivers/mtd/nand/denali.c
11528 @@ -24,6 +24,7 @@
11529 @@ -44205,30 +44871,32 @@ index 4b8e895..6b3c498 100644
11530 struct sm_sysfs_attribute *vendor_attribute;
11531
11532 diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
11533 -index dd8057d..22aaf36 100644
11534 +index 4b8c58b..a200546 100644
11535 --- a/drivers/net/bonding/bond_main.c
11536 +++ b/drivers/net/bonding/bond_main.c
11537 -@@ -4511,7 +4511,7 @@ static unsigned int bond_get_num_tx_queues(void)
11538 - return tx_queues;
11539 - }
11540 -
11541 --static struct rtnl_link_ops bond_link_ops __read_mostly = {
11542 -+static struct rtnl_link_ops bond_link_ops = {
11543 - .kind = "bond",
11544 - .priv_size = sizeof(struct bonding),
11545 - .setup = bond_setup,
11546 -@@ -4636,8 +4636,8 @@ static void __exit bonding_exit(void)
11547 +@@ -4527,6 +4527,7 @@ static void __exit bonding_exit(void)
11548
11549 - bond_destroy_debugfs();
11550 -
11551 -- rtnl_link_unregister(&bond_link_ops);
11552 + bond_netlink_fini();
11553 unregister_pernet_subsys(&bond_net_ops);
11554 + rtnl_link_unregister(&bond_link_ops);
11555
11556 #ifdef CONFIG_NET_POLL_CONTROLLER
11557 /*
11558 +diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
11559 +index 40e7b1c..6a70fff 100644
11560 +--- a/drivers/net/bonding/bond_netlink.c
11561 ++++ b/drivers/net/bonding/bond_netlink.c
11562 +@@ -102,7 +102,7 @@ nla_put_failure:
11563 + return -EMSGSIZE;
11564 + }
11565 +
11566 +-struct rtnl_link_ops bond_link_ops __read_mostly = {
11567 ++struct rtnl_link_ops bond_link_ops = {
11568 + .kind = "bond",
11569 + .priv_size = sizeof(struct bonding),
11570 + .setup = bond_setup,
11571 diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
11572 -index f92f001..0b2f9bf 100644
11573 +index 36fa577..a158806 100644
11574 --- a/drivers/net/ethernet/8390/ax88796.c
11575 +++ b/drivers/net/ethernet/8390/ax88796.c
11576 @@ -872,9 +872,11 @@ static int ax_probe(struct platform_device *pdev)
11577 @@ -44245,10 +44913,10 @@ index f92f001..0b2f9bf 100644
11578
11579 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
11580 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
11581 -index da8fcaa..f4b5d3b 100644
11582 +index 41f3ca5a..1ee5364 100644
11583 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
11584 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
11585 -@@ -1138,7 +1138,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
11586 +@@ -1139,7 +1139,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
11587 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
11588 {
11589 /* RX_MODE controlling object */
11590 @@ -44258,10 +44926,10 @@ index da8fcaa..f4b5d3b 100644
11591 /* multicast configuration controlling object */
11592 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
11593 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
11594 -index 9fbeee5..5e3e37a 100644
11595 +index 18438a5..c923b8e 100644
11596 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
11597 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
11598 -@@ -2590,15 +2590,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
11599 +@@ -2591,15 +2591,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
11600 return rc;
11601 }
11602
11603 @@ -44283,10 +44951,10 @@ index 9fbeee5..5e3e37a 100644
11604 }
11605
11606 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
11607 -index 658f4e3..15074a6 100644
11608 +index 6a53c15..6e7d1e7 100644
11609 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
11610 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
11611 -@@ -1325,8 +1325,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
11612 +@@ -1332,8 +1332,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
11613
11614 /********************* RX MODE ****************/
11615
11616 @@ -44297,10 +44965,10 @@ index 658f4e3..15074a6 100644
11617 /**
11618 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
11619 diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
11620 -index 7025780..e55a71c 100644
11621 +index 5c3835a..d18b952 100644
11622 --- a/drivers/net/ethernet/broadcom/tg3.h
11623 +++ b/drivers/net/ethernet/broadcom/tg3.h
11624 -@@ -147,6 +147,7 @@
11625 +@@ -150,6 +150,7 @@
11626 #define CHIPREV_ID_5750_A0 0x4000
11627 #define CHIPREV_ID_5750_A1 0x4001
11628 #define CHIPREV_ID_5750_A3 0x4003
11629 @@ -44308,6 +44976,25 @@ index 7025780..e55a71c 100644
11630 #define CHIPREV_ID_5750_C2 0x4202
11631 #define CHIPREV_ID_5752_A0_HW 0x5000
11632 #define CHIPREV_ID_5752_A0 0x6000
11633 +diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
11634 +index 3ca77fa..fcc015f 100644
11635 +--- a/drivers/net/ethernet/brocade/bna/bna_enet.c
11636 ++++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
11637 +@@ -1690,10 +1690,10 @@ bna_cb_ioceth_reset(void *arg)
11638 + }
11639 +
11640 + static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
11641 +- bna_cb_ioceth_enable,
11642 +- bna_cb_ioceth_disable,
11643 +- bna_cb_ioceth_hbfail,
11644 +- bna_cb_ioceth_reset
11645 ++ .enable_cbfn = bna_cb_ioceth_enable,
11646 ++ .disable_cbfn = bna_cb_ioceth_disable,
11647 ++ .hbfail_cbfn = bna_cb_ioceth_hbfail,
11648 ++ .reset_cbfn = bna_cb_ioceth_reset
11649 + };
11650 +
11651 + static void bna_attr_init(struct bna_ioceth *ioceth)
11652 diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
11653 index 8cffcdf..aadf043 100644
11654 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
11655 @@ -44322,10 +45009,10 @@ index 8cffcdf..aadf043 100644
11656 #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
11657
11658 diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
11659 -index c73cabd..cd278b1 100644
11660 +index fff02ed..d421412 100644
11661 --- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
11662 +++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
11663 -@@ -2186,7 +2186,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
11664 +@@ -2120,7 +2120,7 @@ static void get_regs(struct net_device *dev, struct ethtool_regs *regs,
11665
11666 int i;
11667 struct adapter *ap = netdev2adap(dev);
11668 @@ -44333,9 +45020,9 @@ index c73cabd..cd278b1 100644
11669 + const unsigned int *reg_ranges;
11670 int arr_size = 0, buf_size = 0;
11671
11672 - if (is_t4(ap->chip)) {
11673 + if (is_t4(ap->params.chip)) {
11674 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
11675 -index 263b92c..f05134b 100644
11676 +index c05b66d..ed69872 100644
11677 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
11678 +++ b/drivers/net/ethernet/dec/tulip/de4x5.c
11679 @@ -5388,7 +5388,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
11680 @@ -44357,10 +45044,10 @@ index 263b92c..f05134b 100644
11681 break;
11682 }
11683 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
11684 -index 2c38cc4..0323f6e 100644
11685 +index a37039d..a51d7e8 100644
11686 --- a/drivers/net/ethernet/emulex/benet/be_main.c
11687 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
11688 -@@ -470,7 +470,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
11689 +@@ -533,7 +533,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
11690
11691 if (wrapped)
11692 newacc += 65536;
11693 @@ -44434,25 +45121,25 @@ index fbe5363..266b4e3 100644
11694 __vxge_hw_mempool_create(vpath->hldev,
11695 fifo->config->memblock_size,
11696 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
11697 -index f09e787..f3916a8 100644
11698 +index 918e18d..4ca3650 100644
11699 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
11700 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
11701 -@@ -2055,7 +2055,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
11702 -
11703 +@@ -2086,7 +2086,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
11704 + adapter->max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
11705 } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
11706 - ahw->nic_mode = QLC_83XX_DEFAULT_MODE;
11707 + ahw->nic_mode = QLCNIC_DEFAULT_MODE;
11708 - adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
11709 + pax_open_kernel();
11710 + *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
11711 + pax_close_kernel();
11712 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
11713 - } else {
11714 - return -EIO;
11715 + adapter->max_sds_rings = QLCNIC_MAX_SDS_RINGS;
11716 + adapter->max_tx_rings = QLCNIC_MAX_TX_RINGS;
11717 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
11718 -index 0248a4c..9648d96 100644
11719 +index 734d286..b017bf5 100644
11720 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
11721 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
11722 -@@ -191,17 +191,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
11723 +@@ -207,17 +207,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
11724 case QLCNIC_NON_PRIV_FUNC:
11725 ahw->op_mode = QLCNIC_NON_PRIV_FUNC;
11726 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
11727 @@ -44480,7 +45167,7 @@ index 0248a4c..9648d96 100644
11728 default:
11729 dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
11730 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
11731 -index 1551360..ed6510f 100644
11732 +index 7763962..c3499a7 100644
11733 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
11734 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
11735 @@ -1108,7 +1108,7 @@ int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
11736 @@ -44493,7 +45180,7 @@ index 1551360..ed6510f 100644
11737 struct qlcnic_hardware_context *ahw;
11738 void *temp_buffer;
11739 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
11740 -index fb3f8dc..9d2ff38 100644
11741 +index c737f0e..32b8682 100644
11742 --- a/drivers/net/ethernet/realtek/r8169.c
11743 +++ b/drivers/net/ethernet/realtek/r8169.c
11744 @@ -759,22 +759,22 @@ struct rtl8169_private {
11745 @@ -44600,10 +45287,10 @@ index bf0d55e..82bcfbd1 100644
11746 priv = netdev_priv(dev);
11747 priv->phy = phy;
11748 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
11749 -index 9bf46bd..bfdaa84 100644
11750 +index bc8faae..e51e25d 100644
11751 --- a/drivers/net/macvlan.c
11752 +++ b/drivers/net/macvlan.c
11753 -@@ -939,13 +939,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
11754 +@@ -990,13 +990,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
11755 int macvlan_link_register(struct rtnl_link_ops *ops)
11756 {
11757 /* common fields */
11758 @@ -44626,7 +45313,7 @@ index 9bf46bd..bfdaa84 100644
11759
11760 return rtnl_link_register(ops);
11761 };
11762 -@@ -1001,7 +1003,7 @@ static int macvlan_device_event(struct notifier_block *unused,
11763 +@@ -1051,7 +1053,7 @@ static int macvlan_device_event(struct notifier_block *unused,
11764 return NOTIFY_DONE;
11765 }
11766
11767 @@ -44636,9 +45323,18 @@ index 9bf46bd..bfdaa84 100644
11768 };
11769
11770 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
11771 -index 5895e4d..0343d45 100644
11772 +index 2a89da0..c17fe1d 100644
11773 --- a/drivers/net/macvtap.c
11774 +++ b/drivers/net/macvtap.c
11775 +@@ -1012,7 +1012,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
11776 + }
11777 +
11778 + ret = 0;
11779 +- if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
11780 ++ if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
11781 + put_user(q->flags, &ifr->ifr_flags))
11782 + ret = -EFAULT;
11783 + macvtap_put_vlan(vlan);
11784 @@ -1182,7 +1182,7 @@ static int macvtap_device_event(struct notifier_block *unused,
11785 return NOTIFY_DONE;
11786 }
11787 @@ -44696,10 +45392,10 @@ index 1252d9c..80e660b 100644
11788
11789 /* We've got a compressed packet; read the change byte */
11790 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
11791 -index 6327df2..e6e1ebe 100644
11792 +index b75ae5b..953c157 100644
11793 --- a/drivers/net/team/team.c
11794 +++ b/drivers/net/team/team.c
11795 -@@ -2873,7 +2873,7 @@ static int team_device_event(struct notifier_block *unused,
11796 +@@ -2865,7 +2865,7 @@ static int team_device_event(struct notifier_block *unused,
11797 return NOTIFY_DONE;
11798 }
11799
11800 @@ -44709,10 +45405,10 @@ index 6327df2..e6e1ebe 100644
11801 };
11802
11803 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
11804 -index 7c8343a..80d1e69 100644
11805 +index ecec802..614f08f 100644
11806 --- a/drivers/net/tun.c
11807 +++ b/drivers/net/tun.c
11808 -@@ -1838,7 +1838,7 @@ unlock:
11809 +@@ -1839,7 +1839,7 @@ unlock:
11810 }
11811
11812 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
11813 @@ -44721,7 +45417,7 @@ index 7c8343a..80d1e69 100644
11814 {
11815 struct tun_file *tfile = file->private_data;
11816 struct tun_struct *tun;
11817 -@@ -1851,6 +1851,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
11818 +@@ -1852,6 +1852,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
11819 unsigned int ifindex;
11820 int ret;
11821
11822 @@ -44732,7 +45428,7 @@ index 7c8343a..80d1e69 100644
11823 if (copy_from_user(&ifr, argp, ifreq_len))
11824 return -EFAULT;
11825 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
11826 -index 86292e6..8d34433 100644
11827 +index 1a48234..a555339 100644
11828 --- a/drivers/net/usb/hso.c
11829 +++ b/drivers/net/usb/hso.c
11830 @@ -71,7 +71,7 @@
11831 @@ -44744,7 +45440,7 @@ index 86292e6..8d34433 100644
11832
11833 #define MOD_AUTHOR "Option Wireless"
11834 #define MOD_DESCRIPTION "USB High Speed Option driver"
11835 -@@ -1180,7 +1180,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
11836 +@@ -1179,7 +1179,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
11837 struct urb *urb;
11838
11839 urb = serial->rx_urb[0];
11840 @@ -44753,7 +45449,7 @@ index 86292e6..8d34433 100644
11841 count = put_rxbuf_data(urb, serial);
11842 if (count == -1)
11843 return;
11844 -@@ -1216,7 +1216,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
11845 +@@ -1215,7 +1215,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
11846 DUMP1(urb->transfer_buffer, urb->actual_length);
11847
11848 /* Anyone listening? */
11849 @@ -44762,7 +45458,7 @@ index 86292e6..8d34433 100644
11850 return;
11851
11852 if (status == 0) {
11853 -@@ -1298,8 +1298,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
11854 +@@ -1297,8 +1297,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
11855 tty_port_tty_set(&serial->port, tty);
11856
11857 /* check for port already opened, if not set the termios */
11858 @@ -44772,7 +45468,7 @@ index 86292e6..8d34433 100644
11859 serial->rx_state = RX_IDLE;
11860 /* Force default termio settings */
11861 _hso_serial_set_termios(tty, NULL);
11862 -@@ -1311,7 +1310,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
11863 +@@ -1310,7 +1309,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
11864 result = hso_start_serial_device(serial->parent, GFP_KERNEL);
11865 if (result) {
11866 hso_stop_serial_device(serial->parent);
11867 @@ -44781,7 +45477,7 @@ index 86292e6..8d34433 100644
11868 kref_put(&serial->parent->ref, hso_serial_ref_free);
11869 }
11870 } else {
11871 -@@ -1348,10 +1347,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
11872 +@@ -1347,10 +1346,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
11873
11874 /* reset the rts and dtr */
11875 /* do the actual close */
11876 @@ -44795,7 +45491,7 @@ index 86292e6..8d34433 100644
11877 tty_port_tty_set(&serial->port, NULL);
11878 if (!usb_gone)
11879 hso_stop_serial_device(serial->parent);
11880 -@@ -1427,7 +1426,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
11881 +@@ -1426,7 +1425,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
11882
11883 /* the actual setup */
11884 spin_lock_irqsave(&serial->serial_lock, flags);
11885 @@ -44804,7 +45500,7 @@ index 86292e6..8d34433 100644
11886 _hso_serial_set_termios(tty, old);
11887 else
11888 tty->termios = *old;
11889 -@@ -1886,7 +1885,7 @@ static void intr_callback(struct urb *urb)
11890 +@@ -1895,7 +1894,7 @@ static void intr_callback(struct urb *urb)
11891 D1("Pending read interrupt on port %d\n", i);
11892 spin_lock(&serial->serial_lock);
11893 if (serial->rx_state == RX_IDLE &&
11894 @@ -44813,7 +45509,7 @@ index 86292e6..8d34433 100644
11895 /* Setup and send a ctrl req read on
11896 * port i */
11897 if (!serial->rx_urb_filled[0]) {
11898 -@@ -3062,7 +3061,7 @@ static int hso_resume(struct usb_interface *iface)
11899 +@@ -3071,7 +3070,7 @@ static int hso_resume(struct usb_interface *iface)
11900 /* Start all serial ports */
11901 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
11902 if (serial_table[i] && (serial_table[i]->interface == iface)) {
11903 @@ -44845,10 +45541,10 @@ index a79e9d3..78cd4fa 100644
11904
11905 /* we will have to manufacture ethernet headers, prepare template */
11906 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
11907 -index 1462368..578941c 100644
11908 +index ed384fe..9e3f4f4 100644
11909 --- a/drivers/net/vxlan.c
11910 +++ b/drivers/net/vxlan.c
11911 -@@ -2615,7 +2615,7 @@ nla_put_failure:
11912 +@@ -2617,7 +2617,7 @@ nla_put_failure:
11913 return -EMSGSIZE;
11914 }
11915
11916 @@ -44857,6 +45553,174 @@ index 1462368..578941c 100644
11917 .kind = "vxlan",
11918 .maxtype = IFLA_VXLAN_MAX,
11919 .policy = vxlan_policy,
11920 +diff --git a/drivers/net/wan/lmc/lmc_media.c b/drivers/net/wan/lmc/lmc_media.c
11921 +index 5920c99..ff2e4a5 100644
11922 +--- a/drivers/net/wan/lmc/lmc_media.c
11923 ++++ b/drivers/net/wan/lmc/lmc_media.c
11924 +@@ -95,62 +95,63 @@ static inline void write_av9110_bit (lmc_softc_t *, int);
11925 + static void write_av9110(lmc_softc_t *, u32, u32, u32, u32, u32);
11926 +
11927 + lmc_media_t lmc_ds3_media = {
11928 +- lmc_ds3_init, /* special media init stuff */
11929 +- lmc_ds3_default, /* reset to default state */
11930 +- lmc_ds3_set_status, /* reset status to state provided */
11931 +- lmc_dummy_set_1, /* set clock source */
11932 +- lmc_dummy_set2_1, /* set line speed */
11933 +- lmc_ds3_set_100ft, /* set cable length */
11934 +- lmc_ds3_set_scram, /* set scrambler */
11935 +- lmc_ds3_get_link_status, /* get link status */
11936 +- lmc_dummy_set_1, /* set link status */
11937 +- lmc_ds3_set_crc_length, /* set CRC length */
11938 +- lmc_dummy_set_1, /* set T1 or E1 circuit type */
11939 +- lmc_ds3_watchdog
11940 ++ .init = lmc_ds3_init, /* special media init stuff */
11941 ++ .defaults = lmc_ds3_default, /* reset to default state */
11942 ++ .set_status = lmc_ds3_set_status, /* reset status to state provided */
11943 ++ .set_clock_source = lmc_dummy_set_1, /* set clock source */
11944 ++ .set_speed = lmc_dummy_set2_1, /* set line speed */
11945 ++ .set_cable_length = lmc_ds3_set_100ft, /* set cable length */
11946 ++ .set_scrambler = lmc_ds3_set_scram, /* set scrambler */
11947 ++ .get_link_status = lmc_ds3_get_link_status, /* get link status */
11948 ++ .set_link_status = lmc_dummy_set_1, /* set link status */
11949 ++ .set_crc_length = lmc_ds3_set_crc_length, /* set CRC length */
11950 ++ .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
11951 ++ .watchdog = lmc_ds3_watchdog
11952 + };
11953 +
11954 + lmc_media_t lmc_hssi_media = {
11955 +- lmc_hssi_init, /* special media init stuff */
11956 +- lmc_hssi_default, /* reset to default state */
11957 +- lmc_hssi_set_status, /* reset status to state provided */
11958 +- lmc_hssi_set_clock, /* set clock source */
11959 +- lmc_dummy_set2_1, /* set line speed */
11960 +- lmc_dummy_set_1, /* set cable length */
11961 +- lmc_dummy_set_1, /* set scrambler */
11962 +- lmc_hssi_get_link_status, /* get link status */
11963 +- lmc_hssi_set_link_status, /* set link status */
11964 +- lmc_hssi_set_crc_length, /* set CRC length */
11965 +- lmc_dummy_set_1, /* set T1 or E1 circuit type */
11966 +- lmc_hssi_watchdog
11967 ++ .init = lmc_hssi_init, /* special media init stuff */
11968 ++ .defaults = lmc_hssi_default, /* reset to default state */
11969 ++ .set_status = lmc_hssi_set_status, /* reset status to state provided */
11970 ++ .set_clock_source = lmc_hssi_set_clock, /* set clock source */
11971 ++ .set_speed = lmc_dummy_set2_1, /* set line speed */
11972 ++ .set_cable_length = lmc_dummy_set_1, /* set cable length */
11973 ++ .set_scrambler = lmc_dummy_set_1, /* set scrambler */
11974 ++ .get_link_status = lmc_hssi_get_link_status, /* get link status */
11975 ++ .set_link_status = lmc_hssi_set_link_status, /* set link status */
11976 ++ .set_crc_length = lmc_hssi_set_crc_length, /* set CRC length */
11977 ++ .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
11978 ++ .watchdog = lmc_hssi_watchdog
11979 + };
11980 +
11981 +-lmc_media_t lmc_ssi_media = { lmc_ssi_init, /* special media init stuff */
11982 +- lmc_ssi_default, /* reset to default state */
11983 +- lmc_ssi_set_status, /* reset status to state provided */
11984 +- lmc_ssi_set_clock, /* set clock source */
11985 +- lmc_ssi_set_speed, /* set line speed */
11986 +- lmc_dummy_set_1, /* set cable length */
11987 +- lmc_dummy_set_1, /* set scrambler */
11988 +- lmc_ssi_get_link_status, /* get link status */
11989 +- lmc_ssi_set_link_status, /* set link status */
11990 +- lmc_ssi_set_crc_length, /* set CRC length */
11991 +- lmc_dummy_set_1, /* set T1 or E1 circuit type */
11992 +- lmc_ssi_watchdog
11993 ++lmc_media_t lmc_ssi_media = {
11994 ++ .init = lmc_ssi_init, /* special media init stuff */
11995 ++ .defaults = lmc_ssi_default, /* reset to default state */
11996 ++ .set_status = lmc_ssi_set_status, /* reset status to state provided */
11997 ++ .set_clock_source = lmc_ssi_set_clock, /* set clock source */
11998 ++ .set_speed = lmc_ssi_set_speed, /* set line speed */
11999 ++ .set_cable_length = lmc_dummy_set_1, /* set cable length */
12000 ++ .set_scrambler = lmc_dummy_set_1, /* set scrambler */
12001 ++ .get_link_status = lmc_ssi_get_link_status, /* get link status */
12002 ++ .set_link_status = lmc_ssi_set_link_status, /* set link status */
12003 ++ .set_crc_length = lmc_ssi_set_crc_length, /* set CRC length */
12004 ++ .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
12005 ++ .watchdog = lmc_ssi_watchdog
12006 + };
12007 +
12008 + lmc_media_t lmc_t1_media = {
12009 +- lmc_t1_init, /* special media init stuff */
12010 +- lmc_t1_default, /* reset to default state */
12011 +- lmc_t1_set_status, /* reset status to state provided */
12012 +- lmc_t1_set_clock, /* set clock source */
12013 +- lmc_dummy_set2_1, /* set line speed */
12014 +- lmc_dummy_set_1, /* set cable length */
12015 +- lmc_dummy_set_1, /* set scrambler */
12016 +- lmc_t1_get_link_status, /* get link status */
12017 +- lmc_dummy_set_1, /* set link status */
12018 +- lmc_t1_set_crc_length, /* set CRC length */
12019 +- lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
12020 +- lmc_t1_watchdog
12021 ++ .init = lmc_t1_init, /* special media init stuff */
12022 ++ .defaults = lmc_t1_default, /* reset to default state */
12023 ++ .set_status = lmc_t1_set_status, /* reset status to state provided */
12024 ++ .set_clock_source = lmc_t1_set_clock, /* set clock source */
12025 ++ .set_speed = lmc_dummy_set2_1, /* set line speed */
12026 ++ .set_cable_length = lmc_dummy_set_1, /* set cable length */
12027 ++ .set_scrambler = lmc_dummy_set_1, /* set scrambler */
12028 ++ .get_link_status = lmc_t1_get_link_status, /* get link status */
12029 ++ .set_link_status = lmc_dummy_set_1, /* set link status */
12030 ++ .set_crc_length = lmc_t1_set_crc_length, /* set CRC length */
12031 ++ .set_circuit_type = lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
12032 ++ .watchdog = lmc_t1_watchdog
12033 + };
12034 +
12035 + static void
12036 +diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
12037 +index feacc3b..5bac0de 100644
12038 +--- a/drivers/net/wan/z85230.c
12039 ++++ b/drivers/net/wan/z85230.c
12040 +@@ -485,9 +485,9 @@ static void z8530_status(struct z8530_channel *chan)
12041 +
12042 + struct z8530_irqhandler z8530_sync =
12043 + {
12044 +- z8530_rx,
12045 +- z8530_tx,
12046 +- z8530_status
12047 ++ .rx = z8530_rx,
12048 ++ .tx = z8530_tx,
12049 ++ .status = z8530_status
12050 + };
12051 +
12052 + EXPORT_SYMBOL(z8530_sync);
12053 +@@ -605,15 +605,15 @@ static void z8530_dma_status(struct z8530_channel *chan)
12054 + }
12055 +
12056 + static struct z8530_irqhandler z8530_dma_sync = {
12057 +- z8530_dma_rx,
12058 +- z8530_dma_tx,
12059 +- z8530_dma_status
12060 ++ .rx = z8530_dma_rx,
12061 ++ .tx = z8530_dma_tx,
12062 ++ .status = z8530_dma_status
12063 + };
12064 +
12065 + static struct z8530_irqhandler z8530_txdma_sync = {
12066 +- z8530_rx,
12067 +- z8530_dma_tx,
12068 +- z8530_dma_status
12069 ++ .rx = z8530_rx,
12070 ++ .tx = z8530_dma_tx,
12071 ++ .status = z8530_dma_status
12072 + };
12073 +
12074 + /**
12075 +@@ -680,9 +680,9 @@ static void z8530_status_clear(struct z8530_channel *chan)
12076 +
12077 + struct z8530_irqhandler z8530_nop=
12078 + {
12079 +- z8530_rx_clear,
12080 +- z8530_tx_clear,
12081 +- z8530_status_clear
12082 ++ .rx = z8530_rx_clear,
12083 ++ .tx = z8530_tx_clear,
12084 ++ .status = z8530_status_clear
12085 + };
12086 +
12087 +
12088 diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
12089 index 0b60295..b8bfa5b 100644
12090 --- a/drivers/net/wimax/i2400m/rx.c
12091 @@ -44871,10 +45735,10 @@ index 0b60295..b8bfa5b 100644
12092 if (rd == NULL) {
12093 result = -ENOMEM;
12094 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
12095 -index 7fe1964..7016de0 100644
12096 +index edf4b57..68b51c0 100644
12097 --- a/drivers/net/wireless/airo.c
12098 +++ b/drivers/net/wireless/airo.c
12099 -@@ -7844,7 +7844,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
12100 +@@ -7843,7 +7843,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
12101 struct airo_info *ai = dev->ml_priv;
12102 int ridcode;
12103 int enabled;
12104 @@ -44897,10 +45761,10 @@ index 34c8a33..3261fdc 100644
12105 return msecs_to_jiffies((s->poll_timeout[2] << 16)
12106 | (s->poll_timeout[1] << 8)
12107 diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
12108 -index ef3329e..c28ff5d 100644
12109 +index edae50b..b24278c 100644
12110 --- a/drivers/net/wireless/ath/ath10k/htc.c
12111 +++ b/drivers/net/wireless/ath/ath10k/htc.c
12112 -@@ -963,7 +963,10 @@ void ath10k_htc_stop(struct ath10k_htc *htc)
12113 +@@ -842,7 +842,10 @@ void ath10k_htc_stop(struct ath10k_htc *htc)
12114 /* registered target arrival callback from the HIF layer */
12115 int ath10k_htc_init(struct ath10k *ar)
12116 {
12117 @@ -44912,7 +45776,7 @@ index ef3329e..c28ff5d 100644
12118 struct ath10k_htc_ep *ep = NULL;
12119 struct ath10k_htc *htc = &ar->htc;
12120
12121 -@@ -973,8 +976,6 @@ int ath10k_htc_init(struct ath10k *ar)
12122 +@@ -852,8 +855,6 @@ int ath10k_htc_init(struct ath10k *ar)
12123 ath10k_htc_reset_endpoint_states(htc);
12124
12125 /* setup HIF layer callbacks */
12126 @@ -44922,10 +45786,10 @@ index ef3329e..c28ff5d 100644
12127
12128 /* Get HIF default pipe for HTC message exchange */
12129 diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
12130 -index e1dd8c7..9f91b3f 100644
12131 +index 4716d33..a688310 100644
12132 --- a/drivers/net/wireless/ath/ath10k/htc.h
12133 +++ b/drivers/net/wireless/ath/ath10k/htc.h
12134 -@@ -271,12 +271,12 @@ enum ath10k_htc_ep_id {
12135 +@@ -271,13 +271,13 @@ enum ath10k_htc_ep_id {
12136
12137 struct ath10k_htc_ops {
12138 void (*target_send_suspend_complete)(struct ath10k *ar);
12139 @@ -44935,6 +45799,7 @@ index e1dd8c7..9f91b3f 100644
12140 struct ath10k_htc_ep_ops {
12141 void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
12142 void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
12143 + void (*ep_tx_credits)(struct ath10k *);
12144 -};
12145 +} __no_const;
12146
12147 @@ -45146,10 +46011,10 @@ index f6c5c1b..6058354 100644
12148
12149 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
12150 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
12151 -index 69a907b..91e071c 100644
12152 +index a2c9a5d..b52273e 100644
12153 --- a/drivers/net/wireless/ath/ath9k/hw.h
12154 +++ b/drivers/net/wireless/ath/ath9k/hw.h
12155 -@@ -657,7 +657,7 @@ struct ath_hw_private_ops {
12156 +@@ -635,7 +635,7 @@ struct ath_hw_private_ops {
12157
12158 /* ANI */
12159 void (*ani_cache_ini_regs)(struct ath_hw *ah);
12160 @@ -45158,7 +46023,7 @@ index 69a907b..91e071c 100644
12161
12162 /**
12163 * struct ath_spec_scan - parameters for Atheros spectral scan
12164 -@@ -729,7 +729,7 @@ struct ath_hw_ops {
12165 +@@ -711,7 +711,7 @@ struct ath_hw_ops {
12166 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
12167 void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
12168 #endif
12169 @@ -45181,7 +46046,7 @@ index 92190da..f3a4c4c 100644
12170 u32 freqref, vco_freq, val1, val2, val3, timeout, timeoutref, count;
12171 u16 old_comm15, scale;
12172 diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
12173 -index 9581d07..84f6a76 100644
12174 +index dea3b50..543db99 100644
12175 --- a/drivers/net/wireless/iwlegacy/3945-mac.c
12176 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
12177 @@ -3639,7 +3639,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
12178 @@ -45353,10 +46218,10 @@ index 7aad766..06addb4 100644
12179 data->sku_cap_band_24GHz_enable ? "" : "NOT", "enabled",
12180 data->sku_cap_band_52GHz_enable ? "" : "NOT", "enabled",
12181 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
12182 -index 6bc3100..dd1b80d 100644
12183 +index cde9c16..e485cfe 100644
12184 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
12185 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
12186 -@@ -1249,7 +1249,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
12187 +@@ -1368,7 +1368,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
12188 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
12189
12190 char buf[8];
12191 @@ -45365,7 +46230,7 @@ index 6bc3100..dd1b80d 100644
12192 u32 reset_flag;
12193
12194 memset(buf, 0, sizeof(buf));
12195 -@@ -1270,7 +1270,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
12196 +@@ -1389,7 +1389,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
12197 {
12198 struct iwl_trans *trans = file->private_data;
12199 char buf[8];
12200 @@ -45375,10 +46240,10 @@ index 6bc3100..dd1b80d 100644
12201
12202 memset(buf, 0, sizeof(buf));
12203 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
12204 -index 2cd3f54..e936f90 100644
12205 +index a1b32ee..94b3c3d 100644
12206 --- a/drivers/net/wireless/mac80211_hwsim.c
12207 +++ b/drivers/net/wireless/mac80211_hwsim.c
12208 -@@ -2196,25 +2196,19 @@ static int __init init_mac80211_hwsim(void)
12209 +@@ -2224,25 +2224,19 @@ static int __init init_mac80211_hwsim(void)
12210
12211 if (channels > 1) {
12212 hwsim_if_comb.num_different_channels = channels;
12213 @@ -45431,10 +46296,10 @@ index 8169a85..7fa3b47 100644
12214
12215 tmp = cpu_to_le32(rts_threshold);
12216 diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
12217 -index fe4c572..99dedfa 100644
12218 +index e4ba2ce..63d7417 100644
12219 --- a/drivers/net/wireless/rt2x00/rt2x00.h
12220 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
12221 -@@ -387,7 +387,7 @@ struct rt2x00_intf {
12222 +@@ -377,7 +377,7 @@ struct rt2x00_intf {
12223 * for hardware which doesn't support hardware
12224 * sequence counting.
12225 */
12226 @@ -45444,7 +46309,7 @@ index fe4c572..99dedfa 100644
12227
12228 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
12229 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
12230 -index 66a2db8..70cad04 100644
12231 +index a5d38e8..d3c24ea 100644
12232 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
12233 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
12234 @@ -252,9 +252,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
12235 @@ -45486,7 +46351,7 @@ index e2b3d9c..67a5184 100644
12236 wl1251_info("using SDIO interrupt");
12237 }
12238 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
12239 -index 1c627da..69f7d17 100644
12240 +index be7129b..4161356 100644
12241 --- a/drivers/net/wireless/ti/wl12xx/main.c
12242 +++ b/drivers/net/wireless/ti/wl12xx/main.c
12243 @@ -656,7 +656,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
12244 @@ -45512,10 +46377,10 @@ index 1c627da..69f7d17 100644
12245 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
12246 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
12247 diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
12248 -index 7aa0eb8..5a9ef38 100644
12249 +index ec37b16..7e34d66 100644
12250 --- a/drivers/net/wireless/ti/wl18xx/main.c
12251 +++ b/drivers/net/wireless/ti/wl18xx/main.c
12252 -@@ -1730,8 +1730,10 @@ static int wl18xx_setup(struct wl1271 *wl)
12253 +@@ -1823,8 +1823,10 @@ static int wl18xx_setup(struct wl1271 *wl)
12254 }
12255
12256 if (!checksum_param) {
12257 @@ -45529,7 +46394,7 @@ index 7aa0eb8..5a9ef38 100644
12258
12259 /* Enable 11a Band only if we have 5G antennas */
12260 diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
12261 -index 7ef0b4a..ff65c28 100644
12262 +index 84d94f5..bd6c61c 100644
12263 --- a/drivers/net/wireless/zd1211rw/zd_usb.c
12264 +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
12265 @@ -386,7 +386,7 @@ static inline void handle_regs_int(struct urb *urb)
12266 @@ -45542,10 +46407,10 @@ index 7ef0b4a..ff65c28 100644
12267
12268 ZD_ASSERT(in_interrupt());
12269 diff --git a/drivers/nfc/nfcwilink.c b/drivers/nfc/nfcwilink.c
12270 -index 59f95d8..53e0e7f 100644
12271 +index 7130864..00e64de 100644
12272 --- a/drivers/nfc/nfcwilink.c
12273 +++ b/drivers/nfc/nfcwilink.c
12274 -@@ -513,7 +513,7 @@ static struct nci_ops nfcwilink_ops = {
12275 +@@ -498,7 +498,7 @@ static struct nci_ops nfcwilink_ops = {
12276
12277 static int nfcwilink_probe(struct platform_device *pdev)
12278 {
12279 @@ -45734,10 +46599,10 @@ index 92ed045..62d39bd7 100644
12280 #endif /* IEEE1284.3 support. */
12281
12282 diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
12283 -index 2f5786c..61ab4d1 100644
12284 +index ecfac7e..41be7028 100644
12285 --- a/drivers/pci/hotplug/acpiphp_ibm.c
12286 +++ b/drivers/pci/hotplug/acpiphp_ibm.c
12287 -@@ -463,7 +463,9 @@ static int __init ibm_acpiphp_init(void)
12288 +@@ -453,7 +453,9 @@ static int __init ibm_acpiphp_init(void)
12289 goto init_cleanup;
12290 }
12291
12292 @@ -45749,7 +46614,7 @@ index 2f5786c..61ab4d1 100644
12293
12294 return retval;
12295 diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c
12296 -index a6a71c4..c91097b 100644
12297 +index 7536eef..52dc8fa 100644
12298 --- a/drivers/pci/hotplug/cpcihp_generic.c
12299 +++ b/drivers/pci/hotplug/cpcihp_generic.c
12300 @@ -73,7 +73,6 @@ static u16 port;
12301 @@ -45780,7 +46645,7 @@ index a6a71c4..c91097b 100644
12302
12303 status = cpci_hp_register_controller(&generic_hpc);
12304 diff --git a/drivers/pci/hotplug/cpcihp_zt5550.c b/drivers/pci/hotplug/cpcihp_zt5550.c
12305 -index 449b4bb..257e2e8 100644
12306 +index e8c4a7c..7046f5c 100644
12307 --- a/drivers/pci/hotplug/cpcihp_zt5550.c
12308 +++ b/drivers/pci/hotplug/cpcihp_zt5550.c
12309 @@ -59,7 +59,6 @@
12310 @@ -45843,7 +46708,7 @@ index 76ba8a1..20ca857 100644
12311
12312 /* initialize our int15 lock */
12313 diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
12314 -index ec20f74..c1d961e 100644
12315 +index cfa92a9..29539c5 100644
12316 --- a/drivers/pci/hotplug/pci_hotplug_core.c
12317 +++ b/drivers/pci/hotplug/pci_hotplug_core.c
12318 @@ -441,8 +441,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
12319 @@ -45860,7 +46725,7 @@ index ec20f74..c1d961e 100644
12320 mutex_lock(&pci_hp_mutex);
12321 /*
12322 diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
12323 -index f4a18f5..ff2463c 100644
12324 +index bbd48bb..6907ef4 100644
12325 --- a/drivers/pci/hotplug/pciehp_core.c
12326 +++ b/drivers/pci/hotplug/pciehp_core.c
12327 @@ -92,7 +92,7 @@ static int init_slot(struct controller *ctrl)
12328 @@ -45873,10 +46738,10 @@ index f4a18f5..ff2463c 100644
12329 int retval = -ENOMEM;
12330
12331 diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
12332 -index 7128cfd..a0640d6 100644
12333 +index c91e6c1..5c723ef 100644
12334 --- a/drivers/pci/pci-sysfs.c
12335 +++ b/drivers/pci/pci-sysfs.c
12336 -@@ -1083,7 +1083,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
12337 +@@ -1117,7 +1117,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
12338 {
12339 /* allocate attribute structure, piggyback attribute name */
12340 int name_len = write_combine ? 13 : 10;
12341 @@ -45885,7 +46750,7 @@ index 7128cfd..a0640d6 100644
12342 int retval;
12343
12344 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
12345 -@@ -1268,7 +1268,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
12346 +@@ -1302,7 +1302,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
12347 static int pci_create_capabilities_sysfs(struct pci_dev *dev)
12348 {
12349 int retval;
12350 @@ -45894,7 +46759,7 @@ index 7128cfd..a0640d6 100644
12351
12352 /* If the device has VPD, try to expose it in sysfs. */
12353 if (dev->vpd) {
12354 -@@ -1315,7 +1315,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
12355 +@@ -1349,7 +1349,7 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
12356 {
12357 int retval;
12358 int rom_size = 0;
12359 @@ -45904,7 +46769,7 @@ index 7128cfd..a0640d6 100644
12360 if (!sysfs_initialized)
12361 return -EACCES;
12362 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
12363 -index 8a00c06..18a9715 100644
12364 +index 9c91ecc..bda4796 100644
12365 --- a/drivers/pci/pci.h
12366 +++ b/drivers/pci/pci.h
12367 @@ -95,7 +95,7 @@ struct pci_vpd_ops {
12368 @@ -45917,7 +46782,7 @@ index 8a00c06..18a9715 100644
12369
12370 int pci_vpd_pci22_init(struct pci_dev *dev);
12371 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
12372 -index 403a443..034e050 100644
12373 +index f1272dc..e92a1ac 100644
12374 --- a/drivers/pci/pcie/aspm.c
12375 +++ b/drivers/pci/pcie/aspm.c
12376 @@ -27,9 +27,9 @@
12377 @@ -45934,7 +46799,7 @@ index 403a443..034e050 100644
12378 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
12379
12380 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
12381 -index 7ef0f86..17b710f 100644
12382 +index 38e403d..a2ce55a 100644
12383 --- a/drivers/pci/probe.c
12384 +++ b/drivers/pci/probe.c
12385 @@ -175,7 +175,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
12386 @@ -45947,7 +46812,7 @@ index 7ef0f86..17b710f 100644
12387 /* No printks while decoding is disabled! */
12388 if (!dev->mmio_always_on) {
12389 diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
12390 -index cdc7836..528635c 100644
12391 +index 46d1378..30e452b 100644
12392 --- a/drivers/pci/proc.c
12393 +++ b/drivers/pci/proc.c
12394 @@ -434,7 +434,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
12395 @@ -45967,6 +46832,19 @@ index cdc7836..528635c 100644
12396 proc_create("devices", 0, proc_bus_pci_dir,
12397 &proc_bus_pci_dev_operations);
12398 proc_initialized = 1;
12399 +diff --git a/drivers/platform/chrome/chromeos_laptop.c b/drivers/platform/chrome/chromeos_laptop.c
12400 +index 3e5b4497..dcdfb70 100644
12401 +--- a/drivers/platform/chrome/chromeos_laptop.c
12402 ++++ b/drivers/platform/chrome/chromeos_laptop.c
12403 +@@ -301,7 +301,7 @@ static int __init setup_tsl2563_als(const struct dmi_system_id *id)
12404 + return 0;
12405 + }
12406 +
12407 +-static struct dmi_system_id __initdata chromeos_laptop_dmi_table[] = {
12408 ++static struct dmi_system_id __initconst chromeos_laptop_dmi_table[] = {
12409 + {
12410 + .ident = "Samsung Series 5 550 - Touchpad",
12411 + .matches = {
12412 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
12413 index 19c313b..ed28b38 100644
12414 --- a/drivers/platform/x86/asus-wmi.c
12415 @@ -46004,19 +46882,6 @@ index 19c313b..ed28b38 100644
12416 status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
12417 1, asus->debug.method_id,
12418 &input, &output);
12419 -diff --git a/drivers/platform/x86/chromeos_laptop.c b/drivers/platform/x86/chromeos_laptop.c
12420 -index 3e5b4497..dcdfb70 100644
12421 ---- a/drivers/platform/x86/chromeos_laptop.c
12422 -+++ b/drivers/platform/x86/chromeos_laptop.c
12423 -@@ -301,7 +301,7 @@ static int __init setup_tsl2563_als(const struct dmi_system_id *id)
12424 - return 0;
12425 - }
12426 -
12427 --static struct dmi_system_id __initdata chromeos_laptop_dmi_table[] = {
12428 -+static struct dmi_system_id __initconst chromeos_laptop_dmi_table[] = {
12429 - {
12430 - .ident = "Samsung Series 5 550 - Touchpad",
12431 - .matches = {
12432 diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
12433 index 62f8030..c7f2a45 100644
12434 --- a/drivers/platform/x86/msi-laptop.c
12435 @@ -46056,10 +46921,10 @@ index 70222f2..8c8ce66 100644
12436 acpi_status status;
12437
12438 diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
12439 -index 3484dd2..13ee730 100644
12440 +index fb233ae..23a325c 100644
12441 --- a/drivers/platform/x86/sony-laptop.c
12442 +++ b/drivers/platform/x86/sony-laptop.c
12443 -@@ -2448,7 +2448,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
12444 +@@ -2453,7 +2453,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
12445 }
12446
12447 /* High speed charging function */
12448 @@ -46069,10 +46934,10 @@ index 3484dd2..13ee730 100644
12449 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
12450 struct device_attribute *attr,
12451 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
12452 -index 4e86e97..04d50d1 100644
12453 +index 58b0274..6704626 100644
12454 --- a/drivers/platform/x86/thinkpad_acpi.c
12455 +++ b/drivers/platform/x86/thinkpad_acpi.c
12456 -@@ -2091,7 +2091,7 @@ static int hotkey_mask_get(void)
12457 +@@ -2100,7 +2100,7 @@ static int hotkey_mask_get(void)
12458 return 0;
12459 }
12460
12461 @@ -46081,7 +46946,7 @@ index 4e86e97..04d50d1 100644
12462 {
12463 /* log only what the user can fix... */
12464 const u32 wantedmask = hotkey_driver_mask &
12465 -@@ -2318,11 +2318,6 @@ static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
12466 +@@ -2327,11 +2327,6 @@ static void hotkey_read_nvram(struct tp_nvram_state *n, const u32 m)
12467 }
12468 }
12469
12470 @@ -46093,7 +46958,7 @@ index 4e86e97..04d50d1 100644
12471 #define TPACPI_COMPARE_KEY(__scancode, __member) \
12472 do { \
12473 if ((event_mask & (1 << __scancode)) && \
12474 -@@ -2336,36 +2331,42 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12475 +@@ -2345,36 +2340,42 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12476 tpacpi_hotkey_send_key(__scancode); \
12477 } while (0)
12478
12479 @@ -46160,7 +47025,7 @@ index 4e86e97..04d50d1 100644
12480 TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_THINKPAD, thinkpad_toggle);
12481 TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_FNSPACE, zoom_toggle);
12482 TPACPI_COMPARE_KEY(TP_ACPI_HOTKEYSCAN_FNF7, display_toggle);
12483 -@@ -2399,7 +2400,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12484 +@@ -2408,7 +2409,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12485 oldn->volume_level != newn->volume_level) {
12486 /* recently muted, or repeated mute keypress, or
12487 * multiple presses ending in mute */
12488 @@ -46169,7 +47034,7 @@ index 4e86e97..04d50d1 100644
12489 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_MUTE);
12490 }
12491 } else {
12492 -@@ -2409,7 +2410,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12493 +@@ -2418,7 +2419,7 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12494 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_VOLUMEUP);
12495 }
12496 if (oldn->volume_level != newn->volume_level) {
12497 @@ -46178,7 +47043,7 @@ index 4e86e97..04d50d1 100644
12498 } else if (oldn->volume_toggle != newn->volume_toggle) {
12499 /* repeated vol up/down keypress at end of scale ? */
12500 if (newn->volume_level == 0)
12501 -@@ -2422,7 +2423,8 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12502 +@@ -2431,7 +2432,8 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12503 /* handle brightness */
12504 if (oldn->brightness_level != newn->brightness_level) {
12505 issue_brightnesschange(oldn->brightness_level,
12506 @@ -46188,7 +47053,7 @@ index 4e86e97..04d50d1 100644
12507 } else if (oldn->brightness_toggle != newn->brightness_toggle) {
12508 /* repeated key presses that didn't change state */
12509 if (newn->brightness_level == 0)
12510 -@@ -2431,10 +2433,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12511 +@@ -2440,10 +2442,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
12512 && !tp_features.bright_unkfw)
12513 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
12514 }
12515 @@ -46375,11 +47240,200 @@ index 44420d1..967126e 100644
12516 for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++)
12517 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
12518 }
12519 +diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
12520 +index 84419af..268ede8 100644
12521 +--- a/drivers/powercap/powercap_sys.c
12522 ++++ b/drivers/powercap/powercap_sys.c
12523 +@@ -154,8 +154,77 @@ struct powercap_constraint_attr {
12524 + struct device_attribute name_attr;
12525 + };
12526 +
12527 ++static ssize_t show_constraint_name(struct device *dev,
12528 ++ struct device_attribute *dev_attr,
12529 ++ char *buf);
12530 ++
12531 + static struct powercap_constraint_attr
12532 +- constraint_attrs[MAX_CONSTRAINTS_PER_ZONE];
12533 ++ constraint_attrs[MAX_CONSTRAINTS_PER_ZONE] = {
12534 ++ [0 ... MAX_CONSTRAINTS_PER_ZONE - 1] = {
12535 ++ .power_limit_attr = {
12536 ++ .attr = {
12537 ++ .name = NULL,
12538 ++ .mode = S_IWUSR | S_IRUGO
12539 ++ },
12540 ++ .show = show_constraint_power_limit_uw,
12541 ++ .store = store_constraint_power_limit_uw
12542 ++ },
12543 ++
12544 ++ .time_window_attr = {
12545 ++ .attr = {
12546 ++ .name = NULL,
12547 ++ .mode = S_IWUSR | S_IRUGO
12548 ++ },
12549 ++ .show = show_constraint_time_window_us,
12550 ++ .store = store_constraint_time_window_us
12551 ++ },
12552 ++
12553 ++ .max_power_attr = {
12554 ++ .attr = {
12555 ++ .name = NULL,
12556 ++ .mode = S_IRUGO
12557 ++ },
12558 ++ .show = show_constraint_max_power_uw,
12559 ++ .store = NULL
12560 ++ },
12561 ++
12562 ++ .min_power_attr = {
12563 ++ .attr = {
12564 ++ .name = NULL,
12565 ++ .mode = S_IRUGO
12566 ++ },
12567 ++ .show = show_constraint_min_power_uw,
12568 ++ .store = NULL
12569 ++ },
12570 ++
12571 ++ .max_time_window_attr = {
12572 ++ .attr = {
12573 ++ .name = NULL,
12574 ++ .mode = S_IRUGO
12575 ++ },
12576 ++ .show = show_constraint_max_time_window_us,
12577 ++ .store = NULL
12578 ++ },
12579 ++
12580 ++ .min_time_window_attr = {
12581 ++ .attr = {
12582 ++ .name = NULL,
12583 ++ .mode = S_IRUGO
12584 ++ },
12585 ++ .show = show_constraint_min_time_window_us,
12586 ++ .store = NULL
12587 ++ },
12588 ++
12589 ++ .name_attr = {
12590 ++ .attr = {
12591 ++ .name = NULL,
12592 ++ .mode = S_IRUGO
12593 ++ },
12594 ++ .show = show_constraint_name,
12595 ++ .store = NULL
12596 ++ }
12597 ++ }
12598 ++};
12599 +
12600 + /* A list of powercap control_types */
12601 + static LIST_HEAD(powercap_cntrl_list);
12602 +@@ -193,23 +262,16 @@ static ssize_t show_constraint_name(struct device *dev,
12603 + }
12604 +
12605 + static int create_constraint_attribute(int id, const char *name,
12606 +- int mode,
12607 +- struct device_attribute *dev_attr,
12608 +- ssize_t (*show)(struct device *,
12609 +- struct device_attribute *, char *),
12610 +- ssize_t (*store)(struct device *,
12611 +- struct device_attribute *,
12612 +- const char *, size_t)
12613 +- )
12614 ++ struct device_attribute *dev_attr)
12615 + {
12616 ++ name = kasprintf(GFP_KERNEL, "constraint_%d_%s", id, name);
12617 +
12618 +- dev_attr->attr.name = kasprintf(GFP_KERNEL, "constraint_%d_%s",
12619 +- id, name);
12620 +- if (!dev_attr->attr.name)
12621 ++ if (!name)
12622 + return -ENOMEM;
12623 +- dev_attr->attr.mode = mode;
12624 +- dev_attr->show = show;
12625 +- dev_attr->store = store;
12626 ++
12627 ++ pax_open_kernel();
12628 ++ *(const char **)&dev_attr->attr.name = name;
12629 ++ pax_close_kernel();
12630 +
12631 + return 0;
12632 + }
12633 +@@ -236,49 +298,31 @@ static int seed_constraint_attributes(void)
12634 +
12635 + for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
12636 + ret = create_constraint_attribute(i, "power_limit_uw",
12637 +- S_IWUSR | S_IRUGO,
12638 +- &constraint_attrs[i].power_limit_attr,
12639 +- show_constraint_power_limit_uw,
12640 +- store_constraint_power_limit_uw);
12641 ++ &constraint_attrs[i].power_limit_attr);
12642 + if (ret)
12643 + goto err_alloc;
12644 + ret = create_constraint_attribute(i, "time_window_us",
12645 +- S_IWUSR | S_IRUGO,
12646 +- &constraint_attrs[i].time_window_attr,
12647 +- show_constraint_time_window_us,
12648 +- store_constraint_time_window_us);
12649 ++ &constraint_attrs[i].time_window_attr);
12650 + if (ret)
12651 + goto err_alloc;
12652 +- ret = create_constraint_attribute(i, "name", S_IRUGO,
12653 +- &constraint_attrs[i].name_attr,
12654 +- show_constraint_name,
12655 +- NULL);
12656 ++ ret = create_constraint_attribute(i, "name",
12657 ++ &constraint_attrs[i].name_attr);
12658 + if (ret)
12659 + goto err_alloc;
12660 +- ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
12661 +- &constraint_attrs[i].max_power_attr,
12662 +- show_constraint_max_power_uw,
12663 +- NULL);
12664 ++ ret = create_constraint_attribute(i, "max_power_uw",
12665 ++ &constraint_attrs[i].max_power_attr);
12666 + if (ret)
12667 + goto err_alloc;
12668 +- ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
12669 +- &constraint_attrs[i].min_power_attr,
12670 +- show_constraint_min_power_uw,
12671 +- NULL);
12672 ++ ret = create_constraint_attribute(i, "min_power_uw",
12673 ++ &constraint_attrs[i].min_power_attr);
12674 + if (ret)
12675 + goto err_alloc;
12676 + ret = create_constraint_attribute(i, "max_time_window_us",
12677 +- S_IRUGO,
12678 +- &constraint_attrs[i].max_time_window_attr,
12679 +- show_constraint_max_time_window_us,
12680 +- NULL);
12681 ++ &constraint_attrs[i].max_time_window_attr);
12682 + if (ret)
12683 + goto err_alloc;
12684 + ret = create_constraint_attribute(i, "min_time_window_us",
12685 +- S_IRUGO,
12686 +- &constraint_attrs[i].min_time_window_attr,
12687 +- show_constraint_min_time_window_us,
12688 +- NULL);
12689 ++ &constraint_attrs[i].min_time_window_attr);
12690 + if (ret)
12691 + goto err_alloc;
12692 +
12693 +@@ -378,10 +422,12 @@ static void create_power_zone_common_attributes(
12694 + power_zone->zone_dev_attrs[count++] =
12695 + &dev_attr_max_energy_range_uj.attr;
12696 + if (power_zone->ops->get_energy_uj) {
12697 ++ pax_open_kernel();
12698 + if (power_zone->ops->reset_energy_uj)
12699 +- dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
12700 ++ *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
12701 + else
12702 +- dev_attr_energy_uj.attr.mode = S_IRUGO;
12703 ++ *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IRUGO;
12704 ++ pax_close_kernel();
12705 + power_zone->zone_dev_attrs[count++] =
12706 + &dev_attr_energy_uj.attr;
12707 + }
12708 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
12709 -index a01b8b3..37c2afe 100644
12710 +index d85f313..ae857d0 100644
12711 --- a/drivers/regulator/core.c
12712 +++ b/drivers/regulator/core.c
12713 -@@ -3307,7 +3307,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
12714 +@@ -3362,7 +3362,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
12715 {
12716 const struct regulation_constraints *constraints = NULL;
12717 const struct regulator_init_data *init_data;
12718 @@ -46388,7 +47442,7 @@ index a01b8b3..37c2afe 100644
12719 struct regulator_dev *rdev;
12720 struct device *dev;
12721 int ret, i;
12722 -@@ -3377,7 +3377,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
12723 +@@ -3432,7 +3432,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
12724 rdev->dev.of_node = config->of_node;
12725 rdev->dev.parent = dev;
12726 dev_set_name(&rdev->dev, "regulator.%d",
12727 @@ -46398,7 +47452,7 @@ index a01b8b3..37c2afe 100644
12728 if (ret != 0) {
12729 put_device(&rdev->dev);
12730 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
12731 -index 144bcac..d20e7db 100644
12732 +index 8d94d3d..653b623 100644
12733 --- a/drivers/regulator/max8660.c
12734 +++ b/drivers/regulator/max8660.c
12735 @@ -420,8 +420,10 @@ static int max8660_probe(struct i2c_client *client,
12736 @@ -46415,7 +47469,7 @@ index 144bcac..d20e7db 100644
12737
12738 /*
12739 diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
12740 -index 5b77ab7..a62f061 100644
12741 +index 892aa1e..ebd1b9c 100644
12742 --- a/drivers/regulator/max8973-regulator.c
12743 +++ b/drivers/regulator/max8973-regulator.c
12744 @@ -406,9 +406,11 @@ static int max8973_probe(struct i2c_client *client,
12745 @@ -46434,7 +47488,7 @@ index 5b77ab7..a62f061 100644
12746
12747 if (pdata) {
12748 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
12749 -index 1037e07..e64dea1 100644
12750 +index 96c9f80..90974ca 100644
12751 --- a/drivers/regulator/mc13892-regulator.c
12752 +++ b/drivers/regulator/mc13892-regulator.c
12753 @@ -582,10 +582,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
12754 @@ -46453,7 +47507,7 @@ index 1037e07..e64dea1 100644
12755 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
12756 ARRAY_SIZE(mc13892_regulators));
12757 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
12758 -index 24e733c..bfbaa3e 100644
12759 +index f148762..5a6d1e5 100644
12760 --- a/drivers/rtc/rtc-cmos.c
12761 +++ b/drivers/rtc/rtc-cmos.c
12762 @@ -731,7 +731,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
12763 @@ -46489,7 +47543,7 @@ index d049393..bb20be0 100644
12764
12765 case RTC_PIE_ON:
12766 diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
12767 -index ca18fd1..055e42d 100644
12768 +index 4e75345..09f8663 100644
12769 --- a/drivers/rtc/rtc-ds1307.c
12770 +++ b/drivers/rtc/rtc-ds1307.c
12771 @@ -107,7 +107,7 @@ struct ds1307 {
12772 @@ -46502,7 +47556,7 @@ index ca18fd1..055e42d 100644
12773 unsigned long flags;
12774 #define HAS_NVRAM 0 /* bit 0 == sysfs file active */
12775 diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c
12776 -index fcb0329..d77b7f2 100644
12777 +index 11880c1..b823aa4 100644
12778 --- a/drivers/rtc/rtc-m48t59.c
12779 +++ b/drivers/rtc/rtc-m48t59.c
12780 @@ -483,7 +483,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev)
12781 @@ -46570,6 +47624,76 @@ index e693af6..2e525b6 100644
12782
12783 void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
12784 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
12785 +diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
12786 +index a3ab5cc..8143622 100644
12787 +--- a/drivers/scsi/bfa/bfa_fcs.c
12788 ++++ b/drivers/scsi/bfa/bfa_fcs.c
12789 +@@ -38,10 +38,21 @@ struct bfa_fcs_mod_s {
12790 + #define BFA_FCS_MODULE(_mod) { _mod ## _modinit, _mod ## _modexit }
12791 +
12792 + static struct bfa_fcs_mod_s fcs_modules[] = {
12793 +- { bfa_fcs_port_attach, NULL, NULL },
12794 +- { bfa_fcs_uf_attach, NULL, NULL },
12795 +- { bfa_fcs_fabric_attach, bfa_fcs_fabric_modinit,
12796 +- bfa_fcs_fabric_modexit },
12797 ++ {
12798 ++ .attach = bfa_fcs_port_attach,
12799 ++ .modinit = NULL,
12800 ++ .modexit = NULL
12801 ++ },
12802 ++ {
12803 ++ .attach = bfa_fcs_uf_attach,
12804 ++ .modinit = NULL,
12805 ++ .modexit = NULL
12806 ++ },
12807 ++ {
12808 ++ .attach = bfa_fcs_fabric_attach,
12809 ++ .modinit = bfa_fcs_fabric_modinit,
12810 ++ .modexit = bfa_fcs_fabric_modexit
12811 ++ },
12812 + };
12813 +
12814 + /*
12815 +diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
12816 +index f5e4e61..a0acaf6 100644
12817 +--- a/drivers/scsi/bfa/bfa_fcs_lport.c
12818 ++++ b/drivers/scsi/bfa/bfa_fcs_lport.c
12819 +@@ -89,15 +89,26 @@ static struct {
12820 + void (*offline) (struct bfa_fcs_lport_s *port);
12821 + } __port_action[] = {
12822 + {
12823 +- bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
12824 +- bfa_fcs_lport_unknown_offline}, {
12825 +- bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
12826 +- bfa_fcs_lport_fab_offline}, {
12827 +- bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
12828 +- bfa_fcs_lport_n2n_offline}, {
12829 +- bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
12830 +- bfa_fcs_lport_loop_offline},
12831 +- };
12832 ++ .init = bfa_fcs_lport_unknown_init,
12833 ++ .online = bfa_fcs_lport_unknown_online,
12834 ++ .offline = bfa_fcs_lport_unknown_offline
12835 ++ },
12836 ++ {
12837 ++ .init = bfa_fcs_lport_fab_init,
12838 ++ .online = bfa_fcs_lport_fab_online,
12839 ++ .offline = bfa_fcs_lport_fab_offline
12840 ++ },
12841 ++ {
12842 ++ .init = bfa_fcs_lport_n2n_init,
12843 ++ .online = bfa_fcs_lport_n2n_online,
12844 ++ .offline = bfa_fcs_lport_n2n_offline
12845 ++ },
12846 ++ {
12847 ++ .init = bfa_fcs_lport_loop_init,
12848 ++ .online = bfa_fcs_lport_loop_online,
12849 ++ .offline = bfa_fcs_lport_loop_offline
12850 ++ },
12851 ++};
12852 +
12853 + /*
12854 + * fcs_port_sm FCS logical port state machine
12855 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
12856 index 90814fe..4384138 100644
12857 --- a/drivers/scsi/bfa/bfa_ioc.h
12858 @@ -46592,8 +47716,31 @@ index 90814fe..4384138 100644
12859
12860 /*
12861 * Queue element to wait for room in request queue. FIFO order is
12862 +diff --git a/drivers/scsi/bfa/bfa_modules.h b/drivers/scsi/bfa/bfa_modules.h
12863 +index a14c784..6de6790 100644
12864 +--- a/drivers/scsi/bfa/bfa_modules.h
12865 ++++ b/drivers/scsi/bfa/bfa_modules.h
12866 +@@ -78,12 +78,12 @@ enum {
12867 + \
12868 + extern struct bfa_module_s hal_mod_ ## __mod; \
12869 + struct bfa_module_s hal_mod_ ## __mod = { \
12870 +- bfa_ ## __mod ## _meminfo, \
12871 +- bfa_ ## __mod ## _attach, \
12872 +- bfa_ ## __mod ## _detach, \
12873 +- bfa_ ## __mod ## _start, \
12874 +- bfa_ ## __mod ## _stop, \
12875 +- bfa_ ## __mod ## _iocdisable, \
12876 ++ .meminfo = bfa_ ## __mod ## _meminfo, \
12877 ++ .attach = bfa_ ## __mod ## _attach, \
12878 ++ .detach = bfa_ ## __mod ## _detach, \
12879 ++ .start = bfa_ ## __mod ## _start, \
12880 ++ .stop = bfa_ ## __mod ## _stop, \
12881 ++ .iocdisable = bfa_ ## __mod ## _iocdisable, \
12882 + }
12883 +
12884 + #define BFA_CACHELINE_SZ (256)
12885 diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
12886 -index c9382d6..6619864 100644
12887 +index 045c4e1..13de803 100644
12888 --- a/drivers/scsi/fcoe/fcoe_sysfs.c
12889 +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
12890 @@ -33,8 +33,8 @@
12891 @@ -46607,7 +47754,7 @@ index c9382d6..6619864 100644
12892
12893 /*
12894 * fcoe_fcf_dev_loss_tmo: the default number of seconds that fcoe sysfs
12895 -@@ -681,7 +681,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
12896 +@@ -685,7 +685,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
12897 if (!ctlr)
12898 goto out;
12899
12900 @@ -46616,7 +47763,7 @@ index c9382d6..6619864 100644
12901 ctlr->f = f;
12902 ctlr->mode = FIP_CONN_TYPE_FABRIC;
12903 INIT_LIST_HEAD(&ctlr->fcfs);
12904 -@@ -898,7 +898,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
12905 +@@ -902,7 +902,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
12906 fcf->dev.parent = &ctlr->dev;
12907 fcf->dev.bus = &fcoe_bus_type;
12908 fcf->dev.type = &fcoe_fcf_device_type;
12909 @@ -46625,7 +47772,7 @@ index c9382d6..6619864 100644
12910 fcf->state = FCOE_FCF_STATE_UNKNOWN;
12911
12912 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo;
12913 -@@ -934,8 +934,8 @@ int __init fcoe_sysfs_setup(void)
12914 +@@ -938,8 +938,8 @@ int __init fcoe_sysfs_setup(void)
12915 {
12916 int error;
12917
12918 @@ -46637,7 +47784,7 @@ index c9382d6..6619864 100644
12919 error = bus_register(&fcoe_bus_type);
12920 if (error)
12921 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
12922 -index 3cafe0d..f1e87f8 100644
12923 +index f2c5005..db36c02 100644
12924 --- a/drivers/scsi/hosts.c
12925 +++ b/drivers/scsi/hosts.c
12926 @@ -42,7 +42,7 @@
12927 @@ -46649,7 +47796,7 @@ index 3cafe0d..f1e87f8 100644
12928
12929
12930 static void scsi_host_cls_release(struct device *dev)
12931 -@@ -361,7 +361,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
12932 +@@ -367,7 +367,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
12933 * subtract one because we increment first then return, but we need to
12934 * know what the next host number was before increment
12935 */
12936 @@ -46659,10 +47806,10 @@ index 3cafe0d..f1e87f8 100644
12937
12938 /* These three are default values which can be overridden */
12939 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
12940 -index 0eb0940..3ca9b79 100644
12941 +index 20a5e6e..8b23cea 100644
12942 --- a/drivers/scsi/hpsa.c
12943 +++ b/drivers/scsi/hpsa.c
12944 -@@ -579,7 +579,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
12945 +@@ -578,7 +578,7 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
12946 unsigned long flags;
12947
12948 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
12949 @@ -46671,7 +47818,7 @@ index 0eb0940..3ca9b79 100644
12950
12951 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
12952 a = rq->head[rq->current_entry];
12953 -@@ -3445,7 +3445,7 @@ static void start_io(struct ctlr_info *h)
12954 +@@ -3444,7 +3444,7 @@ static void start_io(struct ctlr_info *h)
12955 while (!list_empty(&h->reqQ)) {
12956 c = list_entry(h->reqQ.next, struct CommandList, list);
12957 /* can't do anything if fifo is full */
12958 @@ -46680,7 +47827,7 @@ index 0eb0940..3ca9b79 100644
12959 dev_warn(&h->pdev->dev, "fifo full\n");
12960 break;
12961 }
12962 -@@ -3467,7 +3467,7 @@ static void start_io(struct ctlr_info *h)
12963 +@@ -3466,7 +3466,7 @@ static void start_io(struct ctlr_info *h)
12964
12965 /* Tell the controller execute command */
12966 spin_unlock_irqrestore(&h->lock, flags);
12967 @@ -46689,7 +47836,7 @@ index 0eb0940..3ca9b79 100644
12968 spin_lock_irqsave(&h->lock, flags);
12969 }
12970 spin_unlock_irqrestore(&h->lock, flags);
12971 -@@ -3475,17 +3475,17 @@ static void start_io(struct ctlr_info *h)
12972 +@@ -3474,17 +3474,17 @@ static void start_io(struct ctlr_info *h)
12973
12974 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
12975 {
12976 @@ -46710,7 +47857,7 @@ index 0eb0940..3ca9b79 100644
12977 (h->interrupts_enabled == 0);
12978 }
12979
12980 -@@ -4387,7 +4387,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
12981 +@@ -4386,7 +4386,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
12982 if (prod_index < 0)
12983 return -ENODEV;
12984 h->product_name = products[prod_index].product_name;
12985 @@ -46719,7 +47866,7 @@ index 0eb0940..3ca9b79 100644
12986
12987 pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
12988 PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);
12989 -@@ -4669,7 +4669,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
12990 +@@ -4668,7 +4668,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
12991
12992 assert_spin_locked(&lockup_detector_lock);
12993 remove_ctlr_from_lockup_detector_list(h);
12994 @@ -46728,7 +47875,7 @@ index 0eb0940..3ca9b79 100644
12995 spin_lock_irqsave(&h->lock, flags);
12996 h->lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
12997 spin_unlock_irqrestore(&h->lock, flags);
12998 -@@ -4846,7 +4846,7 @@ reinit_after_soft_reset:
12999 +@@ -4845,7 +4845,7 @@ reinit_after_soft_reset:
13000 }
13001
13002 /* make sure the board interrupts are off */
13003 @@ -46737,7 +47884,7 @@ index 0eb0940..3ca9b79 100644
13004
13005 if (hpsa_request_irq(h, do_hpsa_intr_msi, do_hpsa_intr_intx))
13006 goto clean2;
13007 -@@ -4880,7 +4880,7 @@ reinit_after_soft_reset:
13008 +@@ -4879,7 +4879,7 @@ reinit_after_soft_reset:
13009 * fake ones to scoop up any residual completions.
13010 */
13011 spin_lock_irqsave(&h->lock, flags);
13012 @@ -46746,7 +47893,7 @@ index 0eb0940..3ca9b79 100644
13013 spin_unlock_irqrestore(&h->lock, flags);
13014 free_irqs(h);
13015 rc = hpsa_request_irq(h, hpsa_msix_discard_completions,
13016 -@@ -4899,9 +4899,9 @@ reinit_after_soft_reset:
13017 +@@ -4898,9 +4898,9 @@ reinit_after_soft_reset:
13018 dev_info(&h->pdev->dev, "Board READY.\n");
13019 dev_info(&h->pdev->dev,
13020 "Waiting for stale completions to drain.\n");
13021 @@ -46758,7 +47905,7 @@ index 0eb0940..3ca9b79 100644
13022
13023 rc = controller_reset_failed(h->cfgtable);
13024 if (rc)
13025 -@@ -4922,7 +4922,7 @@ reinit_after_soft_reset:
13026 +@@ -4921,7 +4921,7 @@ reinit_after_soft_reset:
13027 }
13028
13029 /* Turn the interrupts on so we can service requests */
13030 @@ -46767,7 +47914,7 @@ index 0eb0940..3ca9b79 100644
13031
13032 hpsa_hba_inquiry(h);
13033 hpsa_register_scsi(h); /* hook ourselves into SCSI subsystem */
13034 -@@ -4977,7 +4977,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
13035 +@@ -4976,7 +4976,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
13036 * To write all data in the battery backed cache to disks
13037 */
13038 hpsa_flush_cache(h);
13039 @@ -46776,7 +47923,7 @@ index 0eb0940..3ca9b79 100644
13040 hpsa_free_irqs_and_disable_msix(h);
13041 }
13042
13043 -@@ -5145,7 +5145,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags)
13044 +@@ -5143,7 +5143,7 @@ static void hpsa_enter_performant_mode(struct ctlr_info *h, u32 use_short_tags)
13045 return;
13046 }
13047 /* Change the access methods to the performant access methods */
13048 @@ -46786,7 +47933,7 @@ index 0eb0940..3ca9b79 100644
13049 }
13050
13051 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
13052 -index bc85e72..ae04a39 100644
13053 +index bc85e72..d463049 100644
13054 --- a/drivers/scsi/hpsa.h
13055 +++ b/drivers/scsi/hpsa.h
13056 @@ -79,7 +79,7 @@ struct ctlr_info {
13057 @@ -46798,11 +47945,41 @@ index bc85e72..ae04a39 100644
13058
13059 /* queue and queue Info */
13060 struct list_head reqQ;
13061 +@@ -381,19 +381,19 @@ static bool SA5_performant_intr_pending(struct ctlr_info *h)
13062 + }
13063 +
13064 + static struct access_method SA5_access = {
13065 +- SA5_submit_command,
13066 +- SA5_intr_mask,
13067 +- SA5_fifo_full,
13068 +- SA5_intr_pending,
13069 +- SA5_completed,
13070 ++ .submit_command = SA5_submit_command,
13071 ++ .set_intr_mask = SA5_intr_mask,
13072 ++ .fifo_full = SA5_fifo_full,
13073 ++ .intr_pending = SA5_intr_pending,
13074 ++ .command_completed = SA5_completed,
13075 + };
13076 +
13077 + static struct access_method SA5_performant_access = {
13078 +- SA5_submit_command,
13079 +- SA5_performant_intr_mask,
13080 +- SA5_fifo_full,
13081 +- SA5_performant_intr_pending,
13082 +- SA5_performant_completed,
13083 ++ .submit_command = SA5_submit_command,
13084 ++ .set_intr_mask = SA5_performant_intr_mask,
13085 ++ .fifo_full = SA5_fifo_full,
13086 ++ .intr_pending = SA5_performant_intr_pending,
13087 ++ .command_completed = SA5_performant_completed,
13088 + };
13089 +
13090 + struct board_type {
13091 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
13092 -index 5879929..32b241d 100644
13093 +index 1b3a094..068e683 100644
13094 --- a/drivers/scsi/libfc/fc_exch.c
13095 +++ b/drivers/scsi/libfc/fc_exch.c
13096 -@@ -100,12 +100,12 @@ struct fc_exch_mgr {
13097 +@@ -101,12 +101,12 @@ struct fc_exch_mgr {
13098 u16 pool_max_index;
13099
13100 struct {
13101 @@ -46821,7 +47998,7 @@ index 5879929..32b241d 100644
13102 } stats;
13103 };
13104
13105 -@@ -736,7 +736,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
13106 +@@ -811,7 +811,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
13107 /* allocate memory for exchange */
13108 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
13109 if (!ep) {
13110 @@ -46830,7 +48007,7 @@ index 5879929..32b241d 100644
13111 goto out;
13112 }
13113 memset(ep, 0, sizeof(*ep));
13114 -@@ -797,7 +797,7 @@ out:
13115 +@@ -874,7 +874,7 @@ out:
13116 return ep;
13117 err:
13118 spin_unlock_bh(&pool->lock);
13119 @@ -46839,7 +48016,7 @@ index 5879929..32b241d 100644
13120 mempool_free(ep, mp->ep_pool);
13121 return NULL;
13122 }
13123 -@@ -940,7 +940,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13124 +@@ -1023,7 +1023,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13125 xid = ntohs(fh->fh_ox_id); /* we originated exch */
13126 ep = fc_exch_find(mp, xid);
13127 if (!ep) {
13128 @@ -46848,7 +48025,7 @@ index 5879929..32b241d 100644
13129 reject = FC_RJT_OX_ID;
13130 goto out;
13131 }
13132 -@@ -970,7 +970,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13133 +@@ -1053,7 +1053,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13134 ep = fc_exch_find(mp, xid);
13135 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
13136 if (ep) {
13137 @@ -46857,7 +48034,7 @@ index 5879929..32b241d 100644
13138 reject = FC_RJT_RX_ID;
13139 goto rel;
13140 }
13141 -@@ -981,7 +981,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13142 +@@ -1064,7 +1064,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13143 }
13144 xid = ep->xid; /* get our XID */
13145 } else if (!ep) {
13146 @@ -46866,7 +48043,7 @@ index 5879929..32b241d 100644
13147 reject = FC_RJT_RX_ID; /* XID not found */
13148 goto out;
13149 }
13150 -@@ -998,7 +998,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13151 +@@ -1082,7 +1082,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
13152 } else {
13153 sp = &ep->seq;
13154 if (sp->id != fh->fh_seq_id) {
13155 @@ -46875,7 +48052,7 @@ index 5879929..32b241d 100644
13156 if (f_ctl & FC_FC_END_SEQ) {
13157 /*
13158 * Update sequence_id based on incoming last
13159 -@@ -1448,22 +1448,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13160 +@@ -1533,22 +1533,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13161
13162 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
13163 if (!ep) {
13164 @@ -46902,7 +48079,7 @@ index 5879929..32b241d 100644
13165 goto rel;
13166 }
13167 sof = fr_sof(fp);
13168 -@@ -1472,7 +1472,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13169 +@@ -1557,7 +1557,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13170 sp->ssb_stat |= SSB_ST_RESP;
13171 sp->id = fh->fh_seq_id;
13172 } else if (sp->id != fh->fh_seq_id) {
13173 @@ -46911,7 +48088,7 @@ index 5879929..32b241d 100644
13174 goto rel;
13175 }
13176
13177 -@@ -1536,9 +1536,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13178 +@@ -1619,9 +1619,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
13179 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
13180
13181 if (!sp)
13182 @@ -46923,7 +48100,7 @@ index 5879929..32b241d 100644
13183
13184 fc_frame_free(fp);
13185 }
13186 -@@ -2185,13 +2185,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
13187 +@@ -2261,13 +2261,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
13188
13189 list_for_each_entry(ema, &lport->ema_list, ema_list) {
13190 mp = ema->mp;
13191 @@ -47073,10 +48250,10 @@ index 60084e6..0e2e700 100644
13192 snprintf(name, sizeof(name), "discovery_trace");
13193 vport->debug_disc_trc =
13194 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
13195 -index 647f5bf..d0068b9 100644
13196 +index 68c94cc..8c27be5 100644
13197 --- a/drivers/scsi/lpfc/lpfc_init.c
13198 +++ b/drivers/scsi/lpfc/lpfc_init.c
13199 -@@ -10952,8 +10952,10 @@ lpfc_init(void)
13200 +@@ -10949,8 +10949,10 @@ lpfc_init(void)
13201 "misc_register returned with status %d", error);
13202
13203 if (lpfc_enable_npiv) {
13204 @@ -47090,7 +48267,7 @@ index 647f5bf..d0068b9 100644
13205 lpfc_transport_template =
13206 fc_attach_transport(&lpfc_transport_functions);
13207 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
13208 -index c913e8c..d34a119 100644
13209 +index b2ede05..aaf482ca 100644
13210 --- a/drivers/scsi/lpfc/lpfc_scsi.c
13211 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
13212 @@ -353,7 +353,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
13213 @@ -47185,7 +48362,7 @@ index 7f0af4f..193ac3e 100644
13214 unsigned long flags;
13215
13216 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
13217 -index a38f71b..f3bc572 100644
13218 +index be8ce54..94ed33a 100644
13219 --- a/drivers/scsi/pmcraid.c
13220 +++ b/drivers/scsi/pmcraid.c
13221 @@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
13222 @@ -47199,7 +48376,7 @@ index a38f71b..f3bc572 100644
13223 rc = 0;
13224 }
13225 spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
13226 -@@ -2676,9 +2676,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
13227 +@@ -2687,9 +2687,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
13228
13229 /* If this was a SCSI read/write command keep count of errors */
13230 if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
13231 @@ -47211,7 +48388,7 @@ index a38f71b..f3bc572 100644
13232
13233 if (!RES_IS_GSCSI(res->cfg_entry) &&
13234 masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
13235 -@@ -3534,7 +3534,7 @@ static int pmcraid_queuecommand_lck(
13236 +@@ -3545,7 +3545,7 @@ static int pmcraid_queuecommand_lck(
13237 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
13238 * hrrq_id assigned here in queuecommand
13239 */
13240 @@ -47220,7 +48397,7 @@ index a38f71b..f3bc572 100644
13241 pinstance->num_hrrq;
13242 cmd->cmd_done = pmcraid_io_done;
13243
13244 -@@ -3846,7 +3846,7 @@ static long pmcraid_ioctl_passthrough(
13245 +@@ -3857,7 +3857,7 @@ static long pmcraid_ioctl_passthrough(
13246 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
13247 * hrrq_id assigned here in queuecommand
13248 */
13249 @@ -47229,7 +48406,7 @@ index a38f71b..f3bc572 100644
13250 pinstance->num_hrrq;
13251
13252 if (request_size) {
13253 -@@ -4484,7 +4484,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
13254 +@@ -4495,7 +4495,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
13255
13256 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
13257 /* add resources only after host is added into system */
13258 @@ -47238,7 +48415,7 @@ index a38f71b..f3bc572 100644
13259 return;
13260
13261 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
13262 -@@ -5311,8 +5311,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
13263 +@@ -5322,8 +5322,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
13264 init_waitqueue_head(&pinstance->reset_wait_q);
13265
13266 atomic_set(&pinstance->outstanding_cmds, 0);
13267 @@ -47249,7 +48426,7 @@ index a38f71b..f3bc572 100644
13268
13269 INIT_LIST_HEAD(&pinstance->free_res_q);
13270 INIT_LIST_HEAD(&pinstance->used_res_q);
13271 -@@ -6025,7 +6025,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
13272 +@@ -6036,7 +6036,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
13273 /* Schedule worker thread to handle CCN and take care of adding and
13274 * removing devices to OS
13275 */
13276 @@ -47329,10 +48506,10 @@ index 4446bf5..9a3574d 100644
13277 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *);
13278 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
13279 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
13280 -index 9f01bbb..5e1dcee 100644
13281 +index 52be35e..b933907 100644
13282 --- a/drivers/scsi/qla2xxx/qla_os.c
13283 +++ b/drivers/scsi/qla2xxx/qla_os.c
13284 -@@ -1572,8 +1572,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
13285 +@@ -1568,8 +1568,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
13286 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
13287 /* Ok, a 64bit DMA mask is applicable. */
13288 ha->flags.enable_64bit_addressing = 1;
13289 @@ -47346,7 +48523,7 @@ index 9f01bbb..5e1dcee 100644
13290 }
13291 }
13292 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
13293 -index 41327d4..feb03d479 100644
13294 +index 084d1fd..9f939eb 100644
13295 --- a/drivers/scsi/qla4xxx/ql4_def.h
13296 +++ b/drivers/scsi/qla4xxx/ql4_def.h
13297 @@ -296,7 +296,7 @@ struct ddb_entry {
13298 @@ -47359,10 +48536,10 @@ index 41327d4..feb03d479 100644
13299 uint32_t default_time2wait; /* Default Min time between
13300 * relogins (+aens) */
13301 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
13302 -index f8a0a26..ec03cee 100644
13303 +index a28d5e6..000a8af 100644
13304 --- a/drivers/scsi/qla4xxx/ql4_os.c
13305 +++ b/drivers/scsi/qla4xxx/ql4_os.c
13306 -@@ -3066,12 +3066,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
13307 +@@ -3308,12 +3308,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
13308 */
13309 if (!iscsi_is_session_online(cls_sess)) {
13310 /* Reset retry relogin timer */
13311 @@ -47377,7 +48554,7 @@ index f8a0a26..ec03cee 100644
13312 ddb_entry->default_time2wait + 4));
13313 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
13314 atomic_set(&ddb_entry->retry_relogin_timer,
13315 -@@ -5209,7 +5209,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
13316 +@@ -5455,7 +5455,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
13317
13318 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
13319 atomic_set(&ddb_entry->relogin_timer, 0);
13320 @@ -47387,11 +48564,11 @@ index f8a0a26..ec03cee 100644
13321 ddb_entry->default_relogin_timeout =
13322 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
13323 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
13324 -index eaa808e..95f8841 100644
13325 +index fe0bcb1..c9255be 100644
13326 --- a/drivers/scsi/scsi.c
13327 +++ b/drivers/scsi/scsi.c
13328 -@@ -661,7 +661,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
13329 - unsigned long timeout;
13330 +@@ -655,7 +655,7 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
13331 + struct Scsi_Host *host = cmd->device->host;
13332 int rtn = 0;
13333
13334 - atomic_inc(&cmd->device->iorequest_cnt);
13335 @@ -47400,7 +48577,7 @@ index eaa808e..95f8841 100644
13336 /* check if the device is still usable */
13337 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
13338 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
13339 -index d1549b7..2f60767 100644
13340 +index 7bd7f0d..44147bf 100644
13341 --- a/drivers/scsi/scsi_lib.c
13342 +++ b/drivers/scsi/scsi_lib.c
13343 @@ -1474,7 +1474,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
13344 @@ -47425,10 +48602,10 @@ index d1549b7..2f60767 100644
13345 disposition = scsi_decide_disposition(cmd);
13346 if (disposition != SUCCESS &&
13347 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
13348 -index 40c6394..62356c2 100644
13349 +index 8ff62c2..693b6f7 100644
13350 --- a/drivers/scsi/scsi_sysfs.c
13351 +++ b/drivers/scsi/scsi_sysfs.c
13352 -@@ -687,7 +687,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
13353 +@@ -725,7 +725,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
13354 char *buf) \
13355 { \
13356 struct scsi_device *sdev = to_scsi_device(dev); \
13357 @@ -47491,7 +48668,7 @@ index 4628fd5..a94a1c2 100644
13358 /*
13359 * Check for overflow; dev_loss_tmo is u32
13360 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
13361 -index e4a989f..293090c 100644
13362 +index 63a6ca4..5d5cadd 100644
13363 --- a/drivers/scsi/scsi_transport_iscsi.c
13364 +++ b/drivers/scsi/scsi_transport_iscsi.c
13365 @@ -79,7 +79,7 @@ struct iscsi_internal {
13366 @@ -47512,7 +48689,7 @@ index e4a989f..293090c 100644
13367
13368 if (target_id == ISCSI_MAX_TARGET) {
13369 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
13370 -@@ -4077,7 +4077,7 @@ static __init int iscsi_transport_init(void)
13371 +@@ -4103,7 +4103,7 @@ static __init int iscsi_transport_init(void)
13372 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
13373 ISCSI_TRANSPORT_VERSION);
13374
13375 @@ -47522,10 +48699,10 @@ index e4a989f..293090c 100644
13376 err = class_register(&iscsi_transport_class);
13377 if (err)
13378 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
13379 -index f379c7f..e8fc69c 100644
13380 +index 2700a5a..752ec38 100644
13381 --- a/drivers/scsi/scsi_transport_srp.c
13382 +++ b/drivers/scsi/scsi_transport_srp.c
13383 -@@ -33,7 +33,7 @@
13384 +@@ -36,7 +36,7 @@
13385 #include "scsi_transport_srp_internal.h"
13386
13387 struct srp_host_attrs {
13388 @@ -47534,7 +48711,7 @@ index f379c7f..e8fc69c 100644
13389 };
13390 #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data)
13391
13392 -@@ -61,7 +61,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
13393 +@@ -94,7 +94,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
13394 struct Scsi_Host *shost = dev_to_shost(dev);
13395 struct srp_host_attrs *srp_host = to_srp_host_attrs(shost);
13396
13397 @@ -47543,9 +48720,9 @@ index f379c7f..e8fc69c 100644
13398 return 0;
13399 }
13400
13401 -@@ -210,7 +210,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
13402 - memcpy(rport->port_id, ids->port_id, sizeof(rport->port_id));
13403 - rport->roles = ids->roles;
13404 +@@ -730,7 +730,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
13405 + rport_fast_io_fail_timedout);
13406 + INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
13407
13408 - id = atomic_inc_return(&to_srp_host_attrs(shost)->next_port_id);
13409 + id = atomic_inc_return_unchecked(&to_srp_host_attrs(shost)->next_port_id);
13410 @@ -47553,10 +48730,10 @@ index f379c7f..e8fc69c 100644
13411
13412 transport_setup_device(&rport->dev);
13413 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
13414 -index dbc024b..6e3b837 100644
13415 +index 69725f7..03aaee1 100644
13416 --- a/drivers/scsi/sd.c
13417 +++ b/drivers/scsi/sd.c
13418 -@@ -2943,7 +2943,7 @@ static int sd_probe(struct device *dev)
13419 +@@ -2964,7 +2964,7 @@ static int sd_probe(struct device *dev)
13420 sdkp->disk = gd;
13421 sdkp->index = index;
13422 atomic_set(&sdkp->openers, 0);
13423 @@ -47579,15 +48756,15 @@ index df5e961..df6b97f 100644
13424 return blk_trace_startstop(sdp->device->request_queue, 1);
13425 case BLKTRACESTOP:
13426 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
13427 -index 9e039c6..ae9e800 100644
13428 +index 349ebba..ff2a249 100644
13429 --- a/drivers/spi/spi.c
13430 +++ b/drivers/spi/spi.c
13431 -@@ -1762,7 +1762,7 @@ int spi_bus_unlock(struct spi_master *master)
13432 +@@ -1945,7 +1945,7 @@ int spi_bus_unlock(struct spi_master *master)
13433 EXPORT_SYMBOL_GPL(spi_bus_unlock);
13434
13435 /* portable code must never pass more than 32 bytes */
13436 --#define SPI_BUFSIZ max(32,SMP_CACHE_BYTES)
13437 -+#define SPI_BUFSIZ max(32UL,SMP_CACHE_BYTES)
13438 +-#define SPI_BUFSIZ max(32, SMP_CACHE_BYTES)
13439 ++#define SPI_BUFSIZ max(32UL, SMP_CACHE_BYTES)
13440
13441 static u8 *buf;
13442
13443 @@ -47623,7 +48800,7 @@ index 2c61783..4d49e4e 100644
13444 MKDEV(0, tdev->index), NULL, "%s", tdev->name);
13445 if (IS_ERR(tdev->dev))
13446 diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
13447 -index 0247a20..cb9595c 100644
13448 +index c0f7cd7..5424212 100644
13449 --- a/drivers/staging/gdm724x/gdm_tty.c
13450 +++ b/drivers/staging/gdm724x/gdm_tty.c
13451 @@ -45,7 +45,7 @@
13452 @@ -47636,10 +48813,10 @@ index 0247a20..cb9595c 100644
13453 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
13454 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
13455 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
13456 -index ef5064e..fce01db 100644
13457 +index b7613c8..c302392 100644
13458 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
13459 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
13460 -@@ -478,13 +478,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
13461 +@@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
13462 return 0;
13463 }
13464
13465 @@ -47714,7 +48891,7 @@ index f0f9194..b589047 100644
13466 srpc_service_t ping_test_service;
13467 void ping_init_test_service(void)
13468 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
13469 -index 7020d9c..0d3b580 100644
13470 +index bc2b82f..67fd598 100644
13471 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
13472 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
13473 @@ -1141,7 +1141,7 @@ struct ldlm_callback_suite {
13474 @@ -47727,7 +48904,7 @@ index 7020d9c..0d3b580 100644
13475 /* ldlm_lockd.c */
13476 int ldlm_del_waiting_lock(struct ldlm_lock *lock);
13477 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
13478 -index a612255..9a9e2dd 100644
13479 +index d0aea15..7af68e1 100644
13480 --- a/drivers/staging/lustre/lustre/include/obd.h
13481 +++ b/drivers/staging/lustre/lustre/include/obd.h
13482 @@ -1417,7 +1417,7 @@ struct md_ops {
13483 @@ -47739,6 +48916,19 @@ index a612255..9a9e2dd 100644
13484
13485 struct lsm_operations {
13486 void (*lsm_free)(struct lov_stripe_md *);
13487 +diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
13488 +index 39fcdac..222780f 100644
13489 +--- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
13490 ++++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
13491 +@@ -249,7 +249,7 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq,
13492 + int added = (mode == LCK_NL);
13493 + int overlaps = 0;
13494 + int splitted = 0;
13495 +- const struct ldlm_callback_suite null_cbs = { NULL };
13496 ++ const struct ldlm_callback_suite null_cbs = { };
13497 + int rc;
13498 +
13499 + CDEBUG(D_DLMTRACE, "flags %#llx owner "LPU64" pid %u mode %u start "
13500 diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
13501 index fc6c977..df1f956 100644
13502 --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-proc.c
13503 @@ -47770,6 +48960,27 @@ index fc6c977..df1f956 100644
13504
13505 dummy.data = &backoff;
13506 dummy.proc_handler = &proc_dointvec;
13507 +diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
13508 +index f3108c7..cd4f9da 100644
13509 +--- a/drivers/staging/lustre/lustre/libcfs/module.c
13510 ++++ b/drivers/staging/lustre/lustre/libcfs/module.c
13511 +@@ -348,11 +348,11 @@ out:
13512 +
13513 +
13514 + struct cfs_psdev_ops libcfs_psdev_ops = {
13515 +- libcfs_psdev_open,
13516 +- libcfs_psdev_release,
13517 +- NULL,
13518 +- NULL,
13519 +- libcfs_ioctl
13520 ++ .p_open = libcfs_psdev_open,
13521 ++ .p_close = libcfs_psdev_release,
13522 ++ .p_read = NULL,
13523 ++ .p_write = NULL,
13524 ++ .p_ioctl = libcfs_ioctl
13525 + };
13526 +
13527 + extern int insert_proc(void);
13528 diff --git a/drivers/staging/media/solo6x10/solo6x10-core.c b/drivers/staging/media/solo6x10/solo6x10-core.c
13529 index 3675020..e80d92c 100644
13530 --- a/drivers/staging/media/solo6x10/solo6x10-core.c
13531 @@ -47783,8 +48994,21 @@ index 3675020..e80d92c 100644
13532 struct device *dev = &solo_dev->dev;
13533 const char *driver;
13534 int i;
13535 +diff --git a/drivers/staging/media/solo6x10/solo6x10-g723.c b/drivers/staging/media/solo6x10/solo6x10-g723.c
13536 +index 1db18c7..35e6afc 100644
13537 +--- a/drivers/staging/media/solo6x10/solo6x10-g723.c
13538 ++++ b/drivers/staging/media/solo6x10/solo6x10-g723.c
13539 +@@ -355,7 +355,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
13540 +
13541 + int solo_g723_init(struct solo_dev *solo_dev)
13542 + {
13543 +- static struct snd_device_ops ops = { NULL };
13544 ++ static struct snd_device_ops ops = { };
13545 + struct snd_card *card;
13546 + struct snd_kcontrol_new kctl;
13547 + char name[32];
13548 diff --git a/drivers/staging/media/solo6x10/solo6x10-p2m.c b/drivers/staging/media/solo6x10/solo6x10-p2m.c
13549 -index 3335941..2b26186 100644
13550 +index 7f2f247..d999137 100644
13551 --- a/drivers/staging/media/solo6x10/solo6x10-p2m.c
13552 +++ b/drivers/staging/media/solo6x10/solo6x10-p2m.c
13553 @@ -77,7 +77,7 @@ int solo_p2m_dma_desc(struct solo_dev *solo_dev,
13554 @@ -47797,10 +49021,10 @@ index 3335941..2b26186 100644
13555 p2m_id = -p2m_id;
13556 }
13557 diff --git a/drivers/staging/media/solo6x10/solo6x10.h b/drivers/staging/media/solo6x10/solo6x10.h
13558 -index 6f91d2e..3f011d2 100644
13559 +index f1bbb8c..a73eaba 100644
13560 --- a/drivers/staging/media/solo6x10/solo6x10.h
13561 +++ b/drivers/staging/media/solo6x10/solo6x10.h
13562 -@@ -238,7 +238,7 @@ struct solo_dev {
13563 +@@ -237,7 +237,7 @@ struct solo_dev {
13564
13565 /* P2M DMA Engine */
13566 struct solo_p2m_dev p2m_dev[SOLO_NR_P2M];
13567 @@ -47810,10 +49034,10 @@ index 6f91d2e..3f011d2 100644
13568 unsigned int p2m_timeouts;
13569
13570 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
13571 -index e14a1bb..9cb9bbe 100644
13572 +index 0315f60..2ecae10 100644
13573 --- a/drivers/staging/octeon/ethernet-rx.c
13574 +++ b/drivers/staging/octeon/ethernet-rx.c
13575 -@@ -419,11 +419,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
13576 +@@ -418,11 +418,11 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
13577 /* Increment RX stats for virtual ports */
13578 if (work->ipprt >= CVMX_PIP_NUM_INPUT_PORTS) {
13579 #ifdef CONFIG_64BIT
13580 @@ -47829,7 +49053,7 @@ index e14a1bb..9cb9bbe 100644
13581 #endif
13582 }
13583 netif_receive_skb(skb);
13584 -@@ -434,9 +434,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
13585 +@@ -433,9 +433,9 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
13586 dev->name);
13587 */
13588 #ifdef CONFIG_64BIT
13589 @@ -47842,10 +49066,10 @@ index e14a1bb..9cb9bbe 100644
13590 dev_kfree_skb_irq(skb);
13591 }
13592 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
13593 -index c3a90e7..023619a 100644
13594 +index bd6ca71..8f0961e 100644
13595 --- a/drivers/staging/octeon/ethernet.c
13596 +++ b/drivers/staging/octeon/ethernet.c
13597 -@@ -252,11 +252,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
13598 +@@ -254,11 +254,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
13599 * since the RX tasklet also increments it.
13600 */
13601 #ifdef CONFIG_64BIT
13602 @@ -47927,7 +49151,7 @@ index a863a98..d272795 100644
13603 /*
13604 * NOTE:
13605 diff --git a/drivers/staging/usbip/vhci_hcd.c b/drivers/staging/usbip/vhci_hcd.c
13606 -index d7974cb..d78076b 100644
13607 +index e810ad5..931336f 100644
13608 --- a/drivers/staging/usbip/vhci_hcd.c
13609 +++ b/drivers/staging/usbip/vhci_hcd.c
13610 @@ -441,7 +441,7 @@ static void vhci_tx_urb(struct urb *urb)
13611 @@ -47971,7 +49195,7 @@ index d07fcb5..358e1e1 100644
13612 return;
13613 }
13614 diff --git a/drivers/staging/vt6655/hostap.c b/drivers/staging/vt6655/hostap.c
13615 -index 8acff44..bdb2fca 100644
13616 +index ab8b2ba..99184aa 100644
13617 --- a/drivers/staging/vt6655/hostap.c
13618 +++ b/drivers/staging/vt6655/hostap.c
13619 @@ -69,14 +69,13 @@ static int msglevel = MSG_LEVEL_INFO;
13620 @@ -48001,7 +49225,7 @@ index 8acff44..bdb2fca 100644
13621
13622 pDevice->apdev->type = ARPHRD_IEEE80211;
13623 diff --git a/drivers/staging/vt6656/hostap.c b/drivers/staging/vt6656/hostap.c
13624 -index c699a30..b90a5fd 100644
13625 +index 67ba48b..24e602f 100644
13626 --- a/drivers/staging/vt6656/hostap.c
13627 +++ b/drivers/staging/vt6656/hostap.c
13628 @@ -60,14 +60,13 @@ static int msglevel =MSG_LEVEL_INFO;
13629 @@ -48031,7 +49255,7 @@ index c699a30..b90a5fd 100644
13630
13631 pDevice->apdev->type = ARPHRD_IEEE80211;
13632 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
13633 -index e51b09a..5ebac31 100644
13634 +index 24884ca..26c8220 100644
13635 --- a/drivers/target/sbp/sbp_target.c
13636 +++ b/drivers/target/sbp/sbp_target.c
13637 @@ -62,7 +62,7 @@ static const u32 sbp_unit_directory_template[] = {
13638 @@ -48053,10 +49277,10 @@ index e51b09a..5ebac31 100644
13639 login->tgt_agt = sbp_target_agent_register(login);
13640 if (IS_ERR(login->tgt_agt)) {
13641 diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
13642 -index e5e3965..a7b487c 100644
13643 +index d06de84..fd38c9b 100644
13644 --- a/drivers/target/target_core_device.c
13645 +++ b/drivers/target/target_core_device.c
13646 -@@ -1436,7 +1436,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
13647 +@@ -1435,7 +1435,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
13648 spin_lock_init(&dev->se_tmr_lock);
13649 spin_lock_init(&dev->qf_cmd_lock);
13650 sema_init(&dev->caw_sem, 1);
13651 @@ -48066,10 +49290,10 @@ index e5e3965..a7b487c 100644
13652 spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
13653 INIT_LIST_HEAD(&dev->t10_pr.registration_list);
13654 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
13655 -index 0b0009b..215e88e 100644
13656 +index 91953da..a842b90 100644
13657 --- a/drivers/target/target_core_transport.c
13658 +++ b/drivers/target/target_core_transport.c
13659 -@@ -1137,7 +1137,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
13660 +@@ -1112,7 +1112,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
13661 * Used to determine when ORDERED commands should go from
13662 * Dormant to Active status.
13663 */
13664 @@ -48318,15 +49542,15 @@ index 4190199..48f2920 100644
13665 packet.verb = VSV_CLOSE_PROTOCOL;
13666
13667 diff --git a/drivers/tty/hvc/hvsi_lib.c b/drivers/tty/hvc/hvsi_lib.c
13668 -index ac27671..0f627ee 100644
13669 +index 347050e..14f8fbf 100644
13670 --- a/drivers/tty/hvc/hvsi_lib.c
13671 +++ b/drivers/tty/hvc/hvsi_lib.c
13672 @@ -9,7 +9,7 @@
13673
13674 static int hvsi_send_packet(struct hvsi_priv *pv, struct hvsi_header *packet)
13675 {
13676 -- packet->seqno = atomic_inc_return(&pv->seqno);
13677 -+ packet->seqno = atomic_inc_return_unchecked(&pv->seqno);
13678 +- packet->seqno = cpu_to_be16(atomic_inc_return(&pv->seqno));
13679 ++ packet->seqno = cpu_to_be16(atomic_inc_return_unchecked(&pv->seqno));
13680
13681 /* Assumes that always succeeds, works in practice */
13682 return pv->put_chars(pv->termno, (char *)packet, packet->len);
13683 @@ -48339,15 +49563,6 @@ index ac27671..0f627ee 100644
13684
13685 pr_devel("HVSI@%x: Handshaking started\n", pv->termno);
13686
13687 -@@ -265,7 +265,7 @@ int hvsilib_read_mctrl(struct hvsi_priv *pv)
13688 - pv->mctrl_update = 0;
13689 - q.hdr.type = VS_QUERY_PACKET_HEADER;
13690 - q.hdr.len = sizeof(struct hvsi_query);
13691 -- q.hdr.seqno = atomic_inc_return(&pv->seqno);
13692 -+ q.hdr.seqno = atomic_inc_return_unchecked(&pv->seqno);
13693 - q.verb = VSV_SEND_MODEM_CTL_STATUS;
13694 - rc = hvsi_send_packet(pv, &q.hdr);
13695 - if (rc <= 0) {
13696 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
13697 index 8fd72ff..34a0bed 100644
13698 --- a/drivers/tty/ipwireless/tty.c
13699 @@ -48501,7 +49716,7 @@ index c0f76da..d974c32 100644
13700 dlci_get(dlci->gsm->dlci[0]);
13701 mux_get(dlci->gsm);
13702 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
13703 -index d4a89db..dbe8d8c 100644
13704 +index 34aacaa..dad073b 100644
13705 --- a/drivers/tty/n_tty.c
13706 +++ b/drivers/tty/n_tty.c
13707 @@ -114,7 +114,7 @@ struct n_tty_data {
13708 @@ -48513,7 +49728,7 @@ index d4a89db..dbe8d8c 100644
13709 size_t line_start;
13710
13711 /* protected by output lock */
13712 -@@ -2509,6 +2509,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
13713 +@@ -2502,6 +2502,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
13714 {
13715 *ops = tty_ldisc_N_TTY;
13716 ops->owner = NULL;
13717 @@ -48729,10 +49944,10 @@ index b5d779c..3622cfe 100644
13718 if (unlikely(pdev->id < 0 || pdev->id >= UART_NR))
13719 return -ENXIO;
13720 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
13721 -index f3dfa19..342f2ff 100644
13722 +index c1af04d..0815c8a 100644
13723 --- a/drivers/tty/serial/samsung.c
13724 +++ b/drivers/tty/serial/samsung.c
13725 -@@ -456,11 +456,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
13726 +@@ -463,11 +463,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
13727 }
13728 }
13729
13730 @@ -48749,7 +49964,7 @@ index f3dfa19..342f2ff 100644
13731 dbg("s3c24xx_serial_startup: port=%p (%08lx,%p)\n",
13732 port->mapbase, port->membase);
13733
13734 -@@ -1127,10 +1132,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
13735 +@@ -1141,10 +1146,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
13736 /* setup info for port */
13737 port->dev = &platdev->dev;
13738
13739 @@ -49190,7 +50405,7 @@ index dc6e969..5dc8786 100644
13740 if (!retval)
13741 port->flags |= ASYNC_NORMAL_ACTIVE;
13742 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
13743 -index 40a9fe9..a3f10cc 100644
13744 +index ce396ec..04a37be 100644
13745 --- a/drivers/tty/sysrq.c
13746 +++ b/drivers/tty/sysrq.c
13747 @@ -1075,7 +1075,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
13748 @@ -49256,10 +50471,10 @@ index 6458e11..6cfc218 100644
13749 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
13750 }
13751 diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
13752 -index f597e88..b7f68ed 100644
13753 +index c94d234..8210f2d 100644
13754 --- a/drivers/tty/tty_port.c
13755 +++ b/drivers/tty/tty_port.c
13756 -@@ -232,7 +232,7 @@ void tty_port_hangup(struct tty_port *port)
13757 +@@ -236,7 +236,7 @@ void tty_port_hangup(struct tty_port *port)
13758 unsigned long flags;
13759
13760 spin_lock_irqsave(&port->lock, flags);
13761 @@ -49268,7 +50483,7 @@ index f597e88..b7f68ed 100644
13762 port->flags &= ~ASYNC_NORMAL_ACTIVE;
13763 tty = port->tty;
13764 if (tty)
13765 -@@ -390,7 +390,7 @@ int tty_port_block_til_ready(struct tty_port *port,
13766 +@@ -394,7 +394,7 @@ int tty_port_block_til_ready(struct tty_port *port,
13767 /* The port lock protects the port counts */
13768 spin_lock_irqsave(&port->lock, flags);
13769 if (!tty_hung_up_p(filp))
13770 @@ -49277,7 +50492,7 @@ index f597e88..b7f68ed 100644
13771 port->blocked_open++;
13772 spin_unlock_irqrestore(&port->lock, flags);
13773
13774 -@@ -432,7 +432,7 @@ int tty_port_block_til_ready(struct tty_port *port,
13775 +@@ -436,7 +436,7 @@ int tty_port_block_til_ready(struct tty_port *port,
13776 we must not mess that up further */
13777 spin_lock_irqsave(&port->lock, flags);
13778 if (!tty_hung_up_p(filp))
13779 @@ -49286,7 +50501,7 @@ index f597e88..b7f68ed 100644
13780 port->blocked_open--;
13781 if (retval == 0)
13782 port->flags |= ASYNC_NORMAL_ACTIVE;
13783 -@@ -466,19 +466,19 @@ int tty_port_close_start(struct tty_port *port,
13784 +@@ -470,19 +470,19 @@ int tty_port_close_start(struct tty_port *port,
13785 return 0;
13786 }
13787
13788 @@ -49311,8 +50526,8 @@ index f597e88..b7f68ed 100644
13789 - if (port->count) {
13790 + if (atomic_read(&port->count)) {
13791 spin_unlock_irqrestore(&port->lock, flags);
13792 - if (port->ops->drop)
13793 - port->ops->drop(port);
13794 + return 0;
13795 + }
13796 @@ -564,7 +564,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
13797 {
13798 spin_lock_irq(&port->lock);
13799 @@ -49384,7 +50599,7 @@ index d0e3a44..5f8b754 100644
13800 ret = -EPERM;
13801 goto reterr;
13802 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
13803 -index 0e808cf..d7d274b 100644
13804 +index f7beb6e..8c0bbd0 100644
13805 --- a/drivers/uio/uio.c
13806 +++ b/drivers/uio/uio.c
13807 @@ -25,6 +25,7 @@
13808 @@ -49413,7 +50628,7 @@ index 0e808cf..d7d274b 100644
13809 }
13810 static DEVICE_ATTR_RO(event);
13811
13812 -@@ -401,7 +402,7 @@ void uio_event_notify(struct uio_info *info)
13813 +@@ -405,7 +406,7 @@ void uio_event_notify(struct uio_info *info)
13814 {
13815 struct uio_device *idev = info->uio_dev;
13816
13817 @@ -49422,7 +50637,7 @@ index 0e808cf..d7d274b 100644
13818 wake_up_interruptible(&idev->wait);
13819 kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
13820 }
13821 -@@ -454,7 +455,7 @@ static int uio_open(struct inode *inode, struct file *filep)
13822 +@@ -458,7 +459,7 @@ static int uio_open(struct inode *inode, struct file *filep)
13823 }
13824
13825 listener->dev = idev;
13826 @@ -49431,7 +50646,7 @@ index 0e808cf..d7d274b 100644
13827 filep->private_data = listener;
13828
13829 if (idev->info->open) {
13830 -@@ -505,7 +506,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
13831 +@@ -509,7 +510,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
13832 return -EIO;
13833
13834 poll_wait(filep, &idev->wait, wait);
13835 @@ -49440,7 +50655,7 @@ index 0e808cf..d7d274b 100644
13836 return POLLIN | POLLRDNORM;
13837 return 0;
13838 }
13839 -@@ -530,7 +531,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
13840 +@@ -534,7 +535,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
13841 do {
13842 set_current_state(TASK_INTERRUPTIBLE);
13843
13844 @@ -49449,7 +50664,7 @@ index 0e808cf..d7d274b 100644
13845 if (event_count != listener->event_count) {
13846 if (copy_to_user(buf, &event_count, count))
13847 retval = -EFAULT;
13848 -@@ -587,9 +588,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
13849 +@@ -591,9 +592,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
13850 static int uio_find_mem_index(struct vm_area_struct *vma)
13851 {
13852 struct uio_device *idev = vma->vm_private_data;
13853 @@ -49464,16 +50679,7 @@ index 0e808cf..d7d274b 100644
13854 return -1;
13855 return (int)vma->vm_pgoff;
13856 }
13857 -@@ -647,6 +652,8 @@ static int uio_mmap_physical(struct vm_area_struct *vma)
13858 - return -EINVAL;
13859 - mem = idev->info->mem + mi;
13860 -
13861 -+ if (mem->addr & ~PAGE_MASK)
13862 -+ return -ENODEV;
13863 - if (vma->vm_end - vma->vm_start > mem->size)
13864 - return -EINVAL;
13865 -
13866 -@@ -818,7 +825,7 @@ int __uio_register_device(struct module *owner,
13867 +@@ -825,7 +830,7 @@ int __uio_register_device(struct module *owner,
13868 idev->owner = owner;
13869 idev->info = info;
13870 init_waitqueue_head(&idev->wait);
13871 @@ -49610,7 +50816,7 @@ index 2a3bbdf..91d72cf 100644
13872 file->f_version = event_count;
13873 return POLLIN | POLLRDNORM;
13874 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
13875 -index 71dc5d7..d4c488f 100644
13876 +index 967152a..16fa2e5 100644
13877 --- a/drivers/usb/core/devio.c
13878 +++ b/drivers/usb/core/devio.c
13879 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
13880 @@ -49650,10 +50856,10 @@ index 71dc5d7..d4c488f 100644
13881 dev->rawdescriptors[i] + (*ppos - pos),
13882 min(len, alloclen))) {
13883 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
13884 -index f20a044..d1059aa 100644
13885 +index 6bffb8c..b404e8b 100644
13886 --- a/drivers/usb/core/hcd.c
13887 +++ b/drivers/usb/core/hcd.c
13888 -@@ -1552,7 +1552,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
13889 +@@ -1550,7 +1550,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
13890 */
13891 usb_get_urb(urb);
13892 atomic_inc(&urb->use_count);
13893 @@ -49662,7 +50868,7 @@ index f20a044..d1059aa 100644
13894 usbmon_urb_submit(&hcd->self, urb);
13895
13896 /* NOTE requirements on root-hub callers (usbfs and the hub
13897 -@@ -1579,7 +1579,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
13898 +@@ -1577,7 +1577,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
13899 urb->hcpriv = NULL;
13900 INIT_LIST_HEAD(&urb->urb_list);
13901 atomic_dec(&urb->use_count);
13902 @@ -49672,7 +50878,7 @@ index f20a044..d1059aa 100644
13903 wake_up(&usb_kill_urb_queue);
13904 usb_put_urb(urb);
13905 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
13906 -index c5c3667..e54e5cd 100644
13907 +index bd9dc35..c04ae2f 100644
13908 --- a/drivers/usb/core/hub.c
13909 +++ b/drivers/usb/core/hub.c
13910 @@ -27,6 +27,7 @@
13911 @@ -49683,8 +50889,8 @@ index c5c3667..e54e5cd 100644
13912
13913 #include <asm/uaccess.h>
13914 #include <asm/byteorder.h>
13915 -@@ -4467,6 +4468,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
13916 - goto done;
13917 +@@ -4463,6 +4464,10 @@ static void hub_port_connect_change(struct usb_hub *hub, int port1,
13918 + goto done;
13919 return;
13920 }
13921 +
13922 @@ -49695,7 +50901,7 @@ index c5c3667..e54e5cd 100644
13923 unit_load = 150;
13924 else
13925 diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
13926 -index 82927e1..4993dbf 100644
13927 +index bb31597..6c5ef8b 100644
13928 --- a/drivers/usb/core/message.c
13929 +++ b/drivers/usb/core/message.c
13930 @@ -129,7 +129,7 @@ static int usb_internal_control_msg(struct usb_device *usb_dev,
13931 @@ -49726,10 +50932,10 @@ index 82927e1..4993dbf 100644
13932 {
13933 struct urb *urb;
13934 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
13935 -index ca516ac..6c36ee4 100644
13936 +index 52a97ad..e73330f 100644
13937 --- a/drivers/usb/core/sysfs.c
13938 +++ b/drivers/usb/core/sysfs.c
13939 -@@ -236,7 +236,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
13940 +@@ -244,7 +244,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
13941 struct usb_device *udev;
13942
13943 udev = to_usb_device(dev);
13944 @@ -49739,7 +50945,7 @@ index ca516ac..6c36ee4 100644
13945 static DEVICE_ATTR_RO(urbnum);
13946
13947 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
13948 -index 0a6ee2e..6f8d7e8 100644
13949 +index 4d11449..f4ccabf 100644
13950 --- a/drivers/usb/core/usb.c
13951 +++ b/drivers/usb/core/usb.c
13952 @@ -433,7 +433,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
13953 @@ -49765,7 +50971,7 @@ index 02e44fc..3c4fe64 100644
13954 trb_st_hw = &dep->trb_pool[0];
13955
13956 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
13957 -index 5e29dde..eca992f 100644
13958 +index 8cfc319..4868255 100644
13959 --- a/drivers/usb/early/ehci-dbgp.c
13960 +++ b/drivers/usb/early/ehci-dbgp.c
13961 @@ -98,7 +98,8 @@ static inline u32 dbgp_len_update(u32 x, u32 len)
13962 @@ -49778,7 +50984,7 @@ index 5e29dde..eca992f 100644
13963 #else
13964 #define dbgp_kgdb_mode (0)
13965 #endif
13966 -@@ -1047,6 +1048,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
13967 +@@ -1043,6 +1044,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
13968 .write_char = kgdbdbgp_write_char,
13969 };
13970
13971 @@ -49792,7 +50998,7 @@ index 5e29dde..eca992f 100644
13972 static int kgdbdbgp_wait_time;
13973
13974 static int __init kgdbdbgp_parse_config(char *str)
13975 -@@ -1062,8 +1070,10 @@ static int __init kgdbdbgp_parse_config(char *str)
13976 +@@ -1058,8 +1066,10 @@ static int __init kgdbdbgp_parse_config(char *str)
13977 ptr++;
13978 kgdbdbgp_wait_time = simple_strtoul(ptr, &ptr, 10);
13979 }
13980 @@ -49988,32 +51194,32 @@ index 75f70f0..d467e1a 100644
13981
13982 /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
13983 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
13984 -index cf250c2..ad9d904 100644
13985 +index e614f02..3fd60e2 100644
13986 --- a/drivers/usb/wusbcore/wa-hc.h
13987 +++ b/drivers/usb/wusbcore/wa-hc.h
13988 -@@ -199,7 +199,7 @@ struct wahc {
13989 +@@ -225,7 +225,7 @@ struct wahc {
13990 spinlock_t xfer_list_lock;
13991 struct work_struct xfer_enqueue_work;
13992 struct work_struct xfer_error_work;
13993 - atomic_t xfer_id_count;
13994 + atomic_unchecked_t xfer_id_count;
13995 - };
13996 -
13997
13998 -@@ -255,7 +255,7 @@ static inline void wa_init(struct wahc *wa)
13999 - spin_lock_init(&wa->xfer_list_lock);
14000 + kernel_ulong_t quirks;
14001 + };
14002 +@@ -287,7 +287,7 @@ static inline void wa_init(struct wahc *wa)
14003 INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
14004 INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
14005 + wa->dto_in_use = 0;
14006 - atomic_set(&wa->xfer_id_count, 1);
14007 + atomic_set_unchecked(&wa->xfer_id_count, 1);
14008 }
14009
14010 /**
14011 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
14012 -index 3dcf66f..8faaf6e 100644
14013 +index ed5abe8..7036400 100644
14014 --- a/drivers/usb/wusbcore/wa-xfer.c
14015 +++ b/drivers/usb/wusbcore/wa-xfer.c
14016 -@@ -300,7 +300,7 @@ out:
14017 +@@ -312,7 +312,7 @@ static void wa_xfer_completion(struct wa_xfer *xfer)
14018 */
14019 static void wa_xfer_id_init(struct wa_xfer *xfer)
14020 {
14021 @@ -50021,7 +51227,7 @@ index 3dcf66f..8faaf6e 100644
14022 + xfer->id = atomic_add_return_unchecked(1, &xfer->wa->xfer_id_count);
14023 }
14024
14025 - /*
14026 + /* Return the xfer's ID. */
14027 diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
14028 index 1eab4ac..e21efc9 100644
14029 --- a/drivers/vfio/vfio.c
14030 @@ -50036,9 +51242,66 @@ index 1eab4ac..e21efc9 100644
14031
14032 return 0;
14033 diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
14034 -index 5174eba..86e764a 100644
14035 +index 5174eba..451e6bc 100644
14036 --- a/drivers/vhost/vringh.c
14037 +++ b/drivers/vhost/vringh.c
14038 +@@ -530,17 +530,17 @@ static inline void __vringh_notify_disable(struct vringh *vrh,
14039 + /* Userspace access helpers: in this case, addresses are really userspace. */
14040 + static inline int getu16_user(u16 *val, const u16 *p)
14041 + {
14042 +- return get_user(*val, (__force u16 __user *)p);
14043 ++ return get_user(*val, (u16 __force_user *)p);
14044 + }
14045 +
14046 + static inline int putu16_user(u16 *p, u16 val)
14047 + {
14048 +- return put_user(val, (__force u16 __user *)p);
14049 ++ return put_user(val, (u16 __force_user *)p);
14050 + }
14051 +
14052 + static inline int copydesc_user(void *dst, const void *src, size_t len)
14053 + {
14054 +- return copy_from_user(dst, (__force void __user *)src, len) ?
14055 ++ return copy_from_user(dst, (void __force_user *)src, len) ?
14056 + -EFAULT : 0;
14057 + }
14058 +
14059 +@@ -548,19 +548,19 @@ static inline int putused_user(struct vring_used_elem *dst,
14060 + const struct vring_used_elem *src,
14061 + unsigned int num)
14062 + {
14063 +- return copy_to_user((__force void __user *)dst, src,
14064 ++ return copy_to_user((void __force_user *)dst, src,
14065 + sizeof(*dst) * num) ? -EFAULT : 0;
14066 + }
14067 +
14068 + static inline int xfer_from_user(void *src, void *dst, size_t len)
14069 + {
14070 +- return copy_from_user(dst, (__force void __user *)src, len) ?
14071 ++ return copy_from_user(dst, (void __force_user *)src, len) ?
14072 + -EFAULT : 0;
14073 + }
14074 +
14075 + static inline int xfer_to_user(void *dst, void *src, size_t len)
14076 + {
14077 +- return copy_to_user((__force void __user *)dst, src, len) ?
14078 ++ return copy_to_user((void __force_user *)dst, src, len) ?
14079 + -EFAULT : 0;
14080 + }
14081 +
14082 +@@ -596,9 +596,9 @@ int vringh_init_user(struct vringh *vrh, u32 features,
14083 + vrh->last_used_idx = 0;
14084 + vrh->vring.num = num;
14085 + /* vring expects kernel addresses, but only used via accessors. */
14086 +- vrh->vring.desc = (__force struct vring_desc *)desc;
14087 +- vrh->vring.avail = (__force struct vring_avail *)avail;
14088 +- vrh->vring.used = (__force struct vring_used *)used;
14089 ++ vrh->vring.desc = (__force_kernel struct vring_desc *)desc;
14090 ++ vrh->vring.avail = (__force_kernel struct vring_avail *)avail;
14091 ++ vrh->vring.used = (__force_kernel struct vring_used *)used;
14092 + return 0;
14093 + }
14094 + EXPORT_SYMBOL(vringh_init_user);
14095 @@ -800,7 +800,7 @@ static inline int getu16_kern(u16 *val, const u16 *p)
14096
14097 static inline int putu16_kern(u16 *p, u16 val)
14098 @@ -50049,7 +51312,7 @@ index 5174eba..86e764a 100644
14099 }
14100
14101 diff --git a/drivers/video/arcfb.c b/drivers/video/arcfb.c
14102 -index e43401a..dd49b3f 100644
14103 +index 1b0b233..6f34c2c 100644
14104 --- a/drivers/video/arcfb.c
14105 +++ b/drivers/video/arcfb.c
14106 @@ -458,7 +458,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
14107 @@ -50062,7 +51325,7 @@ index e43401a..dd49b3f 100644
14108 err = -ENOSPC;
14109 }
14110 diff --git a/drivers/video/aty/aty128fb.c b/drivers/video/aty/aty128fb.c
14111 -index a4dfe8c..297ddd9 100644
14112 +index 12ca031..84a8a74 100644
14113 --- a/drivers/video/aty/aty128fb.c
14114 +++ b/drivers/video/aty/aty128fb.c
14115 @@ -149,7 +149,7 @@ enum {
14116 @@ -50075,7 +51338,7 @@ index a4dfe8c..297ddd9 100644
14117 "PCI",
14118 "PRO AGP",
14119 diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
14120 -index 9b0f12c..024673d 100644
14121 +index 28fafbf..ae91651 100644
14122 --- a/drivers/video/aty/atyfb_base.c
14123 +++ b/drivers/video/aty/atyfb_base.c
14124 @@ -1326,10 +1326,14 @@ static int atyfb_set_par(struct fb_info *info)
14125 @@ -50119,7 +51382,7 @@ index 95ec042..e6affdd 100644
14126 return 0;
14127 }
14128 diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
14129 -index bca6ccc..252107e 100644
14130 +index 7592cc2..92feb56 100644
14131 --- a/drivers/video/backlight/kb3886_bl.c
14132 +++ b/drivers/video/backlight/kb3886_bl.c
14133 @@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
14134 @@ -50156,7 +51419,7 @@ index 900aa4e..6d49418 100644
14135 }
14136 EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
14137 diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
14138 -index dacaf74..8478a46 100644
14139 +index 010d191..7b8235a 100644
14140 --- a/drivers/video/fbmem.c
14141 +++ b/drivers/video/fbmem.c
14142 @@ -433,7 +433,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
14143 @@ -50177,7 +51440,7 @@ index dacaf74..8478a46 100644
14144 info->fbops->fb_imageblit(info, image);
14145 image->dy -= image->height + 8;
14146 }
14147 -@@ -1175,7 +1175,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
14148 +@@ -1179,7 +1179,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
14149 return -EFAULT;
14150 if (con2fb.console < 1 || con2fb.console > MAX_NR_CONSOLES)
14151 return -EINVAL;
14152 @@ -50186,8 +51449,17 @@ index dacaf74..8478a46 100644
14153 return -EINVAL;
14154 if (!registered_fb[con2fb.framebuffer])
14155 request_module("fb%d", con2fb.framebuffer);
14156 +@@ -1300,7 +1300,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
14157 + __u32 data;
14158 + int err;
14159 +
14160 +- err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
14161 ++ err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
14162 +
14163 + data = (__u32) (unsigned long) fix->smem_start;
14164 + err |= put_user(data, &fix32->smem_start);
14165 diff --git a/drivers/video/hyperv_fb.c b/drivers/video/hyperv_fb.c
14166 -index 8d456dc..b4fa44b 100644
14167 +index 130708f..cdac1a9 100644
14168 --- a/drivers/video/hyperv_fb.c
14169 +++ b/drivers/video/hyperv_fb.c
14170 @@ -233,7 +233,7 @@ static uint screen_fb_size;
14171 @@ -52948,6 +54220,49 @@ index 3c14e43..2630570 100644
14172 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
14173 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
14174 +4 4 4 4 4 4
14175 +diff --git a/drivers/video/matrox/matroxfb_DAC1064.c b/drivers/video/matrox/matroxfb_DAC1064.c
14176 +index a01147f..5d896f8 100644
14177 +--- a/drivers/video/matrox/matroxfb_DAC1064.c
14178 ++++ b/drivers/video/matrox/matroxfb_DAC1064.c
14179 +@@ -1088,14 +1088,20 @@ static void MGAG100_restore(struct matrox_fb_info *minfo)
14180 +
14181 + #ifdef CONFIG_FB_MATROX_MYSTIQUE
14182 + struct matrox_switch matrox_mystique = {
14183 +- MGA1064_preinit, MGA1064_reset, MGA1064_init, MGA1064_restore,
14184 ++ .preinit = MGA1064_preinit,
14185 ++ .reset = MGA1064_reset,
14186 ++ .init = MGA1064_init,
14187 ++ .restore = MGA1064_restore,
14188 + };
14189 + EXPORT_SYMBOL(matrox_mystique);
14190 + #endif
14191 +
14192 + #ifdef CONFIG_FB_MATROX_G
14193 + struct matrox_switch matrox_G100 = {
14194 +- MGAG100_preinit, MGAG100_reset, MGAG100_init, MGAG100_restore,
14195 ++ .preinit = MGAG100_preinit,
14196 ++ .reset = MGAG100_reset,
14197 ++ .init = MGAG100_init,
14198 ++ .restore = MGAG100_restore,
14199 + };
14200 + EXPORT_SYMBOL(matrox_G100);
14201 + #endif
14202 +diff --git a/drivers/video/matrox/matroxfb_Ti3026.c b/drivers/video/matrox/matroxfb_Ti3026.c
14203 +index 195ad7c..09743fc 100644
14204 +--- a/drivers/video/matrox/matroxfb_Ti3026.c
14205 ++++ b/drivers/video/matrox/matroxfb_Ti3026.c
14206 +@@ -738,7 +738,10 @@ static int Ti3026_preinit(struct matrox_fb_info *minfo)
14207 + }
14208 +
14209 + struct matrox_switch matrox_millennium = {
14210 +- Ti3026_preinit, Ti3026_reset, Ti3026_init, Ti3026_restore
14211 ++ .preinit = Ti3026_preinit,
14212 ++ .reset = Ti3026_reset,
14213 ++ .init = Ti3026_init,
14214 ++ .restore = Ti3026_restore
14215 + };
14216 + EXPORT_SYMBOL(matrox_millennium);
14217 + #endif
14218 diff --git a/drivers/video/mb862xx/mb862xxfb_accel.c b/drivers/video/mb862xx/mb862xxfb_accel.c
14219 index fe92eed..106e085 100644
14220 --- a/drivers/video/mb862xx/mb862xxfb_accel.c
14221 @@ -53028,7 +54343,7 @@ index ff22871..b129bed 100644
14222 info->var.accel_flags = (!noaccel);
14223
14224 diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
14225 -index fafe7c9..93197b9 100644
14226 +index 669a81f..e216d76 100644
14227 --- a/drivers/video/omap2/dss/display.c
14228 +++ b/drivers/video/omap2/dss/display.c
14229 @@ -137,12 +137,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
14230 @@ -53050,7 +54365,7 @@ index fafe7c9..93197b9 100644
14231 mutex_lock(&panel_list_mutex);
14232 list_add_tail(&dssdev->panel_list, &panel_list);
14233 diff --git a/drivers/video/s1d13xxxfb.c b/drivers/video/s1d13xxxfb.c
14234 -index 05c2dc3..ea1f391 100644
14235 +index 83433cb..71e9b98 100644
14236 --- a/drivers/video/s1d13xxxfb.c
14237 +++ b/drivers/video/s1d13xxxfb.c
14238 @@ -881,8 +881,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
14239 @@ -53067,7 +54382,7 @@ index 05c2dc3..ea1f391 100644
14240 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
14241 break;
14242 diff --git a/drivers/video/smscufx.c b/drivers/video/smscufx.c
14243 -index e188ada..aac63c8 100644
14244 +index d513ed6..90b0de9 100644
14245 --- a/drivers/video/smscufx.c
14246 +++ b/drivers/video/smscufx.c
14247 @@ -1175,7 +1175,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
14248 @@ -53082,7 +54397,7 @@ index e188ada..aac63c8 100644
14249
14250 pr_debug("released /dev/fb%d user=%d count=%d",
14251 diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c
14252 -index d2e5bc3..4cb05d1 100644
14253 +index 025f14e..20eb4db 100644
14254 --- a/drivers/video/udlfb.c
14255 +++ b/drivers/video/udlfb.c
14256 @@ -623,11 +623,11 @@ static int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
14257 @@ -53180,7 +54495,7 @@ index d2e5bc3..4cb05d1 100644
14258 return count;
14259 }
14260 diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
14261 -index 7aec6f3..e3b2d55 100644
14262 +index 256fba7..6e75516 100644
14263 --- a/drivers/video/uvesafb.c
14264 +++ b/drivers/video/uvesafb.c
14265 @@ -19,6 +19,7 @@
14266 @@ -53191,7 +54506,7 @@ index 7aec6f3..e3b2d55 100644
14267 #include <video/edid.h>
14268 #include <video/uvesafb.h>
14269 #ifdef CONFIG_X86
14270 -@@ -566,10 +567,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
14271 +@@ -565,10 +566,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
14272 if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
14273 par->pmi_setpal = par->ypan = 0;
14274 } else {
14275 @@ -53224,7 +54539,7 @@ index 7aec6f3..e3b2d55 100644
14276 printk(KERN_INFO "uvesafb: protected mode interface info at "
14277 "%04x:%04x\n",
14278 (u16)task->t.regs.es, (u16)task->t.regs.edi);
14279 -@@ -814,13 +837,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
14280 +@@ -813,13 +836,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
14281 par->ypan = ypan;
14282
14283 if (par->pmi_setpal || par->ypan) {
14284 @@ -53241,7 +54556,7 @@ index 7aec6f3..e3b2d55 100644
14285 }
14286 #else
14287 /* The protected mode interface is not available on non-x86. */
14288 -@@ -1454,8 +1478,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
14289 +@@ -1453,8 +1477,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
14290 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
14291
14292 /* Disable blanking if the user requested so. */
14293 @@ -53255,7 +54570,7 @@ index 7aec6f3..e3b2d55 100644
14294
14295 /*
14296 * Find out how much IO memory is required for the mode with
14297 -@@ -1531,8 +1558,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
14298 +@@ -1530,8 +1557,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
14299 info->flags = FBINFO_FLAG_DEFAULT |
14300 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
14301
14302 @@ -53269,9 +54584,9 @@ index 7aec6f3..e3b2d55 100644
14303 }
14304
14305 static void uvesafb_init_mtrr(struct fb_info *info)
14306 -@@ -1796,6 +1826,11 @@ out:
14307 - if (par->vbe_modes)
14308 - kfree(par->vbe_modes);
14309 +@@ -1792,6 +1822,11 @@ out_mode:
14310 + out:
14311 + kfree(par->vbe_modes);
14312
14313 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
14314 + if (par->pmi_code)
14315 @@ -53281,10 +54596,10 @@ index 7aec6f3..e3b2d55 100644
14316 framebuffer_release(info);
14317 return err;
14318 }
14319 -@@ -1823,6 +1858,12 @@ static int uvesafb_remove(struct platform_device *dev)
14320 - kfree(par->vbe_state_orig);
14321 - if (par->vbe_state_saved)
14322 - kfree(par->vbe_state_saved);
14323 +@@ -1816,6 +1851,12 @@ static int uvesafb_remove(struct platform_device *dev)
14324 + kfree(par->vbe_modes);
14325 + kfree(par->vbe_state_orig);
14326 + kfree(par->vbe_state_saved);
14327 +
14328 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
14329 + if (par->pmi_code)
14330 @@ -53295,7 +54610,7 @@ index 7aec6f3..e3b2d55 100644
14331
14332 framebuffer_release(info);
14333 diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
14334 -index bd83233..7d8a5aa 100644
14335 +index 1c7da3b..56ea0bd 100644
14336 --- a/drivers/video/vesafb.c
14337 +++ b/drivers/video/vesafb.c
14338 @@ -9,6 +9,7 @@
14339 @@ -53402,8 +54717,8 @@ index bd83233..7d8a5aa 100644
14340
14341 if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
14342 err = -ENOMEM;
14343 -@@ -493,6 +522,11 @@ static int vesafb_probe(struct platform_device *dev)
14344 - info->node, info->fix.id);
14345 +@@ -492,6 +521,11 @@ static int vesafb_probe(struct platform_device *dev)
14346 + fb_info(info, "%s frame buffer device\n", info->fix.id);
14347 return 0;
14348 err:
14349 +
14350 @@ -53458,10 +54773,10 @@ index 9ff073f..05cef23 100644
14351 if (retval > 0)
14352 retval = 0;
14353 diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c
14354 -index 94de6d1..8d81256 100644
14355 +index 4e65aa9..043dc9a 100644
14356 --- a/fs/9p/vfs_inode.c
14357 +++ b/fs/9p/vfs_inode.c
14358 -@@ -1312,7 +1312,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
14359 +@@ -1306,7 +1306,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
14360 void
14361 v9fs_vfs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
14362 {
14363 @@ -53484,7 +54799,7 @@ index 370b24c..ff0be7b 100644
14364 A.out (Assembler.OUTput) is a set of formats for libraries and
14365 executables used in the earliest versions of UNIX. Linux used
14366 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
14367 -index 789bc25..fafaeea 100644
14368 +index ce25d75..dc09eeb 100644
14369 --- a/fs/afs/inode.c
14370 +++ b/fs/afs/inode.c
14371 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
14372 @@ -53519,7 +54834,7 @@ index 062a5f6..e5618e0 100644
14373
14374 file = aio_private_file(ctx, nr_pages);
14375 diff --git a/fs/attr.c b/fs/attr.c
14376 -index 1449adb..a2038c2 100644
14377 +index 267968d..5dd8f96 100644
14378 --- a/fs/attr.c
14379 +++ b/fs/attr.c
14380 @@ -102,6 +102,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
14381 @@ -53598,21 +54913,8 @@ index 2722387..56059b5 100644
14382 fs16_to_cpu(const struct super_block *sb, fs16 n)
14383 {
14384 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
14385 -diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
14386 -index e9c75e2..1baece1 100644
14387 ---- a/fs/befs/linuxvfs.c
14388 -+++ b/fs/befs/linuxvfs.c
14389 -@@ -514,7 +514,7 @@ static void befs_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
14390 - {
14391 - befs_inode_info *befs_ino = BEFS_I(dentry->d_inode);
14392 - if (befs_ino->i_flags & BEFS_LONG_SYMLINK) {
14393 -- char *link = nd_get_link(nd);
14394 -+ const char *link = nd_get_link(nd);
14395 - if (!IS_ERR(link))
14396 - kfree(link);
14397 - }
14398 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
14399 -index 89dec7f..361b0d75 100644
14400 +index ca0ba15..0fa3257 100644
14401 --- a/fs/binfmt_aout.c
14402 +++ b/fs/binfmt_aout.c
14403 @@ -16,6 +16,7 @@
14404 @@ -53623,7 +54925,7 @@ index 89dec7f..361b0d75 100644
14405 #include <linux/stat.h>
14406 #include <linux/fcntl.h>
14407 #include <linux/ptrace.h>
14408 -@@ -59,6 +60,8 @@ static int aout_core_dump(struct coredump_params *cprm)
14409 +@@ -58,6 +59,8 @@ static int aout_core_dump(struct coredump_params *cprm)
14410 #endif
14411 # define START_STACK(u) ((void __user *)u.start_stack)
14412
14413 @@ -53632,7 +54934,7 @@ index 89dec7f..361b0d75 100644
14414 fs = get_fs();
14415 set_fs(KERNEL_DS);
14416 has_dumped = 1;
14417 -@@ -69,10 +72,12 @@ static int aout_core_dump(struct coredump_params *cprm)
14418 +@@ -68,10 +71,12 @@ static int aout_core_dump(struct coredump_params *cprm)
14419
14420 /* If the size of the dump file exceeds the rlimit, then see what would happen
14421 if we wrote the stack, but not the data area. */
14422 @@ -53645,7 +54947,7 @@ index 89dec7f..361b0d75 100644
14423 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
14424 dump.u_ssize = 0;
14425
14426 -@@ -233,6 +238,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
14427 +@@ -232,6 +237,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
14428 rlim = rlimit(RLIMIT_DATA);
14429 if (rlim >= RLIM_INFINITY)
14430 rlim = ~0;
14431 @@ -53654,7 +54956,7 @@ index 89dec7f..361b0d75 100644
14432 if (ex.a_data + ex.a_bss > rlim)
14433 return -ENOMEM;
14434
14435 -@@ -265,6 +272,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
14436 +@@ -264,6 +271,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
14437
14438 install_exec_creds(bprm);
14439
14440 @@ -53682,7 +54984,7 @@ index 89dec7f..361b0d75 100644
14441 if (N_MAGIC(ex) == OMAGIC) {
14442 unsigned long text_addr, map_size;
14443 loff_t pos;
14444 -@@ -322,7 +350,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
14445 +@@ -321,7 +349,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
14446 }
14447
14448 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
14449 @@ -53692,7 +54994,7 @@ index 89dec7f..361b0d75 100644
14450 fd_offset + ex.a_text);
14451 if (error != N_DATADDR(ex)) {
14452 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
14453 -index 4c94a79..9d5fb56 100644
14454 +index 571a423..dbb9c6c 100644
14455 --- a/fs/binfmt_elf.c
14456 +++ b/fs/binfmt_elf.c
14457 @@ -34,6 +34,7 @@
14458 @@ -54421,7 +55723,7 @@ index 4c94a79..9d5fb56 100644
14459 goto whole;
14460
14461 /*
14462 -@@ -1385,9 +1864,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
14463 +@@ -1367,9 +1846,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
14464 {
14465 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
14466 int i = 0;
14467 @@ -54433,7 +55735,7 @@ index 4c94a79..9d5fb56 100644
14468 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
14469 }
14470
14471 -@@ -1396,7 +1875,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
14472 +@@ -1378,7 +1857,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
14473 {
14474 mm_segment_t old_fs = get_fs();
14475 set_fs(KERNEL_DS);
14476 @@ -54442,7 +55744,7 @@ index 4c94a79..9d5fb56 100644
14477 set_fs(old_fs);
14478 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
14479 }
14480 -@@ -2023,14 +2502,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
14481 +@@ -2002,14 +2481,14 @@ static void fill_extnum_info(struct elfhdr *elf, struct elf_shdr *shdr4extnum,
14482 }
14483
14484 static size_t elf_core_vma_data_size(struct vm_area_struct *gate_vma,
14485 @@ -54459,7 +55761,7 @@ index 4c94a79..9d5fb56 100644
14486 return size;
14487 }
14488
14489 -@@ -2123,7 +2602,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14490 +@@ -2100,7 +2579,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14491
14492 dataoff = offset = roundup(offset, ELF_EXEC_PAGESIZE);
14493
14494 @@ -54468,20 +55770,7 @@ index 4c94a79..9d5fb56 100644
14495 offset += elf_core_extra_data_size();
14496 e_shoff = offset;
14497
14498 -@@ -2137,10 +2616,12 @@ static int elf_core_dump(struct coredump_params *cprm)
14499 - offset = dataoff;
14500 -
14501 - size += sizeof(*elf);
14502 -+ gr_learn_resource(current, RLIMIT_CORE, size, 1);
14503 - if (size > cprm->limit || !dump_write(cprm->file, elf, sizeof(*elf)))
14504 - goto end_coredump;
14505 -
14506 - size += sizeof(*phdr4note);
14507 -+ gr_learn_resource(current, RLIMIT_CORE, size, 1);
14508 - if (size > cprm->limit
14509 - || !dump_write(cprm->file, phdr4note, sizeof(*phdr4note)))
14510 - goto end_coredump;
14511 -@@ -2154,7 +2635,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14512 +@@ -2128,7 +2607,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14513 phdr.p_offset = offset;
14514 phdr.p_vaddr = vma->vm_start;
14515 phdr.p_paddr = 0;
14516 @@ -54490,15 +55779,7 @@ index 4c94a79..9d5fb56 100644
14517 phdr.p_memsz = vma->vm_end - vma->vm_start;
14518 offset += phdr.p_filesz;
14519 phdr.p_flags = vma->vm_flags & VM_READ ? PF_R : 0;
14520 -@@ -2165,6 +2646,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14521 - phdr.p_align = ELF_EXEC_PAGESIZE;
14522 -
14523 - size += sizeof(phdr);
14524 -+ gr_learn_resource(current, RLIMIT_CORE, size, 1);
14525 - if (size > cprm->limit
14526 - || !dump_write(cprm->file, &phdr, sizeof(phdr)))
14527 - goto end_coredump;
14528 -@@ -2189,7 +2671,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14529 +@@ -2161,7 +2640,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14530 unsigned long addr;
14531 unsigned long end;
14532
14533 @@ -54507,23 +55788,7 @@ index 4c94a79..9d5fb56 100644
14534
14535 for (addr = vma->vm_start; addr < end; addr += PAGE_SIZE) {
14536 struct page *page;
14537 -@@ -2198,6 +2680,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14538 - page = get_dump_page(addr);
14539 - if (page) {
14540 - void *kaddr = kmap(page);
14541 -+ gr_learn_resource(current, RLIMIT_CORE, size + PAGE_SIZE, 1);
14542 - stop = ((size += PAGE_SIZE) > cprm->limit) ||
14543 - !dump_write(cprm->file, kaddr,
14544 - PAGE_SIZE);
14545 -@@ -2215,6 +2698,7 @@ static int elf_core_dump(struct coredump_params *cprm)
14546 -
14547 - if (e_phnum == PN_XNUM) {
14548 - size += sizeof(*shdr4extnum);
14549 -+ gr_learn_resource(current, RLIMIT_CORE, size, 1);
14550 - if (size > cprm->limit
14551 - || !dump_write(cprm->file, shdr4extnum,
14552 - sizeof(*shdr4extnum)))
14553 -@@ -2235,6 +2719,167 @@ out:
14554 +@@ -2202,6 +2681,167 @@ out:
14555
14556 #endif /* CONFIG_ELF_CORE */
14557
14558 @@ -54728,7 +55993,7 @@ index d50bbe5..af3b649 100644
14559 goto err;
14560 }
14561 diff --git a/fs/bio.c b/fs/bio.c
14562 -index ea5035d..a2932eb 100644
14563 +index 33d79a4..c3c9893 100644
14564 --- a/fs/bio.c
14565 +++ b/fs/bio.c
14566 @@ -1106,7 +1106,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
14567 @@ -54772,7 +56037,7 @@ index 1e86823..8e34695 100644
14568 else if (whole->bd_holder != NULL)
14569 return false; /* is a partition of a held device */
14570 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
14571 -index b544a44..f3fb987 100644
14572 +index 316136b..e7a3a50 100644
14573 --- a/fs/btrfs/ctree.c
14574 +++ b/fs/btrfs/ctree.c
14575 @@ -1028,9 +1028,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
14576 @@ -54792,7 +56057,7 @@ index b544a44..f3fb987 100644
14577
14578 WARN_ON(trans->transid != btrfs_header_generation(parent));
14579 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
14580 -index cbd9523..5cca781 100644
14581 +index 8d292fb..bc205c2 100644
14582 --- a/fs/btrfs/delayed-inode.c
14583 +++ b/fs/btrfs/delayed-inode.c
14584 @@ -459,7 +459,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
14585 @@ -54804,7 +56069,7 @@ index cbd9523..5cca781 100644
14586 if ((atomic_dec_return(&delayed_root->items) <
14587 BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) &&
14588 waitqueue_active(&delayed_root->wait))
14589 -@@ -1378,7 +1378,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
14590 +@@ -1379,7 +1379,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
14591 static int refs_newer(struct btrfs_delayed_root *delayed_root,
14592 int seq, int count)
14593 {
14594 @@ -54813,7 +56078,7 @@ index cbd9523..5cca781 100644
14595
14596 if (val < seq || val >= seq + count)
14597 return 1;
14598 -@@ -1395,7 +1395,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
14599 +@@ -1396,7 +1396,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
14600 if (atomic_read(&delayed_root->items) < BTRFS_DELAYED_BACKGROUND)
14601 return;
14602
14603 @@ -54845,10 +56110,10 @@ index a4b38f9..f86a509 100644
14604 spin_lock_init(&delayed_root->lock);
14605 init_waitqueue_head(&delayed_root->wait);
14606 diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
14607 -index 8747feb..ad1655c 100644
14608 +index 21da576..3551e09 100644
14609 --- a/fs/btrfs/ioctl.c
14610 +++ b/fs/btrfs/ioctl.c
14611 -@@ -3465,9 +3465,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
14612 +@@ -3451,9 +3451,12 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
14613 for (i = 0; i < num_types; i++) {
14614 struct btrfs_space_info *tmp;
14615
14616 @@ -54861,7 +56126,7 @@ index 8747feb..ad1655c 100644
14617 info = NULL;
14618 rcu_read_lock();
14619 list_for_each_entry_rcu(tmp, &root->fs_info->space_info,
14620 -@@ -3489,10 +3492,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
14621 +@@ -3475,10 +3478,7 @@ static long btrfs_ioctl_space_info(struct btrfs_root *root, void __user *arg)
14622 memcpy(dest, &space, sizeof(space));
14623 dest++;
14624 space_args.total_spaces++;
14625 @@ -54873,10 +56138,10 @@ index 8747feb..ad1655c 100644
14626 up_read(&info->groups_sem);
14627 }
14628 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
14629 -index e913328..a34fb36 100644
14630 +index d71a11d..384e2c4 100644
14631 --- a/fs/btrfs/super.c
14632 +++ b/fs/btrfs/super.c
14633 -@@ -266,7 +266,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
14634 +@@ -265,7 +265,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
14635 function, line, errstr);
14636 return;
14637 }
14638 @@ -54997,7 +56262,7 @@ index 5349473..d6c0b93 100644
14639
14640 #else
14641 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
14642 -index f4a08d7..5aa4599 100644
14643 +index ca65f39..48921e3 100644
14644 --- a/fs/cachefiles/namei.c
14645 +++ b/fs/cachefiles/namei.c
14646 @@ -317,7 +317,7 @@ try_again:
14647 @@ -55053,7 +56318,7 @@ index ebaff36..7e3ea26 100644
14648 kunmap(page);
14649 file_end_write(file);
14650 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
14651 -index 868b61d..58835a5 100644
14652 +index 2a0bcae..34ec24e 100644
14653 --- a/fs/ceph/dir.c
14654 +++ b/fs/ceph/dir.c
14655 @@ -240,7 +240,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
14656 @@ -55132,7 +56397,7 @@ index f3ac415..3d2420c 100644
14657 server->ops->print_stats(m, tcon);
14658 }
14659 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
14660 -index 77fc5e1..e3d13e6 100644
14661 +index 849f613..eae6dec 100644
14662 --- a/fs/cifs/cifsfs.c
14663 +++ b/fs/cifs/cifsfs.c
14664 @@ -1056,7 +1056,7 @@ cifs_init_request_bufs(void)
14665 @@ -55165,10 +56430,10 @@ index 77fc5e1..e3d13e6 100644
14666
14667 atomic_set(&midCount, 0);
14668 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
14669 -index c8e03f8..75362f6 100644
14670 +index f918a99..bb300d5 100644
14671 --- a/fs/cifs/cifsglob.h
14672 +++ b/fs/cifs/cifsglob.h
14673 -@@ -758,35 +758,35 @@ struct cifs_tcon {
14674 +@@ -787,35 +787,35 @@ struct cifs_tcon {
14675 __u16 Flags; /* optional support bits */
14676 enum statusEnum tidStatus;
14677 #ifdef CONFIG_CIFS_STATS
14678 @@ -55228,7 +56493,7 @@ index c8e03f8..75362f6 100644
14679 } smb2_stats;
14680 #endif /* CONFIG_CIFS_SMB2 */
14681 } stats;
14682 -@@ -1111,7 +1111,7 @@ convert_delimiter(char *path, char delim)
14683 +@@ -1145,7 +1145,7 @@ convert_delimiter(char *path, char delim)
14684 }
14685
14686 #ifdef CONFIG_CIFS_STATS
14687 @@ -55237,7 +56502,7 @@ index c8e03f8..75362f6 100644
14688
14689 static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
14690 unsigned int bytes)
14691 -@@ -1477,8 +1477,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
14692 +@@ -1511,8 +1511,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
14693 /* Various Debug counters */
14694 GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
14695 #ifdef CONFIG_CIFS_STATS2
14696 @@ -55249,7 +56514,7 @@ index c8e03f8..75362f6 100644
14697 GLOBAL_EXTERN atomic_t smBufAllocCount;
14698 GLOBAL_EXTERN atomic_t midCount;
14699 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
14700 -index 7ddddf2..2e12dbc 100644
14701 +index 5a5a872..92c3210 100644
14702 --- a/fs/cifs/file.c
14703 +++ b/fs/cifs/file.c
14704 @@ -1900,10 +1900,14 @@ static int cifs_writepages(struct address_space *mapping,
14705 @@ -55270,21 +56535,8 @@ index 7ddddf2..2e12dbc 100644
14706 scanned = true;
14707 }
14708 retry:
14709 -diff --git a/fs/cifs/link.c b/fs/cifs/link.c
14710 -index 477e53b..7a32216 100644
14711 ---- a/fs/cifs/link.c
14712 -+++ b/fs/cifs/link.c
14713 -@@ -620,7 +620,7 @@ symlink_exit:
14714 -
14715 - void cifs_put_link(struct dentry *direntry, struct nameidata *nd, void *cookie)
14716 - {
14717 -- char *p = nd_get_link(nd);
14718 -+ const char *p = nd_get_link(nd);
14719 - if (!IS_ERR(p))
14720 - kfree(p);
14721 - }
14722 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
14723 -index 138a011..cf9e13a 100644
14724 +index 2f9f379..43f8025 100644
14725 --- a/fs/cifs/misc.c
14726 +++ b/fs/cifs/misc.c
14727 @@ -170,7 +170,7 @@ cifs_buf_get(void)
14728 @@ -55306,7 +56558,7 @@ index 138a011..cf9e13a 100644
14729
14730 }
14731 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
14732 -index e50554b..c011413 100644
14733 +index 5f5ba0d..8d6ef7d 100644
14734 --- a/fs/cifs/smb1ops.c
14735 +++ b/fs/cifs/smb1ops.c
14736 @@ -609,27 +609,27 @@ static void
14737 @@ -55415,10 +56667,10 @@ index e50554b..c011413 100644
14738 }
14739
14740 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
14741 -index 861b332..5506392 100644
14742 +index 757da3e..07bf1ed 100644
14743 --- a/fs/cifs/smb2ops.c
14744 +++ b/fs/cifs/smb2ops.c
14745 -@@ -282,8 +282,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
14746 +@@ -370,8 +370,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
14747 #ifdef CONFIG_CIFS_STATS
14748 int i;
14749 for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
14750 @@ -55429,7 +56681,7 @@ index 861b332..5506392 100644
14751 }
14752 #endif
14753 }
14754 -@@ -311,65 +311,65 @@ static void
14755 +@@ -411,65 +411,65 @@ static void
14756 smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
14757 {
14758 #ifdef CONFIG_CIFS_STATS
14759 @@ -55536,10 +56788,10 @@ index 861b332..5506392 100644
14760 }
14761
14762 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
14763 -index edccb52..16bc6db 100644
14764 +index 2013234..a720734 100644
14765 --- a/fs/cifs/smb2pdu.c
14766 +++ b/fs/cifs/smb2pdu.c
14767 -@@ -1957,8 +1957,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
14768 +@@ -2091,8 +2091,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
14769 default:
14770 cifs_dbg(VFS, "info level %u isn't supported\n",
14771 srch_inf->info_level);
14772 @@ -55728,7 +56980,7 @@ index a81147e..20bf2b5 100644
14773
14774 /*
14775 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
14776 -index 5d19acf..9ab093b 100644
14777 +index dc52e13..ec61057 100644
14778 --- a/fs/compat_ioctl.c
14779 +++ b/fs/compat_ioctl.c
14780 @@ -621,7 +621,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
14781 @@ -55756,7 +57008,7 @@ index 5d19acf..9ab093b 100644
14782 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
14783 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
14784 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
14785 -+ copy_in_user(p->l_pad, &p32->l_pad, 4*sizeof(u32)))
14786 ++ copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
14787 return -EFAULT;
14788
14789 return ioctl_preallocate(file, p);
14790 @@ -55772,10 +57024,10 @@ index 5d19acf..9ab093b 100644
14791 return 1;
14792 if (a < b)
14793 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
14794 -index 511d415..319d0e5 100644
14795 +index e081acb..911df21 100644
14796 --- a/fs/configfs/dir.c
14797 +++ b/fs/configfs/dir.c
14798 -@@ -1558,7 +1558,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
14799 +@@ -1548,7 +1548,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
14800 }
14801 for (p = q->next; p != &parent_sd->s_children; p = p->next) {
14802 struct configfs_dirent *next;
14803 @@ -55785,7 +57037,7 @@ index 511d415..319d0e5 100644
14804 int len;
14805 struct inode *inode = NULL;
14806
14807 -@@ -1567,7 +1568,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
14808 +@@ -1557,7 +1558,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
14809 continue;
14810
14811 name = configfs_get_name(next);
14812 @@ -55800,7 +57052,7 @@ index 511d415..319d0e5 100644
14813 /*
14814 * We'll have a dentry and an inode for
14815 diff --git a/fs/coredump.c b/fs/coredump.c
14816 -index 9bdeca1..2a9b08d 100644
14817 +index bc3fbcd..6031650 100644
14818 --- a/fs/coredump.c
14819 +++ b/fs/coredump.c
14820 @@ -438,8 +438,8 @@ static void wait_for_dump_helpers(struct file *file)
14821 @@ -55829,7 +57081,7 @@ index 9bdeca1..2a9b08d 100644
14822 pipe_unlock(pipe);
14823 }
14824
14825 -@@ -499,7 +499,9 @@ void do_coredump(siginfo_t *siginfo)
14826 +@@ -499,7 +499,9 @@ void do_coredump(const siginfo_t *siginfo)
14827 struct files_struct *displaced;
14828 bool need_nonrelative = false;
14829 bool core_dumped = false;
14830 @@ -55840,7 +57092,7 @@ index 9bdeca1..2a9b08d 100644
14831 struct coredump_params cprm = {
14832 .siginfo = siginfo,
14833 .regs = signal_pt_regs(),
14834 -@@ -512,12 +514,17 @@ void do_coredump(siginfo_t *siginfo)
14835 +@@ -512,12 +514,17 @@ void do_coredump(const siginfo_t *siginfo)
14836 .mm_flags = mm->flags,
14837 };
14838
14839 @@ -55860,7 +57112,7 @@ index 9bdeca1..2a9b08d 100644
14840 goto fail;
14841
14842 cred = prepare_creds();
14843 -@@ -536,7 +543,7 @@ void do_coredump(siginfo_t *siginfo)
14844 +@@ -536,7 +543,7 @@ void do_coredump(const siginfo_t *siginfo)
14845 need_nonrelative = true;
14846 }
14847
14848 @@ -55869,7 +57121,7 @@ index 9bdeca1..2a9b08d 100644
14849 if (retval < 0)
14850 goto fail_creds;
14851
14852 -@@ -579,7 +586,7 @@ void do_coredump(siginfo_t *siginfo)
14853 +@@ -579,7 +586,7 @@ void do_coredump(const siginfo_t *siginfo)
14854 }
14855 cprm.limit = RLIM_INFINITY;
14856
14857 @@ -55878,7 +57130,7 @@ index 9bdeca1..2a9b08d 100644
14858 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
14859 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
14860 task_tgid_vnr(current), current->comm);
14861 -@@ -611,6 +618,8 @@ void do_coredump(siginfo_t *siginfo)
14862 +@@ -611,6 +618,8 @@ void do_coredump(const siginfo_t *siginfo)
14863 } else {
14864 struct inode *inode;
14865
14866 @@ -55896,20 +57148,20 @@ index 9bdeca1..2a9b08d 100644
14867 fail_unlock:
14868 kfree(cn.corename);
14869 coredump_finish(mm, core_dumped);
14870 -@@ -689,7 +698,7 @@ int dump_write(struct file *file, const void *addr, int nr)
14871 - {
14872 - return !dump_interrupted() &&
14873 - access_ok(VERIFY_READ, addr, nr) &&
14874 -- file->f_op->write(file, addr, nr, &file->f_pos) == nr;
14875 -+ file->f_op->write(file, (const char __force_user *)addr, nr, &file->f_pos) == nr;
14876 - }
14877 - EXPORT_SYMBOL(dump_write);
14878 -
14879 +@@ -690,6 +699,8 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
14880 + struct file *file = cprm->file;
14881 + loff_t pos = file->f_pos;
14882 + ssize_t n;
14883 ++
14884 ++ gr_learn_resource(current, RLIMIT_CORE, cprm->written + nr, 1);
14885 + if (cprm->written + nr > cprm->limit)
14886 + return 0;
14887 + while (nr) {
14888 diff --git a/fs/dcache.c b/fs/dcache.c
14889 -index 89f9671..d2dce57 100644
14890 +index cb4a106..b75581f 100644
14891 --- a/fs/dcache.c
14892 +++ b/fs/dcache.c
14893 -@@ -1570,7 +1570,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
14894 +@@ -1495,7 +1495,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
14895 */
14896 dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
14897 if (name->len > DNAME_INLINE_LEN-1) {
14898 @@ -55918,15 +57170,7 @@ index 89f9671..d2dce57 100644
14899 if (!dname) {
14900 kmem_cache_free(dentry_cache, dentry);
14901 return NULL;
14902 -@@ -2893,6 +2893,7 @@ static int prepend_path(const struct path *path,
14903 - restart:
14904 - bptr = *buffer;
14905 - blen = *buflen;
14906 -+ error = 0;
14907 - dentry = path->dentry;
14908 - vfsmnt = path->mnt;
14909 - mnt = real_mount(vfsmnt);
14910 -@@ -3432,7 +3433,8 @@ void __init vfs_caches_init(unsigned long mempages)
14911 +@@ -3429,7 +3429,8 @@ void __init vfs_caches_init(unsigned long mempages)
14912 mempages -= reserve;
14913
14914 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
14915 @@ -55937,7 +57181,7 @@ index 89f9671..d2dce57 100644
14916 dcache_init();
14917 inode_init();
14918 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
14919 -index c7c83ff..bda9461 100644
14920 +index 9c0444c..628490c 100644
14921 --- a/fs/debugfs/inode.c
14922 +++ b/fs/debugfs/inode.c
14923 @@ -415,7 +415,11 @@ EXPORT_SYMBOL_GPL(debugfs_create_file);
14924 @@ -55953,10 +57197,10 @@ index c7c83ff..bda9461 100644
14925 }
14926 EXPORT_SYMBOL_GPL(debugfs_create_dir);
14927 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
14928 -index 67e9b63..a9adb68 100644
14929 +index c36c448..fc96710 100644
14930 --- a/fs/ecryptfs/inode.c
14931 +++ b/fs/ecryptfs/inode.c
14932 -@@ -674,7 +674,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
14933 +@@ -675,7 +675,7 @@ static int ecryptfs_readlink_lower(struct dentry *dentry, char **buf,
14934 old_fs = get_fs();
14935 set_fs(get_ds());
14936 rc = lower_dentry->d_inode->i_op->readlink(lower_dentry,
14937 @@ -55965,15 +57209,6 @@ index 67e9b63..a9adb68 100644
14938 PATH_MAX);
14939 set_fs(old_fs);
14940 if (rc < 0)
14941 -@@ -706,7 +706,7 @@ out:
14942 - static void
14943 - ecryptfs_put_link(struct dentry *dentry, struct nameidata *nd, void *ptr)
14944 - {
14945 -- char *buf = nd_get_link(nd);
14946 -+ const char *buf = nd_get_link(nd);
14947 - if (!IS_ERR(buf)) {
14948 - /* Free the char* */
14949 - kfree(buf);
14950 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
14951 index e4141f2..d8263e8 100644
14952 --- a/fs/ecryptfs/miscdev.c
14953 @@ -55988,7 +57223,7 @@ index e4141f2..d8263e8 100644
14954 i += packet_length_size;
14955 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
14956 diff --git a/fs/exec.c b/fs/exec.c
14957 -index bb8afc1..2f5087e 100644
14958 +index 7ea097f..0158d8a 100644
14959 --- a/fs/exec.c
14960 +++ b/fs/exec.c
14961 @@ -55,8 +55,20 @@
14962 @@ -56058,7 +57293,7 @@ index bb8afc1..2f5087e 100644
14963 write_unlock(&binfmt_lock);
14964 }
14965
14966 -@@ -183,18 +210,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
14967 +@@ -181,18 +208,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
14968 int write)
14969 {
14970 struct page *page;
14971 @@ -56080,7 +57315,7 @@ index bb8afc1..2f5087e 100644
14972 return NULL;
14973
14974 if (write) {
14975 -@@ -210,6 +229,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
14976 +@@ -208,6 +227,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
14977 if (size <= ARG_MAX)
14978 return page;
14979
14980 @@ -56098,7 +57333,7 @@ index bb8afc1..2f5087e 100644
14981 /*
14982 * Limit to 1/4-th the stack size for the argv+env strings.
14983 * This ensures that:
14984 -@@ -269,6 +299,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
14985 +@@ -267,6 +297,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
14986 vma->vm_end = STACK_TOP_MAX;
14987 vma->vm_start = vma->vm_end - PAGE_SIZE;
14988 vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
14989 @@ -56110,7 +57345,7 @@ index bb8afc1..2f5087e 100644
14990 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
14991 INIT_LIST_HEAD(&vma->anon_vma_chain);
14992
14993 -@@ -279,6 +314,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
14994 +@@ -277,6 +312,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
14995 mm->stack_vm = mm->total_vm = 1;
14996 up_write(&mm->mmap_sem);
14997 bprm->p = vma->vm_end - sizeof(void *);
14998 @@ -56123,7 +57358,7 @@ index bb8afc1..2f5087e 100644
14999 return 0;
15000 err:
15001 up_write(&mm->mmap_sem);
15002 -@@ -399,7 +440,7 @@ struct user_arg_ptr {
15003 +@@ -397,7 +438,7 @@ struct user_arg_ptr {
15004 } ptr;
15005 };
15006
15007 @@ -56132,7 +57367,7 @@ index bb8afc1..2f5087e 100644
15008 {
15009 const char __user *native;
15010
15011 -@@ -408,14 +449,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
15012 +@@ -406,14 +447,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
15013 compat_uptr_t compat;
15014
15015 if (get_user(compat, argv.ptr.compat + nr))
15016 @@ -56149,7 +57384,7 @@ index bb8afc1..2f5087e 100644
15017
15018 return native;
15019 }
15020 -@@ -434,7 +475,7 @@ static int count(struct user_arg_ptr argv, int max)
15021 +@@ -432,7 +473,7 @@ static int count(struct user_arg_ptr argv, int max)
15022 if (!p)
15023 break;
15024
15025 @@ -56158,7 +57393,7 @@ index bb8afc1..2f5087e 100644
15026 return -EFAULT;
15027
15028 if (i >= max)
15029 -@@ -469,7 +510,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
15030 +@@ -467,7 +508,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
15031
15032 ret = -EFAULT;
15033 str = get_user_arg_ptr(argv, argc);
15034 @@ -56167,16 +57402,16 @@ index bb8afc1..2f5087e 100644
15035 goto out;
15036
15037 len = strnlen_user(str, MAX_ARG_STRLEN);
15038 -@@ -551,7 +592,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
15039 +@@ -549,7 +590,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
15040 int r;
15041 mm_segment_t oldfs = get_fs();
15042 struct user_arg_ptr argv = {
15043 - .ptr.native = (const char __user *const __user *)__argv,
15044 -+ .ptr.native = (const char __force_user * const __force_user *)__argv,
15045 ++ .ptr.native = (const char __user * const __force_user *)__argv,
15046 };
15047
15048 set_fs(KERNEL_DS);
15049 -@@ -586,7 +627,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
15050 +@@ -584,7 +625,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
15051 unsigned long new_end = old_end - shift;
15052 struct mmu_gather tlb;
15053
15054 @@ -56186,7 +57421,7 @@ index bb8afc1..2f5087e 100644
15055
15056 /*
15057 * ensure there are no vmas between where we want to go
15058 -@@ -595,6 +637,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
15059 +@@ -593,6 +635,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
15060 if (vma != find_vma(mm, new_start))
15061 return -EFAULT;
15062
15063 @@ -56197,7 +57432,7 @@ index bb8afc1..2f5087e 100644
15064 /*
15065 * cover the whole range: [new_start, old_end)
15066 */
15067 -@@ -675,10 +721,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
15068 +@@ -673,10 +719,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
15069 stack_top = arch_align_stack(stack_top);
15070 stack_top = PAGE_ALIGN(stack_top);
15071
15072 @@ -56208,7 +57443,7 @@ index bb8afc1..2f5087e 100644
15073 stack_shift = vma->vm_end - stack_top;
15074
15075 bprm->p -= stack_shift;
15076 -@@ -690,8 +732,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
15077 +@@ -688,8 +730,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
15078 bprm->exec -= stack_shift;
15079
15080 down_write(&mm->mmap_sem);
15081 @@ -56237,7 +57472,7 @@ index bb8afc1..2f5087e 100644
15082 /*
15083 * Adjust stack execute permissions; explicitly enable for
15084 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
15085 -@@ -710,13 +772,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
15086 +@@ -708,13 +770,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
15087 goto out_unlock;
15088 BUG_ON(prev != vma);
15089
15090 @@ -56251,7 +57486,7 @@ index bb8afc1..2f5087e 100644
15091 /* mprotect_fixup is overkill to remove the temporary stack flags */
15092 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
15093
15094 -@@ -740,6 +795,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
15095 +@@ -738,6 +793,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
15096 #endif
15097 current->mm->start_stack = bprm->p;
15098 ret = expand_stack(vma, stack_base);
15099 @@ -56279,7 +57514,7 @@ index bb8afc1..2f5087e 100644
15100 if (ret)
15101 ret = -EFAULT;
15102
15103 -@@ -776,6 +852,8 @@ struct file *open_exec(const char *name)
15104 +@@ -774,6 +850,8 @@ struct file *open_exec(const char *name)
15105
15106 fsnotify_open(file);
15107
15108 @@ -56288,7 +57523,7 @@ index bb8afc1..2f5087e 100644
15109 err = deny_write_access(file);
15110 if (err)
15111 goto exit;
15112 -@@ -799,7 +877,7 @@ int kernel_read(struct file *file, loff_t offset,
15113 +@@ -797,7 +875,7 @@ int kernel_read(struct file *file, loff_t offset,
15114 old_fs = get_fs();
15115 set_fs(get_ds());
15116 /* The cast to a user pointer is valid due to the set_fs() */
15117 @@ -56297,7 +57532,7 @@ index bb8afc1..2f5087e 100644
15118 set_fs(old_fs);
15119 return result;
15120 }
15121 -@@ -1255,7 +1333,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
15122 +@@ -1253,7 +1331,7 @@ static int check_unsafe_exec(struct linux_binprm *bprm)
15123 }
15124 rcu_read_unlock();
15125
15126 @@ -56306,7 +57541,7 @@ index bb8afc1..2f5087e 100644
15127 bprm->unsafe |= LSM_UNSAFE_SHARE;
15128 } else {
15129 res = -EAGAIN;
15130 -@@ -1451,6 +1529,31 @@ static int exec_binprm(struct linux_binprm *bprm)
15131 +@@ -1443,6 +1521,31 @@ static int exec_binprm(struct linux_binprm *bprm)
15132 return ret;
15133 }
15134
15135 @@ -56338,7 +57573,7 @@ index bb8afc1..2f5087e 100644
15136 /*
15137 * sys_execve() executes a new program.
15138 */
15139 -@@ -1458,12 +1561,19 @@ static int do_execve_common(const char *filename,
15140 +@@ -1450,12 +1553,19 @@ static int do_execve_common(const char *filename,
15141 struct user_arg_ptr argv,
15142 struct user_arg_ptr envp)
15143 {
15144 @@ -56358,7 +57593,7 @@ index bb8afc1..2f5087e 100644
15145 /*
15146 * We move the actual failure in case of RLIMIT_NPROC excess from
15147 * set*uid() to execve() because too many poorly written programs
15148 -@@ -1504,12 +1614,22 @@ static int do_execve_common(const char *filename,
15149 +@@ -1496,12 +1606,22 @@ static int do_execve_common(const char *filename,
15150 if (IS_ERR(file))
15151 goto out_unmark;
15152
15153 @@ -56381,7 +57616,7 @@ index bb8afc1..2f5087e 100644
15154 retval = bprm_mm_init(bprm);
15155 if (retval)
15156 goto out_file;
15157 -@@ -1526,24 +1646,70 @@ static int do_execve_common(const char *filename,
15158 +@@ -1518,24 +1638,70 @@ static int do_execve_common(const char *filename,
15159 if (retval < 0)
15160 goto out;
15161
15162 @@ -56456,7 +57691,7 @@ index bb8afc1..2f5087e 100644
15163 current->fs->in_exec = 0;
15164 current->in_execve = 0;
15165 acct_update_integrals(current);
15166 -@@ -1552,6 +1718,14 @@ static int do_execve_common(const char *filename,
15167 +@@ -1545,6 +1711,14 @@ static int do_execve_common(const char *filename,
15168 put_files_struct(displaced);
15169 return retval;
15170
15171 @@ -56471,7 +57706,7 @@ index bb8afc1..2f5087e 100644
15172 out:
15173 if (bprm->mm) {
15174 acct_arg_size(bprm, 0);
15175 -@@ -1706,3 +1880,295 @@ asmlinkage long compat_sys_execve(const char __user * filename,
15176 +@@ -1699,3 +1873,295 @@ asmlinkage long compat_sys_execve(const char __user * filename,
15177 return error;
15178 }
15179 #endif
15180 @@ -56852,7 +58087,7 @@ index b1fc963..881228c 100644
15181
15182 static int
15183 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
15184 -index dc5d572..4c21f8e 100644
15185 +index 6ea7b14..8fa16d9 100644
15186 --- a/fs/ext4/balloc.c
15187 +++ b/fs/ext4/balloc.c
15188 @@ -534,8 +534,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
15189 @@ -56867,10 +58102,10 @@ index dc5d572..4c21f8e 100644
15190 if (free_clusters >= (nclusters + dirty_clusters +
15191 resv_clusters))
15192 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
15193 -index 745faaa..a072816 100644
15194 +index ece5556..e39d3a8 100644
15195 --- a/fs/ext4/ext4.h
15196 +++ b/fs/ext4/ext4.h
15197 -@@ -1266,19 +1266,19 @@ struct ext4_sb_info {
15198 +@@ -1267,19 +1267,19 @@ struct ext4_sb_info {
15199 unsigned long s_mb_last_start;
15200
15201 /* stats for buddy allocator */
15202 @@ -57018,7 +58253,7 @@ index 04a5c75..09894fa 100644
15203
15204 return 0;
15205 diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
15206 -index 214461e..3614c89 100644
15207 +index 04434ad..6404663 100644
15208 --- a/fs/ext4/mmp.c
15209 +++ b/fs/ext4/mmp.c
15210 @@ -113,7 +113,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh,
15211 @@ -57031,10 +58266,10 @@ index 214461e..3614c89 100644
15212 "MMP failure info: last update time: %llu, last update "
15213 "node: %s, last update device: %s\n",
15214 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
15215 -index b947e0a..c102e3b 100644
15216 +index 1f7784d..5d8bbad 100644
15217 --- a/fs/ext4/super.c
15218 +++ b/fs/ext4/super.c
15219 -@@ -1251,7 +1251,7 @@ static ext4_fsblk_t get_sb_block(void **data)
15220 +@@ -1270,7 +1270,7 @@ static ext4_fsblk_t get_sb_block(void **data)
15221 }
15222
15223 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
15224 @@ -57043,7 +58278,7 @@ index b947e0a..c102e3b 100644
15225 "Contact linux-ext4@×××××××××××.org if you think we should keep it.\n";
15226
15227 #ifdef CONFIG_QUOTA
15228 -@@ -2431,7 +2431,7 @@ struct ext4_attr {
15229 +@@ -2450,7 +2450,7 @@ struct ext4_attr {
15230 int offset;
15231 int deprecated_val;
15232 } u;
15233 @@ -57078,10 +58313,10 @@ index 1423c48..9c0c6dc 100644
15234
15235 static int
15236 diff --git a/fs/fcntl.c b/fs/fcntl.c
15237 -index 65343c3..9969dcf 100644
15238 +index ef68665..5deacdc 100644
15239 --- a/fs/fcntl.c
15240 +++ b/fs/fcntl.c
15241 -@@ -107,6 +107,11 @@ int __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
15242 +@@ -106,6 +106,11 @@ int __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
15243 if (err)
15244 return err;
15245
15246 @@ -57178,7 +58413,7 @@ index 92567d9..fcd8cbf 100644
15247
15248 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
15249 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
15250 -index d8ac61d..79a36f0 100644
15251 +index 7dca743..543d620 100644
15252 --- a/fs/fs_struct.c
15253 +++ b/fs/fs_struct.c
15254 @@ -4,6 +4,7 @@
15255 @@ -57262,10 +58497,10 @@ index d8ac61d..79a36f0 100644
15256 - .users = 1,
15257 + .users = ATOMIC_INIT(1),
15258 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
15259 - .seq = SEQCNT_ZERO,
15260 + .seq = SEQCNT_ZERO(init_fs.seq),
15261 .umask = 0022,
15262 diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
15263 -index b2a86e3..37f425a 100644
15264 +index 29d7feb..303644d 100644
15265 --- a/fs/fscache/cookie.c
15266 +++ b/fs/fscache/cookie.c
15267 @@ -19,7 +19,7 @@
15268 @@ -57277,9 +58512,9 @@ index b2a86e3..37f425a 100644
15269
15270 static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie);
15271 static int fscache_alloc_object(struct fscache_cache *cache,
15272 -@@ -68,11 +68,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
15273 +@@ -69,11 +69,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
15274 parent ? (char *) parent->def->name : "<no-parent>",
15275 - def->name, netfs_data);
15276 + def->name, netfs_data, enable);
15277
15278 - fscache_stat(&fscache_n_acquires);
15279 + fscache_stat_unchecked(&fscache_n_acquires);
15280 @@ -57291,7 +58526,7 @@ index b2a86e3..37f425a 100644
15281 _leave(" [no parent]");
15282 return NULL;
15283 }
15284 -@@ -87,7 +87,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
15285 +@@ -88,7 +88,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
15286 /* allocate and initialise a cookie */
15287 cookie = kmem_cache_alloc(fscache_cookie_jar, GFP_KERNEL);
15288 if (!cookie) {
15289 @@ -57300,7 +58535,7 @@ index b2a86e3..37f425a 100644
15290 _leave(" [ENOMEM]");
15291 return NULL;
15292 }
15293 -@@ -114,13 +114,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
15294 +@@ -115,13 +115,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
15295
15296 switch (cookie->def->type) {
15297 case FSCACHE_COOKIE_TYPE_INDEX:
15298 @@ -57317,14 +58552,16 @@ index b2a86e3..37f425a 100644
15299 break;
15300 }
15301
15302 -@@ -131,13 +131,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
15303 - if (fscache_acquire_non_index_cookie(cookie) < 0) {
15304 - atomic_dec(&parent->n_children);
15305 - __fscache_cookie_put(cookie);
15306 -- fscache_stat(&fscache_n_acquires_nobufs);
15307 -+ fscache_stat_unchecked(&fscache_n_acquires_nobufs);
15308 - _leave(" = NULL");
15309 - return NULL;
15310 +@@ -135,7 +135,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
15311 + } else {
15312 + atomic_dec(&parent->n_children);
15313 + __fscache_cookie_put(cookie);
15314 +- fscache_stat(&fscache_n_acquires_nobufs);
15315 ++ fscache_stat_unchecked(&fscache_n_acquires_nobufs);
15316 + _leave(" = NULL");
15317 + return NULL;
15318 + }
15319 +@@ -144,7 +144,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
15320 }
15321 }
15322
15323 @@ -57333,7 +58570,7 @@ index b2a86e3..37f425a 100644
15324 _leave(" = %p", cookie);
15325 return cookie;
15326 }
15327 -@@ -173,7 +173,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
15328 +@@ -213,7 +213,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
15329 cache = fscache_select_cache_for_object(cookie->parent);
15330 if (!cache) {
15331 up_read(&fscache_addremove_sem);
15332 @@ -57342,7 +58579,7 @@ index b2a86e3..37f425a 100644
15333 _leave(" = -ENOMEDIUM [no cache]");
15334 return -ENOMEDIUM;
15335 }
15336 -@@ -259,14 +259,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
15337 +@@ -297,14 +297,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
15338 object = cache->ops->alloc_object(cache, cookie);
15339 fscache_stat_d(&fscache_n_cop_alloc_object);
15340 if (IS_ERR(object)) {
15341 @@ -57360,7 +58597,7 @@ index b2a86e3..37f425a 100644
15342
15343 _debug("ALLOC OBJ%x: %s {%lx}",
15344 object->debug_id, cookie->def->name, object->events);
15345 -@@ -380,7 +380,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
15346 +@@ -418,7 +418,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
15347
15348 _enter("{%s}", cookie->def->name);
15349
15350 @@ -57369,7 +58606,7 @@ index b2a86e3..37f425a 100644
15351
15352 /* Only permit invalidation of data files. Invalidating an index will
15353 * require the caller to release all its attachments to the tree rooted
15354 -@@ -438,10 +438,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
15355 +@@ -477,10 +477,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
15356 {
15357 struct fscache_object *object;
15358
15359 @@ -57382,10 +58619,10 @@ index b2a86e3..37f425a 100644
15360 _leave(" [no cookie]");
15361 return;
15362 }
15363 -@@ -473,12 +473,12 @@ void __fscache_relinquish_cookie(struct fscache_cookie *cookie, int retire)
15364 +@@ -581,12 +581,12 @@ EXPORT_SYMBOL(__fscache_disable_cookie);
15365 + */
15366 + void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
15367 {
15368 - struct fscache_object *object;
15369 -
15370 - fscache_stat(&fscache_n_relinquishes);
15371 + fscache_stat_unchecked(&fscache_n_relinquishes);
15372 if (retire)
15373 @@ -57398,14 +58635,14 @@ index b2a86e3..37f425a 100644
15374 _leave(" [no cookie]");
15375 return;
15376 }
15377 -@@ -598,7 +598,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
15378 +@@ -687,7 +687,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
15379 if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
15380 goto inconsistent;
15381
15382 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
15383 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
15384
15385 - atomic_inc(&cookie->n_active);
15386 + __fscache_use_cookie(cookie);
15387 if (fscache_submit_op(object, op) < 0)
15388 diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
15389 index 4226f66..0fb3f45 100644
15390 @@ -57626,7 +58863,7 @@ index 4226f66..0fb3f45 100644
15391 #endif
15392
15393 diff --git a/fs/fscache/object.c b/fs/fscache/object.c
15394 -index 86d75a6..5f3d7a0 100644
15395 +index 53d35c5..5d68ed4 100644
15396 --- a/fs/fscache/object.c
15397 +++ b/fs/fscache/object.c
15398 @@ -451,7 +451,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
15399 @@ -57656,7 +58893,7 @@ index 86d75a6..5f3d7a0 100644
15400
15401 /* Allow write requests to begin stacking up and read requests to begin
15402 * returning ENODATA.
15403 -@@ -523,7 +523,7 @@ void fscache_obtained_object(struct fscache_object *object)
15404 +@@ -524,7 +524,7 @@ void fscache_obtained_object(struct fscache_object *object)
15405 /* if we were still looking up, then we must have a positive lookup
15406 * result, in which case there may be data available */
15407 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
15408 @@ -57665,7 +58902,7 @@ index 86d75a6..5f3d7a0 100644
15409
15410 /* We do (presumably) have data */
15411 clear_bit_unlock(FSCACHE_COOKIE_NO_DATA_YET, &cookie->flags);
15412 -@@ -534,7 +534,7 @@ void fscache_obtained_object(struct fscache_object *object)
15413 +@@ -536,7 +536,7 @@ void fscache_obtained_object(struct fscache_object *object)
15414 clear_bit_unlock(FSCACHE_COOKIE_LOOKING_UP, &cookie->flags);
15415 wake_up_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP);
15416 } else {
15417 @@ -57674,7 +58911,7 @@ index 86d75a6..5f3d7a0 100644
15418 }
15419
15420 set_bit(FSCACHE_OBJECT_IS_AVAILABLE, &object->flags);
15421 -@@ -570,7 +570,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
15422 +@@ -572,7 +572,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
15423 fscache_stat_d(&fscache_n_cop_lookup_complete);
15424
15425 fscache_hist(fscache_obj_instantiate_histogram, object->lookup_jif);
15426 @@ -57683,7 +58920,7 @@ index 86d75a6..5f3d7a0 100644
15427
15428 _leave("");
15429 return transit_to(JUMPSTART_DEPS);
15430 -@@ -716,7 +716,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
15431 +@@ -719,7 +719,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
15432
15433 /* this just shifts the object release to the work processor */
15434 fscache_put_object(object);
15435 @@ -57692,7 +58929,7 @@ index 86d75a6..5f3d7a0 100644
15436
15437 _leave("");
15438 return transit_to(OBJECT_DEAD);
15439 -@@ -881,7 +881,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
15440 +@@ -884,7 +884,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
15441 enum fscache_checkaux result;
15442
15443 if (!object->cookie->def->check_aux) {
15444 @@ -57701,7 +58938,7 @@ index 86d75a6..5f3d7a0 100644
15445 return FSCACHE_CHECKAUX_OKAY;
15446 }
15447
15448 -@@ -890,17 +890,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
15449 +@@ -893,17 +893,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
15450 switch (result) {
15451 /* entry okay as is */
15452 case FSCACHE_CHECKAUX_OKAY:
15453 @@ -57722,7 +58959,7 @@ index 86d75a6..5f3d7a0 100644
15454 break;
15455
15456 default:
15457 -@@ -986,7 +986,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
15458 +@@ -989,7 +989,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
15459 {
15460 const struct fscache_state *s;
15461
15462 @@ -57731,7 +58968,7 @@ index 86d75a6..5f3d7a0 100644
15463 fscache_stat(&fscache_n_cop_invalidate_object);
15464 s = _fscache_invalidate_object(object, event);
15465 fscache_stat_d(&fscache_n_cop_invalidate_object);
15466 -@@ -1001,7 +1001,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
15467 +@@ -1004,7 +1004,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
15468 {
15469 _enter("{OBJ%x},%d", object->debug_id, event);
15470
15471 @@ -57867,7 +59104,7 @@ index 318071a..379938b 100644
15472 ASSERTCMP(atomic_read(&op->usage), ==, 0);
15473 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
15474 diff --git a/fs/fscache/page.c b/fs/fscache/page.c
15475 -index 73899c1..ae40c58 100644
15476 +index 7f5c658..6c1e164 100644
15477 --- a/fs/fscache/page.c
15478 +++ b/fs/fscache/page.c
15479 @@ -61,7 +61,7 @@ try_again:
15480 @@ -57924,9 +59161,9 @@ index 73899c1..ae40c58 100644
15481 - fscache_stat(&fscache_n_attr_changed_calls);
15482 + fscache_stat_unchecked(&fscache_n_attr_changed_calls);
15483
15484 - if (fscache_object_is_active(object) &&
15485 - fscache_use_cookie(object)) {
15486 -@@ -189,11 +189,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
15487 + if (fscache_object_is_active(object)) {
15488 + fscache_stat(&fscache_n_cop_attr_changed);
15489 +@@ -188,11 +188,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
15490
15491 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
15492
15493 @@ -57940,7 +59177,7 @@ index 73899c1..ae40c58 100644
15494 _leave(" = -ENOMEM");
15495 return -ENOMEM;
15496 }
15497 -@@ -211,7 +211,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
15498 +@@ -214,7 +214,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
15499 if (fscache_submit_exclusive_op(object, op) < 0)
15500 goto nobufs;
15501 spin_unlock(&cookie->lock);
15502 @@ -57949,16 +59186,16 @@ index 73899c1..ae40c58 100644
15503 fscache_put_operation(op);
15504 _leave(" = 0");
15505 return 0;
15506 -@@ -219,7 +219,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
15507 - nobufs:
15508 - spin_unlock(&cookie->lock);
15509 +@@ -225,7 +225,7 @@ nobufs:
15510 kfree(op);
15511 + if (wake_cookie)
15512 + __fscache_wake_unused_cookie(cookie);
15513 - fscache_stat(&fscache_n_attr_changed_nobufs);
15514 + fscache_stat_unchecked(&fscache_n_attr_changed_nobufs);
15515 _leave(" = %d", -ENOBUFS);
15516 return -ENOBUFS;
15517 }
15518 -@@ -258,7 +258,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
15519 +@@ -264,7 +264,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
15520 /* allocate a retrieval operation and attempt to submit it */
15521 op = kzalloc(sizeof(*op), GFP_NOIO);
15522 if (!op) {
15523 @@ -57967,7 +59204,7 @@ index 73899c1..ae40c58 100644
15524 return NULL;
15525 }
15526
15527 -@@ -289,13 +289,13 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
15528 +@@ -294,13 +294,13 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
15529 return 0;
15530 }
15531
15532 @@ -57983,7 +59220,7 @@ index 73899c1..ae40c58 100644
15533 _leave(" = -ERESTARTSYS");
15534 return -ERESTARTSYS;
15535 }
15536 -@@ -324,8 +324,8 @@ static void fscache_do_cancel_retrieval(struct fscache_operation *_op)
15537 +@@ -329,8 +329,8 @@ static void fscache_do_cancel_retrieval(struct fscache_operation *_op)
15538 */
15539 int fscache_wait_for_operation_activation(struct fscache_object *object,
15540 struct fscache_operation *op,
15541 @@ -57994,7 +59231,7 @@ index 73899c1..ae40c58 100644
15542 void (*do_cancel)(struct fscache_operation *))
15543 {
15544 int ret;
15545 -@@ -335,7 +335,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
15546 +@@ -340,7 +340,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
15547
15548 _debug(">>> WT");
15549 if (stat_op_waits)
15550 @@ -58003,7 +59240,7 @@ index 73899c1..ae40c58 100644
15551 if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
15552 fscache_wait_bit_interruptible,
15553 TASK_INTERRUPTIBLE) != 0) {
15554 -@@ -353,7 +353,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
15555 +@@ -358,7 +358,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
15556 check_if_dead:
15557 if (op->state == FSCACHE_OP_ST_CANCELLED) {
15558 if (stat_object_dead)
15559 @@ -58012,7 +59249,7 @@ index 73899c1..ae40c58 100644
15560 _leave(" = -ENOBUFS [cancelled]");
15561 return -ENOBUFS;
15562 }
15563 -@@ -361,7 +361,7 @@ check_if_dead:
15564 +@@ -366,7 +366,7 @@ check_if_dead:
15565 pr_err("%s() = -ENOBUFS [obj dead %d]\n", __func__, op->state);
15566 fscache_cancel_op(op, do_cancel);
15567 if (stat_object_dead)
15568 @@ -58021,7 +59258,7 @@ index 73899c1..ae40c58 100644
15569 return -ENOBUFS;
15570 }
15571 return 0;
15572 -@@ -388,7 +388,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15573 +@@ -394,7 +394,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15574
15575 _enter("%p,%p,,,", cookie, page);
15576
15577 @@ -58030,7 +59267,7 @@ index 73899c1..ae40c58 100644
15578
15579 if (hlist_empty(&cookie->backing_objects))
15580 goto nobufs;
15581 -@@ -428,7 +428,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15582 +@@ -436,7 +436,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15583 goto nobufs_unlock_dec;
15584 spin_unlock(&cookie->lock);
15585
15586 @@ -58039,7 +59276,7 @@ index 73899c1..ae40c58 100644
15587
15588 /* pin the netfs read context in case we need to do the actual netfs
15589 * read because we've encountered a cache read failure */
15590 -@@ -459,15 +459,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15591 +@@ -467,15 +467,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
15592
15593 error:
15594 if (ret == -ENOMEM)
15595 @@ -58060,8 +59297,8 @@ index 73899c1..ae40c58 100644
15596
15597 fscache_put_retrieval(op);
15598 _leave(" = %d", ret);
15599 -@@ -480,7 +480,7 @@ nobufs_unlock:
15600 - atomic_dec(&cookie->n_active);
15601 +@@ -490,7 +490,7 @@ nobufs_unlock:
15602 + __fscache_wake_unused_cookie(cookie);
15603 kfree(op);
15604 nobufs:
15605 - fscache_stat(&fscache_n_retrievals_nobufs);
15606 @@ -58069,7 +59306,7 @@ index 73899c1..ae40c58 100644
15607 _leave(" = -ENOBUFS");
15608 return -ENOBUFS;
15609 }
15610 -@@ -518,7 +518,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15611 +@@ -529,7 +529,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15612
15613 _enter("%p,,%d,,,", cookie, *nr_pages);
15614
15615 @@ -58078,7 +59315,7 @@ index 73899c1..ae40c58 100644
15616
15617 if (hlist_empty(&cookie->backing_objects))
15618 goto nobufs;
15619 -@@ -554,7 +554,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15620 +@@ -567,7 +567,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15621 goto nobufs_unlock_dec;
15622 spin_unlock(&cookie->lock);
15623
15624 @@ -58087,7 +59324,7 @@ index 73899c1..ae40c58 100644
15625
15626 /* pin the netfs read context in case we need to do the actual netfs
15627 * read because we've encountered a cache read failure */
15628 -@@ -585,15 +585,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15629 +@@ -598,15 +598,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
15630
15631 error:
15632 if (ret == -ENOMEM)
15633 @@ -58108,16 +59345,16 @@ index 73899c1..ae40c58 100644
15634
15635 fscache_put_retrieval(op);
15636 _leave(" = %d", ret);
15637 -@@ -606,7 +606,7 @@ nobufs_unlock:
15638 - atomic_dec(&cookie->n_active);
15639 - kfree(op);
15640 +@@ -621,7 +621,7 @@ nobufs_unlock:
15641 + if (wake_cookie)
15642 + __fscache_wake_unused_cookie(cookie);
15643 nobufs:
15644 - fscache_stat(&fscache_n_retrievals_nobufs);
15645 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
15646 _leave(" = -ENOBUFS");
15647 return -ENOBUFS;
15648 }
15649 -@@ -630,7 +630,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15650 +@@ -646,7 +646,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15651
15652 _enter("%p,%p,,,", cookie, page);
15653
15654 @@ -58126,8 +59363,8 @@ index 73899c1..ae40c58 100644
15655
15656 if (hlist_empty(&cookie->backing_objects))
15657 goto nobufs;
15658 -@@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15659 - goto nobufs_unlock;
15660 +@@ -680,7 +680,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15661 + goto nobufs_unlock_dec;
15662 spin_unlock(&cookie->lock);
15663
15664 - fscache_stat(&fscache_n_alloc_ops);
15665 @@ -58135,7 +59372,7 @@ index 73899c1..ae40c58 100644
15666
15667 ret = fscache_wait_for_operation_activation(
15668 object, &op->op,
15669 -@@ -679,11 +679,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15670 +@@ -697,11 +697,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
15671
15672 error:
15673 if (ret == -ERESTARTSYS)
15674 @@ -58150,16 +59387,16 @@ index 73899c1..ae40c58 100644
15675
15676 fscache_put_retrieval(op);
15677 _leave(" = %d", ret);
15678 -@@ -694,7 +694,7 @@ nobufs_unlock:
15679 - atomic_dec(&cookie->n_active);
15680 - kfree(op);
15681 +@@ -715,7 +715,7 @@ nobufs_unlock:
15682 + if (wake_cookie)
15683 + __fscache_wake_unused_cookie(cookie);
15684 nobufs:
15685 - fscache_stat(&fscache_n_allocs_nobufs);
15686 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
15687 _leave(" = -ENOBUFS");
15688 return -ENOBUFS;
15689 }
15690 -@@ -770,7 +770,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15691 +@@ -791,7 +791,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15692
15693 spin_lock(&cookie->stores_lock);
15694
15695 @@ -58168,7 +59405,7 @@ index 73899c1..ae40c58 100644
15696
15697 /* find a page to store */
15698 page = NULL;
15699 -@@ -781,7 +781,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15700 +@@ -802,7 +802,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15701 page = results[0];
15702 _debug("gang %d [%lx]", n, page->index);
15703 if (page->index > op->store_limit) {
15704 @@ -58177,7 +59414,7 @@ index 73899c1..ae40c58 100644
15705 goto superseded;
15706 }
15707
15708 -@@ -793,7 +793,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15709 +@@ -814,7 +814,7 @@ static void fscache_write_op(struct fscache_operation *_op)
15710 spin_unlock(&cookie->stores_lock);
15711 spin_unlock(&object->lock);
15712
15713 @@ -58186,7 +59423,7 @@ index 73899c1..ae40c58 100644
15714 fscache_stat(&fscache_n_cop_write_page);
15715 ret = object->cache->ops->write_page(op, page);
15716 fscache_stat_d(&fscache_n_cop_write_page);
15717 -@@ -896,7 +896,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15718 +@@ -918,7 +918,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15719 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
15720 ASSERT(PageFsCache(page));
15721
15722 @@ -58195,7 +59432,7 @@ index 73899c1..ae40c58 100644
15723
15724 if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
15725 _leave(" = -ENOBUFS [invalidating]");
15726 -@@ -954,7 +954,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15727 +@@ -977,7 +977,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15728 spin_unlock(&cookie->stores_lock);
15729 spin_unlock(&object->lock);
15730
15731 @@ -58203,8 +59440,8 @@ index 73899c1..ae40c58 100644
15732 + op->op.debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
15733 op->store_limit = object->store_limit;
15734
15735 - atomic_inc(&cookie->n_active);
15736 -@@ -963,8 +963,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15737 + __fscache_use_cookie(cookie);
15738 +@@ -986,8 +986,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15739
15740 spin_unlock(&cookie->lock);
15741 radix_tree_preload_end();
15742 @@ -58215,7 +59452,7 @@ index 73899c1..ae40c58 100644
15743
15744 /* the work queue now carries its own ref on the object */
15745 fscache_put_operation(&op->op);
15746 -@@ -972,14 +972,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15747 +@@ -995,14 +995,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
15748 return 0;
15749
15750 already_queued:
15751 @@ -58232,10 +59469,10 @@ index 73899c1..ae40c58 100644
15752 _leave(" = 0");
15753 return 0;
15754
15755 -@@ -999,14 +999,14 @@ nobufs:
15756 - spin_unlock(&cookie->lock);
15757 - radix_tree_preload_end();
15758 +@@ -1024,14 +1024,14 @@ nobufs:
15759 kfree(op);
15760 + if (wake_cookie)
15761 + __fscache_wake_unused_cookie(cookie);
15762 - fscache_stat(&fscache_n_stores_nobufs);
15763 + fscache_stat_unchecked(&fscache_n_stores_nobufs);
15764 _leave(" = -ENOBUFS");
15765 @@ -58249,7 +59486,7 @@ index 73899c1..ae40c58 100644
15766 _leave(" = -ENOMEM");
15767 return -ENOMEM;
15768 }
15769 -@@ -1024,7 +1024,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
15770 +@@ -1049,7 +1049,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
15771 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
15772 ASSERTCMP(page, !=, NULL);
15773
15774 @@ -58258,7 +59495,7 @@ index 73899c1..ae40c58 100644
15775
15776 /* cache withdrawal may beat us to it */
15777 if (!PageFsCache(page))
15778 -@@ -1075,7 +1075,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
15779 +@@ -1100,7 +1100,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
15780 struct fscache_cookie *cookie = op->op.object->cookie;
15781
15782 #ifdef CONFIG_FSCACHE_STATS
15783 @@ -58650,10 +59887,10 @@ index 40d13c7..ddf52b9 100644
15784 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
15785 atomic_read(&fscache_n_cop_alloc_object),
15786 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
15787 -index adbfd66..4b25822 100644
15788 +index b96a49b..9bfdc47 100644
15789 --- a/fs/fuse/cuse.c
15790 +++ b/fs/fuse/cuse.c
15791 -@@ -603,10 +603,12 @@ static int __init cuse_init(void)
15792 +@@ -606,10 +606,12 @@ static int __init cuse_init(void)
15793 INIT_LIST_HEAD(&cuse_conntbl[i]);
15794
15795 /* inherit and extend fuse_dev_operations */
15796 @@ -58693,10 +59930,10 @@ index ef74ad5..c9ac759e 100644
15797 }
15798
15799 diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
15800 -index b7989f2..1f72ec4 100644
15801 +index c3eb2c4..98007d4 100644
15802 --- a/fs/fuse/dir.c
15803 +++ b/fs/fuse/dir.c
15804 -@@ -1438,7 +1438,7 @@ static char *read_link(struct dentry *dentry)
15805 +@@ -1408,7 +1408,7 @@ static char *read_link(struct dentry *dentry)
15806 return link;
15807 }
15808
15809 @@ -58705,24 +59942,11 @@ index b7989f2..1f72ec4 100644
15810 {
15811 if (!IS_ERR(link))
15812 free_page((unsigned long) link);
15813 -diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
15814 -index 1298766..c964c60 100644
15815 ---- a/fs/gfs2/inode.c
15816 -+++ b/fs/gfs2/inode.c
15817 -@@ -1515,7 +1515,7 @@ out:
15818 -
15819 - static void gfs2_put_link(struct dentry *dentry, struct nameidata *nd, void *p)
15820 - {
15821 -- char *s = nd_get_link(nd);
15822 -+ const char *s = nd_get_link(nd);
15823 - if (!IS_ERR(s))
15824 - kfree(s);
15825 - }
15826 diff --git a/fs/hostfs/hostfs_kern.c b/fs/hostfs/hostfs_kern.c
15827 -index 2543728..14d7bd4 100644
15828 +index db23ce1..9e6cd9d 100644
15829 --- a/fs/hostfs/hostfs_kern.c
15830 +++ b/fs/hostfs/hostfs_kern.c
15831 -@@ -904,7 +904,7 @@ static void *hostfs_follow_link(struct dentry *dentry, struct nameidata *nd)
15832 +@@ -895,7 +895,7 @@ static void *hostfs_follow_link(struct dentry *dentry, struct nameidata *nd)
15833
15834 static void hostfs_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
15835 {
15836 @@ -58782,10 +60006,10 @@ index d19b30a..ef89c36 100644
15837 static int can_do_hugetlb_shm(void)
15838 {
15839 diff --git a/fs/inode.c b/fs/inode.c
15840 -index b33ba8e..3c79a47 100644
15841 +index 4bcdad3..1883822 100644
15842 --- a/fs/inode.c
15843 +++ b/fs/inode.c
15844 -@@ -849,8 +849,8 @@ unsigned int get_next_ino(void)
15845 +@@ -841,8 +841,8 @@ unsigned int get_next_ino(void)
15846
15847 #ifdef CONFIG_SMP
15848 if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
15849 @@ -58838,10 +60062,10 @@ index 6669aa2..36b033d 100644
15850 if (jfs_inode_cachep == NULL)
15851 return -ENOMEM;
15852 diff --git a/fs/libfs.c b/fs/libfs.c
15853 -index 193e0c2..7404665 100644
15854 +index a184424..944ddce 100644
15855 --- a/fs/libfs.c
15856 +++ b/fs/libfs.c
15857 -@@ -150,6 +150,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
15858 +@@ -159,6 +159,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
15859
15860 for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
15861 struct dentry *next = list_entry(p, struct dentry, d_u.d_child);
15862 @@ -58851,7 +60075,7 @@ index 193e0c2..7404665 100644
15863 spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
15864 if (!simple_positive(next)) {
15865 spin_unlock(&next->d_lock);
15866 -@@ -158,7 +161,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
15867 +@@ -167,7 +170,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
15868
15869 spin_unlock(&next->d_lock);
15870 spin_unlock(&dentry->d_lock);
15871 @@ -58865,6 +60089,15 @@ index 193e0c2..7404665 100644
15872 next->d_inode->i_ino, dt_type(next->d_inode)))
15873 return 0;
15874 spin_lock(&dentry->d_lock);
15875 +@@ -999,7 +1007,7 @@ EXPORT_SYMBOL(noop_fsync);
15876 + void kfree_put_link(struct dentry *dentry, struct nameidata *nd,
15877 + void *cookie)
15878 + {
15879 +- char *s = nd_get_link(nd);
15880 ++ const char *s = nd_get_link(nd);
15881 + if (!IS_ERR(s))
15882 + kfree(s);
15883 + }
15884 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
15885 index acd3947..1f896e2 100644
15886 --- a/fs/lockd/clntproc.c
15887 @@ -58884,13 +60117,13 @@ index acd3947..1f896e2 100644
15888 memcpy(c->data, &cookie, 4);
15889 c->len=4;
15890 diff --git a/fs/locks.c b/fs/locks.c
15891 -index b27a300..4156d0b 100644
15892 +index 92a0f0a..45a48f0 100644
15893 --- a/fs/locks.c
15894 +++ b/fs/locks.c
15895 -@@ -2183,16 +2183,16 @@ void locks_remove_flock(struct file *filp)
15896 +@@ -2219,16 +2219,16 @@ void locks_remove_flock(struct file *filp)
15897 return;
15898
15899 - if (filp->f_op && filp->f_op->flock) {
15900 + if (filp->f_op->flock) {
15901 - struct file_lock fl = {
15902 + struct file_lock flock = {
15903 .fl_pid = current->tgid,
15904 @@ -58908,8 +60141,30 @@ index b27a300..4156d0b 100644
15905 }
15906
15907 spin_lock(&inode->i_lock);
15908 +diff --git a/fs/mount.h b/fs/mount.h
15909 +index d64c594..6c283db 100644
15910 +--- a/fs/mount.h
15911 ++++ b/fs/mount.h
15912 +@@ -11,7 +11,7 @@ struct mnt_namespace {
15913 + u64 seq; /* Sequence number to prevent loops */
15914 + wait_queue_head_t poll;
15915 + int event;
15916 +-};
15917 ++} __randomize_layout;
15918 +
15919 + struct mnt_pcp {
15920 + int mnt_count;
15921 +@@ -57,7 +57,7 @@ struct mount {
15922 + int mnt_expiry_mark; /* true if marked for expiry */
15923 + int mnt_pinned;
15924 + struct path mnt_ex_mountpoint;
15925 +-};
15926 ++} __randomize_layout;
15927 +
15928 + #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
15929 +
15930 diff --git a/fs/namei.c b/fs/namei.c
15931 -index 23ac50f..c6757a5 100644
15932 +index 3531dee..3177227 100644
15933 --- a/fs/namei.c
15934 +++ b/fs/namei.c
15935 @@ -319,16 +319,32 @@ int generic_permission(struct inode *inode, int mask)
15936 @@ -58963,7 +60218,7 @@ index 23ac50f..c6757a5 100644
15937 return -EACCES;
15938 }
15939
15940 -@@ -821,7 +829,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
15941 +@@ -810,7 +818,7 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
15942 {
15943 struct dentry *dentry = link->dentry;
15944 int error;
15945 @@ -58972,7 +60227,7 @@ index 23ac50f..c6757a5 100644
15946
15947 BUG_ON(nd->flags & LOOKUP_RCU);
15948
15949 -@@ -842,6 +850,12 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
15950 +@@ -831,6 +839,12 @@ follow_link(struct path *link, struct nameidata *nd, void **p)
15951 if (error)
15952 goto out_put_nd_path;
15953
15954 @@ -58985,7 +60240,7 @@ index 23ac50f..c6757a5 100644
15955 nd->last_type = LAST_BIND;
15956 *p = dentry->d_inode->i_op->follow_link(dentry, nd);
15957 error = PTR_ERR(*p);
15958 -@@ -1602,6 +1616,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
15959 +@@ -1582,6 +1596,8 @@ static inline int nested_symlink(struct path *path, struct nameidata *nd)
15960 if (res)
15961 break;
15962 res = walk_component(nd, path, LOOKUP_FOLLOW);
15963 @@ -58994,7 +60249,7 @@ index 23ac50f..c6757a5 100644
15964 put_link(nd, &link, cookie);
15965 } while (res > 0);
15966
15967 -@@ -1700,7 +1716,7 @@ EXPORT_SYMBOL(full_name_hash);
15968 +@@ -1655,7 +1671,7 @@ EXPORT_SYMBOL(full_name_hash);
15969 static inline unsigned long hash_name(const char *name, unsigned int *hashp)
15970 {
15971 unsigned long a, b, adata, bdata, mask, hash, len;
15972 @@ -59003,7 +60258,7 @@ index 23ac50f..c6757a5 100644
15973
15974 hash = a = 0;
15975 len = -sizeof(unsigned long);
15976 -@@ -1981,6 +1997,8 @@ static int path_lookupat(int dfd, const char *name,
15977 +@@ -1939,6 +1955,8 @@ static int path_lookupat(int dfd, const char *name,
15978 if (err)
15979 break;
15980 err = lookup_last(nd, &path);
15981 @@ -59012,7 +60267,7 @@ index 23ac50f..c6757a5 100644
15982 put_link(nd, &link, cookie);
15983 }
15984 }
15985 -@@ -1988,6 +2006,13 @@ static int path_lookupat(int dfd, const char *name,
15986 +@@ -1946,6 +1964,13 @@ static int path_lookupat(int dfd, const char *name,
15987 if (!err)
15988 err = complete_walk(nd);
15989
15990 @@ -59024,9 +60279,9 @@ index 23ac50f..c6757a5 100644
15991 + }
15992 +
15993 if (!err && nd->flags & LOOKUP_DIRECTORY) {
15994 - if (!can_lookup(nd->inode)) {
15995 + if (!d_is_directory(nd->path.dentry)) {
15996 path_put(&nd->path);
15997 -@@ -2015,8 +2040,15 @@ static int filename_lookup(int dfd, struct filename *name,
15998 +@@ -1973,8 +1998,15 @@ static int filename_lookup(int dfd, struct filename *name,
15999 retval = path_lookupat(dfd, name->name,
16000 flags | LOOKUP_REVAL, nd);
16001
16002 @@ -59043,7 +60298,7 @@ index 23ac50f..c6757a5 100644
16003 return retval;
16004 }
16005
16006 -@@ -2587,6 +2619,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
16007 +@@ -2548,6 +2580,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
16008 if (flag & O_NOATIME && !inode_owner_or_capable(inode))
16009 return -EPERM;
16010
16011 @@ -59057,7 +60312,7 @@ index 23ac50f..c6757a5 100644
16012 return 0;
16013 }
16014
16015 -@@ -2818,7 +2857,7 @@ looked_up:
16016 +@@ -2779,7 +2818,7 @@ looked_up:
16017 * cleared otherwise prior to returning.
16018 */
16019 static int lookup_open(struct nameidata *nd, struct path *path,
16020 @@ -59066,7 +60321,7 @@ index 23ac50f..c6757a5 100644
16021 const struct open_flags *op,
16022 bool got_write, int *opened)
16023 {
16024 -@@ -2853,6 +2892,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
16025 +@@ -2814,6 +2853,17 @@ static int lookup_open(struct nameidata *nd, struct path *path,
16026 /* Negative dentry, just create the file */
16027 if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
16028 umode_t mode = op->mode;
16029 @@ -59084,7 +60339,7 @@ index 23ac50f..c6757a5 100644
16030 if (!IS_POSIXACL(dir->d_inode))
16031 mode &= ~current_umask();
16032 /*
16033 -@@ -2874,6 +2924,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
16034 +@@ -2835,6 +2885,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
16035 nd->flags & LOOKUP_EXCL);
16036 if (error)
16037 goto out_dput;
16038 @@ -59093,7 +60348,7 @@ index 23ac50f..c6757a5 100644
16039 }
16040 out_no_open:
16041 path->dentry = dentry;
16042 -@@ -2888,7 +2940,7 @@ out_dput:
16043 +@@ -2849,7 +2901,7 @@ out_dput:
16044 /*
16045 * Handle the last step of open()
16046 */
16047 @@ -59102,7 +60357,7 @@ index 23ac50f..c6757a5 100644
16048 struct file *file, const struct open_flags *op,
16049 int *opened, struct filename *name)
16050 {
16051 -@@ -2938,6 +2990,15 @@ static int do_last(struct nameidata *nd, struct path *path,
16052 +@@ -2899,6 +2951,15 @@ static int do_last(struct nameidata *nd, struct path *path,
16053 if (error)
16054 return error;
16055
16056 @@ -59118,7 +60373,7 @@ index 23ac50f..c6757a5 100644
16057 audit_inode(name, dir, LOOKUP_PARENT);
16058 error = -EISDIR;
16059 /* trailing slashes? */
16060 -@@ -2957,7 +3018,7 @@ retry_lookup:
16061 +@@ -2918,7 +2979,7 @@ retry_lookup:
16062 */
16063 }
16064 mutex_lock(&dir->d_inode->i_mutex);
16065 @@ -59127,7 +60382,7 @@ index 23ac50f..c6757a5 100644
16066 mutex_unlock(&dir->d_inode->i_mutex);
16067
16068 if (error <= 0) {
16069 -@@ -2981,11 +3042,28 @@ retry_lookup:
16070 +@@ -2942,11 +3003,28 @@ retry_lookup:
16071 goto finish_open_created;
16072 }
16073
16074 @@ -59143,8 +60398,8 @@ index 23ac50f..c6757a5 100644
16075 /*
16076 * create/update audit record if it already exists.
16077 */
16078 -- if (path->dentry->d_inode)
16079 -+ if (path->dentry->d_inode) {
16080 +- if (d_is_positive(path->dentry))
16081 ++ if (d_is_positive(path->dentry)) {
16082 + /* only check if O_CREAT is specified, all other checks need to go
16083 + into may_open */
16084 + if (gr_handle_fifo(path->dentry, path->mnt, dir, open_flag, acc_mode)) {
16085 @@ -59157,7 +60412,7 @@ index 23ac50f..c6757a5 100644
16086
16087 /*
16088 * If atomic_open() acquired write access it is dropped now due to
16089 -@@ -3026,6 +3104,11 @@ finish_lookup:
16090 +@@ -2987,6 +3065,11 @@ finish_lookup:
16091 }
16092 }
16093 BUG_ON(inode != path->dentry->d_inode);
16094 @@ -59169,7 +60424,7 @@ index 23ac50f..c6757a5 100644
16095 return 1;
16096 }
16097
16098 -@@ -3035,7 +3118,6 @@ finish_lookup:
16099 +@@ -2996,7 +3079,6 @@ finish_lookup:
16100 save_parent.dentry = nd->path.dentry;
16101 save_parent.mnt = mntget(path->mnt);
16102 nd->path.dentry = path->dentry;
16103 @@ -59177,7 +60432,7 @@ index 23ac50f..c6757a5 100644
16104 }
16105 nd->inode = inode;
16106 /* Why this, you ask? _Now_ we might have grown LOOKUP_JUMPED... */
16107 -@@ -3045,7 +3127,18 @@ finish_open:
16108 +@@ -3006,7 +3088,18 @@ finish_open:
16109 path_put(&save_parent);
16110 return error;
16111 }
16112 @@ -59194,9 +60449,9 @@ index 23ac50f..c6757a5 100644
16113 audit_inode(name, nd->path.dentry, 0);
16114 +
16115 error = -EISDIR;
16116 - if ((open_flag & O_CREAT) && S_ISDIR(nd->inode->i_mode))
16117 - goto out;
16118 -@@ -3208,7 +3301,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
16119 + if ((open_flag & O_CREAT) &&
16120 + (d_is_directory(nd->path.dentry) || d_is_autodir(nd->path.dentry)))
16121 +@@ -3170,7 +3263,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
16122 if (unlikely(error))
16123 goto out;
16124
16125 @@ -59205,7 +60460,7 @@ index 23ac50f..c6757a5 100644
16126 while (unlikely(error > 0)) { /* trailing symlink */
16127 struct path link = path;
16128 void *cookie;
16129 -@@ -3226,7 +3319,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
16130 +@@ -3188,7 +3281,7 @@ static struct file *path_openat(int dfd, struct filename *pathname,
16131 error = follow_link(&link, nd, &cookie);
16132 if (unlikely(error))
16133 break;
16134 @@ -59214,21 +60469,21 @@ index 23ac50f..c6757a5 100644
16135 put_link(nd, &link, cookie);
16136 }
16137 out:
16138 -@@ -3326,8 +3419,12 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
16139 +@@ -3288,9 +3381,11 @@ struct dentry *kern_path_create(int dfd, const char *pathname,
16140 goto unlock;
16141
16142 error = -EEXIST;
16143 -- if (dentry->d_inode)
16144 -+ if (dentry->d_inode) {
16145 -+ if (!gr_acl_handle_hidden_file(dentry, nd.path.mnt)) {
16146 +- if (d_is_positive(dentry))
16147 ++ if (d_is_positive(dentry)) {
16148 ++ if (!gr_acl_handle_hidden_file(dentry, nd.path.mnt))
16149 + error = -ENOENT;
16150 -+ }
16151 goto fail;
16152 +-
16153 + }
16154 /*
16155 * Special case - lookup gave negative, but... we had foo/bar/
16156 * From the vfs_mknod() POV we just have a negative dentry -
16157 -@@ -3379,6 +3476,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
16158 +@@ -3342,6 +3437,20 @@ struct dentry *user_path_create(int dfd, const char __user *pathname,
16159 }
16160 EXPORT_SYMBOL(user_path_create);
16161
16162 @@ -59249,7 +60504,7 @@ index 23ac50f..c6757a5 100644
16163 int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
16164 {
16165 int error = may_create(dir, dentry);
16166 -@@ -3441,6 +3552,17 @@ retry:
16167 +@@ -3404,6 +3513,17 @@ retry:
16168
16169 if (!IS_POSIXACL(path.dentry->d_inode))
16170 mode &= ~current_umask();
16171 @@ -59267,7 +60522,7 @@ index 23ac50f..c6757a5 100644
16172 error = security_path_mknod(&path, dentry, mode, dev);
16173 if (error)
16174 goto out;
16175 -@@ -3457,6 +3579,8 @@ retry:
16176 +@@ -3420,6 +3540,8 @@ retry:
16177 break;
16178 }
16179 out:
16180 @@ -59276,7 +60531,7 @@ index 23ac50f..c6757a5 100644
16181 done_path_create(&path, dentry);
16182 if (retry_estale(error, lookup_flags)) {
16183 lookup_flags |= LOOKUP_REVAL;
16184 -@@ -3509,9 +3633,16 @@ retry:
16185 +@@ -3472,9 +3594,16 @@ retry:
16186
16187 if (!IS_POSIXACL(path.dentry->d_inode))
16188 mode &= ~current_umask();
16189 @@ -59293,7 +60548,7 @@ index 23ac50f..c6757a5 100644
16190 done_path_create(&path, dentry);
16191 if (retry_estale(error, lookup_flags)) {
16192 lookup_flags |= LOOKUP_REVAL;
16193 -@@ -3592,6 +3723,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
16194 +@@ -3555,6 +3684,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
16195 struct filename *name;
16196 struct dentry *dentry;
16197 struct nameidata nd;
16198 @@ -59302,7 +60557,7 @@ index 23ac50f..c6757a5 100644
16199 unsigned int lookup_flags = 0;
16200 retry:
16201 name = user_path_parent(dfd, pathname, &nd, lookup_flags);
16202 -@@ -3624,10 +3757,21 @@ retry:
16203 +@@ -3587,10 +3718,21 @@ retry:
16204 error = -ENOENT;
16205 goto exit3;
16206 }
16207 @@ -59324,17 +60579,17 @@ index 23ac50f..c6757a5 100644
16208 exit3:
16209 dput(dentry);
16210 exit2:
16211 -@@ -3693,6 +3837,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
16212 - struct dentry *dentry;
16213 +@@ -3680,6 +3822,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
16214 struct nameidata nd;
16215 struct inode *inode = NULL;
16216 + struct inode *delegated_inode = NULL;
16217 + ino_t saved_ino = 0;
16218 + dev_t saved_dev = 0;
16219 unsigned int lookup_flags = 0;
16220 retry:
16221 name = user_path_parent(dfd, pathname, &nd, lookup_flags);
16222 -@@ -3719,10 +3865,22 @@ retry:
16223 - if (!inode)
16224 +@@ -3706,10 +3850,22 @@ retry_deleg:
16225 + if (d_is_negative(dentry))
16226 goto slashes;
16227 ihold(inode);
16228 +
16229 @@ -59350,13 +60605,13 @@ index 23ac50f..c6757a5 100644
16230 error = security_path_unlink(&nd.path, dentry);
16231 if (error)
16232 goto exit2;
16233 - error = vfs_unlink(nd.path.dentry->d_inode, dentry);
16234 + error = vfs_unlink(nd.path.dentry->d_inode, dentry, &delegated_inode);
16235 + if (!error && (saved_ino || saved_dev))
16236 + gr_handle_delete(saved_ino, saved_dev);
16237 exit2:
16238 dput(dentry);
16239 }
16240 -@@ -3800,9 +3958,17 @@ retry:
16241 +@@ -3797,9 +3953,17 @@ retry:
16242 if (IS_ERR(dentry))
16243 goto out_putname;
16244
16245 @@ -59374,15 +60629,15 @@ index 23ac50f..c6757a5 100644
16246 done_path_create(&path, dentry);
16247 if (retry_estale(error, lookup_flags)) {
16248 lookup_flags |= LOOKUP_REVAL;
16249 -@@ -3882,6 +4048,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
16250 - {
16251 +@@ -3902,6 +4066,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
16252 struct dentry *new_dentry;
16253 struct path old_path, new_path;
16254 + struct inode *delegated_inode = NULL;
16255 + struct filename *to = NULL;
16256 int how = 0;
16257 int error;
16258
16259 -@@ -3905,7 +4072,7 @@ retry:
16260 +@@ -3925,7 +4090,7 @@ retry:
16261 if (error)
16262 return error;
16263
16264 @@ -59391,7 +60646,7 @@ index 23ac50f..c6757a5 100644
16265 (how & LOOKUP_REVAL));
16266 error = PTR_ERR(new_dentry);
16267 if (IS_ERR(new_dentry))
16268 -@@ -3917,11 +4084,28 @@ retry:
16269 +@@ -3937,11 +4102,28 @@ retry:
16270 error = may_linkat(&old_path);
16271 if (unlikely(error))
16272 goto out_dput;
16273 @@ -59412,15 +60667,15 @@ index 23ac50f..c6757a5 100644
16274 error = security_path_link(old_path.dentry, &new_path, new_dentry);
16275 if (error)
16276 goto out_dput;
16277 - error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry);
16278 + error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode);
16279 + if (!error)
16280 + gr_handle_create(new_dentry, new_path.mnt);
16281 out_dput:
16282 + putname(to);
16283 done_path_create(&new_path, new_dentry);
16284 - if (retry_estale(error, how)) {
16285 - how |= LOOKUP_REVAL;
16286 -@@ -4167,12 +4351,21 @@ retry:
16287 + if (delegated_inode) {
16288 + error = break_deleg_wait(&delegated_inode);
16289 +@@ -4225,6 +4407,12 @@ retry_deleg:
16290 if (new_dentry == trap)
16291 goto exit5;
16292
16293 @@ -59433,16 +60688,17 @@ index 23ac50f..c6757a5 100644
16294 error = security_path_rename(&oldnd.path, old_dentry,
16295 &newnd.path, new_dentry);
16296 if (error)
16297 - goto exit5;
16298 +@@ -4232,6 +4420,9 @@ retry_deleg:
16299 error = vfs_rename(old_dir->d_inode, old_dentry,
16300 - new_dir->d_inode, new_dentry);
16301 + new_dir->d_inode, new_dentry,
16302 + &delegated_inode);
16303 + if (!error)
16304 + gr_handle_rename(old_dir->d_inode, new_dir->d_inode, old_dentry,
16305 + new_dentry, oldnd.path.mnt, new_dentry->d_inode ? 1 : 0);
16306 exit5:
16307 dput(new_dentry);
16308 exit4:
16309 -@@ -4204,6 +4397,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
16310 +@@ -4268,6 +4459,8 @@ SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newna
16311
16312 int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const char *link)
16313 {
16314 @@ -59451,7 +60707,7 @@ index 23ac50f..c6757a5 100644
16315 int len;
16316
16317 len = PTR_ERR(link);
16318 -@@ -4213,7 +4408,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
16319 +@@ -4277,7 +4470,14 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
16320 len = strlen(link);
16321 if (len > (unsigned) buflen)
16322 len = buflen;
16323 @@ -59468,10 +60724,10 @@ index 23ac50f..c6757a5 100644
16324 out:
16325 return len;
16326 diff --git a/fs/namespace.c b/fs/namespace.c
16327 -index da5c494..a755a54 100644
16328 +index be32ebc..c595734 100644
16329 --- a/fs/namespace.c
16330 +++ b/fs/namespace.c
16331 -@@ -1268,6 +1268,9 @@ static int do_umount(struct mount *mnt, int flags)
16332 +@@ -1293,6 +1293,9 @@ static int do_umount(struct mount *mnt, int flags)
16333 if (!(sb->s_flags & MS_RDONLY))
16334 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
16335 up_write(&sb->s_umount);
16336 @@ -59481,9 +60737,9 @@ index da5c494..a755a54 100644
16337 return retval;
16338 }
16339
16340 -@@ -1286,6 +1289,9 @@ static int do_umount(struct mount *mnt, int flags)
16341 +@@ -1315,6 +1318,9 @@ static int do_umount(struct mount *mnt, int flags)
16342 }
16343 - br_write_unlock(&vfsmount_lock);
16344 + unlock_mount_hash();
16345 namespace_unlock();
16346 +
16347 + gr_log_unmount(mnt->mnt_devname, retval);
16348 @@ -59491,7 +60747,7 @@ index da5c494..a755a54 100644
16349 return retval;
16350 }
16351
16352 -@@ -1305,7 +1311,7 @@ static inline bool may_mount(void)
16353 +@@ -1334,7 +1340,7 @@ static inline bool may_mount(void)
16354 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
16355 */
16356
16357 @@ -59500,7 +60756,7 @@ index da5c494..a755a54 100644
16358 {
16359 struct path path;
16360 struct mount *mnt;
16361 -@@ -1347,7 +1353,7 @@ out:
16362 +@@ -1376,7 +1382,7 @@ out:
16363 /*
16364 * The 2.0 compatible umount. No flags.
16365 */
16366 @@ -59509,7 +60765,7 @@ index da5c494..a755a54 100644
16367 {
16368 return sys_umount(name, 0);
16369 }
16370 -@@ -2358,6 +2364,16 @@ long do_mount(const char *dev_name, const char *dir_name,
16371 +@@ -2379,6 +2385,16 @@ long do_mount(const char *dev_name, const char *dir_name,
16372 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
16373 MS_STRICTATIME);
16374
16375 @@ -59526,7 +60782,7 @@ index da5c494..a755a54 100644
16376 if (flags & MS_REMOUNT)
16377 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
16378 data_page);
16379 -@@ -2372,6 +2388,9 @@ long do_mount(const char *dev_name, const char *dir_name,
16380 +@@ -2393,6 +2409,9 @@ long do_mount(const char *dev_name, const char *dir_name,
16381 dev_name, data_page);
16382 dput_out:
16383 path_put(&path);
16384 @@ -59536,7 +60792,7 @@ index da5c494..a755a54 100644
16385 return retval;
16386 }
16387
16388 -@@ -2389,7 +2408,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
16389 +@@ -2410,7 +2429,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
16390 * number incrementing at 10Ghz will take 12,427 years to wrap which
16391 * is effectively never, so we can ignore the possibility.
16392 */
16393 @@ -59545,7 +60801,7 @@ index da5c494..a755a54 100644
16394
16395 static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
16396 {
16397 -@@ -2404,7 +2423,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
16398 +@@ -2425,7 +2444,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
16399 kfree(new_ns);
16400 return ERR_PTR(ret);
16401 }
16402 @@ -59554,16 +60810,16 @@ index da5c494..a755a54 100644
16403 atomic_set(&new_ns->count, 1);
16404 new_ns->root = NULL;
16405 INIT_LIST_HEAD(&new_ns->list);
16406 -@@ -2418,7 +2437,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
16407 - * Allocate a new namespace structure and populate it with contents
16408 - * copied from the namespace of the passed in task structure.
16409 - */
16410 --static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
16411 -+static __latent_entropy struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
16412 - struct user_namespace *user_ns, struct fs_struct *fs)
16413 +@@ -2435,7 +2454,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
16414 + return new_ns;
16415 + }
16416 +
16417 +-struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
16418 ++__latent_entropy struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
16419 + struct user_namespace *user_ns, struct fs_struct *new_fs)
16420 {
16421 struct mnt_namespace *new_ns;
16422 -@@ -2549,8 +2568,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
16423 +@@ -2556,8 +2575,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
16424 }
16425 EXPORT_SYMBOL(mount_subtree);
16426
16427 @@ -59574,7 +60830,7 @@ index da5c494..a755a54 100644
16428 {
16429 int ret;
16430 char *kernel_type;
16431 -@@ -2663,6 +2682,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
16432 +@@ -2670,6 +2689,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
16433 if (error)
16434 goto out2;
16435
16436 @@ -59586,7 +60842,7 @@ index da5c494..a755a54 100644
16437 get_fs_root(current->fs, &root);
16438 old_mp = lock_mount(&old);
16439 error = PTR_ERR(old_mp);
16440 -@@ -2932,7 +2956,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns)
16441 +@@ -2930,7 +2954,7 @@ static int mntns_install(struct nsproxy *nsproxy, void *ns)
16442 !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
16443 return -EPERM;
16444
16445 @@ -59609,10 +60865,10 @@ index f4ccfe6..a5cf064 100644
16446 static struct callback_op callback_ops[];
16447
16448 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
16449 -index eda8879..bfc6837 100644
16450 +index 00ad1c2..2fde15e 100644
16451 --- a/fs/nfs/inode.c
16452 +++ b/fs/nfs/inode.c
16453 -@@ -1150,16 +1150,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
16454 +@@ -1146,16 +1146,16 @@ static int nfs_size_need_update(const struct inode *inode, const struct nfs_fatt
16455 return nfs_size_to_loff_t(fattr->size) > i_size_read(inode);
16456 }
16457
16458 @@ -59646,10 +60902,10 @@ index 419572f..5414a23 100644
16459 static struct nfsd4_operation nfsd4_ops[];
16460
16461 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
16462 -index ecc735e..79b2d31 100644
16463 +index ee7237f..e3ae60a 100644
16464 --- a/fs/nfsd/nfs4xdr.c
16465 +++ b/fs/nfsd/nfs4xdr.c
16466 -@@ -1500,7 +1500,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
16467 +@@ -1523,7 +1523,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
16468
16469 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
16470
16471 @@ -59658,24 +60914,6 @@ index ecc735e..79b2d31 100644
16472 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
16473 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
16474 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
16475 -@@ -1540,7 +1540,7 @@ static nfsd4_dec nfsd4_dec_ops[] = {
16476 - [OP_RELEASE_LOCKOWNER] = (nfsd4_dec)nfsd4_decode_release_lockowner,
16477 - };
16478 -
16479 --static nfsd4_dec nfsd41_dec_ops[] = {
16480 -+static const nfsd4_dec nfsd41_dec_ops[] = {
16481 - [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
16482 - [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
16483 - [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
16484 -@@ -1602,7 +1602,7 @@ static nfsd4_dec nfsd41_dec_ops[] = {
16485 - };
16486 -
16487 - struct nfsd4_minorversion_ops {
16488 -- nfsd4_dec *decoders;
16489 -+ const nfsd4_dec *decoders;
16490 - int nops;
16491 - };
16492 -
16493 diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
16494 index b6af150..f6ec5e3 100644
16495 --- a/fs/nfsd/nfscache.c
16496 @@ -59702,7 +60940,7 @@ index b6af150..f6ec5e3 100644
16497 /* Don't cache excessive amounts of data and XDR failures */
16498 if (!statp || len > (256 >> 2)) {
16499 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
16500 -index 72cb28e..5b5f87d 100644
16501 +index 7eea63c..a35f4fb 100644
16502 --- a/fs/nfsd/vfs.c
16503 +++ b/fs/nfsd/vfs.c
16504 @@ -993,7 +993,7 @@ nfsd_vfs_read(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
16505 @@ -59714,7 +60952,7 @@ index 72cb28e..5b5f87d 100644
16506 set_fs(oldfs);
16507 }
16508
16509 -@@ -1080,7 +1080,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
16510 +@@ -1084,7 +1084,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
16511
16512 /* Write the data. */
16513 oldfs = get_fs(); set_fs(KERNEL_DS);
16514 @@ -59723,7 +60961,7 @@ index 72cb28e..5b5f87d 100644
16515 set_fs(oldfs);
16516 if (host_err < 0)
16517 goto out_nfserr;
16518 -@@ -1626,7 +1626,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
16519 +@@ -1629,7 +1629,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
16520 */
16521
16522 oldfs = get_fs(); set_fs(KERNEL_DS);
16523 @@ -59732,34 +60970,6 @@ index 72cb28e..5b5f87d 100644
16524 set_fs(oldfs);
16525
16526 if (host_err < 0)
16527 -diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
16528 -index 9f6b486..a1a19163 100644
16529 ---- a/fs/nilfs2/segment.c
16530 -+++ b/fs/nilfs2/segment.c
16531 -@@ -1440,17 +1440,19 @@ static int nilfs_segctor_collect(struct nilfs_sc_info *sci,
16532 -
16533 - nilfs_clear_logs(&sci->sc_segbufs);
16534 -
16535 -- err = nilfs_segctor_extend_segments(sci, nilfs, nadd);
16536 -- if (unlikely(err))
16537 -- return err;
16538 --
16539 - if (sci->sc_stage.flags & NILFS_CF_SUFREED) {
16540 - err = nilfs_sufile_cancel_freev(nilfs->ns_sufile,
16541 - sci->sc_freesegs,
16542 - sci->sc_nfreesegs,
16543 - NULL);
16544 - WARN_ON(err); /* do not happen */
16545 -+ sci->sc_stage.flags &= ~NILFS_CF_SUFREED;
16546 - }
16547 -+
16548 -+ err = nilfs_segctor_extend_segments(sci, nilfs, nadd);
16549 -+ if (unlikely(err))
16550 -+ return err;
16551 -+
16552 - nadd = min_t(int, nadd << 1, SC_MAX_SEGDELTA);
16553 - sci->sc_stage = prev_stage;
16554 - }
16555 diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
16556 index fea6bd5..8ee9d81 100644
16557 --- a/fs/nls/nls_base.c
16558 @@ -59972,7 +61182,7 @@ index 3a90347..c40bef8 100644
16559
16560 enum ocfs2_local_alloc_state
16561 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
16562 -index 5397c07..54afc55 100644
16563 +index 2c91452..77a3cd2 100644
16564 --- a/fs/ocfs2/suballoc.c
16565 +++ b/fs/ocfs2/suballoc.c
16566 @@ -872,7 +872,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
16567 @@ -60030,7 +61240,7 @@ index 5397c07..54afc55 100644
16568 }
16569 }
16570 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
16571 -index d4e81e4..ad89f5f 100644
16572 +index c414929..5c9ee542 100644
16573 --- a/fs/ocfs2/super.c
16574 +++ b/fs/ocfs2/super.c
16575 @@ -300,11 +300,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
16576 @@ -60068,7 +61278,7 @@ index d4e81e4..ad89f5f 100644
16577 /* Copy the blockcheck stats from the superblock probe */
16578 osb->osb_ecc_stats = *stats;
16579 diff --git a/fs/open.c b/fs/open.c
16580 -index d420331..2dbb3fd 100644
16581 +index 4b3e1ed..1c84599 100644
16582 --- a/fs/open.c
16583 +++ b/fs/open.c
16584 @@ -32,6 +32,8 @@
16585 @@ -60080,7 +61290,7 @@ index d420331..2dbb3fd 100644
16586 #include "internal.h"
16587
16588 int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
16589 -@@ -102,6 +104,8 @@ long vfs_truncate(struct path *path, loff_t length)
16590 +@@ -103,6 +105,8 @@ long vfs_truncate(struct path *path, loff_t length)
16591 error = locks_verify_truncate(inode, NULL, length);
16592 if (!error)
16593 error = security_path_truncate(path);
16594 @@ -60089,7 +61299,7 @@ index d420331..2dbb3fd 100644
16595 if (!error)
16596 error = do_truncate(path->dentry, length, 0, NULL);
16597
16598 -@@ -186,6 +190,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
16599 +@@ -187,6 +191,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
16600 error = locks_verify_truncate(inode, f.file, length);
16601 if (!error)
16602 error = security_path_truncate(&f.file->f_path);
16603 @@ -60098,7 +61308,7 @@ index d420331..2dbb3fd 100644
16604 if (!error)
16605 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
16606 sb_end_write(inode->i_sb);
16607 -@@ -360,6 +366,9 @@ retry:
16608 +@@ -361,6 +367,9 @@ retry:
16609 if (__mnt_is_readonly(path.mnt))
16610 res = -EROFS;
16611
16612 @@ -60108,7 +61318,7 @@ index d420331..2dbb3fd 100644
16613 out_path_release:
16614 path_put(&path);
16615 if (retry_estale(res, lookup_flags)) {
16616 -@@ -391,6 +400,8 @@ retry:
16617 +@@ -392,6 +401,8 @@ retry:
16618 if (error)
16619 goto dput_and_out;
16620
16621 @@ -60117,7 +61327,7 @@ index d420331..2dbb3fd 100644
16622 set_fs_pwd(current->fs, &path);
16623
16624 dput_and_out:
16625 -@@ -420,6 +431,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
16626 +@@ -421,6 +432,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
16627 goto out_putf;
16628
16629 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
16630 @@ -60131,7 +61341,7 @@ index d420331..2dbb3fd 100644
16631 if (!error)
16632 set_fs_pwd(current->fs, &f.file->f_path);
16633 out_putf:
16634 -@@ -449,7 +467,13 @@ retry:
16635 +@@ -450,7 +468,13 @@ retry:
16636 if (error)
16637 goto dput_and_out;
16638
16639 @@ -60145,9 +61355,9 @@ index d420331..2dbb3fd 100644
16640 error = 0;
16641 dput_and_out:
16642 path_put(&path);
16643 -@@ -471,6 +495,16 @@ static int chmod_common(struct path *path, umode_t mode)
16644 - if (error)
16645 +@@ -474,6 +498,16 @@ static int chmod_common(struct path *path, umode_t mode)
16646 return error;
16647 + retry_deleg:
16648 mutex_lock(&inode->i_mutex);
16649 +
16650 + if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
16651 @@ -60162,7 +61372,7 @@ index d420331..2dbb3fd 100644
16652 error = security_path_chmod(path, mode);
16653 if (error)
16654 goto out_unlock;
16655 -@@ -530,6 +564,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
16656 +@@ -539,6 +573,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
16657 uid = make_kuid(current_user_ns(), user);
16658 gid = make_kgid(current_user_ns(), group);
16659
16660 @@ -60172,7 +61382,7 @@ index d420331..2dbb3fd 100644
16661 newattrs.ia_valid = ATTR_CTIME;
16662 if (user != (uid_t) -1) {
16663 if (!uid_valid(uid))
16664 -@@ -974,6 +1011,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
16665 +@@ -990,6 +1027,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
16666 } else {
16667 fsnotify_open(f);
16668 fd_install(fd, f);
16669 @@ -60391,15 +61601,19 @@ index 0e0752e..7cfdd50 100644
16670 ret = -ERESTARTSYS;
16671 goto err;
16672 diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
16673 -index 15af622..0e9f4467 100644
16674 +index 2183fcf..3c32a98 100644
16675 --- a/fs/proc/Kconfig
16676 +++ b/fs/proc/Kconfig
16677 -@@ -30,12 +30,12 @@ config PROC_FS
16678 +@@ -30,7 +30,7 @@ config PROC_FS
16679
16680 config PROC_KCORE
16681 bool "/proc/kcore support" if !ARM
16682 - depends on PROC_FS && MMU
16683 + depends on PROC_FS && MMU && !GRKERNSEC_PROC_ADD
16684 + help
16685 + Provides a virtual ELF core file of the live kernel. This can
16686 + be read with gdb and other ELF tools. No modifications can be
16687 +@@ -38,8 +38,8 @@ config PROC_KCORE
16688
16689 config PROC_VMCORE
16690 bool "/proc/vmcore support"
16691 @@ -60410,7 +61624,7 @@ index 15af622..0e9f4467 100644
16692 help
16693 Exports the dump image of crashed kernel in ELF format.
16694
16695 -@@ -59,8 +59,8 @@ config PROC_SYSCTL
16696 +@@ -63,8 +63,8 @@ config PROC_SYSCTL
16697 limited in memory.
16698
16699 config PROC_PAGE_MONITOR
16700 @@ -60422,7 +61636,7 @@ index 15af622..0e9f4467 100644
16701 help
16702 Various /proc files exist to monitor process memory utilization:
16703 diff --git a/fs/proc/array.c b/fs/proc/array.c
16704 -index cbd0f1b..adec3f0 100644
16705 +index 1bd2077..2f7cfd5 100644
16706 --- a/fs/proc/array.c
16707 +++ b/fs/proc/array.c
16708 @@ -60,6 +60,7 @@
16709 @@ -60433,7 +61647,7 @@ index cbd0f1b..adec3f0 100644
16710 #include <linux/proc_fs.h>
16711 #include <linux/ioport.h>
16712 #include <linux/uaccess.h>
16713 -@@ -363,6 +364,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
16714 +@@ -365,6 +366,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
16715 seq_putc(m, '\n');
16716 }
16717
16718 @@ -60455,7 +61669,7 @@ index cbd0f1b..adec3f0 100644
16719 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
16720 struct pid *pid, struct task_struct *task)
16721 {
16722 -@@ -381,9 +397,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
16723 +@@ -383,9 +399,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
16724 task_cpus_allowed(m, task);
16725 cpuset_task_status_allowed(m, task);
16726 task_context_switch_counts(m, task);
16727 @@ -60480,7 +61694,7 @@ index cbd0f1b..adec3f0 100644
16728 static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16729 struct pid *pid, struct task_struct *task, int whole)
16730 {
16731 -@@ -405,6 +436,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16732 +@@ -407,6 +438,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16733 char tcomm[sizeof(task->comm)];
16734 unsigned long flags;
16735
16736 @@ -60494,7 +61708,7 @@ index cbd0f1b..adec3f0 100644
16737 state = *get_task_state(task);
16738 vsize = eip = esp = 0;
16739 permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
16740 -@@ -476,6 +514,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16741 +@@ -478,6 +516,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16742 gtime = task_gtime(task);
16743 }
16744
16745 @@ -60514,7 +61728,7 @@ index cbd0f1b..adec3f0 100644
16746 /* scale priority and nice values from timeslices to -20..20 */
16747 /* to make it look like a "normal" Unix priority/nice value */
16748 priority = task_prio(task);
16749 -@@ -512,9 +563,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16750 +@@ -514,9 +565,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16751 seq_put_decimal_ull(m, ' ', vsize);
16752 seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
16753 seq_put_decimal_ull(m, ' ', rsslim);
16754 @@ -60530,7 +61744,7 @@ index cbd0f1b..adec3f0 100644
16755 seq_put_decimal_ull(m, ' ', esp);
16756 seq_put_decimal_ull(m, ' ', eip);
16757 /* The signal information here is obsolete.
16758 -@@ -536,7 +593,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16759 +@@ -538,7 +595,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
16760 seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
16761 seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
16762
16763 @@ -60543,7 +61757,7 @@ index cbd0f1b..adec3f0 100644
16764 seq_put_decimal_ull(m, ' ', mm->start_data);
16765 seq_put_decimal_ull(m, ' ', mm->end_data);
16766 seq_put_decimal_ull(m, ' ', mm->start_brk);
16767 -@@ -574,8 +635,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
16768 +@@ -576,8 +637,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
16769 struct pid *pid, struct task_struct *task)
16770 {
16771 unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
16772 @@ -60560,7 +61774,7 @@ index cbd0f1b..adec3f0 100644
16773 if (mm) {
16774 size = task_statm(mm, &shared, &text, &data, &resident);
16775 mmput(mm);
16776 -@@ -598,6 +666,13 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
16777 +@@ -600,6 +668,13 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
16778 return 0;
16779 }
16780
16781 @@ -60575,7 +61789,7 @@ index cbd0f1b..adec3f0 100644
16782 static struct pid *
16783 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
16784 diff --git a/fs/proc/base.c b/fs/proc/base.c
16785 -index 1485e38..8ad4236 100644
16786 +index 03c8d74..4efb575 100644
16787 --- a/fs/proc/base.c
16788 +++ b/fs/proc/base.c
16789 @@ -113,6 +113,14 @@ struct pid_entry {
16790 @@ -60801,7 +62015,7 @@ index 1485e38..8ad4236 100644
16791
16792 if (src >= (mm->env_end - mm->env_start))
16793 break;
16794 -@@ -1461,7 +1547,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
16795 +@@ -1467,7 +1553,7 @@ static void *proc_pid_follow_link(struct dentry *dentry, struct nameidata *nd)
16796 int error = -EACCES;
16797
16798 /* Are we allowed to snoop on the tasks file descriptors? */
16799 @@ -60810,7 +62024,7 @@ index 1485e38..8ad4236 100644
16800 goto out;
16801
16802 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
16803 -@@ -1505,8 +1591,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
16804 +@@ -1511,8 +1597,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
16805 struct path path;
16806
16807 /* Are we allowed to snoop on the tasks file descriptors? */
16808 @@ -60831,7 +62045,7 @@ index 1485e38..8ad4236 100644
16809
16810 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
16811 if (error)
16812 -@@ -1556,7 +1652,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
16813 +@@ -1562,7 +1658,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
16814 rcu_read_lock();
16815 cred = __task_cred(task);
16816 inode->i_uid = cred->euid;
16817 @@ -60843,7 +62057,7 @@ index 1485e38..8ad4236 100644
16818 rcu_read_unlock();
16819 }
16820 security_task_to_inode(task, inode);
16821 -@@ -1592,10 +1692,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
16822 +@@ -1598,10 +1698,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
16823 return -ENOENT;
16824 }
16825 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
16826 @@ -60863,7 +62077,7 @@ index 1485e38..8ad4236 100644
16827 }
16828 }
16829 rcu_read_unlock();
16830 -@@ -1633,11 +1742,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
16831 +@@ -1639,11 +1748,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
16832
16833 if (task) {
16834 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
16835 @@ -60884,7 +62098,7 @@ index 1485e38..8ad4236 100644
16836 rcu_read_unlock();
16837 } else {
16838 inode->i_uid = GLOBAL_ROOT_UID;
16839 -@@ -2166,6 +2284,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
16840 +@@ -2172,6 +2290,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
16841 if (!task)
16842 goto out_no_task;
16843
16844 @@ -60894,7 +62108,7 @@ index 1485e38..8ad4236 100644
16845 /*
16846 * Yes, it does not scale. And it should not. Don't add
16847 * new entries into /proc/<tgid>/ without very good reasons.
16848 -@@ -2196,6 +2317,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
16849 +@@ -2202,6 +2323,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
16850 if (!task)
16851 return -ENOENT;
16852
16853 @@ -60904,7 +62118,7 @@ index 1485e38..8ad4236 100644
16854 if (!dir_emit_dots(file, ctx))
16855 goto out;
16856
16857 -@@ -2585,7 +2709,7 @@ static const struct pid_entry tgid_base_stuff[] = {
16858 +@@ -2591,7 +2715,7 @@ static const struct pid_entry tgid_base_stuff[] = {
16859 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
16860 #endif
16861 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
16862 @@ -60913,7 +62127,7 @@ index 1485e38..8ad4236 100644
16863 INF("syscall", S_IRUGO, proc_pid_syscall),
16864 #endif
16865 INF("cmdline", S_IRUGO, proc_pid_cmdline),
16866 -@@ -2610,10 +2734,10 @@ static const struct pid_entry tgid_base_stuff[] = {
16867 +@@ -2616,10 +2740,10 @@ static const struct pid_entry tgid_base_stuff[] = {
16868 #ifdef CONFIG_SECURITY
16869 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
16870 #endif
16871 @@ -60926,7 +62140,7 @@ index 1485e38..8ad4236 100644
16872 ONE("stack", S_IRUGO, proc_pid_stack),
16873 #endif
16874 #ifdef CONFIG_SCHEDSTATS
16875 -@@ -2647,6 +2771,9 @@ static const struct pid_entry tgid_base_stuff[] = {
16876 +@@ -2653,6 +2777,9 @@ static const struct pid_entry tgid_base_stuff[] = {
16877 #ifdef CONFIG_HARDWALL
16878 INF("hardwall", S_IRUGO, proc_pid_hardwall),
16879 #endif
16880 @@ -60936,7 +62150,7 @@ index 1485e38..8ad4236 100644
16881 #ifdef CONFIG_USER_NS
16882 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
16883 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
16884 -@@ -2777,7 +2904,14 @@ static int proc_pid_instantiate(struct inode *dir,
16885 +@@ -2783,7 +2910,14 @@ static int proc_pid_instantiate(struct inode *dir,
16886 if (!inode)
16887 goto out;
16888
16889 @@ -60951,7 +62165,7 @@ index 1485e38..8ad4236 100644
16890 inode->i_op = &proc_tgid_base_inode_operations;
16891 inode->i_fop = &proc_tgid_base_operations;
16892 inode->i_flags|=S_IMMUTABLE;
16893 -@@ -2815,7 +2949,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
16894 +@@ -2821,7 +2955,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
16895 if (!task)
16896 goto out;
16897
16898 @@ -60963,7 +62177,7 @@ index 1485e38..8ad4236 100644
16899 put_task_struct(task);
16900 out:
16901 return ERR_PTR(result);
16902 -@@ -2921,7 +3059,7 @@ static const struct pid_entry tid_base_stuff[] = {
16903 +@@ -2927,7 +3065,7 @@ static const struct pid_entry tid_base_stuff[] = {
16904 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
16905 #endif
16906 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
16907 @@ -60972,7 +62186,7 @@ index 1485e38..8ad4236 100644
16908 INF("syscall", S_IRUGO, proc_pid_syscall),
16909 #endif
16910 INF("cmdline", S_IRUGO, proc_pid_cmdline),
16911 -@@ -2948,10 +3086,10 @@ static const struct pid_entry tid_base_stuff[] = {
16912 +@@ -2954,10 +3092,10 @@ static const struct pid_entry tid_base_stuff[] = {
16913 #ifdef CONFIG_SECURITY
16914 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
16915 #endif
16916 @@ -61056,7 +62270,7 @@ index 985ea88..d118a0a 100644
16917 }
16918
16919 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
16920 -index 8eaa1ba..cc6ff42 100644
16921 +index 124fc43..8afbb02 100644
16922 --- a/fs/proc/inode.c
16923 +++ b/fs/proc/inode.c
16924 @@ -23,11 +23,17 @@
16925 @@ -61091,7 +62305,7 @@ index 8eaa1ba..cc6ff42 100644
16926 }
16927
16928 static struct kmem_cache * proc_inode_cachep;
16929 -@@ -405,7 +418,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
16930 +@@ -413,7 +426,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
16931 if (de->mode) {
16932 inode->i_mode = de->mode;
16933 inode->i_uid = de->uid;
16934 @@ -61104,9 +62318,27 @@ index 8eaa1ba..cc6ff42 100644
16935 if (de->size)
16936 inode->i_size = de->size;
16937 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
16938 -index 651d09a..60c73ae 100644
16939 +index 651d09a..3d7f0bf 100644
16940 --- a/fs/proc/internal.h
16941 +++ b/fs/proc/internal.h
16942 +@@ -48,7 +48,7 @@ struct proc_dir_entry {
16943 + spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
16944 + u8 namelen;
16945 + char name[];
16946 +-};
16947 ++} __randomize_layout;
16948 +
16949 + union proc_op {
16950 + int (*proc_get_link)(struct dentry *, struct path *);
16951 +@@ -67,7 +67,7 @@ struct proc_inode {
16952 + struct ctl_table *sysctl_entry;
16953 + struct proc_ns ns;
16954 + struct inode vfs_inode;
16955 +-};
16956 ++} __randomize_layout;
16957 +
16958 + /*
16959 + * General functions
16960 @@ -155,6 +155,9 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
16961 struct pid *, struct task_struct *);
16962 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
16963 @@ -61134,10 +62366,10 @@ index 05029c0..7ea1987 100644
16964 }
16965 module_init(proc_interrupts_init);
16966 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
16967 -index 06ea155..9a798c7 100644
16968 +index 5ed0e52..a1c1f2e 100644
16969 --- a/fs/proc/kcore.c
16970 +++ b/fs/proc/kcore.c
16971 -@@ -484,9 +484,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16972 +@@ -483,9 +483,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16973 * the addresses in the elf_phdr on our list.
16974 */
16975 start = kc_offset_to_vaddr(*fpos - elf_buflen);
16976 @@ -61150,7 +62382,7 @@ index 06ea155..9a798c7 100644
16977 while (buflen) {
16978 struct kcore_list *m;
16979
16980 -@@ -515,20 +516,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16981 +@@ -514,20 +515,23 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16982 kfree(elf_buf);
16983 } else {
16984 if (kern_addr_valid(start)) {
16985 @@ -61185,7 +62417,7 @@ index 06ea155..9a798c7 100644
16986 } else {
16987 if (clear_user(buffer, tsz))
16988 return -EFAULT;
16989 -@@ -548,6 +552,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16990 +@@ -547,6 +551,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
16991
16992 static int open_kcore(struct inode *inode, struct file *filp)
16993 {
16994 @@ -61196,10 +62428,10 @@ index 06ea155..9a798c7 100644
16995 return -EPERM;
16996 if (kcore_need_update)
16997 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
16998 -index 59d85d6..ac6fc05 100644
16999 +index a77d2b2..a9153f0 100644
17000 --- a/fs/proc/meminfo.c
17001 +++ b/fs/proc/meminfo.c
17002 -@@ -153,7 +153,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
17003 +@@ -150,7 +150,7 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
17004 vmi.used >> 10,
17005 vmi.largest_chunk >> 10
17006 #ifdef CONFIG_MEMORY_FAILURE
17007 @@ -61209,13 +62441,13 @@ index 59d85d6..ac6fc05 100644
17008 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
17009 ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
17010 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
17011 -index ccfd99b..1b7e255 100644
17012 +index 5f9bc8a..5c35f08 100644
17013 --- a/fs/proc/nommu.c
17014 +++ b/fs/proc/nommu.c
17015 -@@ -66,7 +66,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
17016 - if (len < 1)
17017 - len = 1;
17018 - seq_printf(m, "%*c", len, ' ');
17019 +@@ -64,7 +64,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
17020 +
17021 + if (file) {
17022 + seq_pad(m, ' ');
17023 - seq_path(m, &file->f_path, "");
17024 + seq_path(m, &file->f_path, "\n\\");
17025 }
17026 @@ -61469,19 +62701,6 @@ index 87dbcbe..55e1b4d 100644
17027 proc_sys_init();
17028 }
17029
17030 -diff --git a/fs/proc/self.c b/fs/proc/self.c
17031 -index 6b6a993..807cccc 100644
17032 ---- a/fs/proc/self.c
17033 -+++ b/fs/proc/self.c
17034 -@@ -39,7 +39,7 @@ static void *proc_self_follow_link(struct dentry *dentry, struct nameidata *nd)
17035 - static void proc_self_put_link(struct dentry *dentry, struct nameidata *nd,
17036 - void *cookie)
17037 - {
17038 -- char *s = nd_get_link(nd);
17039 -+ const char *s = nd_get_link(nd);
17040 - if (!IS_ERR(s))
17041 - kfree(s);
17042 - }
17043 diff --git a/fs/proc/stat.c b/fs/proc/stat.c
17044 index 1cf86c0..0ee1ca5 100644
17045 --- a/fs/proc/stat.c
17046 @@ -61571,7 +62790,7 @@ index 1cf86c0..0ee1ca5 100644
17047 seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
17048
17049 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
17050 -index 390bdab..83c1e8a 100644
17051 +index fb52b54..5fc7c14 100644
17052 --- a/fs/proc/task_mmu.c
17053 +++ b/fs/proc/task_mmu.c
17054 @@ -12,12 +12,19 @@
17055 @@ -61610,10 +62829,10 @@ index 390bdab..83c1e8a 100644
17056 total_vm << (PAGE_SHIFT-10),
17057 mm->locked_vm << (PAGE_SHIFT-10),
17058 mm->pinned_vm << (PAGE_SHIFT-10),
17059 -@@ -63,7 +75,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
17060 - data << (PAGE_SHIFT-10),
17061 +@@ -64,7 +76,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
17062 mm->stack_vm << (PAGE_SHIFT-10), text, lib,
17063 - (PTRS_PER_PTE*sizeof(pte_t)*mm->nr_ptes) >> 10,
17064 + (PTRS_PER_PTE * sizeof(pte_t) *
17065 + atomic_long_read(&mm->nr_ptes)) >> 10,
17066 - swap << (PAGE_SHIFT-10));
17067 + swap << (PAGE_SHIFT-10)
17068 +
17069 @@ -61631,7 +62850,7 @@ index 390bdab..83c1e8a 100644
17070 }
17071
17072 unsigned long task_vsize(struct mm_struct *mm)
17073 -@@ -278,13 +302,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17074 +@@ -270,13 +294,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17075 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
17076 }
17077
17078 @@ -61648,9 +62867,9 @@ index 390bdab..83c1e8a 100644
17079 - end -= PAGE_SIZE;
17080 +#endif
17081
17082 - seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
17083 - start,
17084 -@@ -293,7 +317,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17085 + seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
17086 + seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
17087 +@@ -286,7 +310,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17088 flags & VM_WRITE ? 'w' : '-',
17089 flags & VM_EXEC ? 'x' : '-',
17090 flags & VM_MAYSHARE ? 's' : 'p',
17091 @@ -61659,19 +62878,19 @@ index 390bdab..83c1e8a 100644
17092 +#else
17093 pgoff,
17094 +#endif
17095 - MAJOR(dev), MINOR(dev), ino, &len);
17096 + MAJOR(dev), MINOR(dev), ino);
17097
17098 /*
17099 -@@ -302,7 +330,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17100 +@@ -295,7 +323,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17101 */
17102 if (file) {
17103 - pad_len_spaces(m, len);
17104 + seq_pad(m, ' ');
17105 - seq_path(m, &file->f_path, "\n");
17106 + seq_path(m, &file->f_path, "\n\\");
17107 goto done;
17108 }
17109
17110 -@@ -328,8 +356,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17111 +@@ -321,8 +349,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
17112 * Thread stack in /proc/PID/task/TID/maps or
17113 * the main process stack.
17114 */
17115 @@ -61683,7 +62902,7 @@ index 390bdab..83c1e8a 100644
17116 name = "[stack]";
17117 } else {
17118 /* Thread stack in /proc/PID/maps */
17119 -@@ -353,6 +382,13 @@ static int show_map(struct seq_file *m, void *v, int is_pid)
17120 +@@ -346,6 +375,13 @@ static int show_map(struct seq_file *m, void *v, int is_pid)
17121 struct proc_maps_private *priv = m->private;
17122 struct task_struct *task = priv->task;
17123
17124 @@ -61697,7 +62916,7 @@ index 390bdab..83c1e8a 100644
17125 show_map_vma(m, vma, is_pid);
17126
17127 if (m->count < m->size) /* vma is copied successfully */
17128 -@@ -590,12 +626,23 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
17129 +@@ -586,12 +622,23 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
17130 .private = &mss,
17131 };
17132
17133 @@ -61726,7 +62945,7 @@ index 390bdab..83c1e8a 100644
17134 show_map_vma(m, vma, is_pid);
17135
17136 seq_printf(m,
17137 -@@ -613,7 +660,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
17138 +@@ -609,7 +656,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
17139 "KernelPageSize: %8lu kB\n"
17140 "MMUPageSize: %8lu kB\n"
17141 "Locked: %8lu kB\n",
17142 @@ -61738,9 +62957,9 @@ index 390bdab..83c1e8a 100644
17143 mss.resident >> 10,
17144 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
17145 mss.shared_clean >> 10,
17146 -@@ -1390,6 +1441,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
17147 - int n;
17148 - char buffer[50];
17149 +@@ -1387,6 +1438,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
17150 + char buffer[64];
17151 + int nid;
17152
17153 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
17154 + if (current->exec_id != m->exec_id) {
17155 @@ -61752,9 +62971,9 @@ index 390bdab..83c1e8a 100644
17156 if (!mm)
17157 return 0;
17158
17159 -@@ -1409,11 +1467,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
17160 - if (n < 0)
17161 - return n;
17162 +@@ -1404,11 +1462,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
17163 + mpol_to_str(buffer, sizeof(buffer), pol);
17164 + mpol_cond_put(pol);
17165
17166 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
17167 + seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
17168 @@ -61770,7 +62989,7 @@ index 390bdab..83c1e8a 100644
17169 seq_printf(m, " heap");
17170 } else {
17171 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
17172 -index 56123a6..5a2f6ec 100644
17173 +index 678455d..ebd3245 100644
17174 --- a/fs/proc/task_nommu.c
17175 +++ b/fs/proc/task_nommu.c
17176 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
17177 @@ -61782,17 +63001,17 @@ index 56123a6..5a2f6ec 100644
17178 sbytes += kobjsize(current->fs);
17179 else
17180 bytes += kobjsize(current->fs);
17181 -@@ -168,7 +168,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
17182 +@@ -161,7 +161,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
17183
17184 if (file) {
17185 - pad_len_spaces(m, len);
17186 + seq_pad(m, ' ');
17187 - seq_path(m, &file->f_path, "");
17188 + seq_path(m, &file->f_path, "\n\\");
17189 } else if (mm) {
17190 pid_t tid = vm_is_stack(priv->task, vma, is_pid);
17191
17192 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
17193 -index 9100d69..f1f9fc9 100644
17194 +index 9100d69..51cd925 100644
17195 --- a/fs/proc/vmcore.c
17196 +++ b/fs/proc/vmcore.c
17197 @@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
17198 @@ -61812,6 +63031,15 @@ index 9100d69..f1f9fc9 100644
17199 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
17200 offset, userbuf);
17201 if (tmp < 0)
17202 +@@ -170,7 +174,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
17203 + static int copy_to(void *target, void *src, size_t size, int userbuf)
17204 + {
17205 + if (userbuf) {
17206 +- if (copy_to_user((char __user *) target, src, size))
17207 ++ if (copy_to_user((char __force_user *) target, src, size))
17208 + return -EFAULT;
17209 + } else {
17210 + memcpy(target, src, size);
17211 @@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
17212 if (*fpos < m->offset + m->size) {
17213 tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
17214 @@ -61821,6 +63049,15 @@ index 9100d69..f1f9fc9 100644
17215 if (tmp < 0)
17216 return tmp;
17217 buflen -= tsz;
17218 +@@ -253,7 +257,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
17219 + static ssize_t read_vmcore(struct file *file, char __user *buffer,
17220 + size_t buflen, loff_t *fpos)
17221 + {
17222 +- return __read_vmcore((__force char *) buffer, buflen, fpos, 1);
17223 ++ return __read_vmcore((__force_kernel char *) buffer, buflen, fpos, 1);
17224 + }
17225 +
17226 + /*
17227 diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h
17228 index b00fcc9..e0c6381 100644
17229 --- a/fs/qnx6/qnx6.h
17230 @@ -61844,10 +63081,10 @@ index b00fcc9..e0c6381 100644
17231 if (sbi->s_bytesex == BYTESEX_LE)
17232 return le32_to_cpu((__force __le32)n);
17233 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
17234 -index 16e8abb..2dcf914 100644
17235 +index 72d2917..c917c12 100644
17236 --- a/fs/quota/netlink.c
17237 +++ b/fs/quota/netlink.c
17238 -@@ -33,7 +33,7 @@ static struct genl_family quota_genl_family = {
17239 +@@ -45,7 +45,7 @@ static struct genl_family quota_genl_family = {
17240 void quota_send_warning(struct kqid qid, dev_t dev,
17241 const char warntype)
17242 {
17243 @@ -61856,7 +63093,7 @@ index 16e8abb..2dcf914 100644
17244 struct sk_buff *skb;
17245 void *msg_head;
17246 int ret;
17247 -@@ -49,7 +49,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
17248 +@@ -61,7 +61,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
17249 "VFS: Not enough memory to send quota warning.\n");
17250 return;
17251 }
17252 @@ -61866,7 +63103,7 @@ index 16e8abb..2dcf914 100644
17253 if (!msg_head) {
17254 printk(KERN_ERR
17255 diff --git a/fs/read_write.c b/fs/read_write.c
17256 -index e3cd280..a378473 100644
17257 +index 58e440d..8ec2838 100644
17258 --- a/fs/read_write.c
17259 +++ b/fs/read_write.c
17260 @@ -438,7 +438,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
17261 @@ -61879,7 +63116,7 @@ index e3cd280..a378473 100644
17262 count = MAX_RW_COUNT;
17263 if (file->f_op->write)
17264 diff --git a/fs/readdir.c b/fs/readdir.c
17265 -index 93d71e5..6a14be8 100644
17266 +index 5b53d99..a6c3049 100644
17267 --- a/fs/readdir.c
17268 +++ b/fs/readdir.c
17269 @@ -17,6 +17,7 @@
17270 @@ -61984,6 +63221,40 @@ index 2b7882b..1c5ef48 100644
17271 do_balance_starts(tb);
17272
17273 /* balance leaf returns 0 except if combining L R and S into
17274 +diff --git a/fs/reiserfs/item_ops.c b/fs/reiserfs/item_ops.c
17275 +index ee382ef..f4eb6eb5 100644
17276 +--- a/fs/reiserfs/item_ops.c
17277 ++++ b/fs/reiserfs/item_ops.c
17278 +@@ -725,18 +725,18 @@ static void errcatch_print_vi(struct virtual_item *vi)
17279 + }
17280 +
17281 + static struct item_operations errcatch_ops = {
17282 +- errcatch_bytes_number,
17283 +- errcatch_decrement_key,
17284 +- errcatch_is_left_mergeable,
17285 +- errcatch_print_item,
17286 +- errcatch_check_item,
17287 ++ .bytes_number = errcatch_bytes_number,
17288 ++ .decrement_key = errcatch_decrement_key,
17289 ++ .is_left_mergeable = errcatch_is_left_mergeable,
17290 ++ .print_item = errcatch_print_item,
17291 ++ .check_item = errcatch_check_item,
17292 +
17293 +- errcatch_create_vi,
17294 +- errcatch_check_left,
17295 +- errcatch_check_right,
17296 +- errcatch_part_size,
17297 +- errcatch_unit_num,
17298 +- errcatch_print_vi
17299 ++ .create_vi = errcatch_create_vi,
17300 ++ .check_left = errcatch_check_left,
17301 ++ .check_right = errcatch_check_right,
17302 ++ .part_size = errcatch_part_size,
17303 ++ .unit_num = errcatch_unit_num,
17304 ++ .print_vi = errcatch_print_vi
17305 + };
17306 +
17307 + //////////////////////////////////////////////////////////////////////////////
17308 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
17309 index a958444..42b2323 100644
17310 --- a/fs/reiserfs/procfs.c
17311 @@ -62020,7 +63291,7 @@ index f8adaee..0eeeeca 100644
17312 #define __fs_changed(gen,s) (gen != get_generation (s))
17313 #define fs_changed(gen,s) \
17314 diff --git a/fs/select.c b/fs/select.c
17315 -index dfd5cb1..1754d57 100644
17316 +index 467bb1c..cf9d65a 100644
17317 --- a/fs/select.c
17318 +++ b/fs/select.c
17319 @@ -20,6 +20,7 @@
17320 @@ -62040,7 +63311,7 @@ index dfd5cb1..1754d57 100644
17321 return -EINVAL;
17322
17323 diff --git a/fs/seq_file.c b/fs/seq_file.c
17324 -index a290157..ec3211a 100644
17325 +index 1d641bb..e600623 100644
17326 --- a/fs/seq_file.c
17327 +++ b/fs/seq_file.c
17328 @@ -10,6 +10,7 @@
17329 @@ -62070,16 +63341,16 @@ index a290157..ec3211a 100644
17330 if (!m->buf)
17331 return -ENOMEM;
17332 }
17333 -@@ -136,7 +140,7 @@ static int traverse(struct seq_file *m, loff_t offset)
17334 - Eoverflow:
17335 +@@ -137,7 +141,7 @@ Eoverflow:
17336 m->op->stop(m, p);
17337 kfree(m->buf);
17338 + m->count = 0;
17339 - m->buf = kmalloc(m->size <<= 1, GFP_KERNEL);
17340 + m->buf = kmalloc(m->size <<= 1, GFP_KERNEL | GFP_USERCOPY);
17341 return !m->buf ? -ENOMEM : -EAGAIN;
17342 }
17343
17344 -@@ -152,7 +156,7 @@ Eoverflow:
17345 +@@ -153,7 +157,7 @@ Eoverflow:
17346 ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
17347 {
17348 struct seq_file *m = file->private_data;
17349 @@ -62088,7 +63359,7 @@ index a290157..ec3211a 100644
17350 loff_t pos;
17351 size_t n;
17352 void *p;
17353 -@@ -191,7 +195,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
17354 +@@ -192,7 +196,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
17355
17356 /* grab buffer if we didn't have one */
17357 if (!m->buf) {
17358 @@ -62097,16 +63368,16 @@ index a290157..ec3211a 100644
17359 if (!m->buf)
17360 goto Enomem;
17361 }
17362 -@@ -232,7 +236,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
17363 - goto Fill;
17364 +@@ -234,7 +238,7 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
17365 m->op->stop(m, p);
17366 kfree(m->buf);
17367 + m->count = 0;
17368 - m->buf = kmalloc(m->size <<= 1, GFP_KERNEL);
17369 + m->buf = kmalloc(m->size <<= 1, GFP_KERNEL | GFP_USERCOPY);
17370 if (!m->buf)
17371 goto Enomem;
17372 - m->count = 0;
17373 -@@ -583,7 +587,7 @@ static void single_stop(struct seq_file *p, void *v)
17374 + m->version = 0;
17375 +@@ -584,7 +588,7 @@ static void single_stop(struct seq_file *p, void *v)
17376 int single_open(struct file *file, int (*show)(struct seq_file *, void *),
17377 void *data)
17378 {
17379 @@ -62116,7 +63387,7 @@ index a290157..ec3211a 100644
17380
17381 if (op) {
17382 diff --git a/fs/splice.c b/fs/splice.c
17383 -index 3b7ee65..87fc2e4 100644
17384 +index 46a08f7..bb163cc 100644
17385 --- a/fs/splice.c
17386 +++ b/fs/splice.c
17387 @@ -196,7 +196,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
17388 @@ -62322,41 +63593,20 @@ index ae0c3ce..9ee641c 100644
17389
17390 generic_fillattr(inode, stat);
17391 return 0;
17392 -diff --git a/fs/sysfs/bin.c b/fs/sysfs/bin.c
17393 -index c590cab..6dfd6fc 100644
17394 ---- a/fs/sysfs/bin.c
17395 -+++ b/fs/sysfs/bin.c
17396 -@@ -234,13 +234,13 @@ static int bin_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
17397 - return ret;
17398 - }
17399 -
17400 --static int bin_access(struct vm_area_struct *vma, unsigned long addr,
17401 -- void *buf, int len, int write)
17402 -+static ssize_t bin_access(struct vm_area_struct *vma, unsigned long addr,
17403 -+ void *buf, size_t len, int write)
17404 - {
17405 - struct file *file = vma->vm_file;
17406 - struct bin_buffer *bb = file->private_data;
17407 - struct sysfs_dirent *attr_sd = file->f_path.dentry->d_fsdata;
17408 -- int ret;
17409 -+ ssize_t ret;
17410 -
17411 - if (!bb->vm_ops)
17412 - return -EINVAL;
17413 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
17414 -index 4d83ced..049dc45 100644
17415 +index 5e73d66..4f165fd 100644
17416 --- a/fs/sysfs/dir.c
17417 +++ b/fs/sysfs/dir.c
17418 @@ -40,7 +40,7 @@ static DEFINE_IDA(sysfs_ino_ida);
17419 *
17420 * Returns 31 bit hash of ns + name (so it fits in an off_t )
17421 */
17422 --static unsigned int sysfs_name_hash(const void *ns, const char *name)
17423 -+static unsigned int sysfs_name_hash(const void *ns, const unsigned char *name)
17424 +-static unsigned int sysfs_name_hash(const char *name, const void *ns)
17425 ++static unsigned int sysfs_name_hash(const unsigned char *name, const void *ns)
17426 {
17427 unsigned long hash = init_name_hash();
17428 unsigned int len = strlen(name);
17429 -@@ -675,6 +675,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
17430 +@@ -676,6 +676,18 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
17431 struct sysfs_dirent *sd;
17432 int rc;
17433
17434 @@ -62376,46 +63626,62 @@ index 4d83ced..049dc45 100644
17435 sd = sysfs_new_dirent(name, mode, SYSFS_DIR);
17436 if (!sd)
17437 diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
17438 -index 15ef5eb..e474372 100644
17439 +index 35e7d08..4d6e676 100644
17440 --- a/fs/sysfs/file.c
17441 +++ b/fs/sysfs/file.c
17442 -@@ -37,7 +37,7 @@ static DEFINE_SPINLOCK(sysfs_open_dirent_lock);
17443 +@@ -42,7 +42,7 @@ static DEFINE_MUTEX(sysfs_open_file_mutex);
17444
17445 struct sysfs_open_dirent {
17446 atomic_t refcnt;
17447 - atomic_t event;
17448 + atomic_unchecked_t event;
17449 wait_queue_head_t poll;
17450 - struct list_head buffers; /* goes through sysfs_buffer.list */
17451 + struct list_head files; /* goes through sysfs_open_file.list */
17452 };
17453 -@@ -81,7 +81,7 @@ static int fill_read_buffer(struct dentry *dentry, struct sysfs_buffer *buffer)
17454 - if (!sysfs_get_active(attr_sd))
17455 +@@ -112,7 +112,7 @@ static int sysfs_seq_show(struct seq_file *sf, void *v)
17456 return -ENODEV;
17457 + }
17458
17459 -- buffer->event = atomic_read(&attr_sd->s_attr.open->event);
17460 -+ buffer->event = atomic_read_unchecked(&attr_sd->s_attr.open->event);
17461 - count = ops->show(kobj, attr_sd->s_attr.attr, buffer->page);
17462 +- of->event = atomic_read(&of->sd->s_attr.open->event);
17463 ++ of->event = atomic_read_unchecked(&of->sd->s_attr.open->event);
17464
17465 - sysfs_put_active(attr_sd);
17466 -@@ -284,7 +284,7 @@ static int sysfs_get_open_dirent(struct sysfs_dirent *sd,
17467 + /*
17468 + * Lookup @ops and invoke show(). Control may reach here via seq
17469 +@@ -365,12 +365,12 @@ static int sysfs_bin_page_mkwrite(struct vm_area_struct *vma,
17470 + return ret;
17471 + }
17472 +
17473 +-static int sysfs_bin_access(struct vm_area_struct *vma, unsigned long addr,
17474 +- void *buf, int len, int write)
17475 ++static ssize_t sysfs_bin_access(struct vm_area_struct *vma, unsigned long addr,
17476 ++ void *buf, size_t len, int write)
17477 + {
17478 + struct file *file = vma->vm_file;
17479 + struct sysfs_open_file *of = sysfs_of(file);
17480 +- int ret;
17481 ++ ssize_t ret;
17482 +
17483 + if (!of->vm_ops)
17484 + return -EINVAL;
17485 +@@ -564,7 +564,7 @@ static int sysfs_get_open_dirent(struct sysfs_dirent *sd,
17486 return -ENOMEM;
17487
17488 atomic_set(&new_od->refcnt, 0);
17489 - atomic_set(&new_od->event, 1);
17490 + atomic_set_unchecked(&new_od->event, 1);
17491 init_waitqueue_head(&new_od->poll);
17492 - INIT_LIST_HEAD(&new_od->buffers);
17493 + INIT_LIST_HEAD(&new_od->files);
17494 goto retry;
17495 -@@ -430,7 +430,7 @@ static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
17496 +@@ -768,7 +768,7 @@ static unsigned int sysfs_poll(struct file *filp, poll_table *wait)
17497
17498 sysfs_put_active(attr_sd);
17499
17500 -- if (buffer->event != atomic_read(&od->event))
17501 -+ if (buffer->event != atomic_read_unchecked(&od->event))
17502 +- if (of->event != atomic_read(&od->event))
17503 ++ if (of->event != atomic_read_unchecked(&od->event))
17504 goto trigger;
17505
17506 return DEFAULT_POLLMASK;
17507 -@@ -450,7 +450,7 @@ void sysfs_notify_dirent(struct sysfs_dirent *sd)
17508 +@@ -787,7 +787,7 @@ void sysfs_notify_dirent(struct sysfs_dirent *sd)
17509 if (!WARN_ON(sysfs_type(sd) != SYSFS_KOBJ_ATTR)) {
17510 od = sd->s_attr.open;
17511 if (od) {
17512 @@ -62425,10 +63691,10 @@ index 15ef5eb..e474372 100644
17513 }
17514 }
17515 diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
17516 -index 2dd4507..62a215a 100644
17517 +index 3ae3f1b..081a26c 100644
17518 --- a/fs/sysfs/symlink.c
17519 +++ b/fs/sysfs/symlink.c
17520 -@@ -308,7 +308,7 @@ static void *sysfs_follow_link(struct dentry *dentry, struct nameidata *nd)
17521 +@@ -314,7 +314,7 @@ static void *sysfs_follow_link(struct dentry *dentry, struct nameidata *nd)
17522 static void sysfs_put_link(struct dentry *dentry, struct nameidata *nd,
17523 void *cookie)
17524 {
17525 @@ -62499,7 +63765,7 @@ index 8d974c4..b82f6ec 100644
17526 {
17527 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
17528 diff --git a/fs/utimes.c b/fs/utimes.c
17529 -index f4fb7ec..3fe03c0 100644
17530 +index aa138d6..5f3a811 100644
17531 --- a/fs/utimes.c
17532 +++ b/fs/utimes.c
17533 @@ -1,6 +1,7 @@
17534 @@ -62510,10 +63776,10 @@ index f4fb7ec..3fe03c0 100644
17535 #include <linux/linkage.h>
17536 #include <linux/mount.h>
17537 #include <linux/namei.h>
17538 -@@ -101,6 +102,12 @@ static int utimes_common(struct path *path, struct timespec *times)
17539 - goto mnt_drop_write_and_out;
17540 +@@ -103,6 +104,12 @@ static int utimes_common(struct path *path, struct timespec *times)
17541 }
17542 }
17543 + retry_deleg:
17544 +
17545 + if (!gr_acl_handle_utime(path->dentry, path->mnt)) {
17546 + error = -EACCES;
17547 @@ -62521,7 +63787,7 @@ index f4fb7ec..3fe03c0 100644
17548 + }
17549 +
17550 mutex_lock(&inode->i_mutex);
17551 - error = notify_change(path->dentry, &newattrs);
17552 + error = notify_change(path->dentry, &newattrs, &delegated_inode);
17553 mutex_unlock(&inode->i_mutex);
17554 diff --git a/fs/xattr.c b/fs/xattr.c
17555 index 3377dff..f394815 100644
17556 @@ -62690,24 +63956,11 @@ index 9fbea87..6b19972 100644
17557 int count;
17558 struct posix_acl *acl;
17559 struct posix_acl_entry *acl_e;
17560 -diff --git a/fs/xfs/xfs_attr_remote.c b/fs/xfs/xfs_attr_remote.c
17561 -index 712a502..18180a3 100644
17562 ---- a/fs/xfs/xfs_attr_remote.c
17563 -+++ b/fs/xfs/xfs_attr_remote.c
17564 -@@ -110,7 +110,7 @@ xfs_attr3_rmt_verify(
17565 - if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt))
17566 - return false;
17567 - if (be32_to_cpu(rmt->rm_offset) +
17568 -- be32_to_cpu(rmt->rm_bytes) >= XATTR_SIZE_MAX)
17569 -+ be32_to_cpu(rmt->rm_bytes) > XATTR_SIZE_MAX)
17570 - return false;
17571 - if (rmt->rm_owner == 0)
17572 - return false;
17573 diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
17574 -index f47e65c..e7125d9 100644
17575 +index 3b2c14b..de031fe 100644
17576 --- a/fs/xfs/xfs_bmap.c
17577 +++ b/fs/xfs/xfs_bmap.c
17578 -@@ -586,7 +586,7 @@ xfs_bmap_validate_ret(
17579 +@@ -584,7 +584,7 @@ xfs_bmap_validate_ret(
17580
17581 #else
17582 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
17583 @@ -62717,12 +63970,12 @@ index f47e65c..e7125d9 100644
17584
17585 /*
17586 diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
17587 -index 8f84153..7ce60d0 100644
17588 +index c4e50c6..8ba93e3 100644
17589 --- a/fs/xfs/xfs_dir2_readdir.c
17590 +++ b/fs/xfs/xfs_dir2_readdir.c
17591 @@ -160,7 +160,12 @@ xfs_dir2_sf_getdents(
17592 - ino = xfs_dir3_sfe_get_ino(mp, sfp, sfep);
17593 - filetype = xfs_dir3_sfe_get_ftype(mp, sfp, sfep);
17594 + ino = dp->d_ops->sf_get_ino(sfp, sfep);
17595 + filetype = dp->d_ops->sf_get_ftype(sfep);
17596 ctx->pos = off & 0x7fffffff;
17597 - if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
17598 + if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
17599 @@ -62733,12 +63986,12 @@ index 8f84153..7ce60d0 100644
17600 + } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
17601 xfs_dir3_get_dtype(mp, filetype)))
17602 return 0;
17603 - sfep = xfs_dir3_sf_nextentry(mp, sfp, sfep);
17604 + sfep = dp->d_ops->sf_nextentry(sfp, sfep);
17605 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
17606 -index 8c8ef24..689f742 100644
17607 +index 33ad9a7..82c18ba 100644
17608 --- a/fs/xfs/xfs_ioctl.c
17609 +++ b/fs/xfs/xfs_ioctl.c
17610 -@@ -127,7 +127,7 @@ xfs_find_handle(
17611 +@@ -126,7 +126,7 @@ xfs_find_handle(
17612 }
17613
17614 error = -EFAULT;
17615 @@ -62748,10 +64001,10 @@ index 8c8ef24..689f742 100644
17616 goto out_put;
17617
17618 diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
17619 -index 2b8952d..a60c6be 100644
17620 +index 104455b..764c512 100644
17621 --- a/fs/xfs/xfs_iops.c
17622 +++ b/fs/xfs/xfs_iops.c
17623 -@@ -401,7 +401,7 @@ xfs_vn_put_link(
17624 +@@ -397,7 +397,7 @@ xfs_vn_put_link(
17625 struct nameidata *nd,
17626 void *p)
17627 {
17628 @@ -62762,10 +64015,10 @@ index 2b8952d..a60c6be 100644
17629 kfree(s);
17630 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
17631 new file mode 100644
17632 -index 0000000..5b2538b
17633 +index 0000000..c2c7f17
17634 --- /dev/null
17635 +++ b/grsecurity/Kconfig
17636 -@@ -0,0 +1,1116 @@
17637 +@@ -0,0 +1,1146 @@
17638 +#
17639 +# grecurity configuration
17640 +#
17641 @@ -62832,7 +64085,7 @@ index 0000000..5b2538b
17642 +config GRKERNSEC_JIT_HARDEN
17643 + bool "Harden BPF JIT against spray attacks"
17644 + default y if GRKERNSEC_CONFIG_AUTO
17645 -+ depends on BPF_JIT
17646 ++ depends on BPF_JIT && X86
17647 + help
17648 + If you say Y here, the native code generated by the kernel's Berkeley
17649 + Packet Filter (BPF) JIT engine will be hardened against JIT-spraying
17650 @@ -62926,7 +64179,6 @@ index 0000000..5b2538b
17651 + If the sysctl option is enabled, a sysctl option with name
17652 + "deter_bruteforce" is created.
17653 +
17654 -+
17655 +config GRKERNSEC_MODHARDEN
17656 + bool "Harden module auto-loading"
17657 + default y if GRKERNSEC_CONFIG_AUTO
17658 @@ -62979,6 +64231,37 @@ index 0000000..5b2538b
17659 + It is highly recommended that you enable GRKERNSEC_PERF_HARDEN
17660 + in addition to this feature.
17661 +
17662 ++config GRKERNSEC_RANDSTRUCT
17663 ++ bool "Randomize layout of sensitive kernel structures"
17664 ++ default y if GRKERNSEC_CONFIG_AUTO
17665 ++ select GRKERNSEC_HIDESYM
17666 ++ help
17667 ++ If you say Y here, the layouts of a number of sensitive kernel
17668 ++ structures (task, fs, cred, etc) and all structures composed entirely
17669 ++ of function pointers (aka "ops" structs) will be randomized at compile-time.
17670 ++ This can introduce the requirement of an additional infoleak
17671 ++ vulnerability for exploits targeting these structure types.
17672 ++
17673 ++ Enabling this feature will introduce some performance impact, slightly
17674 ++ increase memory usage, and prevent the use of forensic tools like
17675 ++ Volatility against the system (unless the kernel source tree isn't
17676 ++ cleaned after kernel installation).
17677 ++
17678 ++ The seed used for compilation is located at tools/gcc/randstruct.seed.
17679 ++ It remains after a make clean to allow for external modules to be compiled
17680 ++ with the existing seed and will be removed by a make mrproper or
17681 ++ make distclean.
17682 ++
17683 ++config GRKERNSEC_RANDSTRUCT_PERFORMANCE
17684 ++ bool "Use cacheline-aware structure randomization"
17685 ++ depends on GRKERNSEC_RANDSTRUCT
17686 ++ default y if GRKERNSEC_CONFIG_PRIORITY_PERF
17687 ++ help
17688 ++ If you say Y here, the RANDSTRUCT randomization will make a best effort
17689 ++ at restricting randomization to cacheline-sized groups of elements. It
17690 ++ will further not randomize bitfields in structures. This reduces the
17691 ++ performance hit of RANDSTRUCT at the cost of weakened randomization.
17692 ++
17693 +config GRKERNSEC_KERN_LOCKOUT
17694 + bool "Active kernel exploit response"
17695 + default y if GRKERNSEC_CONFIG_AUTO
17696 @@ -63884,7 +65167,7 @@ index 0000000..5b2538b
17697 +endmenu
17698 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
17699 new file mode 100644
17700 -index 0000000..85beb79
17701 +index 0000000..d1344d2
17702 --- /dev/null
17703 +++ b/grsecurity/Makefile
17704 @@ -0,0 +1,43 @@
17705 @@ -63894,7 +65177,7 @@ index 0000000..85beb79
17706 +#
17707 +# All code in this directory and various hooks inserted throughout the kernel
17708 +# are copyright Brad Spengler - Open Source Security, Inc., and released
17709 -+# under the GPL v2 or higher
17710 ++# under the GPL v2
17711 +
17712 +KBUILD_CFLAGS += -Werror
17713 +
17714 @@ -63933,10 +65216,10 @@ index 0000000..85beb79
17715 +endif
17716 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
17717 new file mode 100644
17718 -index 0000000..90f71ce
17719 +index 0000000..7232a45
17720 --- /dev/null
17721 +++ b/grsecurity/gracl.c
17722 -@@ -0,0 +1,2679 @@
17723 +@@ -0,0 +1,2677 @@
17724 +#include <linux/kernel.h>
17725 +#include <linux/module.h>
17726 +#include <linux/sched.h>
17727 @@ -63986,8 +65269,6 @@ index 0000000..90f71ce
17728 + role = role->prev; \
17729 + }
17730 +
17731 -+extern struct lglock vfsmount_lock;
17732 -+
17733 +extern struct path gr_real_root;
17734 +
17735 +static struct gr_policy_state running_polstate;
17736 @@ -64163,7 +65444,7 @@ index 0000000..90f71ce
17737 + return error;
17738 +}
17739 +
17740 -+/* this must be called with vfsmount_lock and rename_lock held */
17741 ++/* this must be called with mount_lock and rename_lock held */
17742 +
17743 +static char *__our_d_path(const struct path *path, struct path *root,
17744 + char *buf, int buflen)
17745 @@ -64225,11 +65506,11 @@ index 0000000..90f71ce
17746 + /* we can't use gr_real_root.dentry, gr_real_root.mnt, because they belong only to the RBAC system */
17747 + get_fs_root(reaper->fs, &root);
17748 +
17749 -+ br_read_lock(&vfsmount_lock);
17750 ++ read_seqlock_excl(&mount_lock);
17751 + write_seqlock(&rename_lock);
17752 + res = gen_full_path(&path, &root, buf, buflen);
17753 + write_sequnlock(&rename_lock);
17754 -+ br_read_unlock(&vfsmount_lock);
17755 ++ read_sequnlock_excl(&mount_lock);
17756 +
17757 + path_put(&root);
17758 + return res;
17759 @@ -64239,12 +65520,12 @@ index 0000000..90f71ce
17760 +gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
17761 +{
17762 + char *ret;
17763 -+ br_read_lock(&vfsmount_lock);
17764 ++ read_seqlock_excl(&mount_lock);
17765 + write_seqlock(&rename_lock);
17766 + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
17767 + PAGE_SIZE);
17768 + write_sequnlock(&rename_lock);
17769 -+ br_read_unlock(&vfsmount_lock);
17770 ++ read_sequnlock_excl(&mount_lock);
17771 + return ret;
17772 +}
17773 +
17774 @@ -64255,7 +65536,7 @@ index 0000000..90f71ce
17775 + char *buf;
17776 + int buflen;
17777 +
17778 -+ br_read_lock(&vfsmount_lock);
17779 ++ read_seqlock_excl(&mount_lock);
17780 + write_seqlock(&rename_lock);
17781 + buf = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
17782 + ret = __d_real_path(dentry, mnt, buf, PAGE_SIZE - 6);
17783 @@ -64265,7 +65546,7 @@ index 0000000..90f71ce
17784 + else
17785 + ret = strcpy(buf, "<path too long>");
17786 + write_sequnlock(&rename_lock);
17787 -+ br_read_unlock(&vfsmount_lock);
17788 ++ read_sequnlock_excl(&mount_lock);
17789 + return ret;
17790 +}
17791 +
17792 @@ -64828,7 +66109,7 @@ index 0000000..90f71ce
17793 + struct acl_object_label *retval;
17794 + struct dentry *parent;
17795 +
17796 -+ br_read_lock(&vfsmount_lock);
17797 ++ read_seqlock_excl(&mount_lock);
17798 + write_seqlock(&rename_lock);
17799 +
17800 + if (unlikely((mnt == shm_mnt && dentry->d_inode->i_nlink == 0) || mnt == pipe_mnt ||
17801 @@ -64877,7 +66158,7 @@ index 0000000..90f71ce
17802 + retval = full_lookup(l_dentry, l_mnt, gr_real_root.dentry, subj, &path, checkglob);
17803 +out:
17804 + write_sequnlock(&rename_lock);
17805 -+ br_read_unlock(&vfsmount_lock);
17806 ++ read_sequnlock_excl(&mount_lock);
17807 +
17808 + BUG_ON(retval == NULL);
17809 +
17810 @@ -64917,7 +66198,7 @@ index 0000000..90f71ce
17811 + struct acl_subject_label *retval;
17812 + struct dentry *parent;
17813 +
17814 -+ br_read_lock(&vfsmount_lock);
17815 ++ read_seqlock_excl(&mount_lock);
17816 + write_seqlock(&rename_lock);
17817 +
17818 + for (;;) {
17819 @@ -64973,7 +66254,7 @@ index 0000000..90f71ce
17820 + }
17821 +out:
17822 + write_sequnlock(&rename_lock);
17823 -+ br_read_unlock(&vfsmount_lock);
17824 ++ read_sequnlock_excl(&mount_lock);
17825 +
17826 + BUG_ON(retval == NULL);
17827 +
17828 @@ -67121,7 +68402,7 @@ index 0000000..ca25605
17829 +
17830 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
17831 new file mode 100644
17832 -index 0000000..deb6f3b
17833 +index 0000000..a89b1f4
17834 --- /dev/null
17835 +++ b/grsecurity/gracl_fs.c
17836 @@ -0,0 +1,437 @@
17837 @@ -67150,7 +68431,7 @@ index 0000000..deb6f3b
17838 +{
17839 + __u32 mode;
17840 +
17841 -+ if (unlikely(!dentry->d_inode))
17842 ++ if (unlikely(d_is_negative(dentry)))
17843 + return GR_FIND;
17844 +
17845 + mode =
17846 @@ -67175,7 +68456,7 @@ index 0000000..deb6f3b
17847 + __u32 reqmode = GR_FIND;
17848 + __u32 mode;
17849 +
17850 -+ if (unlikely(!dentry->d_inode))
17851 ++ if (unlikely(d_is_negative(dentry)))
17852 + return reqmode;
17853 +
17854 + if (acc_mode & MAY_APPEND)
17855 @@ -67499,7 +68780,7 @@ index 0000000..deb6f3b
17856 + if (unlikely(!gr_acl_is_enabled()))
17857 + return 0;
17858 +
17859 -+ if (!new_dentry->d_inode) {
17860 ++ if (d_is_negative(new_dentry)) {
17861 + comp1 = gr_check_create(new_dentry, parent_dentry, parent_mnt,
17862 + GR_READ | GR_WRITE | GR_CREATE | GR_AUDIT_READ |
17863 + GR_AUDIT_WRITE | GR_AUDIT_CREATE | GR_SUPPRESS);
17864 @@ -74224,24 +75505,10 @@ index 810431d..0ec4804f 100644
17865 * (puds are folded into pgds so this doesn't get actually called,
17866 * but the define is needed for a generic inline function.)
17867 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
17868 -index b12079a..86683e3 100644
17869 +index db09234..86683e3 100644
17870 --- a/include/asm-generic/pgtable.h
17871 +++ b/include/asm-generic/pgtable.h
17872 -@@ -599,11 +599,10 @@ static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
17873 - #ifdef CONFIG_TRANSPARENT_HUGEPAGE
17874 - barrier();
17875 - #endif
17876 -- if (pmd_none(pmdval))
17877 -+ if (pmd_none(pmdval) || pmd_trans_huge(pmdval))
17878 - return 1;
17879 - if (unlikely(pmd_bad(pmdval))) {
17880 -- if (!pmd_trans_huge(pmdval))
17881 -- pmd_clear_bad(pmd);
17882 -+ pmd_clear_bad(pmd);
17883 - return 1;
17884 - }
17885 - return 0;
17886 -@@ -737,6 +736,22 @@ static inline pmd_t pmd_mknuma(pmd_t pmd)
17887 +@@ -736,6 +736,22 @@ static inline pmd_t pmd_mknuma(pmd_t pmd)
17888 }
17889 #endif /* CONFIG_NUMA_BALANCING */
17890
17891 @@ -74290,7 +75557,7 @@ index dc1269c..48a4f51 100644
17892 +
17893 #endif /* __ASM_GENERIC_UACCESS_H */
17894 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
17895 -index 83e2c31..eeb4a04 100644
17896 +index bc2121f..2f41f9a 100644
17897 --- a/include/asm-generic/vmlinux.lds.h
17898 +++ b/include/asm-generic/vmlinux.lds.h
17899 @@ -232,6 +232,7 @@
17900 @@ -74301,7 +75568,7 @@ index 83e2c31..eeb4a04 100644
17901 *(__vermagic) /* Kernel version magic */ \
17902 . = ALIGN(8); \
17903 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
17904 -@@ -715,17 +716,18 @@
17905 +@@ -716,17 +717,18 @@
17906 * section in the linker script will go there too. @phdr should have
17907 * a leading colon.
17908 *
17909 @@ -74325,7 +75592,7 @@ index 83e2c31..eeb4a04 100644
17910 /**
17911 * PERCPU_SECTION - define output section for percpu area, simple version
17912 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
17913 -index 418d270..bfd2794 100644
17914 +index e73c19e..5b89e00 100644
17915 --- a/include/crypto/algapi.h
17916 +++ b/include/crypto/algapi.h
17917 @@ -34,7 +34,7 @@ struct crypto_type {
17918 @@ -74338,7 +75605,7 @@ index 418d270..bfd2794 100644
17919 struct crypto_instance {
17920 struct crypto_alg alg;
17921 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
17922 -index b46fb45..b30d6d5 100644
17923 +index 1d4a920..53a3229 100644
17924 --- a/include/drm/drmP.h
17925 +++ b/include/drm/drmP.h
17926 @@ -66,6 +66,7 @@
17927 @@ -74349,7 +75616,7 @@ index b46fb45..b30d6d5 100644
17928 #include <drm/drm.h>
17929 #include <drm/drm_sarea.h>
17930 #include <drm/drm_vma_manager.h>
17931 -@@ -277,10 +278,12 @@ do { \
17932 +@@ -278,10 +279,12 @@ do { \
17933 * \param cmd command.
17934 * \param arg argument.
17935 */
17936 @@ -74364,7 +75631,7 @@ index b46fb45..b30d6d5 100644
17937 unsigned long arg);
17938
17939 #define DRM_IOCTL_NR(n) _IOC_NR(n)
17940 -@@ -296,10 +299,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
17941 +@@ -297,10 +300,10 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
17942 struct drm_ioctl_desc {
17943 unsigned int cmd;
17944 int flags;
17945 @@ -74377,7 +75644,7 @@ index b46fb45..b30d6d5 100644
17946
17947 /**
17948 * Creates a driver or general drm_ioctl_desc array entry for the given
17949 -@@ -1027,7 +1030,7 @@ struct drm_info_list {
17950 +@@ -1013,7 +1016,7 @@ struct drm_info_list {
17951 int (*show)(struct seq_file*, void*); /** show callback */
17952 u32 driver_features; /**< Required driver features for this entry */
17953 void *data;
17954 @@ -74386,7 +75653,7 @@ index b46fb45..b30d6d5 100644
17955
17956 /**
17957 * debugfs node structure. This structure represents a debugfs file.
17958 -@@ -1098,7 +1101,7 @@ struct drm_device {
17959 +@@ -1097,7 +1100,7 @@ struct drm_device {
17960
17961 /** \name Usage Counters */
17962 /*@{ */
17963 @@ -74395,17 +75662,8 @@ index b46fb45..b30d6d5 100644
17964 atomic_t ioctl_count; /**< Outstanding IOCTLs pending */
17965 atomic_t vma_count; /**< Outstanding vma areas open */
17966 int buf_use; /**< Buffers in use -- cannot alloc */
17967 -@@ -1109,7 +1112,7 @@ struct drm_device {
17968 - /*@{ */
17969 - unsigned long counters;
17970 - enum drm_stat_type types[15];
17971 -- atomic_t counts[15];
17972 -+ atomic_unchecked_t counts[15];
17973 - /*@} */
17974 -
17975 - struct list_head filelist;
17976 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
17977 -index f43d556..94d9343 100644
17978 +index ef6ad3a..be34b16 100644
17979 --- a/include/drm/drm_crtc_helper.h
17980 +++ b/include/drm/drm_crtc_helper.h
17981 @@ -109,7 +109,7 @@ struct drm_encoder_helper_funcs {
17982 @@ -74418,7 +75676,7 @@ index f43d556..94d9343 100644
17983 /**
17984 * drm_connector_helper_funcs - helper operations for connectors
17985 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
17986 -index 8a10f5c..5de7f5c 100644
17987 +index 940ece4..8cb727f 100644
17988 --- a/include/drm/i915_pciids.h
17989 +++ b/include/drm/i915_pciids.h
17990 @@ -37,7 +37,7 @@
17991 @@ -74479,10 +75737,10 @@ index c1da539..1dcec55 100644
17992 struct atmphy_ops {
17993 int (*start)(struct atm_dev *dev);
17994 diff --git a/include/linux/audit.h b/include/linux/audit.h
17995 -index 729a4d1..9b304ae 100644
17996 +index a406419..c2bb164 100644
17997 --- a/include/linux/audit.h
17998 +++ b/include/linux/audit.h
17999 -@@ -193,7 +193,7 @@ static inline void audit_ptrace(struct task_struct *t)
18000 +@@ -195,7 +195,7 @@ static inline void audit_ptrace(struct task_struct *t)
18001 extern unsigned int audit_serial(void);
18002 extern int auditsc_get_stamp(struct audit_context *ctx,
18003 struct timespec *t, unsigned int *serial);
18004 @@ -74492,10 +75750,10 @@ index 729a4d1..9b304ae 100644
18005 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
18006 {
18007 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
18008 -index 7554fd4..0f86379 100644
18009 +index fd8bf32..2cccd5a 100644
18010 --- a/include/linux/binfmts.h
18011 +++ b/include/linux/binfmts.h
18012 -@@ -73,8 +73,10 @@ struct linux_binfmt {
18013 +@@ -74,8 +74,10 @@ struct linux_binfmt {
18014 int (*load_binary)(struct linux_binprm *);
18015 int (*load_shlib)(struct file *);
18016 int (*core_dump)(struct coredump_params *cprm);
18017 @@ -74508,10 +75766,10 @@ index 7554fd4..0f86379 100644
18018 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
18019
18020 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
18021 -index a3b6b82..2a7d758 100644
18022 +index abc9ca7..e54ee27 100644
18023 --- a/include/linux/bitops.h
18024 +++ b/include/linux/bitops.h
18025 -@@ -91,7 +91,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
18026 +@@ -102,7 +102,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
18027 * @word: value to rotate
18028 * @shift: bits to roll
18029 */
18030 @@ -74520,7 +75778,7 @@ index a3b6b82..2a7d758 100644
18031 {
18032 return (word << shift) | (word >> (32 - shift));
18033 }
18034 -@@ -101,7 +101,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
18035 +@@ -112,7 +112,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
18036 * @word: value to rotate
18037 * @shift: bits to roll
18038 */
18039 @@ -74529,7 +75787,7 @@ index a3b6b82..2a7d758 100644
18040 {
18041 return (word >> shift) | (word << (32 - shift));
18042 }
18043 -@@ -157,7 +157,7 @@ static inline __s32 sign_extend32(__u32 value, int index)
18044 +@@ -168,7 +168,7 @@ static inline __s32 sign_extend32(__u32 value, int index)
18045 return (__s32)(value << shift) >> shift;
18046 }
18047
18048 @@ -74539,10 +75797,10 @@ index a3b6b82..2a7d758 100644
18049 if (sizeof(l) == 4)
18050 return fls(l);
18051 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
18052 -index 0e6f765..885bb2b 100644
18053 +index 1b135d4..59fc876 100644
18054 --- a/include/linux/blkdev.h
18055 +++ b/include/linux/blkdev.h
18056 -@@ -1537,7 +1537,7 @@ struct block_device_operations {
18057 +@@ -1578,7 +1578,7 @@ struct block_device_operations {
18058 /* this callback is with swap_lock and sometimes page table lock held */
18059 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
18060 struct module *owner;
18061 @@ -74552,13 +75810,13 @@ index 0e6f765..885bb2b 100644
18062 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
18063 unsigned long);
18064 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
18065 -index 7c2e030..b72475d 100644
18066 +index afc1343..9735539 100644
18067 --- a/include/linux/blktrace_api.h
18068 +++ b/include/linux/blktrace_api.h
18069 -@@ -23,7 +23,7 @@ struct blk_trace {
18070 - struct dentry *dir;
18071 +@@ -25,7 +25,7 @@ struct blk_trace {
18072 struct dentry *dropped_file;
18073 struct dentry *msg_file;
18074 + struct list_head running_list;
18075 - atomic_t dropped;
18076 + atomic_unchecked_t dropped;
18077 };
18078 @@ -74627,7 +75885,7 @@ index 4ce9056..86caac6 100644
18079 extern struct cleancache_ops *
18080 cleancache_register_ops(struct cleancache_ops *ops);
18081 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
18082 -index 73bdb69..d66d47a 100644
18083 +index 7e59253..d6e4cae 100644
18084 --- a/include/linux/clk-provider.h
18085 +++ b/include/linux/clk-provider.h
18086 @@ -141,6 +141,7 @@ struct clk_ops {
18087 @@ -74639,7 +75897,7 @@ index 73bdb69..d66d47a 100644
18088 /**
18089 * struct clk_init_data - holds init data that's common to all clocks and is
18090 diff --git a/include/linux/compat.h b/include/linux/compat.h
18091 -index 345da00..b6eff26 100644
18092 +index eb8a49d..6b66ed9 100644
18093 --- a/include/linux/compat.h
18094 +++ b/include/linux/compat.h
18095 @@ -313,7 +313,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
18096 @@ -74661,10 +75919,10 @@ index 345da00..b6eff26 100644
18097 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, size_t);
18098 /*
18099 diff --git a/include/linux/compiler-gcc4.h b/include/linux/compiler-gcc4.h
18100 -index ded4299..da50e3b 100644
18101 +index ded4299..ddcbe31 100644
18102 --- a/include/linux/compiler-gcc4.h
18103 +++ b/include/linux/compiler-gcc4.h
18104 -@@ -39,9 +39,29 @@
18105 +@@ -39,9 +39,34 @@
18106 # define __compiletime_warning(message) __attribute__((warning(message)))
18107 # define __compiletime_error(message) __attribute__((error(message)))
18108 #endif /* __CHECKER__ */
18109 @@ -74677,6 +75935,11 @@ index ded4299..da50e3b 100644
18110
18111 #if GCC_VERSION >= 40500
18112 +
18113 ++#ifdef RANDSTRUCT_PLUGIN
18114 ++#define __randomize_layout __attribute__((randomize_layout))
18115 ++#define __no_randomize_layout __attribute__((no_randomize_layout))
18116 ++#endif
18117 ++
18118 +#ifdef CONSTIFY_PLUGIN
18119 +#define __no_const __attribute__((no_const))
18120 +#define __do_const __attribute__((do_const))
18121 @@ -74695,7 +75958,7 @@ index ded4299..da50e3b 100644
18122 * Mark a position in code as unreachable. This can be used to
18123 * suppress control flow warnings after asm blocks that transfer
18124 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
18125 -index 92669cd..1771a15 100644
18126 +index 92669cd..cc564c0 100644
18127 --- a/include/linux/compiler.h
18128 +++ b/include/linux/compiler.h
18129 @@ -5,11 +5,14 @@
18130 @@ -74763,10 +76026,18 @@ index 92669cd..1771a15 100644
18131 #endif
18132
18133 /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
18134 -@@ -275,6 +297,26 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18135 +@@ -275,6 +297,34 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18136 # define __attribute_const__ /* unimplemented */
18137 #endif
18138
18139 ++#ifndef __randomize_layout
18140 ++# define __randomize_layout
18141 ++#endif
18142 ++
18143 ++#ifndef __no_randomize_layout
18144 ++# define __no_randomize_layout
18145 ++#endif
18146 ++
18147 +#ifndef __no_const
18148 +# define __no_const
18149 +#endif
18150 @@ -74790,7 +76061,7 @@ index 92669cd..1771a15 100644
18151 /*
18152 * Tell gcc if a function is cold. The compiler will assume any path
18153 * directly leading to the call is unlikely.
18154 -@@ -284,6 +326,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18155 +@@ -284,6 +334,22 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18156 #define __cold
18157 #endif
18158
18159 @@ -74813,7 +76084,7 @@ index 92669cd..1771a15 100644
18160 /* Simple shorthand for a section definition */
18161 #ifndef __section
18162 # define __section(S) __attribute__ ((__section__(#S)))
18163 -@@ -349,7 +407,8 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18164 +@@ -349,7 +415,8 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
18165 * use is to mediate communication between process-level code and irq/NMI
18166 * handlers, all running on the same CPU.
18167 */
18168 @@ -74824,10 +76095,10 @@ index 92669cd..1771a15 100644
18169 /* Ignore/forbid kprobes attach on very low level functions marked by this attribute: */
18170 #ifdef CONFIG_KPROBES
18171 diff --git a/include/linux/completion.h b/include/linux/completion.h
18172 -index 3cd574d..240dcb0 100644
18173 +index 5d5aaae..0ea9b84 100644
18174 --- a/include/linux/completion.h
18175 +++ b/include/linux/completion.h
18176 -@@ -78,16 +78,16 @@ static inline void init_completion(struct completion *x)
18177 +@@ -90,16 +90,16 @@ static inline void reinit_completion(struct completion *x)
18178
18179 extern void wait_for_completion(struct completion *);
18180 extern void wait_for_completion_io(struct completion *);
18181 @@ -74864,10 +76135,10 @@ index 34025df..d94bbbc 100644
18182 /*
18183 * Users often need to create attribute structures for their configurable
18184 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
18185 -index fcabc42..cba5d93 100644
18186 +index dc196bb..c55a50f 100644
18187 --- a/include/linux/cpufreq.h
18188 +++ b/include/linux/cpufreq.h
18189 -@@ -167,6 +167,7 @@ struct global_attr {
18190 +@@ -189,6 +189,7 @@ struct global_attr {
18191 ssize_t (*store)(struct kobject *a, struct attribute *b,
18192 const char *c, size_t count);
18193 };
18194 @@ -74875,7 +76146,7 @@ index fcabc42..cba5d93 100644
18195
18196 #define define_one_global_ro(_name) \
18197 static struct global_attr _name = \
18198 -@@ -208,7 +209,7 @@ struct cpufreq_driver {
18199 +@@ -225,7 +226,7 @@ struct cpufreq_driver {
18200 int (*suspend) (struct cpufreq_policy *policy);
18201 int (*resume) (struct cpufreq_policy *policy);
18202 struct freq_attr **attr;
18203 @@ -74883,9 +76154,9 @@ index fcabc42..cba5d93 100644
18204 +} __do_const;
18205
18206 /* flags */
18207 - #define CPUFREQ_STICKY 0x01 /* the driver isn't removed even if
18208 + #define CPUFREQ_STICKY (1 << 0) /* driver isn't removed even if
18209 diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
18210 -index 781addc..d1e1fe6 100644
18211 +index 50fcbb0..9d2dbd9 100644
18212 --- a/include/linux/cpuidle.h
18213 +++ b/include/linux/cpuidle.h
18214 @@ -50,7 +50,8 @@ struct cpuidle_state {
18215 @@ -74906,7 +76177,7 @@ index 781addc..d1e1fe6 100644
18216 +} __do_const;
18217
18218 #ifdef CONFIG_CPU_IDLE
18219 -
18220 + extern int cpuidle_register_governor(struct cpuidle_governor *gov);
18221 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
18222 index d08e4d2..95fad61 100644
18223 --- a/include/linux/cpumask.h
18224 @@ -74960,9 +76231,27 @@ index d08e4d2..95fad61 100644
18225
18226 /**
18227 diff --git a/include/linux/cred.h b/include/linux/cred.h
18228 -index 04421e8..6bce4ef 100644
18229 +index 04421e8..117e17a 100644
18230 --- a/include/linux/cred.h
18231 +++ b/include/linux/cred.h
18232 +@@ -35,7 +35,7 @@ struct group_info {
18233 + int nblocks;
18234 + kgid_t small_block[NGROUPS_SMALL];
18235 + kgid_t *blocks[0];
18236 +-};
18237 ++} __randomize_layout;
18238 +
18239 + /**
18240 + * get_group_info - Get a reference to a group info structure
18241 +@@ -136,7 +136,7 @@ struct cred {
18242 + struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
18243 + struct group_info *group_info; /* supplementary groups for euid/fsgid */
18244 + struct rcu_head rcu; /* RCU deletion hook */
18245 +-};
18246 ++} __randomize_layout;
18247 +
18248 + extern void __put_cred(struct cred *);
18249 + extern void exit_creds(struct task_struct *);
18250 @@ -194,6 +194,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
18251 static inline void validate_process_creds(void)
18252 {
18253 @@ -75015,6 +76304,19 @@ index 653589e..4ef254a 100644
18254 {
18255 return c | 0x20;
18256 }
18257 +diff --git a/include/linux/dcache.h b/include/linux/dcache.h
18258 +index bf72e9a..4ca7927 100644
18259 +--- a/include/linux/dcache.h
18260 ++++ b/include/linux/dcache.h
18261 +@@ -133,7 +133,7 @@ struct dentry {
18262 + } d_u;
18263 + struct list_head d_subdirs; /* our children */
18264 + struct hlist_node d_alias; /* inode alias list */
18265 +-};
18266 ++} __randomize_layout;
18267 +
18268 + /*
18269 + * dentry->d_lock spinlock nesting subclasses:
18270 diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
18271 index 7925bf0..d5143d2 100644
18272 --- a/include/linux/decompress/mm.h
18273 @@ -75029,7 +76331,7 @@ index 7925bf0..d5143d2 100644
18274
18275 #define large_malloc(a) vmalloc(a)
18276 diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
18277 -index 5f1ab92..39c35ae 100644
18278 +index d48dc00..211ee54 100644
18279 --- a/include/linux/devfreq.h
18280 +++ b/include/linux/devfreq.h
18281 @@ -114,7 +114,7 @@ struct devfreq_governor {
18282 @@ -75042,10 +76344,10 @@ index 5f1ab92..39c35ae 100644
18283 /**
18284 * struct devfreq - Device devfreq structure
18285 diff --git a/include/linux/device.h b/include/linux/device.h
18286 -index 2a9d6ed..d14551e3 100644
18287 +index 952b010..d5b7691 100644
18288 --- a/include/linux/device.h
18289 +++ b/include/linux/device.h
18290 -@@ -313,7 +313,7 @@ struct subsys_interface {
18291 +@@ -310,7 +310,7 @@ struct subsys_interface {
18292 struct list_head node;
18293 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
18294 int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
18295 @@ -75054,7 +76356,7 @@ index 2a9d6ed..d14551e3 100644
18296
18297 int subsys_interface_register(struct subsys_interface *sif);
18298 void subsys_interface_unregister(struct subsys_interface *sif);
18299 -@@ -501,7 +501,7 @@ struct device_type {
18300 +@@ -506,7 +506,7 @@ struct device_type {
18301 void (*release)(struct device *dev);
18302
18303 const struct dev_pm_ops *pm;
18304 @@ -75063,7 +76365,7 @@ index 2a9d6ed..d14551e3 100644
18305
18306 /* interface for exporting device attributes */
18307 struct device_attribute {
18308 -@@ -511,11 +511,12 @@ struct device_attribute {
18309 +@@ -516,11 +516,12 @@ struct device_attribute {
18310 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
18311 const char *buf, size_t count);
18312 };
18313 @@ -75078,7 +76380,7 @@ index 2a9d6ed..d14551e3 100644
18314 ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
18315 char *buf);
18316 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
18317 -index 3a8d0a2..c762be2 100644
18318 +index fd4aee2..1f28db9 100644
18319 --- a/include/linux/dma-mapping.h
18320 +++ b/include/linux/dma-mapping.h
18321 @@ -54,7 +54,7 @@ struct dma_map_ops {
18322 @@ -75091,10 +76393,10 @@ index 3a8d0a2..c762be2 100644
18323 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
18324
18325 diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
18326 -index 0bc7275..4ccbf11 100644
18327 +index 41cf0c3..f3b771c 100644
18328 --- a/include/linux/dmaengine.h
18329 +++ b/include/linux/dmaengine.h
18330 -@@ -1078,9 +1078,9 @@ struct dma_pinned_list {
18331 +@@ -1114,9 +1114,9 @@ struct dma_pinned_list {
18332 struct dma_pinned_list *dma_pin_iovec_pages(struct iovec *iov, size_t len);
18333 void dma_unpin_iovec_pages(struct dma_pinned_list* pinned_list);
18334
18335 @@ -75107,10 +76409,10 @@ index 0bc7275..4ccbf11 100644
18336 unsigned int offset, size_t len);
18337
18338 diff --git a/include/linux/efi.h b/include/linux/efi.h
18339 -index 094ddd0..f1dfcd3 100644
18340 +index 11ce678..7b8c69c 100644
18341 --- a/include/linux/efi.h
18342 +++ b/include/linux/efi.h
18343 -@@ -745,6 +745,7 @@ struct efivar_operations {
18344 +@@ -764,6 +764,7 @@ struct efivar_operations {
18345 efi_set_variable_t *set_variable;
18346 efi_query_variable_store_t *query_variable_store;
18347 };
18348 @@ -75119,7 +76421,7 @@ index 094ddd0..f1dfcd3 100644
18349 struct efivars {
18350 /*
18351 diff --git a/include/linux/elf.h b/include/linux/elf.h
18352 -index 40a3c0e0..4c45a38 100644
18353 +index 67a5fa7..b817372 100644
18354 --- a/include/linux/elf.h
18355 +++ b/include/linux/elf.h
18356 @@ -24,6 +24,7 @@ extern Elf32_Dyn _DYNAMIC [];
18357 @@ -75158,10 +76460,10 @@ index 15f92e0..e825a8e 100644
18358 return (long) ptr;
18359 }
18360 diff --git a/include/linux/extcon.h b/include/linux/extcon.h
18361 -index fcb51c8..bdafcf6 100644
18362 +index 21c59af..6057a03 100644
18363 --- a/include/linux/extcon.h
18364 +++ b/include/linux/extcon.h
18365 -@@ -134,7 +134,7 @@ struct extcon_dev {
18366 +@@ -135,7 +135,7 @@ struct extcon_dev {
18367 /* /sys/class/extcon/.../mutually_exclusive/... */
18368 struct attribute_group attr_g_muex;
18369 struct attribute **attrs_muex;
18370 @@ -75171,7 +76473,7 @@ index fcb51c8..bdafcf6 100644
18371
18372 /**
18373 diff --git a/include/linux/fb.h b/include/linux/fb.h
18374 -index ffac70a..ca3e711 100644
18375 +index 70c4836..ff3daec 100644
18376 --- a/include/linux/fb.h
18377 +++ b/include/linux/fb.h
18378 @@ -304,7 +304,7 @@ struct fb_ops {
18379 @@ -75210,20 +76512,74 @@ index 8293262..2b3b8bd 100644
18380 extern bool frontswap_enabled;
18381 extern struct frontswap_ops *
18382 diff --git a/include/linux/fs.h b/include/linux/fs.h
18383 -index 164d2a9..0ffa41d0 100644
18384 +index 121f11f..0f2a863 100644
18385 --- a/include/linux/fs.h
18386 +++ b/include/linux/fs.h
18387 -@@ -1552,7 +1552,8 @@ struct file_operations {
18388 +@@ -423,7 +423,7 @@ struct address_space {
18389 + spinlock_t private_lock; /* for use by the address_space */
18390 + struct list_head private_list; /* ditto */
18391 + void *private_data; /* ditto */
18392 +-} __attribute__((aligned(sizeof(long))));
18393 ++} __attribute__((aligned(sizeof(long)))) __randomize_layout;
18394 + /*
18395 + * On most architectures that alignment is already the case; but
18396 + * must be enforced here for CRIS, to let the least significant bit
18397 +@@ -466,7 +466,7 @@ struct block_device {
18398 + int bd_fsfreeze_count;
18399 + /* Mutex for freeze */
18400 + struct mutex bd_fsfreeze_mutex;
18401 +-};
18402 ++} __randomize_layout;
18403 +
18404 + /*
18405 + * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
18406 +@@ -610,7 +610,7 @@ struct inode {
18407 + atomic_t i_readcount; /* struct files open RO */
18408 + #endif
18409 + void *i_private; /* fs or device private pointer */
18410 +-};
18411 ++} __randomize_layout;
18412 +
18413 + static inline int inode_unhashed(struct inode *inode)
18414 + {
18415 +@@ -808,7 +808,7 @@ struct file {
18416 + #ifdef CONFIG_DEBUG_WRITECOUNT
18417 + unsigned long f_mnt_write_state;
18418 + #endif
18419 +-};
18420 ++} __randomize_layout;
18421 +
18422 + struct file_handle {
18423 + __u32 handle_bytes;
18424 +@@ -978,7 +978,7 @@ struct file_lock {
18425 + int state; /* state of grant or error if -ve */
18426 + } afs;
18427 + } fl_u;
18428 +-};
18429 ++} __randomize_layout;
18430 +
18431 + /* The following constant reflects the upper bound of the file/locking space */
18432 + #ifndef OFFSET_MAX
18433 +@@ -1325,7 +1325,7 @@ struct super_block {
18434 + struct list_lru s_dentry_lru ____cacheline_aligned_in_smp;
18435 + struct list_lru s_inode_lru ____cacheline_aligned_in_smp;
18436 + struct rcu_head rcu;
18437 +-};
18438 ++} __randomize_layout;
18439 +
18440 + extern struct timespec current_fs_time(struct super_block *sb);
18441 +
18442 +@@ -1547,7 +1547,8 @@ struct file_operations {
18443 long (*fallocate)(struct file *file, int mode, loff_t offset,
18444 loff_t len);
18445 int (*show_fdinfo)(struct seq_file *m, struct file *f);
18446 -};
18447 -+} __do_const;
18448 ++} __do_const __randomize_layout;
18449 +typedef struct file_operations __no_const file_operations_no_const;
18450
18451 struct inode_operations {
18452 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
18453 -@@ -2747,4 +2748,14 @@ static inline bool dir_relax(struct inode *inode)
18454 +@@ -2808,4 +2809,14 @@ static inline bool dir_relax(struct inode *inode)
18455 return !IS_DEADDIR(inode);
18456 }
18457
18458 @@ -75239,10 +76595,10 @@ index 164d2a9..0ffa41d0 100644
18459 +
18460 #endif /* _LINUX_FS_H */
18461 diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
18462 -index 0efc3e6..e0e1e5f 100644
18463 +index 0efc3e6..fd23610 100644
18464 --- a/include/linux/fs_struct.h
18465 +++ b/include/linux/fs_struct.h
18466 -@@ -6,7 +6,7 @@
18467 +@@ -6,13 +6,13 @@
18468 #include <linux/seqlock.h>
18469
18470 struct fs_struct {
18471 @@ -75251,8 +76607,15 @@ index 0efc3e6..e0e1e5f 100644
18472 spinlock_t lock;
18473 seqcount_t seq;
18474 int umask;
18475 + int in_exec;
18476 + struct path root, pwd;
18477 +-};
18478 ++} __randomize_layout;
18479 +
18480 + extern struct kmem_cache *fs_cachep;
18481 +
18482 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
18483 -index 7823e9e..56b6f2f 100644
18484 +index 7714849..a4a5c7a 100644
18485 --- a/include/linux/fscache-cache.h
18486 +++ b/include/linux/fscache-cache.h
18487 @@ -113,7 +113,7 @@ struct fscache_operation {
18488 @@ -75274,7 +76637,7 @@ index 7823e9e..56b6f2f 100644
18489 op->release = release;
18490 INIT_LIST_HEAD(&op->pend_link);
18491 diff --git a/include/linux/fscache.h b/include/linux/fscache.h
18492 -index 19b4645..3b73dfc 100644
18493 +index 115bb81..e7b812b 100644
18494 --- a/include/linux/fscache.h
18495 +++ b/include/linux/fscache.h
18496 @@ -152,7 +152,7 @@ struct fscache_cookie_def {
18497 @@ -75342,7 +76705,7 @@ index 9f3c275..8bdff5d 100644
18498
18499 static inline sector_t get_start_sect(struct block_device *bdev)
18500 diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h
18501 -index 023bc34..b02b46a 100644
18502 +index c0894dd..2fbf10c 100644
18503 --- a/include/linux/genl_magic_func.h
18504 +++ b/include/linux/genl_magic_func.h
18505 @@ -246,7 +246,7 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd)
18506 @@ -76747,10 +78110,10 @@ index 1c7b89a..7dda400 100644
18507 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
18508
18509 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
18510 -index 2ab11dc..663a3f2 100644
18511 +index d9c8dbd3..def6e5a 100644
18512 --- a/include/linux/i2c.h
18513 +++ b/include/linux/i2c.h
18514 -@@ -366,6 +366,7 @@ struct i2c_algorithm {
18515 +@@ -364,6 +364,7 @@ struct i2c_algorithm {
18516 /* To determine what the adapter supports */
18517 u32 (*functionality) (struct i2c_adapter *);
18518 };
18519 @@ -76785,11 +78148,11 @@ index aff7ad8..3942bbd 100644
18520 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
18521 extern void unregister_pppox_proto(int proto_num);
18522 diff --git a/include/linux/init.h b/include/linux/init.h
18523 -index f1c27a71..7d6010e 100644
18524 +index 8e68a64..3f977a0 100644
18525 --- a/include/linux/init.h
18526 +++ b/include/linux/init.h
18527 -@@ -39,9 +39,17 @@
18528 - * Also note, that this data cannot be "const".
18529 +@@ -37,9 +37,17 @@
18530 + * section.
18531 */
18532
18533 +#define add_init_latent_entropy __latent_entropy
18534 @@ -76807,7 +78170,7 @@ index f1c27a71..7d6010e 100644
18535 #define __initdata __section(.init.data)
18536 #define __initconst __constsection(.init.rodata)
18537 #define __exitdata __section(.exit.data)
18538 -@@ -102,7 +110,7 @@
18539 +@@ -100,7 +108,7 @@
18540 #define __cpuexitconst
18541
18542 /* Used for MEMORY_HOTPLUG */
18543 @@ -76817,7 +78180,7 @@ index f1c27a71..7d6010e 100644
18544 #define __meminitconst __constsection(.meminit.rodata)
18545 #define __memexit __section(.memexit.text) __exitused __cold notrace
18546 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
18547 -index 5cd0f09..c9f67cc 100644
18548 +index b0ed422..d79ea23 100644
18549 --- a/include/linux/init_task.h
18550 +++ b/include/linux/init_task.h
18551 @@ -154,6 +154,12 @@ extern struct task_group root_task_group;
18552 @@ -76842,10 +78205,10 @@ index 5cd0f09..c9f67cc 100644
18553 .files = &init_files, \
18554 .signal = &init_signals, \
18555 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
18556 -index 5e865b5..71bd258 100644
18557 +index db43b58..5d5084b 100644
18558 --- a/include/linux/interrupt.h
18559 +++ b/include/linux/interrupt.h
18560 -@@ -361,7 +361,7 @@ enum
18561 +@@ -360,7 +360,7 @@ enum
18562 /* map softirq index to softirq name. update 'softirq_to_name' in
18563 * kernel/softirq.c when adding a new softirq.
18564 */
18565 @@ -76854,7 +78217,7 @@ index 5e865b5..71bd258 100644
18566
18567 /* softirq mask and active fields moved to irq_cpustat_t in
18568 * asm/hardirq.h to get better cache usage. KAO
18569 -@@ -369,12 +369,12 @@ extern char *softirq_to_name[NR_SOFTIRQS];
18570 +@@ -368,8 +368,8 @@ extern char *softirq_to_name[NR_SOFTIRQS];
18571
18572 struct softirq_action
18573 {
18574 @@ -76865,16 +78228,20 @@ index 5e865b5..71bd258 100644
18575
18576 asmlinkage void do_softirq(void);
18577 asmlinkage void __do_softirq(void);
18578 +@@ -383,7 +383,7 @@ static inline void do_softirq_own_stack(void)
18579 + }
18580 + #endif
18581 +
18582 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
18583 +extern void open_softirq(int nr, void (*action)(void));
18584 extern void softirq_init(void);
18585 extern void __raise_softirq_irqoff(unsigned int nr);
18586
18587 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
18588 -index 7ea319e..f9e971d 100644
18589 +index a444c79..8c41ea9 100644
18590 --- a/include/linux/iommu.h
18591 +++ b/include/linux/iommu.h
18592 -@@ -129,7 +129,7 @@ struct iommu_ops {
18593 +@@ -130,7 +130,7 @@ struct iommu_ops {
18594 u32 (*domain_get_windows)(struct iommu_domain *domain);
18595
18596 unsigned long pgsize_bitmap;
18597 @@ -76896,11 +78263,24 @@ index 89b7c24..382af74 100644
18598 {
18599 return res->end - res->start + 1;
18600 }
18601 +diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
18602 +index f6c82de..de8619e 100644
18603 +--- a/include/linux/ipc_namespace.h
18604 ++++ b/include/linux/ipc_namespace.h
18605 +@@ -70,7 +70,7 @@ struct ipc_namespace {
18606 + struct user_namespace *user_ns;
18607 +
18608 + unsigned int proc_inum;
18609 +-};
18610 ++} __randomize_layout;
18611 +
18612 + extern struct ipc_namespace init_ipc_ns;
18613 + extern atomic_t nr_ipc_ns;
18614 diff --git a/include/linux/irq.h b/include/linux/irq.h
18615 -index 56bb0dc..8ae94d62 100644
18616 +index 7dc1003..407327b 100644
18617 --- a/include/linux/irq.h
18618 +++ b/include/linux/irq.h
18619 -@@ -333,7 +333,8 @@ struct irq_chip {
18620 +@@ -338,7 +338,8 @@ struct irq_chip {
18621 void (*irq_print_chip)(struct irq_data *data, struct seq_file *p);
18622
18623 unsigned long flags;
18624 @@ -76911,10 +78291,10 @@ index 56bb0dc..8ae94d62 100644
18625 /*
18626 * irq_chip specific flags
18627 diff --git a/include/linux/irqchip/arm-gic.h b/include/linux/irqchip/arm-gic.h
18628 -index 0e5d9ec..46acb3a 100644
18629 +index cac496b..ffa0567 100644
18630 --- a/include/linux/irqchip/arm-gic.h
18631 +++ b/include/linux/irqchip/arm-gic.h
18632 -@@ -59,9 +59,11 @@
18633 +@@ -61,9 +61,11 @@
18634
18635 #ifndef __ASSEMBLY__
18636
18637 @@ -76989,10 +78369,10 @@ index 6883e19..e854fcb 100644
18638 /* This macro allows us to keep printk typechecking */
18639 static __printf(1, 2)
18640 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
18641 -index 518a53a..5e28358 100644
18642 +index a74c3a8..28d3f21 100644
18643 --- a/include/linux/key-type.h
18644 +++ b/include/linux/key-type.h
18645 -@@ -125,7 +125,7 @@ struct key_type {
18646 +@@ -131,7 +131,7 @@ struct key_type {
18647 /* internal fields */
18648 struct list_head link; /* link in types list */
18649 struct lock_class_key lock_class; /* key->sem lock class */
18650 @@ -77002,7 +78382,7 @@ index 518a53a..5e28358 100644
18651 extern struct key_type key_type_keyring;
18652
18653 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
18654 -index c6e091b..a940adf 100644
18655 +index dfb4f2f..7927e62 100644
18656 --- a/include/linux/kgdb.h
18657 +++ b/include/linux/kgdb.h
18658 @@ -52,7 +52,7 @@ extern int kgdb_connected;
18659 @@ -77056,10 +78436,10 @@ index 0555cc6..40116ce 100644
18660 char **envp;
18661 int wait;
18662 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
18663 -index de6dcbcc..4735f88 100644
18664 +index e7ba650..0af3acb 100644
18665 --- a/include/linux/kobject.h
18666 +++ b/include/linux/kobject.h
18667 -@@ -115,7 +115,7 @@ struct kobj_type {
18668 +@@ -116,7 +116,7 @@ struct kobj_type {
18669 struct attribute **default_attrs;
18670 const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
18671 const void *(*namespace)(struct kobject *kobj);
18672 @@ -77068,7 +78448,7 @@ index de6dcbcc..4735f88 100644
18673
18674 struct kobj_uevent_env {
18675 char *envp[UEVENT_NUM_ENVP];
18676 -@@ -138,6 +138,7 @@ struct kobj_attribute {
18677 +@@ -139,6 +139,7 @@ struct kobj_attribute {
18678 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
18679 const char *buf, size_t count);
18680 };
18681 @@ -77076,6 +78456,15 @@ index de6dcbcc..4735f88 100644
18682
18683 extern const struct sysfs_ops kobj_sysfs_ops;
18684
18685 +@@ -166,7 +167,7 @@ struct kset {
18686 + spinlock_t list_lock;
18687 + struct kobject kobj;
18688 + const struct kset_uevent_ops *uevent_ops;
18689 +-};
18690 ++} __randomize_layout;
18691 +
18692 + extern void kset_init(struct kset *kset);
18693 + extern int __must_check kset_register(struct kset *kset);
18694 diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h
18695 index df32d25..fb52e27 100644
18696 --- a/include/linux/kobject_ns.h
18697 @@ -77103,10 +78492,10 @@ index 484604d..0f6c5b6 100644
18698 if (atomic_sub_and_test((int) count, &kref->refcount)) {
18699 release(kref);
18700 diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
18701 -index 0fbbc7a..db081e3 100644
18702 +index 9523d2a..16c0424 100644
18703 --- a/include/linux/kvm_host.h
18704 +++ b/include/linux/kvm_host.h
18705 -@@ -458,7 +458,7 @@ static inline void kvm_irqfd_exit(void)
18706 +@@ -457,7 +457,7 @@ static inline void kvm_irqfd_exit(void)
18707 {
18708 }
18709 #endif
18710 @@ -77150,7 +78539,7 @@ index d3e8ad2..a949f68 100644
18711
18712 /*
18713 diff --git a/include/linux/list.h b/include/linux/list.h
18714 -index f4d8a2f..38e6e46 100644
18715 +index ef95941..82db65a 100644
18716 --- a/include/linux/list.h
18717 +++ b/include/linux/list.h
18718 @@ -112,6 +112,19 @@ extern void __list_del_entry(struct list_head *entry);
18719 @@ -77183,7 +78572,7 @@ index f4d8a2f..38e6e46 100644
18720 * list_move - delete from one list and add as another's head
18721 * @list: the entry to move
18722 diff --git a/include/linux/math64.h b/include/linux/math64.h
18723 -index 69ed5f5..243ed51 100644
18724 +index c45c089..298841c 100644
18725 --- a/include/linux/math64.h
18726 +++ b/include/linux/math64.h
18727 @@ -15,7 +15,7 @@
18728 @@ -77232,7 +78621,7 @@ index 69ed5f5..243ed51 100644
18729 u32 remainder;
18730 return div_u64_rem(dividend, divisor, &remainder);
18731 diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
18732 -index da6716b..2e31db3 100644
18733 +index 9fe426b..8148be6 100644
18734 --- a/include/linux/mempolicy.h
18735 +++ b/include/linux/mempolicy.h
18736 @@ -91,6 +91,10 @@ static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
18737 @@ -77246,7 +78635,7 @@ index da6716b..2e31db3 100644
18738
18739 static inline void mpol_get(struct mempolicy *pol)
18740 {
18741 -@@ -240,6 +244,9 @@ mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx)
18742 +@@ -241,6 +245,9 @@ mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx)
18743 }
18744
18745 #define vma_policy(vma) NULL
18746 @@ -77257,10 +78646,10 @@ index da6716b..2e31db3 100644
18747 static inline int
18748 vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
18749 diff --git a/include/linux/mm.h b/include/linux/mm.h
18750 -index 8b6e55e..c4edf39 100644
18751 +index 3552717..658aae0 100644
18752 --- a/include/linux/mm.h
18753 +++ b/include/linux/mm.h
18754 -@@ -113,6 +113,11 @@ extern unsigned int kobjsize(const void *objp);
18755 +@@ -117,6 +117,11 @@ extern unsigned int kobjsize(const void *objp);
18756 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
18757 #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */
18758 #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */
18759 @@ -77272,7 +78661,7 @@ index 8b6e55e..c4edf39 100644
18760 #define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */
18761
18762 #ifdef CONFIG_MEM_SOFT_DIRTY
18763 -@@ -215,8 +220,8 @@ struct vm_operations_struct {
18764 +@@ -219,8 +224,8 @@ struct vm_operations_struct {
18765 /* called by access_process_vm when get_user_pages() fails, typically
18766 * for use by special VMAs that can switch between memory and hardware
18767 */
18768 @@ -77283,7 +78672,7 @@ index 8b6e55e..c4edf39 100644
18769 #ifdef CONFIG_NUMA
18770 /*
18771 * set_policy() op must add a reference to any non-NULL @new mempolicy
18772 -@@ -246,6 +251,7 @@ struct vm_operations_struct {
18773 +@@ -250,6 +255,7 @@ struct vm_operations_struct {
18774 int (*remap_pages)(struct vm_area_struct *vma, unsigned long addr,
18775 unsigned long size, pgoff_t pgoff);
18776 };
18777 @@ -77291,7 +78680,7 @@ index 8b6e55e..c4edf39 100644
18778
18779 struct mmu_gather;
18780 struct inode;
18781 -@@ -977,8 +983,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
18782 +@@ -1061,8 +1067,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
18783 unsigned long *pfn);
18784 int follow_phys(struct vm_area_struct *vma, unsigned long address,
18785 unsigned int flags, unsigned long *prot, resource_size_t *phys);
18786 @@ -77302,7 +78691,7 @@ index 8b6e55e..c4edf39 100644
18787
18788 static inline void unmap_shared_mapping_range(struct address_space *mapping,
18789 loff_t const holebegin, loff_t const holelen)
18790 -@@ -1017,9 +1023,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
18791 +@@ -1101,9 +1107,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
18792 }
18793 #endif
18794
18795 @@ -77315,7 +78704,7 @@ index 8b6e55e..c4edf39 100644
18796
18797 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
18798 unsigned long start, unsigned long nr_pages,
18799 -@@ -1051,34 +1057,6 @@ int set_page_dirty(struct page *page);
18800 +@@ -1135,34 +1141,6 @@ int set_page_dirty(struct page *page);
18801 int set_page_dirty_lock(struct page *page);
18802 int clear_page_dirty_for_io(struct page *page);
18803
18804 @@ -77350,7 +78739,7 @@ index 8b6e55e..c4edf39 100644
18805 extern pid_t
18806 vm_is_stack(struct task_struct *task, struct vm_area_struct *vma, int in_group);
18807
18808 -@@ -1178,6 +1156,15 @@ static inline void sync_mm_rss(struct mm_struct *mm)
18809 +@@ -1262,6 +1240,15 @@ static inline void sync_mm_rss(struct mm_struct *mm)
18810 }
18811 #endif
18812
18813 @@ -77366,7 +78755,7 @@ index 8b6e55e..c4edf39 100644
18814 int vma_wants_writenotify(struct vm_area_struct *vma);
18815
18816 extern pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr,
18817 -@@ -1196,8 +1183,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
18818 +@@ -1280,8 +1267,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
18819 {
18820 return 0;
18821 }
18822 @@ -77382,7 +78771,7 @@ index 8b6e55e..c4edf39 100644
18823 #endif
18824
18825 #ifdef __PAGETABLE_PMD_FOLDED
18826 -@@ -1206,8 +1200,15 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
18827 +@@ -1290,8 +1284,15 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
18828 {
18829 return 0;
18830 }
18831 @@ -77398,7 +78787,7 @@ index 8b6e55e..c4edf39 100644
18832 #endif
18833
18834 int __pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma,
18835 -@@ -1225,11 +1226,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
18836 +@@ -1309,11 +1310,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
18837 NULL: pud_offset(pgd, address);
18838 }
18839
18840 @@ -77421,8 +78810,8 @@ index 8b6e55e..c4edf39 100644
18841 +}
18842 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
18843
18844 - #if USE_SPLIT_PTLOCKS
18845 -@@ -1517,7 +1530,7 @@ extern int install_special_mapping(struct mm_struct *mm,
18846 + #if USE_SPLIT_PTE_PTLOCKS
18847 +@@ -1691,7 +1704,7 @@ extern int install_special_mapping(struct mm_struct *mm,
18848 unsigned long addr, unsigned long len,
18849 unsigned long flags, struct page **pages);
18850
18851 @@ -77431,7 +78820,7 @@ index 8b6e55e..c4edf39 100644
18852
18853 extern unsigned long mmap_region(struct file *file, unsigned long addr,
18854 unsigned long len, vm_flags_t vm_flags, unsigned long pgoff);
18855 -@@ -1525,6 +1538,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
18856 +@@ -1699,6 +1712,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
18857 unsigned long len, unsigned long prot, unsigned long flags,
18858 unsigned long pgoff, unsigned long *populate);
18859 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
18860 @@ -77439,7 +78828,7 @@ index 8b6e55e..c4edf39 100644
18861
18862 #ifdef CONFIG_MMU
18863 extern int __mm_populate(unsigned long addr, unsigned long len,
18864 -@@ -1553,10 +1567,11 @@ struct vm_unmapped_area_info {
18865 +@@ -1727,10 +1741,11 @@ struct vm_unmapped_area_info {
18866 unsigned long high_limit;
18867 unsigned long align_mask;
18868 unsigned long align_offset;
18869 @@ -77453,7 +78842,7 @@ index 8b6e55e..c4edf39 100644
18870
18871 /*
18872 * Search for an unmapped address range.
18873 -@@ -1568,7 +1583,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
18874 +@@ -1742,7 +1757,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
18875 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
18876 */
18877 static inline unsigned long
18878 @@ -77462,7 +78851,7 @@ index 8b6e55e..c4edf39 100644
18879 {
18880 if (!(info->flags & VM_UNMAPPED_AREA_TOPDOWN))
18881 return unmapped_area(info);
18882 -@@ -1631,6 +1646,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
18883 +@@ -1805,6 +1820,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
18884 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
18885 struct vm_area_struct **pprev);
18886
18887 @@ -77473,7 +78862,7 @@ index 8b6e55e..c4edf39 100644
18888 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
18889 NULL if none. Assume start_addr < end_addr. */
18890 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
18891 -@@ -1659,15 +1678,6 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
18892 +@@ -1833,15 +1852,6 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
18893 return vma;
18894 }
18895
18896 @@ -77489,7 +78878,7 @@ index 8b6e55e..c4edf39 100644
18897 #ifdef CONFIG_ARCH_USES_NUMA_PROT_NONE
18898 unsigned long change_prot_numa(struct vm_area_struct *vma,
18899 unsigned long start, unsigned long end);
18900 -@@ -1719,6 +1729,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
18901 +@@ -1893,6 +1903,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
18902 static inline void vm_stat_account(struct mm_struct *mm,
18903 unsigned long flags, struct file *file, long pages)
18904 {
18905 @@ -77501,7 +78890,7 @@ index 8b6e55e..c4edf39 100644
18906 mm->total_vm += pages;
18907 }
18908 #endif /* CONFIG_PROC_FS */
18909 -@@ -1800,7 +1815,7 @@ extern int unpoison_memory(unsigned long pfn);
18910 +@@ -1974,7 +1989,7 @@ extern int unpoison_memory(unsigned long pfn);
18911 extern int sysctl_memory_failure_early_kill;
18912 extern int sysctl_memory_failure_recovery;
18913 extern void shake_page(struct page *p, int access);
18914 @@ -77510,7 +78899,7 @@ index 8b6e55e..c4edf39 100644
18915 extern int soft_offline_page(struct page *page, int flags);
18916
18917 extern void dump_page(struct page *page);
18918 -@@ -1837,5 +1852,11 @@ void __init setup_nr_node_ids(void);
18919 +@@ -2011,5 +2026,11 @@ void __init setup_nr_node_ids(void);
18920 static inline void setup_nr_node_ids(void) {}
18921 #endif
18922
18923 @@ -77523,22 +78912,25 @@ index 8b6e55e..c4edf39 100644
18924 #endif /* __KERNEL__ */
18925 #endif /* _LINUX_MM_H */
18926 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
18927 -index 8e082f1..f61f576 100644
18928 +index 290901a..e99b01c 100644
18929 --- a/include/linux/mm_types.h
18930 +++ b/include/linux/mm_types.h
18931 -@@ -289,6 +289,8 @@ struct vm_area_struct {
18932 +@@ -307,7 +307,9 @@ struct vm_area_struct {
18933 #ifdef CONFIG_NUMA
18934 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
18935 #endif
18936 +-};
18937 +
18938 + struct vm_area_struct *vm_mirror;/* PaX: mirror vma or NULL */
18939 - };
18940 ++} __randomize_layout;
18941
18942 struct core_thread {
18943 -@@ -444,6 +446,24 @@ struct mm_struct {
18944 + struct task_struct *task;
18945 +@@ -453,7 +455,25 @@ struct mm_struct {
18946 bool tlb_flush_pending;
18947 #endif
18948 struct uprobes_state uprobes_state;
18949 +-};
18950 +
18951 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
18952 + unsigned long pax_flags;
18953 @@ -77557,9 +78949,10 @@ index 8e082f1..f61f576 100644
18954 + unsigned long delta_stack; /* randomized offset */
18955 +#endif
18956 +
18957 - };
18958 ++} __randomize_layout;
18959
18960 - /* first nid will either be a valid NID or one of these values */
18961 + static inline void mm_init_cpumask(struct mm_struct *mm)
18962 + {
18963 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
18964 index c5d5278..f0b68c8 100644
18965 --- a/include/linux/mmiotrace.h
18966 @@ -77627,7 +79020,7 @@ index 45e9214..a7227d6 100644
18967 * struct dmi_device_id appears during expansion of
18968 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
18969 diff --git a/include/linux/module.h b/include/linux/module.h
18970 -index 05f2447..2aee07c 100644
18971 +index 15cd6b1..f6e2e6a 100644
18972 --- a/include/linux/module.h
18973 +++ b/include/linux/module.h
18974 @@ -17,9 +17,11 @@
18975 @@ -77642,6 +79035,15 @@ index 05f2447..2aee07c 100644
18976
18977 /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
18978 #define MODULE_SIG_STRING "~Module signature appended~\n"
18979 +@@ -43,7 +45,7 @@ struct module_kobject {
18980 + struct kobject *drivers_dir;
18981 + struct module_param_attrs *mp;
18982 + struct completion *kobj_completion;
18983 +-};
18984 ++} __randomize_layout;
18985 +
18986 + struct module_attribute {
18987 + struct attribute attr;
18988 @@ -55,12 +57,13 @@ struct module_attribute {
18989 int (*test)(struct module *);
18990 void (*free)(struct module *);
18991 @@ -77701,7 +79103,16 @@ index 05f2447..2aee07c 100644
18992 #endif
18993 #ifdef CONFIG_FTRACE_MCOUNT_RECORD
18994 unsigned int num_ftrace_callsites;
18995 -@@ -402,16 +406,46 @@ bool is_module_address(unsigned long addr);
18996 +@@ -378,7 +382,7 @@ struct module
18997 + ctor_fn_t *ctors;
18998 + unsigned int num_ctors;
18999 + #endif
19000 +-};
19001 ++} __randomize_layout;
19002 + #ifndef MODULE_ARCH_INIT
19003 + #define MODULE_ARCH_INIT {}
19004 + #endif
19005 +@@ -399,16 +403,46 @@ bool is_module_address(unsigned long addr);
19006 bool is_module_percpu_address(unsigned long addr);
19007 bool is_module_text_address(unsigned long addr);
19008
19009 @@ -77820,12 +79231,25 @@ index c3eb102..073c4a6 100644
19010 = { .max = ARRAY_SIZE(array), .num = nump, \
19011 .ops = &param_ops_##type, \
19012 .elemsize = sizeof(array[0]), .elem = array }; \
19013 +diff --git a/include/linux/mount.h b/include/linux/mount.h
19014 +index 371d346..fba2819 100644
19015 +--- a/include/linux/mount.h
19016 ++++ b/include/linux/mount.h
19017 +@@ -56,7 +56,7 @@ struct vfsmount {
19018 + struct dentry *mnt_root; /* root of the mounted tree */
19019 + struct super_block *mnt_sb; /* pointer to superblock */
19020 + int mnt_flags;
19021 +-};
19022 ++} __randomize_layout;
19023 +
19024 + struct file; /* forward dec */
19025 +
19026 diff --git a/include/linux/namei.h b/include/linux/namei.h
19027 -index 8e47bc7..c70fd73 100644
19028 +index 492de72..1bddcd4 100644
19029 --- a/include/linux/namei.h
19030 +++ b/include/linux/namei.h
19031 @@ -19,7 +19,7 @@ struct nameidata {
19032 - unsigned seq;
19033 + unsigned seq, m_seq;
19034 int last_type;
19035 unsigned depth;
19036 - char *saved_names[MAX_NESTED_LINKS + 1];
19037 @@ -77849,10 +79273,10 @@ index 8e47bc7..c70fd73 100644
19038 return nd->saved_names[nd->depth];
19039 }
19040 diff --git a/include/linux/net.h b/include/linux/net.h
19041 -index 41103f8..631edff 100644
19042 +index 69be3e6..0fb422d 100644
19043 --- a/include/linux/net.h
19044 +++ b/include/linux/net.h
19045 -@@ -191,7 +191,7 @@ struct net_proto_family {
19046 +@@ -192,7 +192,7 @@ struct net_proto_family {
19047 int (*create)(struct net *net, struct socket *sock,
19048 int protocol, int kern);
19049 struct module *owner;
19050 @@ -77862,18 +79286,18 @@ index 41103f8..631edff 100644
19051 struct iovec;
19052 struct kvec;
19053 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
19054 -index 21eae43..4fff130 100644
19055 +index ce2a1f5..cb9bc8c 100644
19056 --- a/include/linux/netdevice.h
19057 +++ b/include/linux/netdevice.h
19058 -@@ -1098,6 +1098,7 @@ struct net_device_ops {
19059 - sa_family_t sa_family,
19060 - __be16 port);
19061 +@@ -1129,6 +1129,7 @@ struct net_device_ops {
19062 + struct net_device *dev,
19063 + void *priv);
19064 };
19065 +typedef struct net_device_ops __no_const net_device_ops_no_const;
19066
19067 /*
19068 * The DEVICE structure.
19069 -@@ -1169,7 +1170,7 @@ struct net_device {
19070 +@@ -1211,7 +1212,7 @@ struct net_device {
19071 int iflink;
19072
19073 struct net_device_stats stats;
19074 @@ -77883,10 +79307,10 @@ index 21eae43..4fff130 100644
19075 */
19076
19077 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
19078 -index 708fe72ab9..77084a3 100644
19079 +index 2077489..a15e561 100644
19080 --- a/include/linux/netfilter.h
19081 +++ b/include/linux/netfilter.h
19082 -@@ -82,7 +82,7 @@ struct nf_sockopt_ops {
19083 +@@ -84,7 +84,7 @@ struct nf_sockopt_ops {
19084 #endif
19085 /* Use the module struct to lock set/get code in place */
19086 struct module *owner;
19087 @@ -77896,11 +79320,11 @@ index 708fe72ab9..77084a3 100644
19088 /* Function to register/unregister hook points. */
19089 int nf_register_hook(struct nf_hook_ops *reg);
19090 diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
19091 -index cadb740..d7c37c0 100644
19092 +index 28c7436..2d6156a 100644
19093 --- a/include/linux/netfilter/nfnetlink.h
19094 +++ b/include/linux/netfilter/nfnetlink.h
19095 -@@ -16,7 +16,7 @@ struct nfnl_callback {
19096 - const struct nlattr * const cda[]);
19097 +@@ -19,7 +19,7 @@ struct nfnl_callback {
19098 + const struct nlattr * const cda[]);
19099 const struct nla_policy *policy; /* netlink attribute policy */
19100 const u_int16_t attr_count; /* number of nlattr's */
19101 -};
19102 @@ -77966,8 +79390,21 @@ index b2a0f15..4d7da32 100644
19103
19104 /** create a directory */
19105 struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
19106 +diff --git a/include/linux/padata.h b/include/linux/padata.h
19107 +index 4386946..f50c615 100644
19108 +--- a/include/linux/padata.h
19109 ++++ b/include/linux/padata.h
19110 +@@ -129,7 +129,7 @@ struct parallel_data {
19111 + struct padata_serial_queue __percpu *squeue;
19112 + atomic_t reorder_objects;
19113 + atomic_t refcnt;
19114 +- atomic_t seq_nr;
19115 ++ atomic_unchecked_t seq_nr;
19116 + struct padata_cpumask cpumask;
19117 + spinlock_t lock ____cacheline_aligned;
19118 + unsigned int processed;
19119 diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
19120 -index 430dd96..544e26e 100644
19121 +index a2e2f1d..8a391d2 100644
19122 --- a/include/linux/pci_hotplug.h
19123 +++ b/include/linux/pci_hotplug.h
19124 @@ -71,7 +71,8 @@ struct hotplug_slot_ops {
19125 @@ -77981,7 +79418,7 @@ index 430dd96..544e26e 100644
19126 /**
19127 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
19128 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
19129 -index c8ba627..24bdfa8 100644
19130 +index 2e069d1..27054b8 100644
19131 --- a/include/linux/perf_event.h
19132 +++ b/include/linux/perf_event.h
19133 @@ -327,8 +327,8 @@ struct perf_event {
19134 @@ -78006,7 +79443,7 @@ index c8ba627..24bdfa8 100644
19135
19136 /*
19137 * Protect attach/detach and child_list:
19138 -@@ -702,7 +702,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
19139 +@@ -707,7 +707,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
19140 entry->ip[entry->nr++] = ip;
19141 }
19142
19143 @@ -78015,7 +79452,7 @@ index c8ba627..24bdfa8 100644
19144 extern int sysctl_perf_event_mlock;
19145 extern int sysctl_perf_event_sample_rate;
19146 extern int sysctl_perf_cpu_time_max_percent;
19147 -@@ -717,19 +717,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
19148 +@@ -722,19 +722,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
19149 loff_t *ppos);
19150
19151
19152 @@ -78043,7 +79480,7 @@ index c8ba627..24bdfa8 100644
19153 }
19154
19155 extern void perf_event_init(void);
19156 -@@ -845,7 +850,7 @@ struct perf_pmu_events_attr {
19157 +@@ -850,7 +855,7 @@ struct perf_pmu_events_attr {
19158 struct device_attribute attr;
19159 u64 id;
19160 const char *event_str;
19161 @@ -78052,6 +79489,19 @@ index c8ba627..24bdfa8 100644
19162
19163 #define PMU_EVENT_ATTR(_name, _var, _id, _show) \
19164 static struct perf_pmu_events_attr _var = { \
19165 +diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
19166 +index 7246ef3..1539ea4 100644
19167 +--- a/include/linux/pid_namespace.h
19168 ++++ b/include/linux/pid_namespace.h
19169 +@@ -43,7 +43,7 @@ struct pid_namespace {
19170 + int hide_pid;
19171 + int reboot; /* group exit code if this pidns was rebooted */
19172 + unsigned int proc_inum;
19173 +-};
19174 ++} __randomize_layout;
19175 +
19176 + extern struct pid_namespace init_pid_ns;
19177 +
19178 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
19179 index b8809fe..ae4ccd0 100644
19180 --- a/include/linux/pipe_fs_i.h
19181 @@ -78071,32 +79521,6 @@ index b8809fe..ae4ccd0 100644
19182 unsigned int r_counter;
19183 unsigned int w_counter;
19184 struct page *tmp_page;
19185 -diff --git a/include/linux/platform_data/usb-ehci-s5p.h b/include/linux/platform_data/usb-ehci-s5p.h
19186 -index 5f28cae..3d23723 100644
19187 ---- a/include/linux/platform_data/usb-ehci-s5p.h
19188 -+++ b/include/linux/platform_data/usb-ehci-s5p.h
19189 -@@ -14,7 +14,7 @@
19190 - struct s5p_ehci_platdata {
19191 - int (*phy_init)(struct platform_device *pdev, int type);
19192 - int (*phy_exit)(struct platform_device *pdev, int type);
19193 --};
19194 -+} __no_const;
19195 -
19196 - extern void s5p_ehci_set_platdata(struct s5p_ehci_platdata *pd);
19197 -
19198 -diff --git a/include/linux/platform_data/usb-ohci-exynos.h b/include/linux/platform_data/usb-ohci-exynos.h
19199 -index c256c59..8ea94c7 100644
19200 ---- a/include/linux/platform_data/usb-ohci-exynos.h
19201 -+++ b/include/linux/platform_data/usb-ohci-exynos.h
19202 -@@ -14,7 +14,7 @@
19203 - struct exynos4_ohci_platdata {
19204 - int (*phy_init)(struct platform_device *pdev, int type);
19205 - int (*phy_exit)(struct platform_device *pdev, int type);
19206 --};
19207 -+} __no_const;
19208 -
19209 - extern void exynos4_ohci_set_platdata(struct exynos4_ohci_platdata *pd);
19210 -
19211 diff --git a/include/linux/pm.h b/include/linux/pm.h
19212 index a224c7f..92d8a97 100644
19213 --- a/include/linux/pm.h
19214 @@ -78190,62 +79614,65 @@ index 4ea1d37..80f4b33 100644
19215 /*
19216 * The return value from decompress routine is the length of the
19217 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
19218 -index f5d4723..a6ea2fa 100644
19219 +index a3d9dc8..8af9922 100644
19220 --- a/include/linux/preempt.h
19221 +++ b/include/linux/preempt.h
19222 -@@ -18,8 +18,13 @@
19223 - # define sub_preempt_count(val) do { preempt_count() -= (val); } while (0)
19224 +@@ -27,11 +27,16 @@ extern void preempt_count_sub(int val);
19225 + #define preempt_count_dec_and_test() __preempt_count_dec_and_test()
19226 #endif
19227
19228 -+#define raw_add_preempt_count(val) do { preempt_count() += (val); } while (0)
19229 -+#define raw_sub_preempt_count(val) do { preempt_count() -= (val); } while (0)
19230 ++#define raw_preempt_count_add(val) __preempt_count_add(val)
19231 ++#define raw_preempt_count_sub(val) __preempt_count_sub(val)
19232 +
19233 - #define inc_preempt_count() add_preempt_count(1)
19234 -+#define raw_inc_preempt_count() raw_add_preempt_count(1)
19235 - #define dec_preempt_count() sub_preempt_count(1)
19236 -+#define raw_dec_preempt_count() raw_sub_preempt_count(1)
19237 + #define __preempt_count_inc() __preempt_count_add(1)
19238 + #define __preempt_count_dec() __preempt_count_sub(1)
19239 +
19240 + #define preempt_count_inc() preempt_count_add(1)
19241 ++#define raw_preempt_count_inc() raw_preempt_count_add(1)
19242 + #define preempt_count_dec() preempt_count_sub(1)
19243 ++#define raw_preempt_count_dec() raw_preempt_count_sub(1)
19244
19245 - #define preempt_count() (current_thread_info()->preempt_count)
19246 + #ifdef CONFIG_PREEMPT_COUNT
19247
19248 -@@ -64,6 +69,12 @@ do { \
19249 +@@ -41,6 +46,12 @@ do { \
19250 barrier(); \
19251 } while (0)
19252
19253 +#define raw_preempt_disable() \
19254 +do { \
19255 -+ raw_inc_preempt_count(); \
19256 ++ raw_preempt_count_inc(); \
19257 + barrier(); \
19258 +} while (0)
19259 +
19260 #define sched_preempt_enable_no_resched() \
19261 do { \
19262 barrier(); \
19263 -@@ -72,6 +83,12 @@ do { \
19264 +@@ -49,6 +60,12 @@ do { \
19265
19266 - #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
19267 + #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
19268
19269 +#define raw_preempt_enable_no_resched() \
19270 +do { \
19271 + barrier(); \
19272 -+ raw_dec_preempt_count(); \
19273 ++ raw_preempt_count_dec(); \
19274 +} while (0)
19275 +
19276 + #ifdef CONFIG_PREEMPT
19277 #define preempt_enable() \
19278 do { \
19279 - preempt_enable_no_resched(); \
19280 -@@ -116,8 +133,10 @@ do { \
19281 +@@ -105,8 +122,10 @@ do { \
19282 * region.
19283 */
19284 - #define preempt_disable() barrier()
19285 -+#define raw_preempt_disable() barrier()
19286 + #define preempt_disable() barrier()
19287 ++#define raw_preempt_disable() barrier()
19288 #define sched_preempt_enable_no_resched() barrier()
19289 - #define preempt_enable_no_resched() barrier()
19290 -+#define raw_preempt_enable_no_resched() barrier()
19291 - #define preempt_enable() barrier()
19292 + #define preempt_enable_no_resched() barrier()
19293 ++#define raw_preempt_enable_no_resched() barrier()
19294 + #define preempt_enable() barrier()
19295 + #define preempt_check_resched() do { } while (0)
19296
19297 - #define preempt_disable_notrace() barrier()
19298 diff --git a/include/linux/printk.h b/include/linux/printk.h
19299 -index e6131a78..8e9fb61 100644
19300 +index 6949258..7c4730e 100644
19301 --- a/include/linux/printk.h
19302 +++ b/include/linux/printk.h
19303 @@ -106,6 +106,8 @@ static inline __printf(1, 2) __cold
19304 @@ -78290,7 +79717,7 @@ index 608e60a..c26f864 100644
19305 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
19306 extern void *PDE_DATA(const struct inode *);
19307 diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
19308 -index 34a1e10..03a6d03 100644
19309 +index 34a1e10..70f6bde 100644
19310 --- a/include/linux/proc_ns.h
19311 +++ b/include/linux/proc_ns.h
19312 @@ -14,7 +14,7 @@ struct proc_ns_operations {
19313 @@ -78298,7 +79725,7 @@ index 34a1e10..03a6d03 100644
19314 int (*install)(struct nsproxy *nsproxy, void *ns);
19315 unsigned int (*inum)(void *ns);
19316 -};
19317 -+} __do_const;
19318 ++} __do_const __randomize_layout;
19319
19320 struct proc_ns {
19321 void *ns;
19322 @@ -78316,7 +79743,7 @@ index cc7494a..1e27036 100644
19323 extern bool qid_valid(struct kqid qid);
19324
19325 diff --git a/include/linux/random.h b/include/linux/random.h
19326 -index bf9085e..02aca5f 100644
19327 +index 4002b3d..d5ad855 100644
19328 --- a/include/linux/random.h
19329 +++ b/include/linux/random.h
19330 @@ -10,9 +10,19 @@
19331 @@ -78341,7 +79768,7 @@ index bf9085e..02aca5f 100644
19332
19333 extern void get_random_bytes(void *buf, int nbytes);
19334 extern void get_random_bytes_arch(void *buf, int nbytes);
19335 -@@ -23,16 +33,22 @@ extern int random_int_secret_init(void);
19336 +@@ -23,10 +33,10 @@ extern int random_int_secret_init(void);
19337 extern const struct file_operations random_fops, urandom_fops;
19338 #endif
19339
19340 @@ -78353,10 +79780,9 @@ index bf9085e..02aca5f 100644
19341 +u32 prandom_u32(void) __intentional_overflow(-1);
19342 void prandom_bytes(void *buf, int nbytes);
19343 void prandom_seed(u32 seed);
19344 -+void prandom_reseed_late(void);
19345 -
19346 --u32 prandom_u32_state(struct rnd_state *);
19347 -+u32 prandom_u32_state(struct rnd_state *state);
19348 + void prandom_reseed_late(void);
19349 +@@ -38,6 +48,11 @@ struct rnd_state {
19350 + u32 prandom_u32_state(struct rnd_state *state);
19351 void prandom_bytes_state(struct rnd_state *state, void *buf, int nbytes);
19352
19353 +static inline unsigned long __intentional_overflow(-1) pax_get_random_long(void)
19354 @@ -78367,25 +79793,37 @@ index bf9085e..02aca5f 100644
19355 /*
19356 * Handle minimum values for seeds
19357 */
19358 -@@ -50,9 +66,10 @@ static inline void prandom_seed_state(struct rnd_state *state, u64 seed)
19359 - {
19360 - u32 i = (seed >> 32) ^ (seed << 10) ^ seed;
19361 +diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
19362 +index fea49b5..2ac22bb 100644
19363 +--- a/include/linux/rbtree_augmented.h
19364 ++++ b/include/linux/rbtree_augmented.h
19365 +@@ -80,7 +80,9 @@ rbname ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
19366 + old->rbaugmented = rbcompute(old); \
19367 + } \
19368 + rbstatic const struct rb_augment_callbacks rbname = { \
19369 +- rbname ## _propagate, rbname ## _copy, rbname ## _rotate \
19370 ++ .propagate = rbname ## _propagate, \
19371 ++ .copy = rbname ## _copy, \
19372 ++ .rotate = rbname ## _rotate \
19373 + };
19374
19375 -- state->s1 = __seed(i, 2);
19376 -- state->s2 = __seed(i, 8);
19377 -- state->s3 = __seed(i, 16);
19378 -+ state->s1 = __seed(i, 2U);
19379 -+ state->s2 = __seed(i, 8U);
19380 -+ state->s3 = __seed(i, 16U);
19381 -+ state->s4 = __seed(i, 128U);
19382 - }
19383
19384 - #ifdef CONFIG_ARCH_RANDOM
19385 diff --git a/include/linux/rculist.h b/include/linux/rculist.h
19386 -index 4106721..132d42c 100644
19387 +index 45a0a9e..e83788e 100644
19388 --- a/include/linux/rculist.h
19389 +++ b/include/linux/rculist.h
19390 -@@ -44,6 +44,9 @@ extern void __list_add_rcu(struct list_head *new,
19391 +@@ -29,8 +29,8 @@
19392 + */
19393 + static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
19394 + {
19395 +- ACCESS_ONCE(list->next) = list;
19396 +- ACCESS_ONCE(list->prev) = list;
19397 ++ ACCESS_ONCE_RW(list->next) = list;
19398 ++ ACCESS_ONCE_RW(list->prev) = list;
19399 + }
19400 +
19401 + /*
19402 +@@ -59,6 +59,9 @@ extern void __list_add_rcu(struct list_head *new,
19403 struct list_head *prev, struct list_head *next);
19404 #endif
19405
19406 @@ -78395,7 +79833,7 @@ index 4106721..132d42c 100644
19407 /**
19408 * list_add_rcu - add a new entry to rcu-protected list
19409 * @new: new entry to be added
19410 -@@ -65,6 +68,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
19411 +@@ -80,6 +83,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
19412 __list_add_rcu(new, head, head->next);
19413 }
19414
19415 @@ -78407,7 +79845,7 @@ index 4106721..132d42c 100644
19416 /**
19417 * list_add_tail_rcu - add a new entry to rcu-protected list
19418 * @new: new entry to be added
19419 -@@ -87,6 +95,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
19420 +@@ -102,6 +110,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
19421 __list_add_rcu(new, head->prev, head);
19422 }
19423
19424 @@ -78420,7 +79858,7 @@ index 4106721..132d42c 100644
19425 /**
19426 * list_del_rcu - deletes entry from list without re-initialization
19427 * @entry: the element to delete from the list.
19428 -@@ -117,6 +131,8 @@ static inline void list_del_rcu(struct list_head *entry)
19429 +@@ -132,6 +146,8 @@ static inline void list_del_rcu(struct list_head *entry)
19430 entry->prev = LIST_POISON2;
19431 }
19432
19433 @@ -78524,10 +79962,10 @@ index 6dacb93..6174423 100644
19434 static inline void anon_vma_merge(struct vm_area_struct *vma,
19435 struct vm_area_struct *next)
19436 diff --git a/include/linux/sched.h b/include/linux/sched.h
19437 -index b1e963e..4916219 100644
19438 +index 53f97eb..1d90705 100644
19439 --- a/include/linux/sched.h
19440 +++ b/include/linux/sched.h
19441 -@@ -62,6 +62,7 @@ struct bio_list;
19442 +@@ -63,6 +63,7 @@ struct bio_list;
19443 struct fs_struct;
19444 struct perf_event_context;
19445 struct blk_plug;
19446 @@ -78535,7 +79973,7 @@ index b1e963e..4916219 100644
19447
19448 /*
19449 * List of flags we want to share for kernel threads,
19450 -@@ -295,7 +296,7 @@ extern char __sched_text_start[], __sched_text_end[];
19451 +@@ -304,7 +305,7 @@ extern char __sched_text_start[], __sched_text_end[];
19452 extern int in_sched_functions(unsigned long addr);
19453
19454 #define MAX_SCHEDULE_TIMEOUT LONG_MAX
19455 @@ -78544,7 +79982,7 @@ index b1e963e..4916219 100644
19456 extern signed long schedule_timeout_interruptible(signed long timeout);
19457 extern signed long schedule_timeout_killable(signed long timeout);
19458 extern signed long schedule_timeout_uninterruptible(signed long timeout);
19459 -@@ -306,6 +307,19 @@ struct nsproxy;
19460 +@@ -315,6 +316,19 @@ struct nsproxy;
19461 struct user_namespace;
19462
19463 #ifdef CONFIG_MMU
19464 @@ -78564,7 +80002,7 @@ index b1e963e..4916219 100644
19465 extern void arch_pick_mmap_layout(struct mm_struct *mm);
19466 extern unsigned long
19467 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
19468 -@@ -585,6 +599,17 @@ struct signal_struct {
19469 +@@ -600,6 +614,17 @@ struct signal_struct {
19470 #ifdef CONFIG_TASKSTATS
19471 struct taskstats *stats;
19472 #endif
19473 @@ -78582,7 +80020,16 @@ index b1e963e..4916219 100644
19474 #ifdef CONFIG_AUDIT
19475 unsigned audit_tty;
19476 unsigned audit_tty_log_passwd;
19477 -@@ -665,6 +690,14 @@ struct user_struct {
19478 +@@ -626,7 +651,7 @@ struct signal_struct {
19479 + struct mutex cred_guard_mutex; /* guard against foreign influences on
19480 + * credential calculations
19481 + * (notably. ptrace) */
19482 +-};
19483 ++} __randomize_layout;
19484 +
19485 + /*
19486 + * Bits in flags field of signal_struct.
19487 +@@ -680,6 +705,14 @@ struct user_struct {
19488 struct key *session_keyring; /* UID's default session keyring */
19489 #endif
19490
19491 @@ -78597,7 +80044,16 @@ index b1e963e..4916219 100644
19492 /* Hash table maintenance information */
19493 struct hlist_node uidhash_node;
19494 kuid_t uid;
19495 -@@ -1150,8 +1183,8 @@ struct task_struct {
19496 +@@ -687,7 +720,7 @@ struct user_struct {
19497 + #ifdef CONFIG_PERF_EVENTS
19498 + atomic_long_t locked_vm;
19499 + #endif
19500 +-};
19501 ++} __randomize_layout;
19502 +
19503 + extern int uids_sysfs_init(void);
19504 +
19505 +@@ -1162,8 +1195,8 @@ struct task_struct {
19506 struct list_head thread_group;
19507
19508 struct completion *vfork_done; /* for vfork() */
19509 @@ -78608,7 +80064,7 @@ index b1e963e..4916219 100644
19510
19511 cputime_t utime, stime, utimescaled, stimescaled;
19512 cputime_t gtime;
19513 -@@ -1176,11 +1209,6 @@ struct task_struct {
19514 +@@ -1188,11 +1221,6 @@ struct task_struct {
19515 struct task_cputime cputime_expires;
19516 struct list_head cpu_timers[3];
19517
19518 @@ -78620,7 +80076,7 @@ index b1e963e..4916219 100644
19519 char comm[TASK_COMM_LEN]; /* executable name excluding path
19520 - access with [gs]et_task_comm (which lock
19521 it with task_lock())
19522 -@@ -1197,6 +1225,10 @@ struct task_struct {
19523 +@@ -1209,6 +1237,10 @@ struct task_struct {
19524 #endif
19525 /* CPU-specific state of this task */
19526 struct thread_struct thread;
19527 @@ -78631,7 +80087,7 @@ index b1e963e..4916219 100644
19528 /* filesystem information */
19529 struct fs_struct *fs;
19530 /* open file information */
19531 -@@ -1270,6 +1302,10 @@ struct task_struct {
19532 +@@ -1282,6 +1314,10 @@ struct task_struct {
19533 gfp_t lockdep_reclaim_gfp;
19534 #endif
19535
19536 @@ -78642,7 +80098,7 @@ index b1e963e..4916219 100644
19537 /* journalling filesystem info */
19538 void *journal_info;
19539
19540 -@@ -1308,6 +1344,10 @@ struct task_struct {
19541 +@@ -1320,6 +1356,10 @@ struct task_struct {
19542 /* cg_list protected by css_set_lock and tsk->alloc_lock */
19543 struct list_head cg_list;
19544 #endif
19545 @@ -78653,10 +80109,11 @@ index b1e963e..4916219 100644
19546 #ifdef CONFIG_FUTEX
19547 struct robust_list_head __user *robust_list;
19548 #ifdef CONFIG_COMPAT
19549 -@@ -1411,8 +1451,79 @@ struct task_struct {
19550 +@@ -1454,7 +1494,78 @@ struct task_struct {
19551 unsigned int sequential_io;
19552 unsigned int sequential_io_avg;
19553 #endif
19554 +-};
19555 +
19556 +#ifdef CONFIG_GRKERNSEC
19557 + /* grsecurity */
19558 @@ -78681,8 +80138,8 @@ index b1e963e..4916219 100644
19559 + u8 gr_is_chrooted;
19560 +#endif
19561 +
19562 - };
19563 -
19564 ++} __randomize_layout;
19565 ++
19566 +#define MF_PAX_PAGEEXEC 0x01000000 /* Paging based non-executable pages */
19567 +#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */
19568 +#define MF_PAX_MPROTECT 0x04000000 /* Restrict mprotect() */
19569 @@ -78729,11 +80186,10 @@ index b1e963e..4916219 100644
19570 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
19571 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
19572 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
19573 -+
19574 +
19575 /* Future-safe accessor for struct task_struct's cpus_allowed. */
19576 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
19577 -
19578 -@@ -1471,7 +1582,7 @@ struct pid_namespace;
19579 +@@ -1531,7 +1642,7 @@ struct pid_namespace;
19580 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
19581 struct pid_namespace *ns);
19582
19583 @@ -78742,7 +80198,7 @@ index b1e963e..4916219 100644
19584 {
19585 return tsk->pid;
19586 }
19587 -@@ -1921,7 +2032,9 @@ void yield(void);
19588 +@@ -1981,7 +2092,9 @@ void yield(void);
19589 extern struct exec_domain default_exec_domain;
19590
19591 union thread_union {
19592 @@ -78752,7 +80208,7 @@ index b1e963e..4916219 100644
19593 unsigned long stack[THREAD_SIZE/sizeof(long)];
19594 };
19595
19596 -@@ -1954,6 +2067,7 @@ extern struct pid_namespace init_pid_ns;
19597 +@@ -2014,6 +2127,7 @@ extern struct pid_namespace init_pid_ns;
19598 */
19599
19600 extern struct task_struct *find_task_by_vpid(pid_t nr);
19601 @@ -78760,7 +80216,7 @@ index b1e963e..4916219 100644
19602 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
19603 struct pid_namespace *ns);
19604
19605 -@@ -2118,7 +2232,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
19606 +@@ -2178,7 +2292,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
19607 extern void exit_itimers(struct signal_struct *);
19608 extern void flush_itimer_signals(void);
19609
19610 @@ -78769,7 +80225,7 @@ index b1e963e..4916219 100644
19611
19612 extern int allow_signal(int);
19613 extern int disallow_signal(int);
19614 -@@ -2309,9 +2423,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
19615 +@@ -2369,9 +2483,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
19616
19617 #endif
19618
19619 @@ -78782,7 +80238,7 @@ index b1e963e..4916219 100644
19620 return (obj >= stack) && (obj < (stack + THREAD_SIZE));
19621 }
19622 diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
19623 -index bf8086b..962b035 100644
19624 +index 41467f8..1e4253d 100644
19625 --- a/include/linux/sched/sysctl.h
19626 +++ b/include/linux/sched/sysctl.h
19627 @@ -30,6 +30,7 @@ enum { sysctl_hung_task_timeout_secs = 0 };
19628 @@ -78794,7 +80250,7 @@ index bf8086b..962b035 100644
19629 extern unsigned int sysctl_sched_latency;
19630 extern unsigned int sysctl_sched_min_granularity;
19631 diff --git a/include/linux/security.h b/include/linux/security.h
19632 -index 9d37e2b..43368e4 100644
19633 +index 5623a7f..b352409 100644
19634 --- a/include/linux/security.h
19635 +++ b/include/linux/security.h
19636 @@ -27,6 +27,7 @@
19637 @@ -78828,10 +80284,10 @@ index dc368b8..e895209 100644
19638 extern int __must_check down_trylock(struct semaphore *sem);
19639 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
19640 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
19641 -index 4e32edc..f8f2d18 100644
19642 +index 52e0097..09625ef 100644
19643 --- a/include/linux/seq_file.h
19644 +++ b/include/linux/seq_file.h
19645 -@@ -26,6 +26,9 @@ struct seq_file {
19646 +@@ -27,6 +27,9 @@ struct seq_file {
19647 struct mutex lock;
19648 const struct seq_operations *op;
19649 int poll_event;
19650 @@ -78841,7 +80297,7 @@ index 4e32edc..f8f2d18 100644
19651 #ifdef CONFIG_USER_NS
19652 struct user_namespace *user_ns;
19653 #endif
19654 -@@ -38,6 +41,7 @@ struct seq_operations {
19655 +@@ -39,6 +42,7 @@ struct seq_operations {
19656 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
19657 int (*show) (struct seq_file *m, void *v);
19658 };
19659 @@ -78865,19 +80321,19 @@ index 429c199..4d42e38 100644
19660
19661 /* shm_mode upper byte flags */
19662 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
19663 -index efa1649..ff898ac 100644
19664 +index 6f69b3f..335b9b1 100644
19665 --- a/include/linux/skbuff.h
19666 +++ b/include/linux/skbuff.h
19667 -@@ -639,7 +639,7 @@ extern bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
19668 - extern struct sk_buff *__alloc_skb(unsigned int size,
19669 - gfp_t priority, int flags, int node);
19670 - extern struct sk_buff *build_skb(void *data, unsigned int frag_size);
19671 +@@ -643,7 +643,7 @@ bool skb_try_coalesce(struct sk_buff *to, struct sk_buff *from,
19672 + struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
19673 + int node);
19674 + struct sk_buff *build_skb(void *data, unsigned int frag_size);
19675 -static inline struct sk_buff *alloc_skb(unsigned int size,
19676 +static inline struct sk_buff * __intentional_overflow(0) alloc_skb(unsigned int size,
19677 gfp_t priority)
19678 {
19679 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
19680 -@@ -755,7 +755,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
19681 +@@ -750,7 +750,7 @@ static inline struct skb_shared_hwtstamps *skb_hwtstamps(struct sk_buff *skb)
19682 */
19683 static inline int skb_queue_empty(const struct sk_buff_head *list)
19684 {
19685 @@ -78886,7 +80342,7 @@ index efa1649..ff898ac 100644
19686 }
19687
19688 /**
19689 -@@ -768,7 +768,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
19690 +@@ -763,7 +763,7 @@ static inline int skb_queue_empty(const struct sk_buff_head *list)
19691 static inline bool skb_queue_is_last(const struct sk_buff_head *list,
19692 const struct sk_buff *skb)
19693 {
19694 @@ -78895,7 +80351,7 @@ index efa1649..ff898ac 100644
19695 }
19696
19697 /**
19698 -@@ -781,7 +781,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
19699 +@@ -776,7 +776,7 @@ static inline bool skb_queue_is_last(const struct sk_buff_head *list,
19700 static inline bool skb_queue_is_first(const struct sk_buff_head *list,
19701 const struct sk_buff *skb)
19702 {
19703 @@ -78912,17 +80368,17 @@ index efa1649..ff898ac 100644
19704 +#define NET_SKB_PAD max(_AC(32,UL), L1_CACHE_BYTES)
19705 #endif
19706
19707 - extern int ___pskb_trim(struct sk_buff *skb, unsigned int len);
19708 -@@ -2344,7 +2344,7 @@ extern struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags,
19709 - int noblock, int *err);
19710 - extern unsigned int datagram_poll(struct file *file, struct socket *sock,
19711 - struct poll_table_struct *wait);
19712 --extern int skb_copy_datagram_iovec(const struct sk_buff *from,
19713 -+extern int __intentional_overflow(0) skb_copy_datagram_iovec(const struct sk_buff *from,
19714 - int offset, struct iovec *to,
19715 - int size);
19716 - extern int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb,
19717 -@@ -2623,6 +2623,9 @@ static inline void nf_reset(struct sk_buff *skb)
19718 + int ___pskb_trim(struct sk_buff *skb, unsigned int len);
19719 +@@ -2345,7 +2345,7 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
19720 + int *err);
19721 + unsigned int datagram_poll(struct file *file, struct socket *sock,
19722 + struct poll_table_struct *wait);
19723 +-int skb_copy_datagram_iovec(const struct sk_buff *from, int offset,
19724 ++int __intentional_overflow(0) skb_copy_datagram_iovec(const struct sk_buff *from, int offset,
19725 + struct iovec *to, int size);
19726 + int skb_copy_and_csum_datagram_iovec(struct sk_buff *skb, int hlen,
19727 + struct iovec *iov);
19728 +@@ -2617,6 +2617,9 @@ static inline void nf_reset(struct sk_buff *skb)
19729 nf_bridge_put(skb->nf_bridge);
19730 skb->nf_bridge = NULL;
19731 #endif
19732 @@ -78933,7 +80389,7 @@ index efa1649..ff898ac 100644
19733
19734 static inline void nf_reset_trace(struct sk_buff *skb)
19735 diff --git a/include/linux/slab.h b/include/linux/slab.h
19736 -index 74f1058..914b7da 100644
19737 +index 1e2f4fe..df49ca6 100644
19738 --- a/include/linux/slab.h
19739 +++ b/include/linux/slab.h
19740 @@ -14,15 +14,29 @@
19741 @@ -78967,7 +80423,7 @@ index 74f1058..914b7da 100644
19742 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
19743 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
19744 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
19745 -@@ -91,10 +105,13 @@
19746 +@@ -98,10 +112,13 @@
19747 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
19748 * Both make kfree a no-op.
19749 */
19750 @@ -78984,7 +80440,7 @@ index 74f1058..914b7da 100644
19751
19752 #include <linux/kmemleak.h>
19753
19754 -@@ -135,6 +152,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
19755 +@@ -142,6 +159,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
19756 void kfree(const void *);
19757 void kzfree(const void *);
19758 size_t ksize(const void *);
19759 @@ -78993,7 +80449,7 @@ index 74f1058..914b7da 100644
19760
19761 /*
19762 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
19763 -@@ -167,7 +186,7 @@ struct kmem_cache {
19764 +@@ -174,7 +193,7 @@ struct kmem_cache {
19765 unsigned int align; /* Alignment as calculated */
19766 unsigned long flags; /* Active flags on the slab */
19767 const char *name; /* Slab name for sysfs */
19768 @@ -79002,7 +80458,7 @@ index 74f1058..914b7da 100644
19769 void (*ctor)(void *); /* Called on object slot creation */
19770 struct list_head list; /* List of all slab caches on the system */
19771 };
19772 -@@ -241,6 +260,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
19773 +@@ -248,6 +267,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
19774 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
19775 #endif
19776
19777 @@ -79013,7 +80469,7 @@ index 74f1058..914b7da 100644
19778 /*
19779 * Figure out which kmalloc slab an allocation of a certain size
19780 * belongs to.
19781 -@@ -249,7 +272,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
19782 +@@ -256,7 +279,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
19783 * 2 = 120 .. 192 bytes
19784 * n = 2^(n-1) .. 2^n -1
19785 */
19786 @@ -79022,7 +80478,7 @@ index 74f1058..914b7da 100644
19787 {
19788 if (!size)
19789 return 0;
19790 -@@ -292,11 +315,11 @@ static __always_inline int kmalloc_index(size_t size)
19791 +@@ -299,11 +322,11 @@ static __always_inline int kmalloc_index(size_t size)
19792 }
19793 #endif /* !CONFIG_SLOB */
19794
19795 @@ -79037,7 +80493,7 @@ index 74f1058..914b7da 100644
19796 #else
19797 static __always_inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
19798 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
19799 -index e9346b4..1494959 100644
19800 +index 09bfffb..4fc80fb 100644
19801 --- a/include/linux/slab_def.h
19802 +++ b/include/linux/slab_def.h
19803 @@ -36,7 +36,7 @@ struct kmem_cache {
19804 @@ -79069,7 +80525,7 @@ index e9346b4..1494959 100644
19805 /*
19806 * If debugging is enabled, then the allocator can add additional
19807 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
19808 -index cc0b67e..a0329b1 100644
19809 +index f56bfa9..8378a26 100644
19810 --- a/include/linux/slub_def.h
19811 +++ b/include/linux/slub_def.h
19812 @@ -74,7 +74,7 @@ struct kmem_cache {
19813 @@ -79082,10 +80538,10 @@ index cc0b67e..a0329b1 100644
19814 int inuse; /* Offset to metadata */
19815 int align; /* Alignment */
19816 diff --git a/include/linux/smp.h b/include/linux/smp.h
19817 -index 731f523..3340268 100644
19818 +index 5da22ee..71d8a28 100644
19819 --- a/include/linux/smp.h
19820 +++ b/include/linux/smp.h
19821 -@@ -186,7 +186,9 @@ static inline void __smp_call_function_single(int cpuid,
19822 +@@ -176,7 +176,9 @@ static inline void kick_all_cpus_sync(void) { }
19823 #endif
19824
19825 #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
19826 @@ -79156,10 +80612,10 @@ index 07d8e53..dc934c9 100644
19827
19828 #endif /* _LINUX_SUNRPC_ADDR_H */
19829 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
19830 -index 6740801..c535f27 100644
19831 +index 8af2804..c7414ef 100644
19832 --- a/include/linux/sunrpc/clnt.h
19833 +++ b/include/linux/sunrpc/clnt.h
19834 -@@ -96,7 +96,7 @@ struct rpc_procinfo {
19835 +@@ -97,7 +97,7 @@ struct rpc_procinfo {
19836 unsigned int p_timer; /* Which RTT timer to use */
19837 u32 p_statidx; /* Which procedure to account */
19838 const char * p_name; /* name of procedure */
19839 @@ -79238,7 +80694,7 @@ index a5ffd32..0935dea 100644
19840 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
19841 unsigned long offset, size_t size,
19842 diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
19843 -index 7fac04e..de57300 100644
19844 +index 94273bb..c2e05fc 100644
19845 --- a/include/linux/syscalls.h
19846 +++ b/include/linux/syscalls.h
19847 @@ -97,8 +97,14 @@ struct sigaltstack;
19848 @@ -79296,7 +80752,7 @@ index 27b3b0b..e093dd9 100644
19849 extern void register_syscore_ops(struct syscore_ops *ops);
19850 extern void unregister_syscore_ops(struct syscore_ops *ops);
19851 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
19852 -index 14a8ff2..af52bad 100644
19853 +index 14a8ff2..fa95f3a 100644
19854 --- a/include/linux/sysctl.h
19855 +++ b/include/linux/sysctl.h
19856 @@ -34,13 +34,13 @@ struct ctl_table_root;
19857 @@ -79320,14 +80776,14 @@ index 14a8ff2..af52bad 100644
19858 void *extra1;
19859 void *extra2;
19860 -};
19861 -+} __do_const;
19862 ++} __do_const __randomize_layout;
19863 +typedef struct ctl_table __no_const ctl_table_no_const;
19864 +typedef struct ctl_table ctl_table;
19865
19866 struct ctl_node {
19867 struct rb_node node;
19868 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
19869 -index 11baec7..706f99f 100644
19870 +index 6695040..3d4192d 100644
19871 --- a/include/linux/sysfs.h
19872 +++ b/include/linux/sysfs.h
19873 @@ -33,7 +33,8 @@ struct attribute {
19874 @@ -79361,7 +80817,7 @@ index 11baec7..706f99f 100644
19875 /**
19876 * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
19877 diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
19878 -index 7faf933..9b85a0c 100644
19879 +index 387fa7d..3fcde6b 100644
19880 --- a/include/linux/sysrq.h
19881 +++ b/include/linux/sysrq.h
19882 @@ -16,6 +16,7 @@
19883 @@ -79370,9 +80826,9 @@ index 7faf933..9b85a0c 100644
19884 #include <linux/types.h>
19885 +#include <linux/compiler.h>
19886
19887 - /* Enable/disable SYSRQ support by default (0==no, 1==yes). */
19888 - #define SYSRQ_DEFAULT_ENABLE 1
19889 -@@ -36,7 +37,7 @@ struct sysrq_key_op {
19890 + /* Possible values of bitmask for enabling sysrq functions */
19891 + /* 0x0001 is reserved for enable everything */
19892 +@@ -33,7 +34,7 @@ struct sysrq_key_op {
19893 char *help_msg;
19894 char *action_msg;
19895 int enable_mask;
19896 @@ -79382,10 +80838,10 @@ index 7faf933..9b85a0c 100644
19897 #ifdef CONFIG_MAGIC_SYSRQ
19898
19899 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
19900 -index 4ae6f32..425d3e1 100644
19901 +index fddbe20..0312de8 100644
19902 --- a/include/linux/thread_info.h
19903 +++ b/include/linux/thread_info.h
19904 -@@ -150,6 +150,15 @@ static inline bool test_and_clear_restore_sigmask(void)
19905 +@@ -161,6 +161,15 @@ static inline bool test_and_clear_restore_sigmask(void)
19906 #error "no set_restore_sigmask() provided and default one won't work"
19907 #endif
19908
19909 @@ -79402,10 +80858,10 @@ index 4ae6f32..425d3e1 100644
19910
19911 #endif /* _LINUX_THREAD_INFO_H */
19912 diff --git a/include/linux/tty.h b/include/linux/tty.h
19913 -index 64f8646..1515fc7 100644
19914 +index 97d660e..6356755 100644
19915 --- a/include/linux/tty.h
19916 +++ b/include/linux/tty.h
19917 -@@ -197,7 +197,7 @@ struct tty_port {
19918 +@@ -196,7 +196,7 @@ struct tty_port {
19919 const struct tty_port_operations *ops; /* Port operations */
19920 spinlock_t lock; /* Lock protecting tty field */
19921 int blocked_open; /* Waiting to open */
19922 @@ -79414,7 +80870,16 @@ index 64f8646..1515fc7 100644
19923 wait_queue_head_t open_wait; /* Open waiters */
19924 wait_queue_head_t close_wait; /* Close waiters */
19925 wait_queue_head_t delta_msr_wait; /* Modem status change */
19926 -@@ -546,7 +546,7 @@ extern int tty_port_open(struct tty_port *port,
19927 +@@ -278,7 +278,7 @@ struct tty_struct {
19928 + /* If the tty has a pending do_SAK, queue it here - akpm */
19929 + struct work_struct SAK_work;
19930 + struct tty_port *port;
19931 +-};
19932 ++} __randomize_layout;
19933 +
19934 + /* Each of a tty's open files has private_data pointing to tty_file_private */
19935 + struct tty_file_private {
19936 +@@ -545,7 +545,7 @@ extern int tty_port_open(struct tty_port *port,
19937 struct tty_struct *tty, struct file *filp);
19938 static inline int tty_port_users(struct tty_port *port)
19939 {
19940 @@ -79424,7 +80889,7 @@ index 64f8646..1515fc7 100644
19941
19942 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
19943 diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
19944 -index 756a609..b302dd6 100644
19945 +index 756a609..f61242d 100644
19946 --- a/include/linux/tty_driver.h
19947 +++ b/include/linux/tty_driver.h
19948 @@ -285,7 +285,7 @@ struct tty_operations {
19949 @@ -79436,6 +80901,15 @@ index 756a609..b302dd6 100644
19950
19951 struct tty_driver {
19952 int magic; /* magic number for this structure */
19953 +@@ -319,7 +319,7 @@ struct tty_driver {
19954 +
19955 + const struct tty_operations *ops;
19956 + struct list_head tty_drivers;
19957 +-};
19958 ++} __randomize_layout;
19959 +
19960 + extern struct list_head tty_drivers;
19961 +
19962 diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
19963 index f15c898..207b7d1 100644
19964 --- a/include/linux/tty_ldisc.h
19965 @@ -79481,10 +80955,10 @@ index 4d118ba..c3ee9bf 100644
19966
19967 struct list_head {
19968 diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
19969 -index 5ca0951..ab496a5 100644
19970 +index 9d8cf05..0ed74dd 100644
19971 --- a/include/linux/uaccess.h
19972 +++ b/include/linux/uaccess.h
19973 -@@ -76,11 +76,11 @@ static inline unsigned long __copy_from_user_nocache(void *to,
19974 +@@ -72,11 +72,11 @@ static inline unsigned long __copy_from_user_nocache(void *to,
19975 long ret; \
19976 mm_segment_t old_fs = get_fs(); \
19977 \
19978 @@ -79565,7 +81039,7 @@ index 99c1b4d..562e6f3 100644
19979
19980 static inline void put_unaligned_le16(u16 val, void *p)
19981 diff --git a/include/linux/usb.h b/include/linux/usb.h
19982 -index 6b02370..2355ffa 100644
19983 +index 512ab16..f53e1bf 100644
19984 --- a/include/linux/usb.h
19985 +++ b/include/linux/usb.h
19986 @@ -563,7 +563,7 @@ struct usb_device {
19987 @@ -79577,7 +81051,7 @@ index 6b02370..2355ffa 100644
19988
19989 unsigned long active_duration;
19990
19991 -@@ -1639,7 +1639,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in,
19992 +@@ -1643,7 +1643,7 @@ void usb_buffer_unmap_sg(const struct usb_device *dev, int is_in,
19993
19994 extern int usb_control_msg(struct usb_device *dev, unsigned int pipe,
19995 __u8 request, __u8 requesttype, __u16 value, __u16 index,
19996 @@ -79599,11 +81073,37 @@ index e452ba6..78f8e80 100644
19997
19998 /*
19999 * callback functions for platform
20000 +diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
20001 +index 4836ba3..603f6ee 100644
20002 +--- a/include/linux/user_namespace.h
20003 ++++ b/include/linux/user_namespace.h
20004 +@@ -33,7 +33,7 @@ struct user_namespace {
20005 + struct key *persistent_keyring_register;
20006 + struct rw_semaphore persistent_keyring_register_sem;
20007 + #endif
20008 +-};
20009 ++} __randomize_layout;
20010 +
20011 + extern struct user_namespace init_user_ns;
20012 +
20013 +diff --git a/include/linux/utsname.h b/include/linux/utsname.h
20014 +index 239e277..22a5cf5 100644
20015 +--- a/include/linux/utsname.h
20016 ++++ b/include/linux/utsname.h
20017 +@@ -24,7 +24,7 @@ struct uts_namespace {
20018 + struct new_utsname name;
20019 + struct user_namespace *user_ns;
20020 + unsigned int proc_inum;
20021 +-};
20022 ++} __randomize_layout;
20023 + extern struct uts_namespace init_uts_ns;
20024 +
20025 + #ifdef CONFIG_UTS_NS
20026 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
20027 -index 6f8fbcf..8259001 100644
20028 +index 6f8fbcf..e2a0e61 100644
20029 --- a/include/linux/vermagic.h
20030 +++ b/include/linux/vermagic.h
20031 -@@ -25,9 +25,35 @@
20032 +@@ -25,9 +25,41 @@
20033 #define MODULE_ARCH_VERMAGIC ""
20034 #endif
20035
20036 @@ -79625,6 +81125,12 @@ index 6f8fbcf..8259001 100644
20037 +#define MODULE_STACKLEAK_PLUGIN ""
20038 +#endif
20039 +
20040 ++#ifdef RANDSTRUCT_PLUGIN
20041 ++#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
20042 ++#else
20043 ++#define MODULE_RANDSTRUCT_PLUGIN
20044 ++#endif
20045 ++
20046 +#ifdef CONFIG_GRKERNSEC
20047 +#define MODULE_GRSEC "GRSEC "
20048 +#else
20049 @@ -79638,7 +81144,7 @@ index 6f8fbcf..8259001 100644
20050 - MODULE_ARCH_VERMAGIC
20051 + MODULE_ARCH_VERMAGIC \
20052 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
20053 -+ MODULE_GRSEC
20054 ++ MODULE_GRSEC MODULE_RANDSTRUCT_PLUGIN
20055
20056 diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
20057 index 502073a..a7de024 100644
20058 @@ -79847,11 +81353,11 @@ index 9a36d92..0aafe2a 100644
20059 void v9fs_register_trans(struct p9_trans_module *m);
20060 void v9fs_unregister_trans(struct p9_trans_module *m);
20061 diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
20062 -index 1a966af..2767cf6 100644
20063 +index c853b16d..37fccb7 100644
20064 --- a/include/net/bluetooth/l2cap.h
20065 +++ b/include/net/bluetooth/l2cap.h
20066 -@@ -551,7 +551,7 @@ struct l2cap_ops {
20067 - void (*defer) (struct l2cap_chan *chan);
20068 +@@ -557,7 +557,7 @@ struct l2cap_ops {
20069 + long (*get_sndtimeo) (struct l2cap_chan *chan);
20070 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
20071 unsigned long len, int nb);
20072 -};
20073 @@ -79884,29 +81390,29 @@ index f2ae33d..c457cf0 100644
20074 /* Protects from simultaneous access to first_req list */
20075 spinlock_t info_list_lock;
20076 diff --git a/include/net/flow.h b/include/net/flow.h
20077 -index 628e11b..4c475df 100644
20078 +index 65ce471..b7bbe9b 100644
20079 --- a/include/net/flow.h
20080 +++ b/include/net/flow.h
20081 -@@ -221,6 +221,6 @@ extern struct flow_cache_object *flow_cache_lookup(
20082 +@@ -222,6 +222,6 @@ struct flow_cache_object *flow_cache_lookup(struct net *net,
20083
20084 - extern void flow_cache_flush(void);
20085 - extern void flow_cache_flush_deferred(void);
20086 + void flow_cache_flush(void);
20087 + void flow_cache_flush_deferred(void);
20088 -extern atomic_t flow_cache_genid;
20089 +extern atomic_unchecked_t flow_cache_genid;
20090
20091 #endif
20092 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
20093 -index 8e0b6c8..73cf605 100644
20094 +index 1b177ed..a24a138 100644
20095 --- a/include/net/genetlink.h
20096 +++ b/include/net/genetlink.h
20097 -@@ -120,7 +120,7 @@ struct genl_ops {
20098 - struct netlink_callback *cb);
20099 - int (*done)(struct netlink_callback *cb);
20100 - struct list_head ops_list;
20101 +@@ -118,7 +118,7 @@ struct genl_ops {
20102 + u8 cmd;
20103 + u8 internal_flags;
20104 + u8 flags;
20105 -};
20106 +} __do_const;
20107
20108 - extern int __genl_register_family(struct genl_family *family);
20109 + int __genl_register_family(struct genl_family *family);
20110
20111 diff --git a/include/net/gro_cells.h b/include/net/gro_cells.h
20112 index 734d9b5..48a9a4b 100644
20113 @@ -79922,7 +81428,7 @@ index 734d9b5..48a9a4b 100644
20114 return;
20115 }
20116 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
20117 -index de2c785..0588a6b 100644
20118 +index c55aeed..b3393f4 100644
20119 --- a/include/net/inet_connection_sock.h
20120 +++ b/include/net/inet_connection_sock.h
20121 @@ -62,7 +62,7 @@ struct inet_connection_sock_af_ops {
20122 @@ -79935,7 +81441,7 @@ index de2c785..0588a6b 100644
20123 /** inet_connection_sock - INET connection oriented sock
20124 *
20125 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
20126 -index 53f464d..0bd0b49 100644
20127 +index f4e127a..c3d5e9c 100644
20128 --- a/include/net/inetpeer.h
20129 +++ b/include/net/inetpeer.h
20130 @@ -47,8 +47,8 @@ struct inet_peer {
20131 @@ -79972,12 +81478,12 @@ index 53f464d..0bd0b49 100644
20132
20133 #endif /* _NET_INETPEER_H */
20134 diff --git a/include/net/ip.h b/include/net/ip.h
20135 -index 301f10c..b52cdaf 100644
20136 +index 5a25f36..2e73203 100644
20137 --- a/include/net/ip.h
20138 +++ b/include/net/ip.h
20139 -@@ -212,7 +212,7 @@ extern struct local_ports {
20140 - } sysctl_local_ports;
20141 - extern void inet_get_local_port_range(int *low, int *high);
20142 +@@ -219,7 +219,7 @@ static inline void snmp_mib_free(void __percpu *ptr[SNMP_ARRAY_SZ])
20143 +
20144 + void inet_get_local_port_range(struct net *net, int *low, int *high);
20145
20146 -extern unsigned long *sysctl_local_reserved_ports;
20147 +extern unsigned long sysctl_local_reserved_ports[65536 / 8 / sizeof(unsigned long)];
20148 @@ -79985,10 +81491,10 @@ index 301f10c..b52cdaf 100644
20149 {
20150 return test_bit(port, sysctl_local_reserved_ports);
20151 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
20152 -index cbf2be3..3683f6d 100644
20153 +index 9922093..a1755d6 100644
20154 --- a/include/net/ip_fib.h
20155 +++ b/include/net/ip_fib.h
20156 -@@ -169,7 +169,7 @@ extern __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
20157 +@@ -169,7 +169,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
20158
20159 #define FIB_RES_SADDR(net, res) \
20160 ((FIB_RES_NH(res).nh_saddr_genid == \
20161 @@ -79998,7 +81504,7 @@ index cbf2be3..3683f6d 100644
20162 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
20163 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
20164 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
20165 -index 772252d..1e69799 100644
20166 +index 5679d92..2e7a690 100644
20167 --- a/include/net/ip_vs.h
20168 +++ b/include/net/ip_vs.h
20169 @@ -558,7 +558,7 @@ struct ip_vs_conn {
20170 @@ -80034,7 +81540,7 @@ index 772252d..1e69799 100644
20171 struct list_head est_list; /* estimator list */
20172 spinlock_t est_lock;
20173 diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h
20174 -index 80ffde3..968b0f4 100644
20175 +index 0224402..dafaf94a 100644
20176 --- a/include/net/irda/ircomm_tty.h
20177 +++ b/include/net/irda/ircomm_tty.h
20178 @@ -35,6 +35,7 @@
20179 @@ -80059,7 +81565,7 @@ index 714cc9a..ea05f3e 100644
20180
20181 unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
20182 diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
20183 -index df83f69..9b640b8 100644
20184 +index f3be818..bf46196 100644
20185 --- a/include/net/llc_c_ac.h
20186 +++ b/include/net/llc_c_ac.h
20187 @@ -87,7 +87,7 @@
20188 @@ -80069,10 +81575,10 @@ index df83f69..9b640b8 100644
20189 -typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
20190 +typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
20191
20192 - extern int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
20193 - extern int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
20194 + int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
20195 + int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
20196 diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
20197 -index 6ca3113..f8026dd 100644
20198 +index 3948cf1..83b28c4 100644
20199 --- a/include/net/llc_c_ev.h
20200 +++ b/include/net/llc_c_ev.h
20201 @@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
20202 @@ -80084,8 +81590,8 @@ index 6ca3113..f8026dd 100644
20203 +typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
20204 +typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
20205
20206 - extern int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
20207 - extern int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
20208 + int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
20209 + int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
20210 diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h
20211 index 0e79cfb..f46db31 100644
20212 --- a/include/net/llc_c_st.h
20213 @@ -80100,7 +81606,7 @@ index 0e79cfb..f46db31 100644
20214 struct llc_conn_state {
20215 u8 current_state;
20216 diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
20217 -index 37a3bbd..55a4241 100644
20218 +index a61b98c..aade1eb 100644
20219 --- a/include/net/llc_s_ac.h
20220 +++ b/include/net/llc_s_ac.h
20221 @@ -23,7 +23,7 @@
20222 @@ -80110,8 +81616,8 @@ index 37a3bbd..55a4241 100644
20223 -typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
20224 +typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
20225
20226 - extern int llc_sap_action_unitdata_ind(struct llc_sap *sap,
20227 - struct sk_buff *skb);
20228 + int llc_sap_action_unitdata_ind(struct llc_sap *sap, struct sk_buff *skb);
20229 + int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
20230 diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h
20231 index 567c681..cd73ac0 100644
20232 --- a/include/net/llc_s_st.h
20233 @@ -80126,10 +81632,10 @@ index 567c681..cd73ac0 100644
20234 struct llc_sap_state {
20235 u8 curr_state;
20236 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
20237 -index cc6035f..a8406fc 100644
20238 +index 7ceed99..d3ffaa2 100644
20239 --- a/include/net/mac80211.h
20240 +++ b/include/net/mac80211.h
20241 -@@ -4361,7 +4361,7 @@ struct rate_control_ops {
20242 +@@ -4407,7 +4407,7 @@ struct rate_control_ops {
20243 void (*add_sta_debugfs)(void *priv, void *priv_sta,
20244 struct dentry *dir);
20245 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
20246 @@ -80139,7 +81645,7 @@ index cc6035f..a8406fc 100644
20247 static inline int rate_supported(struct ieee80211_sta *sta,
20248 enum ieee80211_band band,
20249 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
20250 -index 536501a..7c6193c 100644
20251 +index 536501a..74ad02bc 100644
20252 --- a/include/net/neighbour.h
20253 +++ b/include/net/neighbour.h
20254 @@ -123,7 +123,7 @@ struct neigh_ops {
20255 @@ -80151,20 +81657,31 @@ index 536501a..7c6193c 100644
20256
20257 struct pneigh_entry {
20258 struct pneigh_entry *next;
20259 +@@ -178,7 +178,7 @@ struct neigh_table {
20260 + struct neigh_statistics __percpu *stats;
20261 + struct neigh_hash_table __rcu *nht;
20262 + struct pneigh_entry **phash_buckets;
20263 +-};
20264 ++} __randomize_layout;
20265 +
20266 + #define NEIGH_PRIV_ALIGN sizeof(long long)
20267 + #define NEIGH_ENTRY_SIZE(size) ALIGN((size), NEIGH_PRIV_ALIGN)
20268 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
20269 -index 9d22f08..980fbf8 100644
20270 +index da68c9a..c4a0720 100644
20271 --- a/include/net/net_namespace.h
20272 +++ b/include/net/net_namespace.h
20273 -@@ -120,7 +120,7 @@ struct net {
20274 +@@ -124,8 +124,8 @@ struct net {
20275 struct netns_ipvs *ipvs;
20276 #endif
20277 struct sock *diag_nlsk;
20278 - atomic_t fnhe_genid;
20279 +-};
20280 + atomic_unchecked_t fnhe_genid;
20281 - };
20282 ++} __randomize_layout;
20283
20284 /*
20285 -@@ -277,7 +277,11 @@ static inline struct net *read_pnet(struct net * const *pnet)
20286 + * ifindex generation is per-net namespace, and loopback is
20287 +@@ -281,7 +281,11 @@ static inline struct net *read_pnet(struct net * const *pnet)
20288 #define __net_init __init
20289 #define __net_exit __exit_refok
20290 #define __net_initdata __initdata
20291 @@ -80176,7 +81693,7 @@ index 9d22f08..980fbf8 100644
20292 #endif
20293
20294 struct pernet_operations {
20295 -@@ -287,7 +291,7 @@ struct pernet_operations {
20296 +@@ -291,7 +295,7 @@ struct pernet_operations {
20297 void (*exit_batch)(struct list_head *net_exit_list);
20298 int *id;
20299 size_t size;
20300 @@ -80185,7 +81702,7 @@ index 9d22f08..980fbf8 100644
20301
20302 /*
20303 * Use these carefully. If you implement a network device and it
20304 -@@ -335,23 +339,23 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
20305 +@@ -339,23 +343,23 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
20306
20307 static inline int rt_genid_ipv4(struct net *net)
20308 {
20309 @@ -80213,7 +81730,7 @@ index 9d22f08..980fbf8 100644
20310 }
20311 #else
20312 static inline int rt_genid_ipv6(struct net *net)
20313 -@@ -373,12 +377,12 @@ static inline void rt_genid_bump_all(struct net *net)
20314 +@@ -377,12 +381,12 @@ static inline void rt_genid_bump_all(struct net *net)
20315
20316 static inline int fnhe_genid(struct net *net)
20317 {
20318 @@ -80242,10 +81759,10 @@ index 8ba8ce2..99b7fff 100644
20319 size_t len, struct dma_pinned_list *pinned_list);
20320
20321 diff --git a/include/net/netlink.h b/include/net/netlink.h
20322 -index 9690b0f..87aded7 100644
20323 +index 2b47eaa..6d5bcc2 100644
20324 --- a/include/net/netlink.h
20325 +++ b/include/net/netlink.h
20326 -@@ -534,7 +534,7 @@ static inline void *nlmsg_get_pos(struct sk_buff *skb)
20327 +@@ -521,7 +521,7 @@ static inline void *nlmsg_get_pos(struct sk_buff *skb)
20328 static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
20329 {
20330 if (mark)
20331 @@ -80281,19 +81798,19 @@ index c9c0c53..53f24c3 100644
20332 };
20333
20334 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
20335 -index bf2ec22..5e7f9d9 100644
20336 +index ee520cb..9a0fd88 100644
20337 --- a/include/net/netns/ipv4.h
20338 +++ b/include/net/netns/ipv4.h
20339 -@@ -67,7 +67,7 @@ struct netns_ipv4 {
20340 +@@ -72,7 +72,7 @@ struct netns_ipv4 {
20341 +
20342 kgid_t sysctl_ping_group_range[2];
20343 - long sysctl_tcp_mem[3];
20344
20345 - atomic_t dev_addr_genid;
20346 -+ atomic_unchecked_t dev_addr_genid;
20347 ++ atomic_unchecked_t dev_addr_genid;
20348
20349 #ifdef CONFIG_IP_MROUTE
20350 #ifndef CONFIG_IP_MROUTE_MULTIPLE_TABLES
20351 -@@ -77,6 +77,6 @@ struct netns_ipv4 {
20352 +@@ -82,6 +82,6 @@ struct netns_ipv4 {
20353 struct fib_rules_ops *mr_rules_ops;
20354 #endif
20355 #endif
20356 @@ -80317,7 +81834,7 @@ index 0fb2401..477d81c 100644
20357
20358 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
20359 diff --git a/include/net/ping.h b/include/net/ping.h
20360 -index 2b496e9..935fd8d 100644
20361 +index 90f4841..74446a8 100644
20362 --- a/include/net/ping.h
20363 +++ b/include/net/ping.h
20364 @@ -56,7 +56,7 @@ struct ping_iter_state {
20365 @@ -80330,7 +81847,7 @@ index 2b496e9..935fd8d 100644
20366
20367 struct pingfakehdr {
20368 diff --git a/include/net/protocol.h b/include/net/protocol.h
20369 -index 047c047..b9dad15 100644
20370 +index fbf7676..a5e21c3 100644
20371 --- a/include/net/protocol.h
20372 +++ b/include/net/protocol.h
20373 @@ -44,7 +44,7 @@ struct net_protocol {
20374 @@ -80352,18 +81869,33 @@ index 047c047..b9dad15 100644
20375 #define INET6_PROTO_NOPOLICY 0x1
20376 #define INET6_PROTO_FINAL 0x2
20377 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
20378 -index 7026648..584cc8c 100644
20379 +index bb13a18..e734116 100644
20380 --- a/include/net/rtnetlink.h
20381 +++ b/include/net/rtnetlink.h
20382 -@@ -81,7 +81,7 @@ struct rtnl_link_ops {
20383 +@@ -79,7 +79,7 @@ struct rtnl_link_ops {
20384 const struct net_device *dev);
20385 unsigned int (*get_num_tx_queues)(void);
20386 unsigned int (*get_num_rx_queues)(void);
20387 -};
20388 +} __do_const;
20389
20390 - extern int __rtnl_link_register(struct rtnl_link_ops *ops);
20391 - extern void __rtnl_link_unregister(struct rtnl_link_ops *ops);
20392 + int __rtnl_link_register(struct rtnl_link_ops *ops);
20393 + void __rtnl_link_unregister(struct rtnl_link_ops *ops);
20394 +diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
20395 +index 6bd44fe..96f364e 100644
20396 +--- a/include/net/sctp/checksum.h
20397 ++++ b/include/net/sctp/checksum.h
20398 +@@ -62,8 +62,8 @@ static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
20399 + unsigned int offset)
20400 + {
20401 + struct sctphdr *sh = sctp_hdr(skb);
20402 +- __le32 ret, old = sh->checksum;
20403 +- const struct skb_checksum_ops ops = {
20404 ++ __le32 ret, old = sh->checksum;
20405 ++ static const struct skb_checksum_ops ops = {
20406 + .update = sctp_csum_update,
20407 + .combine = sctp_csum_combine,
20408 + };
20409 diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
20410 index 4ef75af..5aa073a 100644
20411 --- a/include/net/sctp/sm.h
20412 @@ -80387,7 +81919,7 @@ index 4ef75af..5aa073a 100644
20413
20414 /* Get the size of a DATA chunk payload. */
20415 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
20416 -index 2174d8d..71d5257 100644
20417 +index 0a248b3..4dcbe5c 100644
20418 --- a/include/net/sctp/structs.h
20419 +++ b/include/net/sctp/structs.h
20420 @@ -508,7 +508,7 @@ struct sctp_pf {
20421 @@ -80400,10 +81932,10 @@ index 2174d8d..71d5257 100644
20422
20423 /* Structure to track chunk fragments that have been acked, but peer
20424 diff --git a/include/net/sock.h b/include/net/sock.h
20425 -index 808cbc2..8617e9c 100644
20426 +index 2ef3c3e..e02013e 100644
20427 --- a/include/net/sock.h
20428 +++ b/include/net/sock.h
20429 -@@ -332,7 +332,7 @@ struct sock {
20430 +@@ -348,7 +348,7 @@ struct sock {
20431 unsigned int sk_napi_id;
20432 unsigned int sk_ll_usec;
20433 #endif
20434 @@ -80412,7 +81944,7 @@ index 808cbc2..8617e9c 100644
20435 int sk_rcvbuf;
20436
20437 struct sk_filter __rcu *sk_filter;
20438 -@@ -1194,7 +1194,7 @@ static inline u64 memcg_memory_allocated_read(struct cg_proto *prot)
20439 +@@ -1209,7 +1209,7 @@ static inline u64 memcg_memory_allocated_read(struct cg_proto *prot)
20440 return ret >> PAGE_SHIFT;
20441 }
20442
20443 @@ -80421,7 +81953,7 @@ index 808cbc2..8617e9c 100644
20444 sk_memory_allocated(const struct sock *sk)
20445 {
20446 struct proto *prot = sk->sk_prot;
20447 -@@ -1821,7 +1821,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
20448 +@@ -1813,7 +1813,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
20449 }
20450
20451 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
20452 @@ -80430,7 +81962,7 @@ index 808cbc2..8617e9c 100644
20453 int copy, int offset)
20454 {
20455 if (skb->ip_summed == CHECKSUM_NONE) {
20456 -@@ -2083,7 +2083,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
20457 +@@ -2075,7 +2075,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
20458 }
20459 }
20460
20461 @@ -80440,19 +81972,19 @@ index 808cbc2..8617e9c 100644
20462 /**
20463 * sk_page_frag - return an appropriate page_frag
20464 diff --git a/include/net/tcp.h b/include/net/tcp.h
20465 -index b1aa324..b8530ea 100644
20466 +index 70e55d2..c5d8d53 100644
20467 --- a/include/net/tcp.h
20468 +++ b/include/net/tcp.h
20469 -@@ -527,7 +527,7 @@ extern void tcp_retransmit_timer(struct sock *sk);
20470 - extern void tcp_xmit_retransmit_queue(struct sock *);
20471 - extern void tcp_simple_retransmit(struct sock *);
20472 - extern int tcp_trim_head(struct sock *, struct sk_buff *, u32);
20473 --extern int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int);
20474 -+extern int __intentional_overflow(3) tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int);
20475 -
20476 - extern void tcp_send_probe0(struct sock *);
20477 - extern void tcp_send_partial(struct sock *);
20478 -@@ -699,8 +699,8 @@ struct tcp_skb_cb {
20479 +@@ -540,7 +540,7 @@ void tcp_retransmit_timer(struct sock *sk);
20480 + void tcp_xmit_retransmit_queue(struct sock *);
20481 + void tcp_simple_retransmit(struct sock *);
20482 + int tcp_trim_head(struct sock *, struct sk_buff *, u32);
20483 +-int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int);
20484 ++int __intentional_overflow(3) tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int);
20485 +
20486 + void tcp_send_probe0(struct sock *);
20487 + void tcp_send_partial(struct sock *);
20488 +@@ -711,8 +711,8 @@ struct tcp_skb_cb {
20489 struct inet6_skb_parm h6;
20490 #endif
20491 } header; /* For incoming frames */
20492 @@ -80463,7 +81995,7 @@ index b1aa324..b8530ea 100644
20493 __u32 when; /* used to compute rtt's */
20494 __u8 tcp_flags; /* TCP header flags. (tcp[13]) */
20495
20496 -@@ -714,7 +714,7 @@ struct tcp_skb_cb {
20497 +@@ -726,7 +726,7 @@ struct tcp_skb_cb {
20498
20499 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
20500 /* 1 byte hole */
20501 @@ -80473,7 +82005,7 @@ index b1aa324..b8530ea 100644
20502
20503 #define TCP_SKB_CB(__skb) ((struct tcp_skb_cb *)&((__skb)->cb[0]))
20504 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
20505 -index e253bf0..2278b4b 100644
20506 +index 6b82fdf..14d74d2 100644
20507 --- a/include/net/xfrm.h
20508 +++ b/include/net/xfrm.h
20509 @@ -287,7 +287,6 @@ struct xfrm_dst;
20510 @@ -80491,18 +82023,18 @@ index e253bf0..2278b4b 100644
20511 -};
20512 +} __do_const;
20513
20514 - extern int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
20515 - extern int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
20516 -@@ -342,7 +341,7 @@ struct xfrm_state_afinfo {
20517 + int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
20518 + int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
20519 +@@ -344,7 +343,7 @@ struct xfrm_state_afinfo {
20520 int (*transport_finish)(struct sk_buff *skb,
20521 int async);
20522 void (*local_error)(struct sk_buff *skb, u32 mtu);
20523 -};
20524 +} __do_const;
20525
20526 - extern int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
20527 - extern int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
20528 -@@ -427,7 +426,7 @@ struct xfrm_mode {
20529 + int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
20530 + int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
20531 +@@ -429,7 +428,7 @@ struct xfrm_mode {
20532 struct module *owner;
20533 unsigned int encap;
20534 int flags;
20535 @@ -80511,7 +82043,7 @@ index e253bf0..2278b4b 100644
20536
20537 /* Flags for xfrm_mode. */
20538 enum {
20539 -@@ -524,7 +523,7 @@ struct xfrm_policy {
20540 +@@ -526,7 +525,7 @@ struct xfrm_policy {
20541 struct timer_list timer;
20542
20543 struct flow_cache_object flo;
20544 @@ -80520,15 +82052,15 @@ index e253bf0..2278b4b 100644
20545 u32 priority;
20546 u32 index;
20547 struct xfrm_mark mark;
20548 -@@ -1164,6 +1163,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
20549 +@@ -1166,6 +1165,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
20550 }
20551
20552 - extern void xfrm_garbage_collect(struct net *net);
20553 -+extern void xfrm_garbage_collect_deferred(struct net *net);
20554 + void xfrm_garbage_collect(struct net *net);
20555 ++void xfrm_garbage_collect_deferred(struct net *net);
20556
20557 #else
20558
20559 -@@ -1202,6 +1202,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
20560 +@@ -1204,6 +1204,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
20561 static inline void xfrm_garbage_collect(struct net *net)
20562 {
20563 }
20564 @@ -80552,10 +82084,10 @@ index 1017e0b..227aa4d 100644
20565 /**
20566 * iw_create_cm_id - Create an IW CM identifier.
20567 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
20568 -index e1379b4..67eafbe 100644
20569 +index 52beadf..598734c 100644
20570 --- a/include/scsi/libfc.h
20571 +++ b/include/scsi/libfc.h
20572 -@@ -762,6 +762,7 @@ struct libfc_function_template {
20573 +@@ -771,6 +771,7 @@ struct libfc_function_template {
20574 */
20575 void (*disc_stop_final) (struct fc_lport *);
20576 };
20577 @@ -80563,7 +82095,7 @@ index e1379b4..67eafbe 100644
20578
20579 /**
20580 * struct fc_disc - Discovery context
20581 -@@ -866,7 +867,7 @@ struct fc_lport {
20582 +@@ -875,7 +876,7 @@ struct fc_lport {
20583 struct fc_vport *vport;
20584
20585 /* Operational Information */
20586 @@ -80617,10 +82149,10 @@ index ae6c3b8..fd748ac 100644
20587 /**
20588 * struct snd_compr: Compressed device
20589 diff --git a/include/sound/soc.h b/include/sound/soc.h
20590 -index d22cb0a..c6ba150 100644
20591 +index 1f741cb..8cefc08 100644
20592 --- a/include/sound/soc.h
20593 +++ b/include/sound/soc.h
20594 -@@ -780,7 +780,7 @@ struct snd_soc_codec_driver {
20595 +@@ -763,7 +763,7 @@ struct snd_soc_codec_driver {
20596 /* probe ordering - for components with runtime dependencies */
20597 int probe_order;
20598 int remove_order;
20599 @@ -80629,7 +82161,7 @@ index d22cb0a..c6ba150 100644
20600
20601 /* SoC platform interface */
20602 struct snd_soc_platform_driver {
20603 -@@ -826,7 +826,7 @@ struct snd_soc_platform_driver {
20604 +@@ -809,7 +809,7 @@ struct snd_soc_platform_driver {
20605 unsigned int (*read)(struct snd_soc_platform *, unsigned int);
20606 int (*write)(struct snd_soc_platform *, unsigned int, unsigned int);
20607 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
20608 @@ -80639,11 +82171,11 @@ index d22cb0a..c6ba150 100644
20609 struct snd_soc_platform {
20610 const char *name;
20611 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
20612 -index 23bfd10..1ff3e35 100644
20613 +index 321301c..2ae5cb0 100644
20614 --- a/include/target/target_core_base.h
20615 +++ b/include/target/target_core_base.h
20616 -@@ -664,7 +664,7 @@ struct se_device {
20617 - spinlock_t stats_lock;
20618 +@@ -687,7 +687,7 @@ struct se_device {
20619 + atomic_long_t write_bytes;
20620 /* Active commands on this virtual SE device */
20621 atomic_t simple_cmds;
20622 - atomic_t dev_ordered_id;
20623 @@ -80893,19 +82425,6 @@ index aa169c4..6a2771d 100644
20624 MMAP_PAGE_ZERO)
20625
20626 /*
20627 -diff --git a/include/uapi/linux/random.h b/include/uapi/linux/random.h
20628 -index 7471b5b..f97f514 100644
20629 ---- a/include/uapi/linux/random.h
20630 -+++ b/include/uapi/linux/random.h
20631 -@@ -41,7 +41,7 @@ struct rand_pool_info {
20632 - };
20633 -
20634 - struct rnd_state {
20635 -- __u32 s1, s2, s3;
20636 -+ __u32 s1, s2, s3, s4;
20637 - };
20638 -
20639 - /* Exported functions */
20640 diff --git a/include/uapi/linux/screen_info.h b/include/uapi/linux/screen_info.h
20641 index 7530e74..e714828 100644
20642 --- a/include/uapi/linux/screen_info.h
20643 @@ -80964,6 +82483,19 @@ index 6d67213..552fdd9 100644
20644 /* CTL_VM names: */
20645 enum
20646 {
20647 +diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
20648 +index 437f1b0..0eeb38d 100644
20649 +--- a/include/uapi/linux/videodev2.h
20650 ++++ b/include/uapi/linux/videodev2.h
20651 +@@ -1227,7 +1227,7 @@ struct v4l2_ext_control {
20652 + union {
20653 + __s32 value;
20654 + __s64 value64;
20655 +- char *string;
20656 ++ char __user *string;
20657 + };
20658 + } __attribute__ ((packed));
20659 +
20660 diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
20661 index e4629b9..6958086 100644
20662 --- a/include/uapi/linux/xattr.h
20663 @@ -81010,10 +82542,10 @@ index 30f5362..8ed8ac9 100644
20664 void *pmi_pal;
20665 u8 *vbe_state_orig; /*
20666 diff --git a/init/Kconfig b/init/Kconfig
20667 -index 3ecd8a1..627843f 100644
20668 +index 4e5d96a..93cd8a1 100644
20669 --- a/init/Kconfig
20670 +++ b/init/Kconfig
20671 -@@ -1086,6 +1086,7 @@ endif # CGROUPS
20672 +@@ -1079,6 +1079,7 @@ endif # CGROUPS
20673
20674 config CHECKPOINT_RESTORE
20675 bool "Checkpoint/restore support" if EXPERT
20676 @@ -81021,7 +82553,7 @@ index 3ecd8a1..627843f 100644
20677 default n
20678 help
20679 Enables additional kernel features in a sake of checkpoint/restore.
20680 -@@ -1557,7 +1558,7 @@ config SLUB_DEBUG
20681 +@@ -1550,7 +1551,7 @@ config SLUB_DEBUG
20682
20683 config COMPAT_BRK
20684 bool "Disable heap randomization"
20685 @@ -81030,7 +82562,7 @@ index 3ecd8a1..627843f 100644
20686 help
20687 Randomizing heap placement makes heap exploits harder, but it
20688 also breaks ancient binaries (including anything libc5 based).
20689 -@@ -1832,7 +1833,7 @@ config INIT_ALL_POSSIBLE
20690 +@@ -1838,7 +1839,7 @@ config INIT_ALL_POSSIBLE
20691 config STOP_MACHINE
20692 bool
20693 default y
20694 @@ -81054,10 +82586,10 @@ index 7bc47ee..6da2dc7 100644
20695 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
20696 obj-y += noinitramfs.o
20697 diff --git a/init/do_mounts.c b/init/do_mounts.c
20698 -index a51cddc..25c2768 100644
20699 +index 8e5addc..c96ea61 100644
20700 --- a/init/do_mounts.c
20701 +++ b/init/do_mounts.c
20702 -@@ -357,11 +357,11 @@ static void __init get_fs_names(char *page)
20703 +@@ -359,11 +359,11 @@ static void __init get_fs_names(char *page)
20704 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
20705 {
20706 struct super_block *s;
20707 @@ -81071,7 +82603,7 @@ index a51cddc..25c2768 100644
20708 s = current->fs->pwd.dentry->d_sb;
20709 ROOT_DEV = s->s_dev;
20710 printk(KERN_INFO
20711 -@@ -482,18 +482,18 @@ void __init change_floppy(char *fmt, ...)
20712 +@@ -484,18 +484,18 @@ void __init change_floppy(char *fmt, ...)
20713 va_start(args, fmt);
20714 vsprintf(buf, fmt, args);
20715 va_end(args);
20716 @@ -81093,7 +82625,7 @@ index a51cddc..25c2768 100644
20717 termios.c_lflag |= ICANON;
20718 sys_ioctl(fd, TCSETSF, (long)&termios);
20719 sys_close(fd);
20720 -@@ -587,8 +587,8 @@ void __init prepare_namespace(void)
20721 +@@ -589,8 +589,8 @@ void __init prepare_namespace(void)
20722 mount_root();
20723 out:
20724 devtmpfs_mount("dev");
20725 @@ -81389,7 +82921,7 @@ index a67ef9d..2d17ed9 100644
20726 #ifdef CONFIG_BLK_DEV_RAM
20727 int fd;
20728 diff --git a/init/main.c b/init/main.c
20729 -index 63d3e8f..50bd5f8 100644
20730 +index febc511..f0851763 100644
20731 --- a/init/main.c
20732 +++ b/init/main.c
20733 @@ -103,6 +103,8 @@ static inline void mark_rodata_ro(void) { }
20734 @@ -81401,7 +82933,7 @@ index 63d3e8f..50bd5f8 100644
20735 /*
20736 * Debug helper: via this flag we know that we are in 'early bootup code'
20737 * where only the boot processor is running with IRQ disabled. This means
20738 -@@ -156,6 +158,75 @@ static int __init set_reset_devices(char *str)
20739 +@@ -164,6 +166,75 @@ static int __init set_reset_devices(char *str)
20740
20741 __setup("reset_devices", set_reset_devices);
20742
20743 @@ -81477,7 +83009,7 @@ index 63d3e8f..50bd5f8 100644
20744 static const char * argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
20745 const char * envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
20746 static const char *panic_later, *panic_param;
20747 -@@ -682,25 +753,24 @@ int __init_or_module do_one_initcall(initcall_t fn)
20748 +@@ -691,25 +762,24 @@ int __init_or_module do_one_initcall(initcall_t fn)
20749 {
20750 int count = preempt_count();
20751 int ret;
20752 @@ -81494,7 +83026,7 @@ index 63d3e8f..50bd5f8 100644
20753 if (preempt_count() != count) {
20754 - sprintf(msgbuf, "preemption imbalance ");
20755 + msg1 = " preemption imbalance";
20756 - preempt_count() = count;
20757 + preempt_count_set(count);
20758 }
20759 if (irqs_disabled()) {
20760 - strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
20761 @@ -81508,7 +83040,7 @@ index 63d3e8f..50bd5f8 100644
20762 return ret;
20763 }
20764
20765 -@@ -807,10 +877,14 @@ static int run_init_process(const char *init_filename)
20766 +@@ -816,8 +886,8 @@ static int run_init_process(const char *init_filename)
20767 {
20768 argv_init[0] = init_filename;
20769 return do_execve(init_filename,
20770 @@ -81518,6 +83050,11 @@ index 63d3e8f..50bd5f8 100644
20771 + (const char __user *const __force_user *)envp_init);
20772 }
20773
20774 + static int try_to_run_init_process(const char *init_filename)
20775 +@@ -834,6 +904,10 @@ static int try_to_run_init_process(const char *init_filename)
20776 + return ret;
20777 + }
20778 +
20779 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
20780 +extern int gr_init_ran;
20781 +#endif
20782 @@ -81525,8 +83062,8 @@ index 63d3e8f..50bd5f8 100644
20783 static noinline void __init kernel_init_freeable(void);
20784
20785 static int __ref kernel_init(void *unused)
20786 -@@ -831,6 +905,11 @@ static int __ref kernel_init(void *unused)
20787 - pr_err("Failed to execute %s\n", ramdisk_execute_command);
20788 +@@ -858,6 +932,11 @@ static int __ref kernel_init(void *unused)
20789 + ramdisk_execute_command, ret);
20790 }
20791
20792 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
20793 @@ -81537,7 +83074,7 @@ index 63d3e8f..50bd5f8 100644
20794 /*
20795 * We try each of these until one succeeds.
20796 *
20797 -@@ -885,7 +964,7 @@ static noinline void __init kernel_init_freeable(void)
20798 +@@ -913,7 +992,7 @@ static noinline void __init kernel_init_freeable(void)
20799 do_basic_setup();
20800
20801 /* Open the /dev/console on the rootfs, this should never fail */
20802 @@ -81546,7 +83083,7 @@ index 63d3e8f..50bd5f8 100644
20803 pr_err("Warning: unable to open an initial console.\n");
20804
20805 (void) sys_dup(0);
20806 -@@ -898,11 +977,13 @@ static noinline void __init kernel_init_freeable(void)
20807 +@@ -926,11 +1005,13 @@ static noinline void __init kernel_init_freeable(void)
20808 if (!ramdisk_execute_command)
20809 ramdisk_execute_command = "/init";
20810
20811 @@ -81561,6 +83098,19 @@ index 63d3e8f..50bd5f8 100644
20812 /*
20813 * Ok, we have completed the initial bootup, and
20814 * we're essentially up and running. Get rid of the
20815 +diff --git a/ipc/compat.c b/ipc/compat.c
20816 +index 892f658..e7c6320 100644
20817 +--- a/ipc/compat.c
20818 ++++ b/ipc/compat.c
20819 +@@ -399,7 +399,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
20820 + COMPAT_SHMLBA);
20821 + if (err < 0)
20822 + return err;
20823 +- return put_user(raddr, (compat_ulong_t *)compat_ptr(third));
20824 ++ return put_user(raddr, (compat_ulong_t __user *)compat_ptr(third));
20825 + }
20826 + case SHMDT:
20827 + return sys_shmdt(compat_ptr(ptr));
20828 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
20829 index b0e99de..09f385c 100644
20830 --- a/ipc/ipc_sysctl.c
20831 @@ -81624,7 +83174,7 @@ index 383d638..943fdbb 100644
20832 mq_table.data = get_mq(table);
20833
20834 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
20835 -index ae1996d..a35f2cc 100644
20836 +index 95827ce..09e6d38 100644
20837 --- a/ipc/mqueue.c
20838 +++ b/ipc/mqueue.c
20839 @@ -278,6 +278,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
20840 @@ -81795,7 +83345,7 @@ index 7a51443..3a257d8 100644
20841 ipc_unlock_object(&shp->shm_perm);
20842 rcu_read_unlock();
20843 diff --git a/ipc/util.c b/ipc/util.c
20844 -index 7684f41..5bf1880 100644
20845 +index 3ae17a4..d67c32f 100644
20846 --- a/ipc/util.c
20847 +++ b/ipc/util.c
20848 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
20849 @@ -81807,7 +83357,7 @@ index 7684f41..5bf1880 100644
20850 static void ipc_memory_notifier(struct work_struct *work)
20851 {
20852 ipcns_notify(IPCNS_MEMCHANGED);
20853 -@@ -560,6 +562,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
20854 +@@ -558,6 +560,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
20855 granted_mode >>= 6;
20856 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
20857 granted_mode >>= 3;
20858 @@ -81832,10 +83382,10 @@ index 8d6e145..33e0b1e 100644
20859 current->signal->rlim[RLIMIT_FSIZE].rlim_cur = flim;
20860 set_fs(fs);
20861 diff --git a/kernel/audit.c b/kernel/audit.c
20862 -index 7ddfd8a..49766eb 100644
20863 +index 906ae5a0..a7ad0b4 100644
20864 --- a/kernel/audit.c
20865 +++ b/kernel/audit.c
20866 -@@ -118,7 +118,7 @@ u32 audit_sig_sid = 0;
20867 +@@ -117,7 +117,7 @@ u32 audit_sig_sid = 0;
20868 3) suppressed due to audit_rate_limit
20869 4) suppressed due to audit_backlog_limit
20870 */
20871 @@ -81844,7 +83394,7 @@ index 7ddfd8a..49766eb 100644
20872
20873 /* The netlink socket. */
20874 static struct sock *audit_sock;
20875 -@@ -240,7 +240,7 @@ void audit_log_lost(const char *message)
20876 +@@ -250,7 +250,7 @@ void audit_log_lost(const char *message)
20877 unsigned long now;
20878 int print;
20879
20880 @@ -81853,7 +83403,7 @@ index 7ddfd8a..49766eb 100644
20881
20882 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
20883
20884 -@@ -259,7 +259,7 @@ void audit_log_lost(const char *message)
20885 +@@ -269,7 +269,7 @@ void audit_log_lost(const char *message)
20886 printk(KERN_WARNING
20887 "audit: audit_lost=%d audit_rate_limit=%d "
20888 "audit_backlog_limit=%d\n",
20889 @@ -81862,7 +83412,7 @@ index 7ddfd8a..49766eb 100644
20890 audit_rate_limit,
20891 audit_backlog_limit);
20892 audit_panic(message);
20893 -@@ -665,7 +665,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
20894 +@@ -765,7 +765,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
20895 status_set.pid = audit_pid;
20896 status_set.rate_limit = audit_rate_limit;
20897 status_set.backlog_limit = audit_backlog_limit;
20898 @@ -81871,7 +83421,7 @@ index 7ddfd8a..49766eb 100644
20899 status_set.backlog = skb_queue_len(&audit_skb_queue);
20900 audit_send_reply(NETLINK_CB(skb).portid, seq, AUDIT_GET, 0, 0,
20901 &status_set, sizeof(status_set));
20902 -@@ -1252,7 +1252,7 @@ void audit_log_n_hex(struct audit_buffer *ab, const unsigned char *buf,
20903 +@@ -1356,7 +1356,7 @@ void audit_log_n_hex(struct audit_buffer *ab, const unsigned char *buf,
20904 int i, avail, new_len;
20905 unsigned char *ptr;
20906 struct sk_buff *skb;
20907 @@ -81881,27 +83431,27 @@ index 7ddfd8a..49766eb 100644
20908 if (!ab)
20909 return;
20910 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
20911 -index 9845cb3..3ec9369 100644
20912 +index 90594c9..abbeed7 100644
20913 --- a/kernel/auditsc.c
20914 +++ b/kernel/auditsc.c
20915 -@@ -1962,7 +1962,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
20916 +@@ -1945,7 +1945,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
20917 }
20918
20919 /* global counter which is incremented every time something logs in */
20920 -static atomic_t session_id = ATOMIC_INIT(0);
20921 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
20922
20923 - /**
20924 - * audit_set_loginuid - set current task's audit_context loginuid
20925 -@@ -1986,7 +1986,7 @@ int audit_set_loginuid(kuid_t loginuid)
20926 - return -EPERM;
20927 - #endif /* CONFIG_AUDIT_LOGINUID_IMMUTABLE */
20928 + static int audit_set_loginuid_perm(kuid_t loginuid)
20929 + {
20930 +@@ -2008,7 +2008,7 @@ int audit_set_loginuid(kuid_t loginuid)
20931
20932 -- sessionid = atomic_inc_return(&session_id);
20933 -+ sessionid = atomic_inc_return_unchecked(&session_id);
20934 - if (context && context->in_syscall) {
20935 - struct audit_buffer *ab;
20936 + /* are we setting or clearing? */
20937 + if (uid_valid(loginuid))
20938 +- sessionid = atomic_inc_return(&session_id);
20939 ++ sessionid = atomic_inc_return_unchecked(&session_id);
20940
20941 + task->sessionid = sessionid;
20942 + task->loginuid = loginuid;
20943 diff --git a/kernel/capability.c b/kernel/capability.c
20944 index 4e66bf9..cdccecf 100644
20945 --- a/kernel/capability.c
20946 @@ -82000,10 +83550,10 @@ index 4e66bf9..cdccecf 100644
20947 +}
20948 +EXPORT_SYMBOL(inode_capable_nolog);
20949 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
20950 -index b6fd783..7f526b7 100644
20951 +index bc1dcab..f3a6b42 100644
20952 --- a/kernel/cgroup.c
20953 +++ b/kernel/cgroup.c
20954 -@@ -5855,7 +5855,7 @@ static int cgroup_css_links_read(struct cgroup_subsys_state *css,
20955 +@@ -5607,7 +5607,7 @@ static int cgroup_css_links_read(struct cgroup_subsys_state *css,
20956 struct css_set *cset = link->cset;
20957 struct task_struct *task;
20958 int count = 0;
20959 @@ -82013,7 +83563,7 @@ index b6fd783..7f526b7 100644
20960 if (count++ > MAX_TASKS_SHOWN_PER_CSS) {
20961 seq_puts(seq, " ...\n");
20962 diff --git a/kernel/compat.c b/kernel/compat.c
20963 -index 0a09e48..f44f3f0 100644
20964 +index 0a09e48..b46b3d78 100644
20965 --- a/kernel/compat.c
20966 +++ b/kernel/compat.c
20967 @@ -13,6 +13,7 @@
20968 @@ -82161,6 +83711,15 @@ index 0a09e48..f44f3f0 100644
20969 set_fs(oldfs);
20970
20971 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
20972 +@@ -1128,7 +1129,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
20973 + mm_segment_t old_fs = get_fs();
20974 +
20975 + set_fs(KERNEL_DS);
20976 +- ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t);
20977 ++ ret = sys_sched_rr_get_interval(pid, (struct timespec __force_user *)&t);
20978 + set_fs(old_fs);
20979 + if (put_compat_timespec(&t, interval))
20980 + return -EFAULT;
20981 diff --git a/kernel/configs.c b/kernel/configs.c
20982 index c18b1f1..b9a0132 100644
20983 --- a/kernel/configs.c
20984 @@ -82328,7 +83887,7 @@ index e0573a4..3874e41 100644
20985
20986 /**
20987 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
20988 -index 0506d44..2c20034 100644
20989 +index 7d2f35e..1bafcd0 100644
20990 --- a/kernel/debug/debug_core.c
20991 +++ b/kernel/debug/debug_core.c
20992 @@ -123,7 +123,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
20993 @@ -82358,7 +83917,7 @@ index 0506d44..2c20034 100644
20994 (kgdb_info[cpu].task &&
20995 kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
20996 atomic_set(&kgdb_active, -1);
20997 -@@ -635,8 +635,8 @@ cpu_master_loop:
20998 +@@ -639,8 +639,8 @@ cpu_master_loop:
20999 }
21000
21001 kgdb_restore:
21002 @@ -82369,7 +83928,7 @@ index 0506d44..2c20034 100644
21003 if (kgdb_info[sstep_cpu].task)
21004 kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
21005 else
21006 -@@ -888,18 +888,18 @@ static void kgdb_unregister_callbacks(void)
21007 +@@ -916,18 +916,18 @@ static void kgdb_unregister_callbacks(void)
21008 static void kgdb_tasklet_bpt(unsigned long ing)
21009 {
21010 kgdb_breakpoint();
21011 @@ -82392,10 +83951,10 @@ index 0506d44..2c20034 100644
21012 }
21013 EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
21014 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
21015 -index 00eb8f7..d7e3244 100644
21016 +index 0b097c8..11dd5c5 100644
21017 --- a/kernel/debug/kdb/kdb_main.c
21018 +++ b/kernel/debug/kdb/kdb_main.c
21019 -@@ -1974,7 +1974,7 @@ static int kdb_lsmod(int argc, const char **argv)
21020 +@@ -1977,7 +1977,7 @@ static int kdb_lsmod(int argc, const char **argv)
21021 continue;
21022
21023 kdb_printf("%-20s%8u 0x%p ", mod->name,
21024 @@ -82404,7 +83963,7 @@ index 00eb8f7..d7e3244 100644
21025 #ifdef CONFIG_MODULE_UNLOAD
21026 kdb_printf("%4ld ", module_refcount(mod));
21027 #endif
21028 -@@ -1984,7 +1984,7 @@ static int kdb_lsmod(int argc, const char **argv)
21029 +@@ -1987,7 +1987,7 @@ static int kdb_lsmod(int argc, const char **argv)
21030 kdb_printf(" (Loading)");
21031 else
21032 kdb_printf(" (Live)");
21033 @@ -82414,7 +83973,7 @@ index 00eb8f7..d7e3244 100644
21034 #ifdef CONFIG_MODULE_UNLOAD
21035 {
21036 diff --git a/kernel/events/core.c b/kernel/events/core.c
21037 -index 953c143..5646bb1 100644
21038 +index f574401..11b21f0 100644
21039 --- a/kernel/events/core.c
21040 +++ b/kernel/events/core.c
21041 @@ -157,8 +157,15 @@ static struct srcu_struct pmus_srcu;
21042 @@ -82434,6 +83993,15 @@ index 953c143..5646bb1 100644
21043
21044 /* Minimum for 512 kiB + 1 user control page */
21045 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
21046 +@@ -184,7 +191,7 @@ void update_perf_cpu_limits(void)
21047 +
21048 + tmp *= sysctl_perf_cpu_time_max_percent;
21049 + do_div(tmp, 100);
21050 +- ACCESS_ONCE(perf_sample_allowed_ns) = tmp;
21051 ++ ACCESS_ONCE_RW(perf_sample_allowed_ns) = tmp;
21052 + }
21053 +
21054 + static int perf_rotate_context(struct perf_cpu_context *cpuctx);
21055 @@ -271,7 +278,7 @@ void perf_sample_event_took(u64 sample_len_ns)
21056 update_perf_cpu_limits();
21057 }
21058 @@ -82443,7 +84011,7 @@ index 953c143..5646bb1 100644
21059
21060 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
21061 enum event_type_t event_type);
21062 -@@ -2940,7 +2947,7 @@ static void __perf_event_read(void *info)
21063 +@@ -2985,7 +2992,7 @@ static void __perf_event_read(void *info)
21064
21065 static inline u64 perf_event_count(struct perf_event *event)
21066 {
21067 @@ -82452,7 +84020,7 @@ index 953c143..5646bb1 100644
21068 }
21069
21070 static u64 perf_event_read(struct perf_event *event)
21071 -@@ -3308,9 +3315,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
21072 +@@ -3353,9 +3360,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
21073 mutex_lock(&event->child_mutex);
21074 total += perf_event_read(event);
21075 *enabled += event->total_time_enabled +
21076 @@ -82464,7 +84032,7 @@ index 953c143..5646bb1 100644
21077
21078 list_for_each_entry(child, &event->child_list, child_list) {
21079 total += perf_event_read(child);
21080 -@@ -3725,10 +3732,10 @@ void perf_event_update_userpage(struct perf_event *event)
21081 +@@ -3770,10 +3777,10 @@ void perf_event_update_userpage(struct perf_event *event)
21082 userpg->offset -= local64_read(&event->hw.prev_count);
21083
21084 userpg->time_enabled = enabled +
21085 @@ -82477,7 +84045,7 @@ index 953c143..5646bb1 100644
21086
21087 arch_perf_update_userpage(userpg, now);
21088
21089 -@@ -4279,7 +4286,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
21090 +@@ -4324,7 +4331,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
21091
21092 /* Data. */
21093 sp = perf_user_stack_pointer(regs);
21094 @@ -82486,7 +84054,7 @@ index 953c143..5646bb1 100644
21095 dyn_size = dump_size - rem;
21096
21097 perf_output_skip(handle, rem);
21098 -@@ -4370,11 +4377,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
21099 +@@ -4415,11 +4422,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
21100 values[n++] = perf_event_count(event);
21101 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
21102 values[n++] = enabled +
21103 @@ -82500,22 +84068,7 @@ index 953c143..5646bb1 100644
21104 }
21105 if (read_format & PERF_FORMAT_ID)
21106 values[n++] = primary_event_id(event);
21107 -@@ -5112,12 +5119,12 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event)
21108 - * need to add enough zero bytes after the string to handle
21109 - * the 64bit alignment we do later.
21110 - */
21111 -- buf = kzalloc(PATH_MAX + sizeof(u64), GFP_KERNEL);
21112 -+ buf = kzalloc(PATH_MAX, GFP_KERNEL);
21113 - if (!buf) {
21114 - name = strncpy(tmp, "//enomem", sizeof(tmp));
21115 - goto got_name;
21116 - }
21117 -- name = d_path(&file->f_path, buf, PATH_MAX);
21118 -+ name = d_path(&file->f_path, buf, PATH_MAX - sizeof(u64));
21119 - if (IS_ERR(name)) {
21120 - name = strncpy(tmp, "//toolong", sizeof(tmp));
21121 - goto got_name;
21122 -@@ -6639,7 +6646,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
21123 +@@ -6686,7 +6693,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
21124 event->parent = parent_event;
21125
21126 event->ns = get_pid_ns(task_active_pid_ns(current));
21127 @@ -82524,7 +84077,7 @@ index 953c143..5646bb1 100644
21128
21129 event->state = PERF_EVENT_STATE_INACTIVE;
21130
21131 -@@ -6938,6 +6945,11 @@ SYSCALL_DEFINE5(perf_event_open,
21132 +@@ -6985,6 +6992,11 @@ SYSCALL_DEFINE5(perf_event_open,
21133 if (flags & ~PERF_FLAG_ALL)
21134 return -EINVAL;
21135
21136 @@ -82536,7 +84089,7 @@ index 953c143..5646bb1 100644
21137 err = perf_copy_attr(attr_uptr, &attr);
21138 if (err)
21139 return err;
21140 -@@ -7271,10 +7283,10 @@ static void sync_child_event(struct perf_event *child_event,
21141 +@@ -7316,10 +7328,10 @@ static void sync_child_event(struct perf_event *child_event,
21142 /*
21143 * Add back the child's count to the parent's count:
21144 */
21145 @@ -82551,7 +84104,7 @@ index 953c143..5646bb1 100644
21146
21147 /*
21148 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
21149 -index ca65997..60df03d 100644
21150 +index 569b2187..19940d9 100644
21151 --- a/kernel/events/internal.h
21152 +++ b/kernel/events/internal.h
21153 @@ -81,10 +81,10 @@ static inline unsigned long perf_data_size(struct ring_buffer *rb)
21154 @@ -82559,29 +84112,34 @@ index ca65997..60df03d 100644
21155 }
21156
21157 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func) \
21158 --static inline unsigned int \
21159 +#define DEFINE_OUTPUT_COPY(func_name, memcpy_func, user) \
21160 -+static inline unsigned long \
21161 + static inline unsigned long \
21162 func_name(struct perf_output_handle *handle, \
21163 -- const void *buf, unsigned int len) \
21164 +- const void *buf, unsigned long len) \
21165 + const void user *buf, unsigned long len) \
21166 { \
21167 unsigned long size, written; \
21168 \
21169 -@@ -116,17 +116,17 @@ static inline int memcpy_common(void *dst, const void *src, size_t n)
21170 - return n;
21171 +@@ -117,7 +117,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
21172 + return 0;
21173 }
21174
21175 -DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
21176 +DEFINE_OUTPUT_COPY(__output_copy, memcpy_common, )
21177
21178 - #define MEMCPY_SKIP(dst, src, n) (n)
21179 + static inline unsigned long
21180 + memcpy_skip(void *dst, const void *src, unsigned long n)
21181 +@@ -125,7 +125,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
21182 + return 0;
21183 + }
21184
21185 --DEFINE_OUTPUT_COPY(__output_skip, MEMCPY_SKIP)
21186 -+DEFINE_OUTPUT_COPY(__output_skip, MEMCPY_SKIP, )
21187 +-DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip)
21188 ++DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip, )
21189
21190 #ifndef arch_perf_out_copy_user
21191 - #define arch_perf_out_copy_user __copy_from_user_inatomic
21192 + #define arch_perf_out_copy_user arch_perf_out_copy_user
21193 +@@ -143,7 +143,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
21194 + }
21195 #endif
21196
21197 -DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user)
21198 @@ -82590,10 +84148,10 @@ index ca65997..60df03d 100644
21199 /* Callchain handling */
21200 extern struct perf_callchain_entry *
21201 diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
21202 -index ad8e1bd..fed7ba9 100644
21203 +index 24b7d6c..40cf797 100644
21204 --- a/kernel/events/uprobes.c
21205 +++ b/kernel/events/uprobes.c
21206 -@@ -1556,7 +1556,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
21207 +@@ -1640,7 +1640,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
21208 {
21209 struct page *page;
21210 uprobe_opcode_t opcode;
21211 @@ -82663,7 +84221,7 @@ index a949819..a5f127d 100644
21212 {
21213 struct signal_struct *sig = current->signal;
21214 diff --git a/kernel/fork.c b/kernel/fork.c
21215 -index 690cfac..3be2d98 100644
21216 +index dfa736c..d170f9b 100644
21217 --- a/kernel/fork.c
21218 +++ b/kernel/fork.c
21219 @@ -319,7 +319,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
21220 @@ -82876,7 +84434,7 @@ index 690cfac..3be2d98 100644
21221 mmput(mm);
21222 mm = ERR_PTR(-EACCES);
21223 }
21224 -@@ -912,13 +957,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
21225 +@@ -909,13 +954,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
21226 spin_unlock(&fs->lock);
21227 return -EAGAIN;
21228 }
21229 @@ -82898,7 +84456,7 @@ index 690cfac..3be2d98 100644
21230 return 0;
21231 }
21232
21233 -@@ -1129,7 +1181,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
21234 +@@ -1126,7 +1178,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
21235 * parts of the process environment (as per the clone
21236 * flags). The actual kick-off is left to the caller.
21237 */
21238 @@ -82907,7 +84465,7 @@ index 690cfac..3be2d98 100644
21239 unsigned long stack_start,
21240 unsigned long stack_size,
21241 int __user *child_tidptr,
21242 -@@ -1201,6 +1253,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
21243 +@@ -1198,6 +1250,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
21244 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
21245 #endif
21246 retval = -EAGAIN;
21247 @@ -82917,7 +84475,7 @@ index 690cfac..3be2d98 100644
21248 if (atomic_read(&p->real_cred->user->processes) >=
21249 task_rlimit(p, RLIMIT_NPROC)) {
21250 if (p->real_cred->user != INIT_USER &&
21251 -@@ -1450,6 +1505,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
21252 +@@ -1446,6 +1501,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
21253 goto bad_fork_free_pid;
21254 }
21255
21256 @@ -82929,7 +84487,7 @@ index 690cfac..3be2d98 100644
21257 if (likely(p->pid)) {
21258 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
21259
21260 -@@ -1535,6 +1595,8 @@ bad_fork_cleanup_count:
21261 +@@ -1532,6 +1592,8 @@ bad_fork_cleanup_count:
21262 bad_fork_free:
21263 free_task(p);
21264 fork_out:
21265 @@ -82938,7 +84496,7 @@ index 690cfac..3be2d98 100644
21266 return ERR_PTR(retval);
21267 }
21268
21269 -@@ -1596,6 +1658,7 @@ long do_fork(unsigned long clone_flags,
21270 +@@ -1593,6 +1655,7 @@ long do_fork(unsigned long clone_flags,
21271
21272 p = copy_process(clone_flags, stack_start, stack_size,
21273 child_tidptr, NULL, trace);
21274 @@ -82946,7 +84504,7 @@ index 690cfac..3be2d98 100644
21275 /*
21276 * Do this prior waking up the new thread - the thread pointer
21277 * might get invalid after that point, if the thread exits quickly.
21278 -@@ -1610,6 +1673,8 @@ long do_fork(unsigned long clone_flags,
21279 +@@ -1607,6 +1670,8 @@ long do_fork(unsigned long clone_flags,
21280 if (clone_flags & CLONE_PARENT_SETTID)
21281 put_user(nr, parent_tidptr);
21282
21283 @@ -82955,7 +84513,7 @@ index 690cfac..3be2d98 100644
21284 if (clone_flags & CLONE_VFORK) {
21285 p->vfork_done = &vfork;
21286 init_completion(&vfork);
21287 -@@ -1726,7 +1791,7 @@ void __init proc_caches_init(void)
21288 +@@ -1723,7 +1788,7 @@ void __init proc_caches_init(void)
21289 mm_cachep = kmem_cache_create("mm_struct",
21290 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
21291 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
21292 @@ -82964,7 +84522,7 @@ index 690cfac..3be2d98 100644
21293 mmap_init();
21294 nsproxy_cache_init();
21295 }
21296 -@@ -1766,7 +1831,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
21297 +@@ -1763,7 +1828,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
21298 return 0;
21299
21300 /* don't need lock here; in the worst case we'll do useless copy */
21301 @@ -82973,7 +84531,7 @@ index 690cfac..3be2d98 100644
21302 return 0;
21303
21304 *new_fsp = copy_fs_struct(fs);
21305 -@@ -1873,7 +1938,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
21306 +@@ -1870,7 +1935,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
21307 fs = current->fs;
21308 spin_lock(&fs->lock);
21309 current->fs = new_fs;
21310 @@ -82984,7 +84542,7 @@ index 690cfac..3be2d98 100644
21311 else
21312 new_fs = fs;
21313 diff --git a/kernel/futex.c b/kernel/futex.c
21314 -index 221a58f..1b8cfce 100644
21315 +index f6ff019..ac53307 100644
21316 --- a/kernel/futex.c
21317 +++ b/kernel/futex.c
21318 @@ -54,6 +54,7 @@
21319 @@ -83007,7 +84565,7 @@ index 221a58f..1b8cfce 100644
21320 /*
21321 * The futex address must be "naturally" aligned.
21322 */
21323 -@@ -441,7 +447,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
21324 +@@ -442,7 +448,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
21325
21326 static int get_futex_value_locked(u32 *dest, u32 __user *from)
21327 {
21328 @@ -83016,7 +84574,7 @@ index 221a58f..1b8cfce 100644
21329
21330 pagefault_disable();
21331 ret = __copy_from_user_inatomic(dest, from, sizeof(u32));
21332 -@@ -2734,6 +2740,7 @@ static int __init futex_init(void)
21333 +@@ -2735,6 +2741,7 @@ static int __init futex_init(void)
21334 {
21335 u32 curval;
21336 int i;
21337 @@ -83024,7 +84582,7 @@ index 221a58f..1b8cfce 100644
21338
21339 /*
21340 * This will fail and we want it. Some arch implementations do
21341 -@@ -2745,8 +2752,11 @@ static int __init futex_init(void)
21342 +@@ -2746,8 +2753,11 @@ static int __init futex_init(void)
21343 * implementation, the non-functional ones will return
21344 * -ENOSYS.
21345 */
21346 @@ -83050,10 +84608,10 @@ index f9f44fd..29885e4 100644
21347 {
21348 compat_uptr_t base = ptr_to_compat(entry);
21349 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
21350 -index 9b22d03..6295b62 100644
21351 +index f45b75b..bfac6d5 100644
21352 --- a/kernel/gcov/base.c
21353 +++ b/kernel/gcov/base.c
21354 -@@ -102,11 +102,6 @@ void gcov_enable_events(void)
21355 +@@ -108,11 +108,6 @@ void gcov_enable_events(void)
21356 }
21357
21358 #ifdef CONFIG_MODULES
21359 @@ -83065,15 +84623,15 @@ index 9b22d03..6295b62 100644
21360 /* Update list and generate events when modules are unloaded. */
21361 static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
21362 void *data)
21363 -@@ -121,7 +116,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
21364 - prev = NULL;
21365 +@@ -127,7 +122,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
21366 +
21367 /* Remove entries located in module from linked list. */
21368 - for (info = gcov_info_head; info; info = info->next) {
21369 + while ((info = gcov_info_next(info))) {
21370 - if (within(info, mod->module_core, mod->core_size)) {
21371 + if (within_module_core_rw((unsigned long)info, mod)) {
21372 - if (prev)
21373 - prev->next = info->next;
21374 - else
21375 + gcov_info_unlink(prev, info);
21376 + if (gcov_events_enabled)
21377 + gcov_event(GCOV_REMOVE, info);
21378 diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
21379 index 383319b..56ebb13 100644
21380 --- a/kernel/hrtimer.c
21381 @@ -83109,7 +84667,7 @@ index 55fcce6..0e4cf34 100644
21382 return 0;
21383 }
21384 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
21385 -index 297a924..7290070 100644
21386 +index 9019f15..9a3c42e 100644
21387 --- a/kernel/jump_label.c
21388 +++ b/kernel/jump_label.c
21389 @@ -14,6 +14,7 @@
21390 @@ -83130,7 +84688,7 @@ index 297a924..7290070 100644
21391 }
21392
21393 static void jump_label_update(struct static_key *key, int enable);
21394 -@@ -358,10 +361,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
21395 +@@ -363,10 +366,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
21396 struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
21397 struct jump_entry *iter;
21398
21399 @@ -83273,7 +84831,7 @@ index e30ac0f..3528cac 100644
21400
21401 /*
21402 diff --git a/kernel/kexec.c b/kernel/kexec.c
21403 -index 355e13a..06b25d2 100644
21404 +index 9c97016..df438f8 100644
21405 --- a/kernel/kexec.c
21406 +++ b/kernel/kexec.c
21407 @@ -1044,7 +1044,8 @@ asmlinkage long compat_sys_kexec_load(unsigned long entry,
21408 @@ -83287,7 +84845,7 @@ index 355e13a..06b25d2 100644
21409
21410 /* Don't allow clients that don't understand the native
21411 diff --git a/kernel/kmod.c b/kernel/kmod.c
21412 -index b086006..6d2e579 100644
21413 +index b086006..655e2aa 100644
21414 --- a/kernel/kmod.c
21415 +++ b/kernel/kmod.c
21416 @@ -75,7 +75,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
21417 @@ -83435,6 +84993,17 @@ index b086006..6d2e579 100644
21418 retval = -ENOMEM;
21419 new = prepare_kernel_cred(current);
21420 if (!new)
21421 +@@ -240,8 +306,8 @@ static int ____call_usermodehelper(void *data)
21422 + commit_creds(new);
21423 +
21424 + retval = do_execve(sub_info->path,
21425 +- (const char __user *const __user *)sub_info->argv,
21426 +- (const char __user *const __user *)sub_info->envp);
21427 ++ (const char __user *const __force_user *)sub_info->argv,
21428 ++ (const char __user *const __force_user *)sub_info->envp);
21429 + if (!retval)
21430 + return 0;
21431 +
21432 @@ -260,6 +326,10 @@ static int call_helper(void *data)
21433
21434 static void call_usermodehelper_freeinfo(struct subprocess_info *info)
21435 @@ -83478,7 +85047,7 @@ index b086006..6d2e579 100644
21436 kernel_cap_t new_cap;
21437 int err, i;
21438 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
21439 -index a0d367a..11c18b6 100644
21440 +index ceeadfc..11c18b6 100644
21441 --- a/kernel/kprobes.c
21442 +++ b/kernel/kprobes.c
21443 @@ -31,6 +31,9 @@
21444 @@ -83506,15 +85075,6 @@ index a0d367a..11c18b6 100644
21445 }
21446
21447 struct kprobe_insn_cache kprobe_insn_slots = {
21448 -@@ -2066,7 +2069,7 @@ static int __init init_kprobes(void)
21449 - {
21450 - int i, err = 0;
21451 - unsigned long offset = 0, size = 0;
21452 -- char *modname, namebuf[128];
21453 -+ char *modname, namebuf[KSYM_NAME_LEN];
21454 - const char *symbol_name;
21455 - void *addr;
21456 - struct kprobe_blackpoint *kb;
21457 @@ -2151,11 +2154,11 @@ static void __kprobes report_probe(struct seq_file *pi, struct kprobe *p,
21458 kprobe_type = "k";
21459
21460 @@ -83529,15 +85089,6 @@ index a0d367a..11c18b6 100644
21461 p->addr, kprobe_type, p->addr);
21462
21463 if (!pp)
21464 -@@ -2192,7 +2195,7 @@ static int __kprobes show_kprobe_addr(struct seq_file *pi, void *v)
21465 - const char *sym = NULL;
21466 - unsigned int i = *(loff_t *) v;
21467 - unsigned long offset = 0;
21468 -- char *modname, namebuf[128];
21469 -+ char *modname, namebuf[KSYM_NAME_LEN];
21470 -
21471 - head = &kprobe_table[i];
21472 - preempt_disable();
21473 diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
21474 index 9659d38..bffd520 100644
21475 --- a/kernel/ksysfs.c
21476 @@ -83560,10 +85111,10 @@ index 9659d38..bffd520 100644
21477 .attr = {
21478 .name = "notes",
21479 .mode = S_IRUGO,
21480 -diff --git a/kernel/lockdep.c b/kernel/lockdep.c
21481 -index e16c45b..6f49c48 100644
21482 ---- a/kernel/lockdep.c
21483 -+++ b/kernel/lockdep.c
21484 +diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
21485 +index 576ba75..7c256e4 100644
21486 +--- a/kernel/locking/lockdep.c
21487 ++++ b/kernel/locking/lockdep.c
21488 @@ -596,6 +596,10 @@ static int static_obj(void *obj)
21489 end = (unsigned long) &_end,
21490 addr = (unsigned long) obj;
21491 @@ -83588,14 +85139,14 @@ index e16c45b..6f49c48 100644
21492 return 0;
21493 }
21494 - atomic_inc((atomic_t *)&class->ops);
21495 -+ atomic_inc_unchecked((atomic_unchecked_t *)&class->ops);
21496 ++ atomic_long_inc_unchecked((atomic_long_unchecked_t *)&class->ops);
21497 if (very_verbose(class)) {
21498 printk("\nacquire class [%p] %s", class->key, class->name);
21499 if (class->name_version > 1)
21500 -diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c
21501 -index b2c71c5..7b88d63 100644
21502 ---- a/kernel/lockdep_proc.c
21503 -+++ b/kernel/lockdep_proc.c
21504 +diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
21505 +index ef43ac4..2720dfa 100644
21506 +--- a/kernel/locking/lockdep_proc.c
21507 ++++ b/kernel/locking/lockdep_proc.c
21508 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
21509 return 0;
21510 }
21511 @@ -83623,7 +85174,7 @@ index b2c71c5..7b88d63 100644
21512 print_name(m, class);
21513 seq_puts(m, "\n");
21514 }
21515 -@@ -495,7 +495,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
21516 +@@ -496,7 +496,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
21517 if (!i)
21518 seq_line(m, '-', 40-namelen, namelen);
21519
21520 @@ -83632,7 +85183,7 @@ index b2c71c5..7b88d63 100644
21521 (void *)class->contention_point[i]);
21522 seq_printf(m, "%40s %14lu %29s %pS\n",
21523 name, stats->contention_point[i],
21524 -@@ -510,7 +510,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
21525 +@@ -511,7 +511,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
21526 if (!i)
21527 seq_line(m, '-', 40-namelen, namelen);
21528
21529 @@ -83641,8 +85192,199 @@ index b2c71c5..7b88d63 100644
21530 (void *)class->contending_point[i]);
21531 seq_printf(m, "%40s %14lu %29s %pS\n",
21532 name, stats->contending_point[i],
21533 +diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
21534 +index 7e3443f..b2a1e6b 100644
21535 +--- a/kernel/locking/mutex-debug.c
21536 ++++ b/kernel/locking/mutex-debug.c
21537 +@@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
21538 + }
21539 +
21540 + void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
21541 +- struct thread_info *ti)
21542 ++ struct task_struct *task)
21543 + {
21544 + SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
21545 +
21546 + /* Mark the current thread as blocked on the lock: */
21547 +- ti->task->blocked_on = waiter;
21548 ++ task->blocked_on = waiter;
21549 + }
21550 +
21551 + void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
21552 +- struct thread_info *ti)
21553 ++ struct task_struct *task)
21554 + {
21555 + DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
21556 +- DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
21557 +- DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
21558 +- ti->task->blocked_on = NULL;
21559 ++ DEBUG_LOCKS_WARN_ON(waiter->task != task);
21560 ++ DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
21561 ++ task->blocked_on = NULL;
21562 +
21563 + list_del_init(&waiter->list);
21564 + waiter->task = NULL;
21565 +diff --git a/kernel/locking/mutex-debug.h b/kernel/locking/mutex-debug.h
21566 +index 0799fd3..d06ae3b 100644
21567 +--- a/kernel/locking/mutex-debug.h
21568 ++++ b/kernel/locking/mutex-debug.h
21569 +@@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
21570 + extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
21571 + extern void debug_mutex_add_waiter(struct mutex *lock,
21572 + struct mutex_waiter *waiter,
21573 +- struct thread_info *ti);
21574 ++ struct task_struct *task);
21575 + extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
21576 +- struct thread_info *ti);
21577 ++ struct task_struct *task);
21578 + extern void debug_mutex_unlock(struct mutex *lock);
21579 + extern void debug_mutex_init(struct mutex *lock, const char *name,
21580 + struct lock_class_key *key);
21581 +diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
21582 +index 4dd6e4c..df52693 100644
21583 +--- a/kernel/locking/mutex.c
21584 ++++ b/kernel/locking/mutex.c
21585 +@@ -135,7 +135,7 @@ void mspin_lock(struct mspin_node **lock, struct mspin_node *node)
21586 + node->locked = 1;
21587 + return;
21588 + }
21589 +- ACCESS_ONCE(prev->next) = node;
21590 ++ ACCESS_ONCE_RW(prev->next) = node;
21591 + smp_wmb();
21592 + /* Wait until the lock holder passes the lock down */
21593 + while (!ACCESS_ONCE(node->locked))
21594 +@@ -156,7 +156,7 @@ static void mspin_unlock(struct mspin_node **lock, struct mspin_node *node)
21595 + while (!(next = ACCESS_ONCE(node->next)))
21596 + arch_mutex_cpu_relax();
21597 + }
21598 +- ACCESS_ONCE(next->locked) = 1;
21599 ++ ACCESS_ONCE_RW(next->locked) = 1;
21600 + smp_wmb();
21601 + }
21602 +
21603 +@@ -520,7 +520,7 @@ slowpath:
21604 + goto skip_wait;
21605 +
21606 + debug_mutex_lock_common(lock, &waiter);
21607 +- debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
21608 ++ debug_mutex_add_waiter(lock, &waiter, task);
21609 +
21610 + /* add waiting tasks to the end of the waitqueue (FIFO): */
21611 + list_add_tail(&waiter.list, &lock->wait_list);
21612 +@@ -564,7 +564,7 @@ slowpath:
21613 + schedule_preempt_disabled();
21614 + spin_lock_mutex(&lock->wait_lock, flags);
21615 + }
21616 +- mutex_remove_waiter(lock, &waiter, current_thread_info());
21617 ++ mutex_remove_waiter(lock, &waiter, task);
21618 + /* set it to 0 if there are no waiters left: */
21619 + if (likely(list_empty(&lock->wait_list)))
21620 + atomic_set(&lock->count, 0);
21621 +@@ -601,7 +601,7 @@ skip_wait:
21622 + return 0;
21623 +
21624 + err:
21625 +- mutex_remove_waiter(lock, &waiter, task_thread_info(task));
21626 ++ mutex_remove_waiter(lock, &waiter, task);
21627 + spin_unlock_mutex(&lock->wait_lock, flags);
21628 + debug_mutex_free_waiter(&waiter);
21629 + mutex_release(&lock->dep_map, 1, ip);
21630 +diff --git a/kernel/locking/rtmutex-tester.c b/kernel/locking/rtmutex-tester.c
21631 +index 1d96dd0..994ff19 100644
21632 +--- a/kernel/locking/rtmutex-tester.c
21633 ++++ b/kernel/locking/rtmutex-tester.c
21634 +@@ -22,7 +22,7 @@
21635 + #define MAX_RT_TEST_MUTEXES 8
21636 +
21637 + static spinlock_t rttest_lock;
21638 +-static atomic_t rttest_event;
21639 ++static atomic_unchecked_t rttest_event;
21640 +
21641 + struct test_thread_data {
21642 + int opcode;
21643 +@@ -63,7 +63,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
21644 +
21645 + case RTTEST_LOCKCONT:
21646 + td->mutexes[td->opdata] = 1;
21647 +- td->event = atomic_add_return(1, &rttest_event);
21648 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21649 + return 0;
21650 +
21651 + case RTTEST_RESET:
21652 +@@ -76,7 +76,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
21653 + return 0;
21654 +
21655 + case RTTEST_RESETEVENT:
21656 +- atomic_set(&rttest_event, 0);
21657 ++ atomic_set_unchecked(&rttest_event, 0);
21658 + return 0;
21659 +
21660 + default:
21661 +@@ -93,9 +93,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
21662 + return ret;
21663 +
21664 + td->mutexes[id] = 1;
21665 +- td->event = atomic_add_return(1, &rttest_event);
21666 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21667 + rt_mutex_lock(&mutexes[id]);
21668 +- td->event = atomic_add_return(1, &rttest_event);
21669 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21670 + td->mutexes[id] = 4;
21671 + return 0;
21672 +
21673 +@@ -106,9 +106,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
21674 + return ret;
21675 +
21676 + td->mutexes[id] = 1;
21677 +- td->event = atomic_add_return(1, &rttest_event);
21678 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21679 + ret = rt_mutex_lock_interruptible(&mutexes[id], 0);
21680 +- td->event = atomic_add_return(1, &rttest_event);
21681 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21682 + td->mutexes[id] = ret ? 0 : 4;
21683 + return ret ? -EINTR : 0;
21684 +
21685 +@@ -117,9 +117,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
21686 + if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4)
21687 + return ret;
21688 +
21689 +- td->event = atomic_add_return(1, &rttest_event);
21690 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21691 + rt_mutex_unlock(&mutexes[id]);
21692 +- td->event = atomic_add_return(1, &rttest_event);
21693 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21694 + td->mutexes[id] = 0;
21695 + return 0;
21696 +
21697 +@@ -166,7 +166,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
21698 + break;
21699 +
21700 + td->mutexes[dat] = 2;
21701 +- td->event = atomic_add_return(1, &rttest_event);
21702 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21703 + break;
21704 +
21705 + default:
21706 +@@ -186,7 +186,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
21707 + return;
21708 +
21709 + td->mutexes[dat] = 3;
21710 +- td->event = atomic_add_return(1, &rttest_event);
21711 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21712 + break;
21713 +
21714 + case RTTEST_LOCKNOWAIT:
21715 +@@ -198,7 +198,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
21716 + return;
21717 +
21718 + td->mutexes[dat] = 1;
21719 +- td->event = atomic_add_return(1, &rttest_event);
21720 ++ td->event = atomic_add_return_unchecked(1, &rttest_event);
21721 + return;
21722 +
21723 + default:
21724 diff --git a/kernel/module.c b/kernel/module.c
21725 -index dc58274..3ddfa55 100644
21726 +index f5a3b1e..1f5578b 100644
21727 --- a/kernel/module.c
21728 +++ b/kernel/module.c
21729 @@ -61,6 +61,7 @@
21730 @@ -83681,16 +85423,16 @@ index dc58274..3ddfa55 100644
21731 return true;
21732 }
21733 return false;
21734 -@@ -491,7 +493,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
21735 +@@ -489,7 +491,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
21736 if (!pcpusec->sh_size)
21737 return 0;
21738
21739 - if (align > PAGE_SIZE) {
21740 + if (align-1 >= PAGE_SIZE) {
21741 - printk(KERN_WARNING "%s: per-cpu alignment %li > %li\n",
21742 - mod->name, align, PAGE_SIZE);
21743 + pr_warn("%s: per-cpu alignment %li > %li\n",
21744 + mod->name, align, PAGE_SIZE);
21745 align = PAGE_SIZE;
21746 -@@ -1097,7 +1099,7 @@ struct module_attribute module_uevent =
21747 +@@ -1064,7 +1066,7 @@ struct module_attribute module_uevent =
21748 static ssize_t show_coresize(struct module_attribute *mattr,
21749 struct module_kobject *mk, char *buffer)
21750 {
21751 @@ -83699,7 +85441,7 @@ index dc58274..3ddfa55 100644
21752 }
21753
21754 static struct module_attribute modinfo_coresize =
21755 -@@ -1106,7 +1108,7 @@ static struct module_attribute modinfo_coresize =
21756 +@@ -1073,7 +1075,7 @@ static struct module_attribute modinfo_coresize =
21757 static ssize_t show_initsize(struct module_attribute *mattr,
21758 struct module_kobject *mk, char *buffer)
21759 {
21760 @@ -83708,7 +85450,7 @@ index dc58274..3ddfa55 100644
21761 }
21762
21763 static struct module_attribute modinfo_initsize =
21764 -@@ -1321,7 +1323,7 @@ resolve_symbol_wait(struct module *mod,
21765 +@@ -1286,7 +1288,7 @@ resolve_symbol_wait(struct module *mod,
21766 */
21767 #ifdef CONFIG_SYSFS
21768
21769 @@ -83717,7 +85459,7 @@ index dc58274..3ddfa55 100644
21770 static inline bool sect_empty(const Elf_Shdr *sect)
21771 {
21772 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
21773 -@@ -1461,7 +1463,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
21774 +@@ -1426,7 +1428,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
21775 {
21776 unsigned int notes, loaded, i;
21777 struct module_notes_attrs *notes_attrs;
21778 @@ -83726,7 +85468,7 @@ index dc58274..3ddfa55 100644
21779
21780 /* failed to create section attributes, so can't create notes */
21781 if (!mod->sect_attrs)
21782 -@@ -1573,7 +1575,7 @@ static void del_usage_links(struct module *mod)
21783 +@@ -1538,7 +1540,7 @@ static void del_usage_links(struct module *mod)
21784 static int module_add_modinfo_attrs(struct module *mod)
21785 {
21786 struct module_attribute *attr;
21787 @@ -83735,7 +85477,7 @@ index dc58274..3ddfa55 100644
21788 int error = 0;
21789 int i;
21790
21791 -@@ -1795,21 +1797,21 @@ static void set_section_ro_nx(void *base,
21792 +@@ -1759,21 +1761,21 @@ static void set_section_ro_nx(void *base,
21793
21794 static void unset_module_core_ro_nx(struct module *mod)
21795 {
21796 @@ -83765,7 +85507,7 @@ index dc58274..3ddfa55 100644
21797 set_memory_rw);
21798 }
21799
21800 -@@ -1822,14 +1824,14 @@ void set_all_modules_text_rw(void)
21801 +@@ -1786,14 +1788,14 @@ void set_all_modules_text_rw(void)
21802 list_for_each_entry_rcu(mod, &modules, list) {
21803 if (mod->state == MODULE_STATE_UNFORMED)
21804 continue;
21805 @@ -83786,7 +85528,7 @@ index dc58274..3ddfa55 100644
21806 set_memory_rw);
21807 }
21808 }
21809 -@@ -1845,14 +1847,14 @@ void set_all_modules_text_ro(void)
21810 +@@ -1809,14 +1811,14 @@ void set_all_modules_text_ro(void)
21811 list_for_each_entry_rcu(mod, &modules, list) {
21812 if (mod->state == MODULE_STATE_UNFORMED)
21813 continue;
21814 @@ -83807,7 +85549,7 @@ index dc58274..3ddfa55 100644
21815 set_memory_ro);
21816 }
21817 }
21818 -@@ -1903,16 +1905,19 @@ static void free_module(struct module *mod)
21819 +@@ -1867,16 +1869,19 @@ static void free_module(struct module *mod)
21820
21821 /* This may be NULL, but that's OK */
21822 unset_module_init_ro_nx(mod);
21823 @@ -83830,7 +85572,7 @@ index dc58274..3ddfa55 100644
21824
21825 #ifdef CONFIG_MPU
21826 update_protections(current->mm);
21827 -@@ -1982,9 +1987,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21828 +@@ -1945,9 +1950,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21829 int ret = 0;
21830 const struct kernel_symbol *ksym;
21831
21832 @@ -83862,7 +85604,7 @@ index dc58274..3ddfa55 100644
21833 switch (sym[i].st_shndx) {
21834 case SHN_COMMON:
21835 /* We compiled with -fno-common. These are not
21836 -@@ -2005,7 +2032,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21837 +@@ -1968,7 +1995,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21838 ksym = resolve_symbol_wait(mod, info, name);
21839 /* Ok if resolved. */
21840 if (ksym && !IS_ERR(ksym)) {
21841 @@ -83872,7 +85614,7 @@ index dc58274..3ddfa55 100644
21842 break;
21843 }
21844
21845 -@@ -2024,11 +2053,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21846 +@@ -1987,11 +2016,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
21847 secbase = (unsigned long)mod_percpu(mod);
21848 else
21849 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
21850 @@ -83893,7 +85635,7 @@ index dc58274..3ddfa55 100644
21851 return ret;
21852 }
21853
21854 -@@ -2112,22 +2150,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
21855 +@@ -2075,22 +2113,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
21856 || s->sh_entsize != ~0UL
21857 || strstarts(sname, ".init"))
21858 continue;
21859 @@ -83920,7 +85662,7 @@ index dc58274..3ddfa55 100644
21860 }
21861
21862 pr_debug("Init section allocation order:\n");
21863 -@@ -2141,23 +2169,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
21864 +@@ -2104,23 +2132,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
21865 || s->sh_entsize != ~0UL
21866 || !strstarts(sname, ".init"))
21867 continue;
21868 @@ -83949,7 +85691,7 @@ index dc58274..3ddfa55 100644
21869 }
21870 }
21871
21872 -@@ -2330,7 +2348,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
21873 +@@ -2293,7 +2311,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
21874
21875 /* Put symbol section at end of init part of module. */
21876 symsect->sh_flags |= SHF_ALLOC;
21877 @@ -83958,7 +85700,7 @@ index dc58274..3ddfa55 100644
21878 info->index.sym) | INIT_OFFSET_MASK;
21879 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
21880
21881 -@@ -2347,13 +2365,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
21882 +@@ -2310,13 +2328,13 @@ static void layout_symtab(struct module *mod, struct load_info *info)
21883 }
21884
21885 /* Append room for core symbols at end of core part. */
21886 @@ -83976,7 +85718,7 @@ index dc58274..3ddfa55 100644
21887 info->index.str) | INIT_OFFSET_MASK;
21888 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
21889 }
21890 -@@ -2371,12 +2389,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
21891 +@@ -2334,12 +2352,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
21892 /* Make sure we get permanent strtab: don't use info->strtab. */
21893 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
21894
21895 @@ -83993,7 +85735,7 @@ index dc58274..3ddfa55 100644
21896 src = mod->symtab;
21897 for (ndst = i = 0; i < mod->num_symtab; i++) {
21898 if (i == 0 ||
21899 -@@ -2388,6 +2408,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
21900 +@@ -2351,6 +2371,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
21901 }
21902 }
21903 mod->core_num_syms = ndst;
21904 @@ -84002,7 +85744,7 @@ index dc58274..3ddfa55 100644
21905 }
21906 #else
21907 static inline void layout_symtab(struct module *mod, struct load_info *info)
21908 -@@ -2421,17 +2443,33 @@ void * __weak module_alloc(unsigned long size)
21909 +@@ -2384,17 +2406,33 @@ void * __weak module_alloc(unsigned long size)
21910 return vmalloc_exec(size);
21911 }
21912
21913 @@ -84041,7 +85783,7 @@ index dc58274..3ddfa55 100644
21914 mutex_unlock(&module_mutex);
21915 }
21916 return ret;
21917 -@@ -2706,8 +2744,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
21918 +@@ -2667,8 +2705,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
21919 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
21920 {
21921 const char *modmagic = get_modinfo(info, "vermagic");
21922 @@ -84056,7 +85798,7 @@ index dc58274..3ddfa55 100644
21923 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
21924 modmagic = NULL;
21925
21926 -@@ -2733,7 +2777,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
21927 +@@ -2693,7 +2737,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
21928 }
21929
21930 /* Set up license info based on the info section */
21931 @@ -84065,7 +85807,7 @@ index dc58274..3ddfa55 100644
21932
21933 return 0;
21934 }
21935 -@@ -2814,7 +2858,7 @@ static int move_module(struct module *mod, struct load_info *info)
21936 +@@ -2787,7 +2831,7 @@ static int move_module(struct module *mod, struct load_info *info)
21937 void *ptr;
21938
21939 /* Do the allocs. */
21940 @@ -84074,7 +85816,7 @@ index dc58274..3ddfa55 100644
21941 /*
21942 * The pointer to this block is stored in the module structure
21943 * which is inside the block. Just mark it as not being a
21944 -@@ -2824,11 +2868,11 @@ static int move_module(struct module *mod, struct load_info *info)
21945 +@@ -2797,11 +2841,11 @@ static int move_module(struct module *mod, struct load_info *info)
21946 if (!ptr)
21947 return -ENOMEM;
21948
21949 @@ -84090,7 +85832,7 @@ index dc58274..3ddfa55 100644
21950 /*
21951 * The pointer to this block is stored in the module structure
21952 * which is inside the block. This block doesn't need to be
21953 -@@ -2837,13 +2881,45 @@ static int move_module(struct module *mod, struct load_info *info)
21954 +@@ -2810,13 +2854,45 @@ static int move_module(struct module *mod, struct load_info *info)
21955 */
21956 kmemleak_ignore(ptr);
21957 if (!ptr) {
21958 @@ -84140,7 +85882,7 @@ index dc58274..3ddfa55 100644
21959
21960 /* Transfer each section which specifies SHF_ALLOC */
21961 pr_debug("final section addresses:\n");
21962 -@@ -2854,16 +2930,45 @@ static int move_module(struct module *mod, struct load_info *info)
21963 +@@ -2827,16 +2903,45 @@ static int move_module(struct module *mod, struct load_info *info)
21964 if (!(shdr->sh_flags & SHF_ALLOC))
21965 continue;
21966
21967 @@ -84193,7 +85935,7 @@ index dc58274..3ddfa55 100644
21968 pr_debug("\t0x%lx %s\n",
21969 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
21970 }
21971 -@@ -2920,12 +3025,12 @@ static void flush_module_icache(const struct module *mod)
21972 +@@ -2893,12 +2998,12 @@ static void flush_module_icache(const struct module *mod)
21973 * Do it before processing of module parameters, so the module
21974 * can provide parameter accessor functions of its own.
21975 */
21976 @@ -84212,7 +85954,7 @@ index dc58274..3ddfa55 100644
21977
21978 set_fs(old_fs);
21979 }
21980 -@@ -2982,8 +3087,10 @@ static struct module *layout_and_allocate(struct load_info *info, int flags)
21981 +@@ -2955,8 +3060,10 @@ static struct module *layout_and_allocate(struct load_info *info, int flags)
21982 static void module_deallocate(struct module *mod, struct load_info *info)
21983 {
21984 percpu_modfree(mod);
21985 @@ -84225,7 +85967,7 @@ index dc58274..3ddfa55 100644
21986 }
21987
21988 int __weak module_finalize(const Elf_Ehdr *hdr,
21989 -@@ -2996,7 +3103,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
21990 +@@ -2969,7 +3076,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
21991 static int post_relocation(struct module *mod, const struct load_info *info)
21992 {
21993 /* Sort exception table now relocations are done. */
21994 @@ -84235,7 +85977,7 @@ index dc58274..3ddfa55 100644
21995
21996 /* Copy relocated percpu area over. */
21997 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
21998 -@@ -3050,16 +3159,16 @@ static int do_init_module(struct module *mod)
21999 +@@ -3023,16 +3132,16 @@ static int do_init_module(struct module *mod)
22000 MODULE_STATE_COMING, mod);
22001
22002 /* Set RO and NX regions for core */
22003 @@ -84260,7 +86002,7 @@ index dc58274..3ddfa55 100644
22004
22005 do_mod_ctors(mod);
22006 /* Start the module */
22007 -@@ -3121,11 +3230,12 @@ static int do_init_module(struct module *mod)
22008 +@@ -3093,11 +3202,12 @@ static int do_init_module(struct module *mod)
22009 mod->strtab = mod->core_strtab;
22010 #endif
22011 unset_module_init_ro_nx(mod);
22012 @@ -84278,7 +86020,7 @@ index dc58274..3ddfa55 100644
22013 mutex_unlock(&module_mutex);
22014 wake_up_all(&module_wq);
22015
22016 -@@ -3269,9 +3379,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
22017 +@@ -3240,9 +3350,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
22018 if (err)
22019 goto free_unload;
22020
22021 @@ -84317,7 +86059,7 @@ index dc58274..3ddfa55 100644
22022 /* Fix up syms, so that st_value is a pointer to location. */
22023 err = simplify_symbols(mod, info);
22024 if (err < 0)
22025 -@@ -3287,13 +3426,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
22026 +@@ -3258,13 +3397,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
22027
22028 flush_module_icache(mod);
22029
22030 @@ -84331,7 +86073,7 @@ index dc58274..3ddfa55 100644
22031 dynamic_debug_setup(info->debug, info->num_debug);
22032
22033 /* Finally it's fully formed, ready to start executing. */
22034 -@@ -3328,11 +3460,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
22035 +@@ -3299,11 +3431,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
22036 ddebug_cleanup:
22037 dynamic_debug_remove(info->debug);
22038 synchronize_sched();
22039 @@ -84344,7 +86086,7 @@ index dc58274..3ddfa55 100644
22040 free_unload:
22041 module_unload_free(mod);
22042 unlink_mod:
22043 -@@ -3415,10 +3546,16 @@ static const char *get_ksymbol(struct module *mod,
22044 +@@ -3386,10 +3517,16 @@ static const char *get_ksymbol(struct module *mod,
22045 unsigned long nextval;
22046
22047 /* At worse, next value is at end of module */
22048 @@ -84364,7 +86106,7 @@ index dc58274..3ddfa55 100644
22049
22050 /* Scan for closest preceding symbol, and next symbol. (ELF
22051 starts real symbols at 1). */
22052 -@@ -3669,7 +3806,7 @@ static int m_show(struct seq_file *m, void *p)
22053 +@@ -3640,7 +3777,7 @@ static int m_show(struct seq_file *m, void *p)
22054 return 0;
22055
22056 seq_printf(m, "%s %u",
22057 @@ -84373,7 +86115,7 @@ index dc58274..3ddfa55 100644
22058 print_unload_info(m, mod);
22059
22060 /* Informative for users. */
22061 -@@ -3678,7 +3815,7 @@ static int m_show(struct seq_file *m, void *p)
22062 +@@ -3649,7 +3786,7 @@ static int m_show(struct seq_file *m, void *p)
22063 mod->state == MODULE_STATE_COMING ? "Loading":
22064 "Live");
22065 /* Used by oprofile and other similar tools. */
22066 @@ -84382,7 +86124,7 @@ index dc58274..3ddfa55 100644
22067
22068 /* Taints info */
22069 if (mod->taints)
22070 -@@ -3714,7 +3851,17 @@ static const struct file_operations proc_modules_operations = {
22071 +@@ -3685,7 +3822,17 @@ static const struct file_operations proc_modules_operations = {
22072
22073 static int __init proc_modules_init(void)
22074 {
22075 @@ -84400,7 +86142,7 @@ index dc58274..3ddfa55 100644
22076 return 0;
22077 }
22078 module_init(proc_modules_init);
22079 -@@ -3775,14 +3922,14 @@ struct module *__module_address(unsigned long addr)
22080 +@@ -3746,14 +3893,14 @@ struct module *__module_address(unsigned long addr)
22081 {
22082 struct module *mod;
22083
22084 @@ -84418,7 +86160,7 @@ index dc58274..3ddfa55 100644
22085 return mod;
22086 }
22087 return NULL;
22088 -@@ -3817,11 +3964,20 @@ bool is_module_text_address(unsigned long addr)
22089 +@@ -3788,11 +3935,20 @@ bool is_module_text_address(unsigned long addr)
22090 */
22091 struct module *__module_text_address(unsigned long addr)
22092 {
22093 @@ -84442,103 +86184,6 @@ index dc58274..3ddfa55 100644
22094 mod = NULL;
22095 }
22096 return mod;
22097 -diff --git a/kernel/mutex-debug.c b/kernel/mutex-debug.c
22098 -index 7e3443f..b2a1e6b 100644
22099 ---- a/kernel/mutex-debug.c
22100 -+++ b/kernel/mutex-debug.c
22101 -@@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
22102 - }
22103 -
22104 - void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
22105 -- struct thread_info *ti)
22106 -+ struct task_struct *task)
22107 - {
22108 - SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
22109 -
22110 - /* Mark the current thread as blocked on the lock: */
22111 -- ti->task->blocked_on = waiter;
22112 -+ task->blocked_on = waiter;
22113 - }
22114 -
22115 - void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
22116 -- struct thread_info *ti)
22117 -+ struct task_struct *task)
22118 - {
22119 - DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
22120 -- DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
22121 -- DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
22122 -- ti->task->blocked_on = NULL;
22123 -+ DEBUG_LOCKS_WARN_ON(waiter->task != task);
22124 -+ DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
22125 -+ task->blocked_on = NULL;
22126 -
22127 - list_del_init(&waiter->list);
22128 - waiter->task = NULL;
22129 -diff --git a/kernel/mutex-debug.h b/kernel/mutex-debug.h
22130 -index 0799fd3..d06ae3b 100644
22131 ---- a/kernel/mutex-debug.h
22132 -+++ b/kernel/mutex-debug.h
22133 -@@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
22134 - extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
22135 - extern void debug_mutex_add_waiter(struct mutex *lock,
22136 - struct mutex_waiter *waiter,
22137 -- struct thread_info *ti);
22138 -+ struct task_struct *task);
22139 - extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
22140 -- struct thread_info *ti);
22141 -+ struct task_struct *task);
22142 - extern void debug_mutex_unlock(struct mutex *lock);
22143 - extern void debug_mutex_init(struct mutex *lock, const char *name,
22144 - struct lock_class_key *key);
22145 -diff --git a/kernel/mutex.c b/kernel/mutex.c
22146 -index d24105b..15648eb 100644
22147 ---- a/kernel/mutex.c
22148 -+++ b/kernel/mutex.c
22149 -@@ -135,7 +135,7 @@ void mspin_lock(struct mspin_node **lock, struct mspin_node *node)
22150 - node->locked = 1;
22151 - return;
22152 - }
22153 -- ACCESS_ONCE(prev->next) = node;
22154 -+ ACCESS_ONCE_RW(prev->next) = node;
22155 - smp_wmb();
22156 - /* Wait until the lock holder passes the lock down */
22157 - while (!ACCESS_ONCE(node->locked))
22158 -@@ -156,7 +156,7 @@ static void mspin_unlock(struct mspin_node **lock, struct mspin_node *node)
22159 - while (!(next = ACCESS_ONCE(node->next)))
22160 - arch_mutex_cpu_relax();
22161 - }
22162 -- ACCESS_ONCE(next->locked) = 1;
22163 -+ ACCESS_ONCE_RW(next->locked) = 1;
22164 - smp_wmb();
22165 - }
22166 -
22167 -@@ -520,7 +520,7 @@ slowpath:
22168 - goto skip_wait;
22169 -
22170 - debug_mutex_lock_common(lock, &waiter);
22171 -- debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
22172 -+ debug_mutex_add_waiter(lock, &waiter, task);
22173 -
22174 - /* add waiting tasks to the end of the waitqueue (FIFO): */
22175 - list_add_tail(&waiter.list, &lock->wait_list);
22176 -@@ -564,7 +564,7 @@ slowpath:
22177 - schedule_preempt_disabled();
22178 - spin_lock_mutex(&lock->wait_lock, flags);
22179 - }
22180 -- mutex_remove_waiter(lock, &waiter, current_thread_info());
22181 -+ mutex_remove_waiter(lock, &waiter, task);
22182 - /* set it to 0 if there are no waiters left: */
22183 - if (likely(list_empty(&lock->wait_list)))
22184 - atomic_set(&lock->count, 0);
22185 -@@ -601,7 +601,7 @@ skip_wait:
22186 - return 0;
22187 -
22188 - err:
22189 -- mutex_remove_waiter(lock, &waiter, task_thread_info(task));
22190 -+ mutex_remove_waiter(lock, &waiter, task);
22191 - spin_unlock_mutex(&lock->wait_lock, flags);
22192 - debug_mutex_free_waiter(&waiter);
22193 - mutex_release(&lock->dep_map, 1, ip);
22194 diff --git a/kernel/notifier.c b/kernel/notifier.c
22195 index 2d5cc4c..d9ea600 100644
22196 --- a/kernel/notifier.c
22197 @@ -84595,8 +86240,30 @@ index 2d5cc4c..d9ea600 100644
22198 }
22199 return -ENOENT;
22200 }
22201 +diff --git a/kernel/padata.c b/kernel/padata.c
22202 +index 2abd25d..02c4faa 100644
22203 +--- a/kernel/padata.c
22204 ++++ b/kernel/padata.c
22205 +@@ -54,7 +54,7 @@ static int padata_cpu_hash(struct parallel_data *pd)
22206 + * seq_nr mod. number of cpus in use.
22207 + */
22208 +
22209 +- seq_nr = atomic_inc_return(&pd->seq_nr);
22210 ++ seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
22211 + cpu_index = seq_nr % cpumask_weight(pd->cpumask.pcpu);
22212 +
22213 + return padata_index_to_cpu(pd, cpu_index);
22214 +@@ -428,7 +428,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
22215 + padata_init_pqueues(pd);
22216 + padata_init_squeues(pd);
22217 + setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
22218 +- atomic_set(&pd->seq_nr, -1);
22219 ++ atomic_set_unchecked(&pd->seq_nr, -1);
22220 + atomic_set(&pd->reorder_objects, 0);
22221 + atomic_set(&pd->refcnt, 0);
22222 + pd->pinst = pinst;
22223 diff --git a/kernel/panic.c b/kernel/panic.c
22224 -index b6c482c..5578061 100644
22225 +index c00b4ce..a846117 100644
22226 --- a/kernel/panic.c
22227 +++ b/kernel/panic.c
22228 @@ -407,7 +407,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
22229 @@ -84675,10 +86342,10 @@ index 9b9a266..c20ef80 100644
22230 {
22231 struct pid *pid;
22232 diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
22233 -index 4208655..19f36a5 100644
22234 +index 06c62de..b08cc6c 100644
22235 --- a/kernel/pid_namespace.c
22236 +++ b/kernel/pid_namespace.c
22237 -@@ -247,7 +247,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
22238 +@@ -253,7 +253,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
22239 void __user *buffer, size_t *lenp, loff_t *ppos)
22240 {
22241 struct pid_namespace *pid_ns = task_active_pid_ns(current);
22242 @@ -84825,7 +86492,7 @@ index 424c2d4..679242f 100644
22243 }
22244
22245 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
22246 -index d444c4e..bc3de51 100644
22247 +index 2fac9cc..56fef29 100644
22248 --- a/kernel/power/Kconfig
22249 +++ b/kernel/power/Kconfig
22250 @@ -24,6 +24,8 @@ config HIBERNATE_CALLBACKS
22251 @@ -84881,7 +86548,7 @@ index 06ec886..9dba35e 100644
22252
22253 if (pm_wakeup_pending()) {
22254 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
22255 -index b4e8500..b457a6c 100644
22256 +index be7c86b..c741464 100644
22257 --- a/kernel/printk/printk.c
22258 +++ b/kernel/printk/printk.c
22259 @@ -385,6 +385,11 @@ static int check_syslog_permissions(int type, bool from_file)
22260 @@ -85052,29 +86719,28 @@ index 1f4bcb3..99cf7ab 100644
22261 goto out_put_task_struct;
22262 }
22263
22264 -diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c
22265 -index b02a339..ce2d20c 100644
22266 ---- a/kernel/rcupdate.c
22267 -+++ b/kernel/rcupdate.c
22268 -@@ -312,10 +312,10 @@ int rcu_jiffies_till_stall_check(void)
22269 - * for CONFIG_RCU_CPU_STALL_TIMEOUT.
22270 - */
22271 - if (till_stall_check < 3) {
22272 -- ACCESS_ONCE(rcu_cpu_stall_timeout) = 3;
22273 -+ ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 3;
22274 - till_stall_check = 3;
22275 - } else if (till_stall_check > 300) {
22276 -- ACCESS_ONCE(rcu_cpu_stall_timeout) = 300;
22277 -+ ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 300;
22278 - till_stall_check = 300;
22279 - }
22280 - return till_stall_check * HZ + RCU_STALL_DELAY_DELTA;
22281 -diff --git a/kernel/rcutiny.c b/kernel/rcutiny.c
22282 -index 9ed6075..c9e8a63 100644
22283 ---- a/kernel/rcutiny.c
22284 -+++ b/kernel/rcutiny.c
22285 -@@ -45,7 +45,7 @@
22286 - /* Forward declarations for rcutiny_plugin.h. */
22287 +diff --git a/kernel/rcu/srcu.c b/kernel/rcu/srcu.c
22288 +index 01d5ccb..cdcbee6 100644
22289 +--- a/kernel/rcu/srcu.c
22290 ++++ b/kernel/rcu/srcu.c
22291 +@@ -300,9 +300,9 @@ int __srcu_read_lock(struct srcu_struct *sp)
22292 +
22293 + idx = ACCESS_ONCE(sp->completed) & 0x1;
22294 + preempt_disable();
22295 +- ACCESS_ONCE(this_cpu_ptr(sp->per_cpu_ref)->c[idx]) += 1;
22296 ++ ACCESS_ONCE_RW(this_cpu_ptr(sp->per_cpu_ref)->c[idx]) += 1;
22297 + smp_mb(); /* B */ /* Avoid leaking the critical section. */
22298 +- ACCESS_ONCE(this_cpu_ptr(sp->per_cpu_ref)->seq[idx]) += 1;
22299 ++ ACCESS_ONCE_RW(this_cpu_ptr(sp->per_cpu_ref)->seq[idx]) += 1;
22300 + preempt_enable();
22301 + return idx;
22302 + }
22303 +diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
22304 +index 1254f31..16258dc 100644
22305 +--- a/kernel/rcu/tiny.c
22306 ++++ b/kernel/rcu/tiny.c
22307 +@@ -46,7 +46,7 @@
22308 + /* Forward declarations for tiny_plugin.h. */
22309 struct rcu_ctrlblk;
22310 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
22311 -static void rcu_process_callbacks(struct softirq_action *unused);
22312 @@ -85082,7 +86748,7 @@ index 9ed6075..c9e8a63 100644
22313 static void __call_rcu(struct rcu_head *head,
22314 void (*func)(struct rcu_head *rcu),
22315 struct rcu_ctrlblk *rcp);
22316 -@@ -309,7 +309,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
22317 +@@ -312,7 +312,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
22318 false));
22319 }
22320
22321 @@ -85091,11 +86757,11 @@ index 9ed6075..c9e8a63 100644
22322 {
22323 __rcu_process_callbacks(&rcu_sched_ctrlblk);
22324 __rcu_process_callbacks(&rcu_bh_ctrlblk);
22325 -diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
22326 -index be63101..05cf721 100644
22327 ---- a/kernel/rcutorture.c
22328 -+++ b/kernel/rcutorture.c
22329 -@@ -170,12 +170,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_count) =
22330 +diff --git a/kernel/rcu/torture.c b/kernel/rcu/torture.c
22331 +index 3929cd4..421624d 100644
22332 +--- a/kernel/rcu/torture.c
22333 ++++ b/kernel/rcu/torture.c
22334 +@@ -176,12 +176,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_count) =
22335 { 0 };
22336 static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1], rcu_torture_batch) =
22337 { 0 };
22338 @@ -85114,7 +86780,7 @@ index be63101..05cf721 100644
22339 static long n_rcu_torture_barrier_error;
22340 static long n_rcu_torture_boost_ktrerror;
22341 static long n_rcu_torture_boost_rterror;
22342 -@@ -293,11 +293,11 @@ rcu_torture_alloc(void)
22343 +@@ -299,11 +299,11 @@ rcu_torture_alloc(void)
22344
22345 spin_lock_bh(&rcu_torture_lock);
22346 if (list_empty(&rcu_torture_freelist)) {
22347 @@ -85128,7 +86794,7 @@ index be63101..05cf721 100644
22348 p = rcu_torture_freelist.next;
22349 list_del_init(p);
22350 spin_unlock_bh(&rcu_torture_lock);
22351 -@@ -310,7 +310,7 @@ rcu_torture_alloc(void)
22352 +@@ -316,7 +316,7 @@ rcu_torture_alloc(void)
22353 static void
22354 rcu_torture_free(struct rcu_torture *p)
22355 {
22356 @@ -85137,7 +86803,7 @@ index be63101..05cf721 100644
22357 spin_lock_bh(&rcu_torture_lock);
22358 list_add_tail(&p->rtort_free, &rcu_torture_freelist);
22359 spin_unlock_bh(&rcu_torture_lock);
22360 -@@ -431,7 +431,7 @@ rcu_torture_cb(struct rcu_head *p)
22361 +@@ -437,7 +437,7 @@ rcu_torture_cb(struct rcu_head *p)
22362 i = rp->rtort_pipe_count;
22363 if (i > RCU_TORTURE_PIPE_LEN)
22364 i = RCU_TORTURE_PIPE_LEN;
22365 @@ -85146,7 +86812,7 @@ index be63101..05cf721 100644
22366 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
22367 rp->rtort_mbtest = 0;
22368 rcu_torture_free(rp);
22369 -@@ -821,7 +821,7 @@ rcu_torture_writer(void *arg)
22370 +@@ -827,7 +827,7 @@ rcu_torture_writer(void *arg)
22371 i = old_rp->rtort_pipe_count;
22372 if (i > RCU_TORTURE_PIPE_LEN)
22373 i = RCU_TORTURE_PIPE_LEN;
22374 @@ -85155,7 +86821,7 @@ index be63101..05cf721 100644
22375 old_rp->rtort_pipe_count++;
22376 if (gp_normal == gp_exp)
22377 exp = !!(rcu_random(&rand) & 0x80);
22378 -@@ -839,7 +839,7 @@ rcu_torture_writer(void *arg)
22379 +@@ -845,7 +845,7 @@ rcu_torture_writer(void *arg)
22380 i = rp->rtort_pipe_count;
22381 if (i > RCU_TORTURE_PIPE_LEN)
22382 i = RCU_TORTURE_PIPE_LEN;
22383 @@ -85164,7 +86830,7 @@ index be63101..05cf721 100644
22384 if (++rp->rtort_pipe_count >=
22385 RCU_TORTURE_PIPE_LEN) {
22386 rp->rtort_mbtest = 0;
22387 -@@ -938,7 +938,7 @@ static void rcu_torture_timer(unsigned long unused)
22388 +@@ -944,7 +944,7 @@ static void rcu_torture_timer(unsigned long unused)
22389 return;
22390 }
22391 if (p->rtort_mbtest == 0)
22392 @@ -85173,7 +86839,7 @@ index be63101..05cf721 100644
22393 spin_lock(&rand_lock);
22394 cur_ops->read_delay(&rand);
22395 n_rcu_torture_timers++;
22396 -@@ -1008,7 +1008,7 @@ rcu_torture_reader(void *arg)
22397 +@@ -1014,7 +1014,7 @@ rcu_torture_reader(void *arg)
22398 continue;
22399 }
22400 if (p->rtort_mbtest == 0)
22401 @@ -85182,7 +86848,7 @@ index be63101..05cf721 100644
22402 cur_ops->read_delay(&rand);
22403 preempt_disable();
22404 pipe_count = p->rtort_pipe_count;
22405 -@@ -1071,11 +1071,11 @@ rcu_torture_printk(char *page)
22406 +@@ -1077,11 +1077,11 @@ rcu_torture_printk(char *page)
22407 rcu_torture_current,
22408 rcu_torture_current_version,
22409 list_empty(&rcu_torture_freelist),
22410 @@ -85198,7 +86864,7 @@ index be63101..05cf721 100644
22411 n_rcu_torture_boost_ktrerror,
22412 n_rcu_torture_boost_rterror);
22413 cnt += sprintf(&page[cnt], "rtbf: %ld rtb: %ld nt: %ld ",
22414 -@@ -1094,14 +1094,14 @@ rcu_torture_printk(char *page)
22415 +@@ -1100,14 +1100,14 @@ rcu_torture_printk(char *page)
22416 n_barrier_attempts,
22417 n_rcu_torture_barrier_error);
22418 cnt += sprintf(&page[cnt], "\n%s%s ", torture_type, TORTURE_FLAG);
22419 @@ -85215,7 +86881,7 @@ index be63101..05cf721 100644
22420 WARN_ON_ONCE(1);
22421 }
22422 cnt += sprintf(&page[cnt], "Reader Pipe: ");
22423 -@@ -1115,7 +1115,7 @@ rcu_torture_printk(char *page)
22424 +@@ -1121,7 +1121,7 @@ rcu_torture_printk(char *page)
22425 cnt += sprintf(&page[cnt], "Free-Block Circulation: ");
22426 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
22427 cnt += sprintf(&page[cnt], " %d",
22428 @@ -85224,7 +86890,7 @@ index be63101..05cf721 100644
22429 }
22430 cnt += sprintf(&page[cnt], "\n");
22431 if (cur_ops->stats)
22432 -@@ -1830,7 +1830,7 @@ rcu_torture_cleanup(void)
22433 +@@ -1836,7 +1836,7 @@ rcu_torture_cleanup(void)
22434
22435 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
22436
22437 @@ -85233,7 +86899,7 @@ index be63101..05cf721 100644
22438 rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
22439 else if (n_online_successes != n_online_attempts ||
22440 n_offline_successes != n_offline_attempts)
22441 -@@ -1952,18 +1952,18 @@ rcu_torture_init(void)
22442 +@@ -1958,18 +1958,18 @@ rcu_torture_init(void)
22443
22444 rcu_torture_current = NULL;
22445 rcu_torture_current_version = 0;
22446 @@ -85258,11 +86924,11 @@ index be63101..05cf721 100644
22447 for_each_possible_cpu(cpu) {
22448 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
22449 per_cpu(rcu_torture_count, cpu)[i] = 0;
22450 -diff --git a/kernel/rcutree.c b/kernel/rcutree.c
22451 -index 32618b3..c1fb822 100644
22452 ---- a/kernel/rcutree.c
22453 -+++ b/kernel/rcutree.c
22454 -@@ -382,9 +382,9 @@ static void rcu_eqs_enter_common(struct rcu_dynticks *rdtp, long long oldval,
22455 +diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
22456 +index dd08198..5ccccbe 100644
22457 +--- a/kernel/rcu/tree.c
22458 ++++ b/kernel/rcu/tree.c
22459 +@@ -383,9 +383,9 @@ static void rcu_eqs_enter_common(struct rcu_dynticks *rdtp, long long oldval,
22460 rcu_prepare_for_idle(smp_processor_id());
22461 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
22462 smp_mb__before_atomic_inc(); /* See above. */
22463 @@ -85274,7 +86940,7 @@ index 32618b3..c1fb822 100644
22464
22465 /*
22466 * It is illegal to enter an extended quiescent state while
22467 -@@ -501,10 +501,10 @@ static void rcu_eqs_exit_common(struct rcu_dynticks *rdtp, long long oldval,
22468 +@@ -502,10 +502,10 @@ static void rcu_eqs_exit_common(struct rcu_dynticks *rdtp, long long oldval,
22469 int user)
22470 {
22471 smp_mb__before_atomic_inc(); /* Force ordering w/previous sojourn. */
22472 @@ -85287,8 +86953,8 @@ index 32618b3..c1fb822 100644
22473 rcu_cleanup_after_idle(smp_processor_id());
22474 trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
22475 if (!user && !is_idle_task(current)) {
22476 -@@ -623,14 +623,14 @@ void rcu_nmi_enter(void)
22477 - struct rcu_dynticks *rdtp = &__get_cpu_var(rcu_dynticks);
22478 +@@ -625,14 +625,14 @@ void rcu_nmi_enter(void)
22479 + struct rcu_dynticks *rdtp = this_cpu_ptr(&rcu_dynticks);
22480
22481 if (rdtp->dynticks_nmi_nesting == 0 &&
22482 - (atomic_read(&rdtp->dynticks) & 0x1))
22483 @@ -85305,7 +86971,7 @@ index 32618b3..c1fb822 100644
22484 }
22485
22486 /**
22487 -@@ -649,9 +649,9 @@ void rcu_nmi_exit(void)
22488 +@@ -651,9 +651,9 @@ void rcu_nmi_exit(void)
22489 return;
22490 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
22491 smp_mb__before_atomic_inc(); /* See above. */
22492 @@ -85317,16 +86983,16 @@ index 32618b3..c1fb822 100644
22493 }
22494
22495 /**
22496 -@@ -665,7 +665,7 @@ int rcu_is_cpu_idle(void)
22497 - int ret;
22498 -
22499 - preempt_disable();
22500 -- ret = (atomic_read(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0;
22501 -+ ret = (atomic_read_unchecked(&__get_cpu_var(rcu_dynticks).dynticks) & 0x1) == 0;
22502 - preempt_enable();
22503 - return ret;
22504 +@@ -666,7 +666,7 @@ void rcu_nmi_exit(void)
22505 + */
22506 + bool notrace __rcu_is_watching(void)
22507 + {
22508 +- return atomic_read(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
22509 ++ return atomic_read_unchecked(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
22510 }
22511 -@@ -734,7 +734,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
22512 +
22513 + /**
22514 +@@ -749,7 +749,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
22515 static int dyntick_save_progress_counter(struct rcu_data *rdp,
22516 bool *isidle, unsigned long *maxj)
22517 {
22518 @@ -85335,7 +87001,7 @@ index 32618b3..c1fb822 100644
22519 rcu_sysidle_check_cpu(rdp, isidle, maxj);
22520 return (rdp->dynticks_snap & 0x1) == 0;
22521 }
22522 -@@ -751,7 +751,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
22523 +@@ -766,7 +766,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
22524 unsigned int curr;
22525 unsigned int snap;
22526
22527 @@ -85344,7 +87010,7 @@ index 32618b3..c1fb822 100644
22528 snap = (unsigned int)rdp->dynticks_snap;
22529
22530 /*
22531 -@@ -1341,9 +1341,9 @@ static int rcu_gp_init(struct rcu_state *rsp)
22532 +@@ -1412,9 +1412,9 @@ static int rcu_gp_init(struct rcu_state *rsp)
22533 rdp = this_cpu_ptr(rsp->rda);
22534 rcu_preempt_check_blocked_tasks(rnp);
22535 rnp->qsmask = rnp->qsmaskinit;
22536 @@ -85356,7 +87022,7 @@ index 32618b3..c1fb822 100644
22537 if (rnp == rdp->mynode)
22538 __note_gp_changes(rsp, rnp, rdp);
22539 rcu_preempt_boost_start_gp(rnp);
22540 -@@ -1434,7 +1434,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
22541 +@@ -1505,7 +1505,7 @@ static void rcu_gp_cleanup(struct rcu_state *rsp)
22542 */
22543 rcu_for_each_node_breadth_first(rsp, rnp) {
22544 raw_spin_lock_irq(&rnp->lock);
22545 @@ -85365,7 +87031,7 @@ index 32618b3..c1fb822 100644
22546 rdp = this_cpu_ptr(rsp->rda);
22547 if (rnp == rdp->mynode)
22548 __note_gp_changes(rsp, rnp, rdp);
22549 -@@ -1766,7 +1766,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp,
22550 +@@ -1865,7 +1865,7 @@ rcu_send_cbs_to_orphanage(int cpu, struct rcu_state *rsp,
22551 rsp->qlen += rdp->qlen;
22552 rdp->n_cbs_orphaned += rdp->qlen;
22553 rdp->qlen_lazy = 0;
22554 @@ -85374,7 +87040,7 @@ index 32618b3..c1fb822 100644
22555 }
22556
22557 /*
22558 -@@ -2012,7 +2012,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
22559 +@@ -2111,7 +2111,7 @@ static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
22560 }
22561 smp_mb(); /* List handling before counting for rcu_barrier(). */
22562 rdp->qlen_lazy -= count_lazy;
22563 @@ -85383,16 +87049,16 @@ index 32618b3..c1fb822 100644
22564 rdp->n_cbs_invoked += count;
22565
22566 /* Reinstate batch limit if we have worked down the excess. */
22567 -@@ -2209,7 +2209,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
22568 +@@ -2308,7 +2308,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
22569 /*
22570 * Do RCU core processing for the current CPU.
22571 */
22572 -static void rcu_process_callbacks(struct softirq_action *unused)
22573 -+static __latent_entropy void rcu_process_callbacks(void)
22574 ++static void rcu_process_callbacks(void)
22575 {
22576 struct rcu_state *rsp;
22577
22578 -@@ -2316,7 +2316,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
22579 +@@ -2415,7 +2415,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
22580 WARN_ON_ONCE((unsigned long)head & 0x3); /* Misaligned rcu_head! */
22581 if (debug_rcu_head_queue(head)) {
22582 /* Probable double call_rcu(), so leak the callback. */
22583 @@ -85401,7 +87067,7 @@ index 32618b3..c1fb822 100644
22584 WARN_ONCE(1, "__call_rcu(): Leaked duplicate callback\n");
22585 return;
22586 }
22587 -@@ -2344,7 +2344,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
22588 +@@ -2443,7 +2443,7 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
22589 local_irq_restore(flags);
22590 return;
22591 }
22592 @@ -85410,7 +87076,7 @@ index 32618b3..c1fb822 100644
22593 if (lazy)
22594 rdp->qlen_lazy++;
22595 else
22596 -@@ -2553,11 +2553,11 @@ void synchronize_sched_expedited(void)
22597 +@@ -2652,11 +2652,11 @@ void synchronize_sched_expedited(void)
22598 * counter wrap on a 32-bit system. Quite a few more CPUs would of
22599 * course be required on a 64-bit system.
22600 */
22601 @@ -85424,7 +87090,7 @@ index 32618b3..c1fb822 100644
22602 return;
22603 }
22604
22605 -@@ -2565,7 +2565,7 @@ void synchronize_sched_expedited(void)
22606 +@@ -2664,7 +2664,7 @@ void synchronize_sched_expedited(void)
22607 * Take a ticket. Note that atomic_inc_return() implies a
22608 * full memory barrier.
22609 */
22610 @@ -85433,7 +87099,7 @@ index 32618b3..c1fb822 100644
22611 firstsnap = snap;
22612 get_online_cpus();
22613 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
22614 -@@ -2578,14 +2578,14 @@ void synchronize_sched_expedited(void)
22615 +@@ -2677,14 +2677,14 @@ void synchronize_sched_expedited(void)
22616 synchronize_sched_expedited_cpu_stop,
22617 NULL) == -EAGAIN) {
22618 put_online_cpus();
22619 @@ -85450,7 +87116,7 @@ index 32618b3..c1fb822 100644
22620 return;
22621 }
22622
22623 -@@ -2594,7 +2594,7 @@ void synchronize_sched_expedited(void)
22624 +@@ -2693,7 +2693,7 @@ void synchronize_sched_expedited(void)
22625 udelay(trycount * num_online_cpus());
22626 } else {
22627 wait_rcu_gp(call_rcu_sched);
22628 @@ -85459,7 +87125,7 @@ index 32618b3..c1fb822 100644
22629 return;
22630 }
22631
22632 -@@ -2603,7 +2603,7 @@ void synchronize_sched_expedited(void)
22633 +@@ -2702,7 +2702,7 @@ void synchronize_sched_expedited(void)
22634 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
22635 /* ensure test happens before caller kfree */
22636 smp_mb__before_atomic_inc(); /* ^^^ */
22637 @@ -85468,7 +87134,7 @@ index 32618b3..c1fb822 100644
22638 return;
22639 }
22640
22641 -@@ -2615,10 +2615,10 @@ void synchronize_sched_expedited(void)
22642 +@@ -2714,10 +2714,10 @@ void synchronize_sched_expedited(void)
22643 * period works for us.
22644 */
22645 get_online_cpus();
22646 @@ -85481,7 +87147,7 @@ index 32618b3..c1fb822 100644
22647
22648 /*
22649 * Everyone up to our most recent fetch is covered by our grace
22650 -@@ -2627,16 +2627,16 @@ void synchronize_sched_expedited(void)
22651 +@@ -2726,16 +2726,16 @@ void synchronize_sched_expedited(void)
22652 * than we did already did their update.
22653 */
22654 do {
22655 @@ -85501,7 +87167,7 @@ index 32618b3..c1fb822 100644
22656
22657 put_online_cpus();
22658 }
22659 -@@ -2829,7 +2829,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
22660 +@@ -2931,7 +2931,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
22661 * ACCESS_ONCE() to prevent the compiler from speculating
22662 * the increment to precede the early-exit check.
22663 */
22664 @@ -85510,7 +87176,7 @@ index 32618b3..c1fb822 100644
22665 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 1);
22666 _rcu_barrier_trace(rsp, "Inc1", -1, rsp->n_barrier_done);
22667 smp_mb(); /* Order ->n_barrier_done increment with below mechanism. */
22668 -@@ -2879,7 +2879,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
22669 +@@ -2981,7 +2981,7 @@ static void _rcu_barrier(struct rcu_state *rsp)
22670
22671 /* Increment ->n_barrier_done to prevent duplicate work. */
22672 smp_mb(); /* Keep increment after above mechanism. */
22673 @@ -85519,7 +87185,7 @@ index 32618b3..c1fb822 100644
22674 WARN_ON_ONCE((rsp->n_barrier_done & 0x1) != 0);
22675 _rcu_barrier_trace(rsp, "Inc2", -1, rsp->n_barrier_done);
22676 smp_mb(); /* Keep increment before caller's subsequent code. */
22677 -@@ -2924,10 +2924,10 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
22678 +@@ -3026,10 +3026,10 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
22679 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
22680 init_callback_list(rdp);
22681 rdp->qlen_lazy = 0;
22682 @@ -85532,7 +87198,7 @@ index 32618b3..c1fb822 100644
22683 rdp->cpu = cpu;
22684 rdp->rsp = rsp;
22685 rcu_boot_init_nocb_percpu_data(rdp);
22686 -@@ -2961,8 +2961,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
22687 +@@ -3063,8 +3063,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp, int preemptible)
22688 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
22689 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
22690 rcu_sysidle_init_percpu_data(rdp->dynticks);
22691 @@ -85543,10 +87209,10 @@ index 32618b3..c1fb822 100644
22692 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
22693
22694 /* Add CPU to rcu_node bitmasks. */
22695 -diff --git a/kernel/rcutree.h b/kernel/rcutree.h
22696 -index 5f97eab..db8f687 100644
22697 ---- a/kernel/rcutree.h
22698 -+++ b/kernel/rcutree.h
22699 +diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
22700 +index 52be957..365ded3 100644
22701 +--- a/kernel/rcu/tree.h
22702 ++++ b/kernel/rcu/tree.h
22703 @@ -87,11 +87,11 @@ struct rcu_dynticks {
22704 long long dynticks_nesting; /* Track irq/process nesting level. */
22705 /* Process level is worth LLONG_MAX/2. */
22706 @@ -85557,11 +87223,11 @@ index 5f97eab..db8f687 100644
22707 long long dynticks_idle_nesting;
22708 /* irq/process nesting level from idle. */
22709 - atomic_t dynticks_idle; /* Even value for idle, else odd. */
22710 -+ atomic_unchecked_t dynticks_idle; /* Even value for idle, else odd. */
22711 ++ atomic_unchecked_t dynticks_idle;/* Even value for idle, else odd. */
22712 /* "Idle" excludes userspace execution. */
22713 unsigned long dynticks_idle_jiffies;
22714 /* End of last non-NMI non-idle period. */
22715 -@@ -427,17 +427,17 @@ struct rcu_state {
22716 +@@ -429,17 +429,17 @@ struct rcu_state {
22717 /* _rcu_barrier(). */
22718 /* End of fields guarded by barrier_mutex. */
22719
22720 @@ -85590,11 +87256,11 @@ index 5f97eab..db8f687 100644
22721
22722 unsigned long jiffies_force_qs; /* Time at which to invoke */
22723 /* force_quiescent_state(). */
22724 -diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
22725 -index 130c97b..bcbe7f7 100644
22726 ---- a/kernel/rcutree_plugin.h
22727 -+++ b/kernel/rcutree_plugin.h
22728 -@@ -744,7 +744,7 @@ static int rcu_preempted_readers_exp(struct rcu_node *rnp)
22729 +diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
22730 +index 08a7652..3598c7e 100644
22731 +--- a/kernel/rcu/tree_plugin.h
22732 ++++ b/kernel/rcu/tree_plugin.h
22733 +@@ -749,7 +749,7 @@ static int rcu_preempted_readers_exp(struct rcu_node *rnp)
22734 static int sync_rcu_preempt_exp_done(struct rcu_node *rnp)
22735 {
22736 return !rcu_preempted_readers_exp(rnp) &&
22737 @@ -85603,7 +87269,7 @@ index 130c97b..bcbe7f7 100644
22738 }
22739
22740 /*
22741 -@@ -900,7 +900,7 @@ void synchronize_rcu_expedited(void)
22742 +@@ -905,7 +905,7 @@ void synchronize_rcu_expedited(void)
22743
22744 /* Clean up and exit. */
22745 smp_mb(); /* ensure expedited GP seen before counter increment. */
22746 @@ -85612,7 +87278,7 @@ index 130c97b..bcbe7f7 100644
22747 unlock_mb_ret:
22748 mutex_unlock(&sync_rcu_preempt_exp_mutex);
22749 mb_ret:
22750 -@@ -1474,7 +1474,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
22751 +@@ -1479,7 +1479,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
22752 free_cpumask_var(cm);
22753 }
22754
22755 @@ -85621,7 +87287,7 @@ index 130c97b..bcbe7f7 100644
22756 .store = &rcu_cpu_kthread_task,
22757 .thread_should_run = rcu_cpu_kthread_should_run,
22758 .thread_fn = rcu_cpu_kthread,
22759 -@@ -1939,7 +1939,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
22760 +@@ -1946,7 +1946,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
22761 print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
22762 pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u %s\n",
22763 cpu, ticks_value, ticks_title,
22764 @@ -85630,7 +87296,7 @@ index 130c97b..bcbe7f7 100644
22765 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
22766 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
22767 fast_no_hz);
22768 -@@ -2102,7 +2102,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
22769 +@@ -2109,7 +2109,7 @@ static void __call_rcu_nocb_enqueue(struct rcu_data *rdp,
22770
22771 /* Enqueue the callback on the nocb list and update counts. */
22772 old_rhpp = xchg(&rdp->nocb_tail, rhtp);
22773 @@ -85639,7 +87305,7 @@ index 130c97b..bcbe7f7 100644
22774 atomic_long_add(rhcount, &rdp->nocb_q_count);
22775 atomic_long_add(rhcount_lazy, &rdp->nocb_q_count_lazy);
22776
22777 -@@ -2242,12 +2242,12 @@ static int rcu_nocb_kthread(void *arg)
22778 +@@ -2272,12 +2272,12 @@ static int rcu_nocb_kthread(void *arg)
22779 * Extract queued callbacks, update counts, and wait
22780 * for a grace period to elapse.
22781 */
22782 @@ -85655,7 +87321,7 @@ index 130c97b..bcbe7f7 100644
22783 rcu_nocb_wait_gp(rdp);
22784
22785 /* Each pass through the following loop invokes a callback. */
22786 -@@ -2269,8 +2269,8 @@ static int rcu_nocb_kthread(void *arg)
22787 +@@ -2303,8 +2303,8 @@ static int rcu_nocb_kthread(void *arg)
22788 list = next;
22789 }
22790 trace_rcu_batch_end(rdp->rsp->name, c, !!list, 0, 0, 1);
22791 @@ -85666,7 +87332,7 @@ index 130c97b..bcbe7f7 100644
22792 rdp->n_nocbs_invoked += c;
22793 }
22794 return 0;
22795 -@@ -2297,7 +2297,7 @@ static void __init rcu_spawn_nocb_kthreads(struct rcu_state *rsp)
22796 +@@ -2331,7 +2331,7 @@ static void __init rcu_spawn_nocb_kthreads(struct rcu_state *rsp)
22797 t = kthread_run(rcu_nocb_kthread, rdp,
22798 "rcuo%c/%d", rsp->abbr, cpu);
22799 BUG_ON(IS_ERR(t));
22800 @@ -85675,7 +87341,7 @@ index 130c97b..bcbe7f7 100644
22801 }
22802 }
22803
22804 -@@ -2423,11 +2423,11 @@ static void rcu_sysidle_enter(struct rcu_dynticks *rdtp, int irq)
22805 +@@ -2457,11 +2457,11 @@ static void rcu_sysidle_enter(struct rcu_dynticks *rdtp, int irq)
22806
22807 /* Record start of fully idle period. */
22808 j = jiffies;
22809 @@ -85690,7 +87356,7 @@ index 130c97b..bcbe7f7 100644
22810 }
22811
22812 /*
22813 -@@ -2492,9 +2492,9 @@ static void rcu_sysidle_exit(struct rcu_dynticks *rdtp, int irq)
22814 +@@ -2526,9 +2526,9 @@ static void rcu_sysidle_exit(struct rcu_dynticks *rdtp, int irq)
22815
22816 /* Record end of idle period. */
22817 smp_mb__before_atomic_inc();
22818 @@ -85702,7 +87368,7 @@ index 130c97b..bcbe7f7 100644
22819
22820 /*
22821 * If we are the timekeeping CPU, we are permitted to be non-idle
22822 -@@ -2535,7 +2535,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
22823 +@@ -2569,7 +2569,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
22824 WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
22825
22826 /* Pick up current idle and NMI-nesting counter and check. */
22827 @@ -85711,7 +87377,7 @@ index 130c97b..bcbe7f7 100644
22828 if (cur & 0x1) {
22829 *isidle = false; /* We are not idle! */
22830 return;
22831 -@@ -2598,7 +2598,7 @@ static void rcu_sysidle(unsigned long j)
22832 +@@ -2632,7 +2632,7 @@ static void rcu_sysidle(unsigned long j)
22833 case RCU_SYSIDLE_NOT:
22834
22835 /* First time all are idle, so note a short idle period. */
22836 @@ -85720,7 +87386,7 @@ index 130c97b..bcbe7f7 100644
22837 break;
22838
22839 case RCU_SYSIDLE_SHORT:
22840 -@@ -2635,7 +2635,7 @@ static void rcu_sysidle(unsigned long j)
22841 +@@ -2669,7 +2669,7 @@ static void rcu_sysidle(unsigned long j)
22842 static void rcu_sysidle_cancel(void)
22843 {
22844 smp_mb();
22845 @@ -85729,7 +87395,7 @@ index 130c97b..bcbe7f7 100644
22846 }
22847
22848 /*
22849 -@@ -2683,7 +2683,7 @@ static void rcu_sysidle_cb(struct rcu_head *rhp)
22850 +@@ -2717,7 +2717,7 @@ static void rcu_sysidle_cb(struct rcu_head *rhp)
22851 smp_mb(); /* grace period precedes setting inuse. */
22852
22853 rshp = container_of(rhp, struct rcu_sysidle_head, rh);
22854 @@ -85738,10 +87404,10 @@ index 130c97b..bcbe7f7 100644
22855 }
22856
22857 /*
22858 -diff --git a/kernel/rcutree_trace.c b/kernel/rcutree_trace.c
22859 -index cf6c174..a8f4b50 100644
22860 ---- a/kernel/rcutree_trace.c
22861 -+++ b/kernel/rcutree_trace.c
22862 +diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
22863 +index 3596797..f78391c 100644
22864 +--- a/kernel/rcu/tree_trace.c
22865 ++++ b/kernel/rcu/tree_trace.c
22866 @@ -121,7 +121,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
22867 ulong2long(rdp->completed), ulong2long(rdp->gpnum),
22868 rdp->passed_quiesce, rdp->qs_pending);
22869 @@ -85779,6 +87445,23 @@ index cf6c174..a8f4b50 100644
22870 return 0;
22871 }
22872
22873 +diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c
22874 +index 6cb3dff..dc5710f 100644
22875 +--- a/kernel/rcu/update.c
22876 ++++ b/kernel/rcu/update.c
22877 +@@ -318,10 +318,10 @@ int rcu_jiffies_till_stall_check(void)
22878 + * for CONFIG_RCU_CPU_STALL_TIMEOUT.
22879 + */
22880 + if (till_stall_check < 3) {
22881 +- ACCESS_ONCE(rcu_cpu_stall_timeout) = 3;
22882 ++ ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 3;
22883 + till_stall_check = 3;
22884 + } else if (till_stall_check > 300) {
22885 +- ACCESS_ONCE(rcu_cpu_stall_timeout) = 300;
22886 ++ ACCESS_ONCE_RW(rcu_cpu_stall_timeout) = 300;
22887 + till_stall_check = 300;
22888 + }
22889 + return till_stall_check * HZ + RCU_STALL_DELAY_DELTA;
22890 diff --git a/kernel/resource.c b/kernel/resource.c
22891 index 3f285dc..5755f62 100644
22892 --- a/kernel/resource.c
22893 @@ -85802,100 +87485,6 @@ index 3f285dc..5755f62 100644
22894 return 0;
22895 }
22896 __initcall(ioresources_init);
22897 -diff --git a/kernel/rtmutex-tester.c b/kernel/rtmutex-tester.c
22898 -index 1d96dd0..994ff19 100644
22899 ---- a/kernel/rtmutex-tester.c
22900 -+++ b/kernel/rtmutex-tester.c
22901 -@@ -22,7 +22,7 @@
22902 - #define MAX_RT_TEST_MUTEXES 8
22903 -
22904 - static spinlock_t rttest_lock;
22905 --static atomic_t rttest_event;
22906 -+static atomic_unchecked_t rttest_event;
22907 -
22908 - struct test_thread_data {
22909 - int opcode;
22910 -@@ -63,7 +63,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
22911 -
22912 - case RTTEST_LOCKCONT:
22913 - td->mutexes[td->opdata] = 1;
22914 -- td->event = atomic_add_return(1, &rttest_event);
22915 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22916 - return 0;
22917 -
22918 - case RTTEST_RESET:
22919 -@@ -76,7 +76,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
22920 - return 0;
22921 -
22922 - case RTTEST_RESETEVENT:
22923 -- atomic_set(&rttest_event, 0);
22924 -+ atomic_set_unchecked(&rttest_event, 0);
22925 - return 0;
22926 -
22927 - default:
22928 -@@ -93,9 +93,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
22929 - return ret;
22930 -
22931 - td->mutexes[id] = 1;
22932 -- td->event = atomic_add_return(1, &rttest_event);
22933 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22934 - rt_mutex_lock(&mutexes[id]);
22935 -- td->event = atomic_add_return(1, &rttest_event);
22936 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22937 - td->mutexes[id] = 4;
22938 - return 0;
22939 -
22940 -@@ -106,9 +106,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
22941 - return ret;
22942 -
22943 - td->mutexes[id] = 1;
22944 -- td->event = atomic_add_return(1, &rttest_event);
22945 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22946 - ret = rt_mutex_lock_interruptible(&mutexes[id], 0);
22947 -- td->event = atomic_add_return(1, &rttest_event);
22948 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22949 - td->mutexes[id] = ret ? 0 : 4;
22950 - return ret ? -EINTR : 0;
22951 -
22952 -@@ -117,9 +117,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
22953 - if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4)
22954 - return ret;
22955 -
22956 -- td->event = atomic_add_return(1, &rttest_event);
22957 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22958 - rt_mutex_unlock(&mutexes[id]);
22959 -- td->event = atomic_add_return(1, &rttest_event);
22960 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22961 - td->mutexes[id] = 0;
22962 - return 0;
22963 -
22964 -@@ -166,7 +166,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
22965 - break;
22966 -
22967 - td->mutexes[dat] = 2;
22968 -- td->event = atomic_add_return(1, &rttest_event);
22969 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22970 - break;
22971 -
22972 - default:
22973 -@@ -186,7 +186,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
22974 - return;
22975 -
22976 - td->mutexes[dat] = 3;
22977 -- td->event = atomic_add_return(1, &rttest_event);
22978 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22979 - break;
22980 -
22981 - case RTTEST_LOCKNOWAIT:
22982 -@@ -198,7 +198,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
22983 - return;
22984 -
22985 - td->mutexes[dat] = 1;
22986 -- td->event = atomic_add_return(1, &rttest_event);
22987 -+ td->event = atomic_add_return_unchecked(1, &rttest_event);
22988 - return;
22989 -
22990 - default:
22991 diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
22992 index 4a07353..66b5291 100644
22993 --- a/kernel/sched/auto_group.c
22994 @@ -85918,11 +87507,11 @@ index 4a07353..66b5291 100644
22995 ag->tg = tg;
22996 #ifdef CONFIG_RT_GROUP_SCHED
22997 /*
22998 -diff --git a/kernel/sched/core.c b/kernel/sched/core.c
22999 -index ceae65e..3ac1344 100644
23000 ---- a/kernel/sched/core.c
23001 -+++ b/kernel/sched/core.c
23002 -@@ -2868,7 +2868,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible);
23003 +diff --git a/kernel/sched/completion.c b/kernel/sched/completion.c
23004 +index a63f4dc..349bbb0 100644
23005 +--- a/kernel/sched/completion.c
23006 ++++ b/kernel/sched/completion.c
23007 +@@ -204,7 +204,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible);
23008 * Return: -ERESTARTSYS if interrupted, 0 if timed out, positive (at least 1,
23009 * or number of jiffies left till timeout) if completed.
23010 */
23011 @@ -85931,7 +87520,7 @@ index ceae65e..3ac1344 100644
23012 wait_for_completion_interruptible_timeout(struct completion *x,
23013 unsigned long timeout)
23014 {
23015 -@@ -2885,7 +2885,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
23016 +@@ -221,7 +221,7 @@ EXPORT_SYMBOL(wait_for_completion_interruptible_timeout);
23017 *
23018 * Return: -ERESTARTSYS if interrupted, 0 if completed.
23019 */
23020 @@ -85940,7 +87529,7 @@ index ceae65e..3ac1344 100644
23021 {
23022 long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_KILLABLE);
23023 if (t == -ERESTARTSYS)
23024 -@@ -2906,7 +2906,7 @@ EXPORT_SYMBOL(wait_for_completion_killable);
23025 +@@ -242,7 +242,7 @@ EXPORT_SYMBOL(wait_for_completion_killable);
23026 * Return: -ERESTARTSYS if interrupted, 0 if timed out, positive (at least 1,
23027 * or number of jiffies left till timeout) if completed.
23028 */
23029 @@ -85949,7 +87538,11 @@ index ceae65e..3ac1344 100644
23030 wait_for_completion_killable_timeout(struct completion *x,
23031 unsigned long timeout)
23032 {
23033 -@@ -3132,6 +3132,8 @@ int can_nice(const struct task_struct *p, const int nice)
23034 +diff --git a/kernel/sched/core.c b/kernel/sched/core.c
23035 +index a88f4a4..9d57ac9 100644
23036 +--- a/kernel/sched/core.c
23037 ++++ b/kernel/sched/core.c
23038 +@@ -2871,6 +2871,8 @@ int can_nice(const struct task_struct *p, const int nice)
23039 /* convert nice value [19,-20] to rlimit style value [1,40] */
23040 int nice_rlim = 20 - nice;
23041
23042 @@ -85958,7 +87551,7 @@ index ceae65e..3ac1344 100644
23043 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
23044 capable(CAP_SYS_NICE));
23045 }
23046 -@@ -3165,7 +3167,8 @@ SYSCALL_DEFINE1(nice, int, increment)
23047 +@@ -2904,7 +2906,8 @@ SYSCALL_DEFINE1(nice, int, increment)
23048 if (nice > 19)
23049 nice = 19;
23050
23051 @@ -85968,7 +87561,7 @@ index ceae65e..3ac1344 100644
23052 return -EPERM;
23053
23054 retval = security_task_setnice(current, nice);
23055 -@@ -3327,6 +3330,7 @@ recheck:
23056 +@@ -3066,6 +3069,7 @@ recheck:
23057 unsigned long rlim_rtprio =
23058 task_rlimit(p, RLIMIT_RTPRIO);
23059
23060 @@ -85976,7 +87569,7 @@ index ceae65e..3ac1344 100644
23061 /* can't set/change the rt policy */
23062 if (policy != p->policy && !rlim_rtprio)
23063 return -EPERM;
23064 -@@ -4456,7 +4460,7 @@ static void migrate_tasks(unsigned int dead_cpu)
23065 +@@ -4232,7 +4236,7 @@ static void migrate_tasks(unsigned int dead_cpu)
23066
23067 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
23068
23069 @@ -85985,7 +87578,7 @@ index ceae65e..3ac1344 100644
23070 {
23071 .procname = "sched_domain",
23072 .mode = 0555,
23073 -@@ -4473,17 +4477,17 @@ static struct ctl_table sd_ctl_root[] = {
23074 +@@ -4249,17 +4253,17 @@ static struct ctl_table sd_ctl_root[] = {
23075 {}
23076 };
23077
23078 @@ -86007,7 +87600,7 @@ index ceae65e..3ac1344 100644
23079
23080 /*
23081 * In the intermediate directories, both the child directory and
23082 -@@ -4491,22 +4495,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
23083 +@@ -4267,22 +4271,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
23084 * will always be set. In the lowest directory the names are
23085 * static strings and all have proc handlers.
23086 */
23087 @@ -86039,7 +87632,7 @@ index ceae65e..3ac1344 100644
23088 const char *procname, void *data, int maxlen,
23089 umode_t mode, proc_handler *proc_handler,
23090 bool load_idx)
23091 -@@ -4526,7 +4533,7 @@ set_table_entry(struct ctl_table *entry,
23092 +@@ -4302,7 +4309,7 @@ set_table_entry(struct ctl_table *entry,
23093 static struct ctl_table *
23094 sd_alloc_ctl_domain_table(struct sched_domain *sd)
23095 {
23096 @@ -86048,7 +87641,7 @@ index ceae65e..3ac1344 100644
23097
23098 if (table == NULL)
23099 return NULL;
23100 -@@ -4561,9 +4568,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
23101 +@@ -4337,9 +4344,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
23102 return table;
23103 }
23104
23105 @@ -86060,7 +87653,7 @@ index ceae65e..3ac1344 100644
23106 struct sched_domain *sd;
23107 int domain_num = 0, i;
23108 char buf[32];
23109 -@@ -4590,11 +4597,13 @@ static struct ctl_table_header *sd_sysctl_header;
23110 +@@ -4366,11 +4373,13 @@ static struct ctl_table_header *sd_sysctl_header;
23111 static void register_sched_domain_sysctl(void)
23112 {
23113 int i, cpu_num = num_possible_cpus();
23114 @@ -86075,7 +87668,7 @@ index ceae65e..3ac1344 100644
23115
23116 if (entry == NULL)
23117 return;
23118 -@@ -4617,8 +4626,12 @@ static void unregister_sched_domain_sysctl(void)
23119 +@@ -4393,8 +4402,12 @@ static void unregister_sched_domain_sysctl(void)
23120 if (sd_sysctl_header)
23121 unregister_sysctl_table(sd_sysctl_header);
23122 sd_sysctl_header = NULL;
23123 @@ -86091,10 +87684,10 @@ index ceae65e..3ac1344 100644
23124 #else
23125 static void register_sched_domain_sysctl(void)
23126 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
23127 -index 4117323..91c91ac 100644
23128 +index e64b079..a46bd34 100644
23129 --- a/kernel/sched/fair.c
23130 +++ b/kernel/sched/fair.c
23131 -@@ -869,7 +869,7 @@ void task_numa_fault(int node, int pages, bool migrated)
23132 +@@ -1652,7 +1652,7 @@ void task_numa_fault(int last_cpupid, int node, int pages, int flags)
23133
23134 static void reset_ptenuma_scan(struct task_struct *p)
23135 {
23136 @@ -86103,7 +87696,7 @@ index 4117323..91c91ac 100644
23137 p->mm->numa_scan_offset = 0;
23138 }
23139
23140 -@@ -5864,7 +5864,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
23141 +@@ -6863,7 +6863,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle) { }
23142 * run_rebalance_domains is triggered when needed from the scheduler tick.
23143 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
23144 */
23145 @@ -86113,10 +87706,10 @@ index 4117323..91c91ac 100644
23146 int this_cpu = smp_processor_id();
23147 struct rq *this_rq = cpu_rq(this_cpu);
23148 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
23149 -index a6208af..a2d7bb5 100644
23150 +index 88c85b2..a1dec86 100644
23151 --- a/kernel/sched/sched.h
23152 +++ b/kernel/sched/sched.h
23153 -@@ -1004,7 +1004,7 @@ struct sched_class {
23154 +@@ -1035,7 +1035,7 @@ struct sched_class {
23155 #ifdef CONFIG_FAIR_GROUP_SCHED
23156 void (*task_move_group) (struct task_struct *p, int on_rq);
23157 #endif
23158 @@ -86126,7 +87719,7 @@ index a6208af..a2d7bb5 100644
23159 #define sched_class_highest (&stop_sched_class)
23160 #define for_each_class(class) \
23161 diff --git a/kernel/signal.c b/kernel/signal.c
23162 -index ded28b9..6886c08 100644
23163 +index 940b30e..7fd6041 100644
23164 --- a/kernel/signal.c
23165 +++ b/kernel/signal.c
23166 @@ -51,12 +51,12 @@ static struct kmem_cache *sigqueue_cachep;
23167 @@ -86286,10 +87879,10 @@ index eb89e18..a4e6792 100644
23168 mutex_unlock(&smpboot_threads_lock);
23169 put_online_cpus();
23170 diff --git a/kernel/softirq.c b/kernel/softirq.c
23171 -index d7d498d..94fe0f7 100644
23172 +index 11025cc..bc0e4dc 100644
23173 --- a/kernel/softirq.c
23174 +++ b/kernel/softirq.c
23175 -@@ -53,11 +53,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
23176 +@@ -50,11 +50,11 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
23177 EXPORT_SYMBOL(irq_stat);
23178 #endif
23179
23180 @@ -86303,7 +87896,7 @@ index d7d498d..94fe0f7 100644
23181 "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "BLOCK_IOPOLL",
23182 "TASKLET", "SCHED", "HRTIMER", "RCU"
23183 };
23184 -@@ -248,7 +248,7 @@ restart:
23185 +@@ -250,7 +250,7 @@ restart:
23186 kstat_incr_softirqs_this_cpu(vec_nr);
23187
23188 trace_softirq_entry(vec_nr);
23189 @@ -86312,7 +87905,7 @@ index d7d498d..94fe0f7 100644
23190 trace_softirq_exit(vec_nr);
23191 if (unlikely(prev_count != preempt_count())) {
23192 printk(KERN_ERR "huh, entered softirq %u %s %p"
23193 -@@ -412,7 +412,7 @@ void __raise_softirq_irqoff(unsigned int nr)
23194 +@@ -419,7 +419,7 @@ void __raise_softirq_irqoff(unsigned int nr)
23195 or_softirq_pending(1UL << nr);
23196 }
23197
23198 @@ -86321,7 +87914,7 @@ index d7d498d..94fe0f7 100644
23199 {
23200 softirq_vec[nr].action = action;
23201 }
23202 -@@ -468,7 +468,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
23203 +@@ -475,7 +475,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
23204
23205 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
23206
23207 @@ -86330,7 +87923,7 @@ index d7d498d..94fe0f7 100644
23208 {
23209 struct tasklet_struct *list;
23210
23211 -@@ -503,7 +503,7 @@ static void tasklet_action(struct softirq_action *a)
23212 +@@ -510,7 +510,7 @@ static void tasklet_action(struct softirq_action *a)
23213 }
23214 }
23215
23216 @@ -86339,7 +87932,7 @@ index d7d498d..94fe0f7 100644
23217 {
23218 struct tasklet_struct *list;
23219
23220 -@@ -858,7 +858,7 @@ static struct notifier_block cpu_nfb = {
23221 +@@ -740,7 +740,7 @@ static struct notifier_block cpu_nfb = {
23222 .notifier_call = cpu_callback
23223 };
23224
23225 @@ -86348,27 +87941,11 @@ index d7d498d..94fe0f7 100644
23226 .store = &ksoftirqd,
23227 .thread_should_run = ksoftirqd_should_run,
23228 .thread_fn = run_ksoftirqd,
23229 -diff --git a/kernel/srcu.c b/kernel/srcu.c
23230 -index 01d5ccb..cdcbee6 100644
23231 ---- a/kernel/srcu.c
23232 -+++ b/kernel/srcu.c
23233 -@@ -300,9 +300,9 @@ int __srcu_read_lock(struct srcu_struct *sp)
23234 -
23235 - idx = ACCESS_ONCE(sp->completed) & 0x1;
23236 - preempt_disable();
23237 -- ACCESS_ONCE(this_cpu_ptr(sp->per_cpu_ref)->c[idx]) += 1;
23238 -+ ACCESS_ONCE_RW(this_cpu_ptr(sp->per_cpu_ref)->c[idx]) += 1;
23239 - smp_mb(); /* B */ /* Avoid leaking the critical section. */
23240 -- ACCESS_ONCE(this_cpu_ptr(sp->per_cpu_ref)->seq[idx]) += 1;
23241 -+ ACCESS_ONCE_RW(this_cpu_ptr(sp->per_cpu_ref)->seq[idx]) += 1;
23242 - preempt_enable();
23243 - return idx;
23244 - }
23245 diff --git a/kernel/sys.c b/kernel/sys.c
23246 -index c18ecca..b3c2dd2 100644
23247 +index c723113..46bf922 100644
23248 --- a/kernel/sys.c
23249 +++ b/kernel/sys.c
23250 -@@ -149,6 +149,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
23251 +@@ -148,6 +148,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
23252 error = -EACCES;
23253 goto out;
23254 }
23255 @@ -86381,7 +87958,7 @@ index c18ecca..b3c2dd2 100644
23256 no_nice = security_task_setnice(p, niceval);
23257 if (no_nice) {
23258 error = no_nice;
23259 -@@ -352,6 +358,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
23260 +@@ -351,6 +357,9 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
23261 goto error;
23262 }
23263
23264 @@ -86391,7 +87968,7 @@ index c18ecca..b3c2dd2 100644
23265 if (rgid != (gid_t) -1 ||
23266 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
23267 new->sgid = new->egid;
23268 -@@ -387,6 +396,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
23269 +@@ -386,6 +395,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
23270 old = current_cred();
23271
23272 retval = -EPERM;
23273 @@ -86402,7 +87979,7 @@ index c18ecca..b3c2dd2 100644
23274 if (ns_capable(old->user_ns, CAP_SETGID))
23275 new->gid = new->egid = new->sgid = new->fsgid = kgid;
23276 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
23277 -@@ -404,7 +417,7 @@ error:
23278 +@@ -403,7 +416,7 @@ error:
23279 /*
23280 * change the user struct in a credentials set to match the new UID
23281 */
23282 @@ -86411,7 +87988,7 @@ index c18ecca..b3c2dd2 100644
23283 {
23284 struct user_struct *new_user;
23285
23286 -@@ -484,6 +497,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
23287 +@@ -483,6 +496,9 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
23288 goto error;
23289 }
23290
23291 @@ -86421,7 +87998,7 @@ index c18ecca..b3c2dd2 100644
23292 if (!uid_eq(new->uid, old->uid)) {
23293 retval = set_user(new);
23294 if (retval < 0)
23295 -@@ -534,6 +550,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
23296 +@@ -533,6 +549,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
23297 old = current_cred();
23298
23299 retval = -EPERM;
23300 @@ -86434,7 +88011,7 @@ index c18ecca..b3c2dd2 100644
23301 if (ns_capable(old->user_ns, CAP_SETUID)) {
23302 new->suid = new->uid = kuid;
23303 if (!uid_eq(kuid, old->uid)) {
23304 -@@ -603,6 +625,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
23305 +@@ -602,6 +624,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
23306 goto error;
23307 }
23308
23309 @@ -86444,7 +88021,7 @@ index c18ecca..b3c2dd2 100644
23310 if (ruid != (uid_t) -1) {
23311 new->uid = kruid;
23312 if (!uid_eq(kruid, old->uid)) {
23313 -@@ -685,6 +710,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
23314 +@@ -684,6 +709,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
23315 goto error;
23316 }
23317
23318 @@ -86454,7 +88031,7 @@ index c18ecca..b3c2dd2 100644
23319 if (rgid != (gid_t) -1)
23320 new->gid = krgid;
23321 if (egid != (gid_t) -1)
23322 -@@ -746,12 +774,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
23323 +@@ -745,12 +773,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
23324 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
23325 ns_capable(old->user_ns, CAP_SETUID)) {
23326 if (!uid_eq(kuid, old->fsuid)) {
23327 @@ -86471,7 +88048,7 @@ index c18ecca..b3c2dd2 100644
23328 abort_creds(new);
23329 return old_fsuid;
23330
23331 -@@ -784,12 +816,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
23332 +@@ -783,12 +815,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
23333 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
23334 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
23335 ns_capable(old->user_ns, CAP_SETGID)) {
23336 @@ -86488,7 +88065,7 @@ index c18ecca..b3c2dd2 100644
23337 abort_creds(new);
23338 return old_fsgid;
23339
23340 -@@ -1169,19 +1205,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
23341 +@@ -1168,19 +1204,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
23342 return -EFAULT;
23343
23344 down_read(&uts_sem);
23345 @@ -86513,7 +88090,7 @@ index c18ecca..b3c2dd2 100644
23346 __OLD_UTS_LEN);
23347 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
23348 up_read(&uts_sem);
23349 -@@ -1383,6 +1419,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
23350 +@@ -1382,6 +1418,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
23351 */
23352 new_rlim->rlim_cur = 1;
23353 }
23354 @@ -86528,7 +88105,7 @@ index c18ecca..b3c2dd2 100644
23355 if (!retval) {
23356 if (old_rlim)
23357 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
23358 -index b2f06f3..e6354ab 100644
23359 +index 34a6047..5665aa7 100644
23360 --- a/kernel/sysctl.c
23361 +++ b/kernel/sysctl.c
23362 @@ -93,7 +93,6 @@
23363 @@ -86630,7 +88207,7 @@ index b2f06f3..e6354ab 100644
23364 {
23365 .procname = "sched_child_runs_first",
23366 .data = &sysctl_sched_child_runs_first,
23367 -@@ -613,7 +643,7 @@ static struct ctl_table kern_table[] = {
23368 +@@ -620,7 +650,7 @@ static struct ctl_table kern_table[] = {
23369 .data = &modprobe_path,
23370 .maxlen = KMOD_PATH_LEN,
23371 .mode = 0644,
23372 @@ -86639,7 +88216,7 @@ index b2f06f3..e6354ab 100644
23373 },
23374 {
23375 .procname = "modules_disabled",
23376 -@@ -780,16 +810,20 @@ static struct ctl_table kern_table[] = {
23377 +@@ -787,16 +817,20 @@ static struct ctl_table kern_table[] = {
23378 .extra1 = &zero,
23379 .extra2 = &one,
23380 },
23381 @@ -86661,7 +88238,7 @@ index b2f06f3..e6354ab 100644
23382 {
23383 .procname = "ngroups_max",
23384 .data = &ngroups_max,
23385 -@@ -1031,10 +1065,17 @@ static struct ctl_table kern_table[] = {
23386 +@@ -1039,10 +1073,17 @@ static struct ctl_table kern_table[] = {
23387 */
23388 {
23389 .procname = "perf_event_paranoid",
23390 @@ -86682,7 +88259,7 @@ index b2f06f3..e6354ab 100644
23391 },
23392 {
23393 .procname = "perf_event_mlock_kb",
23394 -@@ -1297,6 +1338,13 @@ static struct ctl_table vm_table[] = {
23395 +@@ -1306,6 +1347,13 @@ static struct ctl_table vm_table[] = {
23396 .proc_handler = proc_dointvec_minmax,
23397 .extra1 = &zero,
23398 },
23399 @@ -86696,7 +88273,7 @@ index b2f06f3..e6354ab 100644
23400 #else
23401 {
23402 .procname = "nr_trim_pages",
23403 -@@ -1761,6 +1809,16 @@ int proc_dostring(struct ctl_table *table, int write,
23404 +@@ -1770,6 +1818,16 @@ int proc_dostring(struct ctl_table *table, int write,
23405 buffer, lenp, ppos);
23406 }
23407
23408 @@ -86713,7 +88290,7 @@ index b2f06f3..e6354ab 100644
23409 static size_t proc_skip_spaces(char **buf)
23410 {
23411 size_t ret;
23412 -@@ -1866,6 +1924,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
23413 +@@ -1875,6 +1933,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
23414 len = strlen(tmp);
23415 if (len > *size)
23416 len = *size;
23417 @@ -86722,7 +88299,7 @@ index b2f06f3..e6354ab 100644
23418 if (copy_to_user(*buf, tmp, len))
23419 return -EFAULT;
23420 *size -= len;
23421 -@@ -2030,7 +2090,7 @@ int proc_dointvec(struct ctl_table *table, int write,
23422 +@@ -2039,7 +2099,7 @@ int proc_dointvec(struct ctl_table *table, int write,
23423 static int proc_taint(struct ctl_table *table, int write,
23424 void __user *buffer, size_t *lenp, loff_t *ppos)
23425 {
23426 @@ -86731,7 +88308,7 @@ index b2f06f3..e6354ab 100644
23427 unsigned long tmptaint = get_taint();
23428 int err;
23429
23430 -@@ -2058,7 +2118,6 @@ static int proc_taint(struct ctl_table *table, int write,
23431 +@@ -2067,7 +2127,6 @@ static int proc_taint(struct ctl_table *table, int write,
23432 return err;
23433 }
23434
23435 @@ -86739,7 +88316,7 @@ index b2f06f3..e6354ab 100644
23436 static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
23437 void __user *buffer, size_t *lenp, loff_t *ppos)
23438 {
23439 -@@ -2067,7 +2126,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
23440 +@@ -2076,7 +2135,6 @@ static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
23441
23442 return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
23443 }
23444 @@ -86747,20 +88324,7 @@ index b2f06f3..e6354ab 100644
23445
23446 struct do_proc_dointvec_minmax_conv_param {
23447 int *min;
23448 -@@ -2214,8 +2272,11 @@ static int __do_proc_doulongvec_minmax(void *data, struct ctl_table *table, int
23449 - *i = val;
23450 - } else {
23451 - val = convdiv * (*i) / convmul;
23452 -- if (!first)
23453 -+ if (!first) {
23454 - err = proc_put_char(&buffer, &left, '\t');
23455 -+ if (err)
23456 -+ break;
23457 -+ }
23458 - err = proc_put_long(&buffer, &left, val, false);
23459 - if (err)
23460 - break;
23461 -@@ -2611,6 +2672,12 @@ int proc_dostring(struct ctl_table *table, int write,
23462 +@@ -2623,6 +2681,12 @@ int proc_dostring(struct ctl_table *table, int write,
23463 return -ENOSYS;
23464 }
23465
23466 @@ -86773,7 +88337,7 @@ index b2f06f3..e6354ab 100644
23467 int proc_dointvec(struct ctl_table *table, int write,
23468 void __user *buffer, size_t *lenp, loff_t *ppos)
23469 {
23470 -@@ -2667,5 +2734,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
23471 +@@ -2679,5 +2743,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
23472 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
23473 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
23474 EXPORT_SYMBOL(proc_dostring);
23475 @@ -86781,7 +88345,7 @@ index b2f06f3..e6354ab 100644
23476 EXPORT_SYMBOL(proc_doulongvec_minmax);
23477 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
23478 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
23479 -index 145bb4d..b2aa969 100644
23480 +index 13d2f7c..c93d0b0 100644
23481 --- a/kernel/taskstats.c
23482 +++ b/kernel/taskstats.c
23483 @@ -28,9 +28,12 @@
23484 @@ -86797,7 +88361,7 @@ index 145bb4d..b2aa969 100644
23485 /*
23486 * Maximum length of a cpumask that can be specified in
23487 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
23488 -@@ -570,6 +573,9 @@ err:
23489 +@@ -576,6 +579,9 @@ err:
23490
23491 static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
23492 {
23493 @@ -86837,7 +88401,7 @@ index 88c9c65..7497ebc 100644
23494 .clock_get = alarm_clock_get,
23495 .timer_create = alarm_timer_create,
23496 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
23497 -index 5cf6c70..ac341b0 100644
23498 +index 87b4f00..b7f77a7 100644
23499 --- a/kernel/time/timekeeping.c
23500 +++ b/kernel/time/timekeeping.c
23501 @@ -15,6 +15,7 @@
23502 @@ -86903,7 +88467,7 @@ index 61ed862..3b52c65 100644
23503 return -ENOMEM;
23504 return 0;
23505 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
23506 -index 0b537f2..40d6c20 100644
23507 +index 1fb08f2..ca4bb1e 100644
23508 --- a/kernel/time/timer_stats.c
23509 +++ b/kernel/time/timer_stats.c
23510 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
23511 @@ -86951,18 +88515,17 @@ index 0b537f2..40d6c20 100644
23512 }
23513
23514 static int tstats_show(struct seq_file *m, void *v)
23515 -@@ -300,9 +304,9 @@ static int tstats_show(struct seq_file *m, void *v)
23516 +@@ -300,8 +304,8 @@ static int tstats_show(struct seq_file *m, void *v)
23517
23518 - seq_puts(m, "Timer Stats Version: v0.2\n");
23519 + seq_puts(m, "Timer Stats Version: v0.3\n");
23520 seq_printf(m, "Sample period: %ld.%03ld s\n", period.tv_sec, ms);
23521 - if (atomic_read(&overflow_count))
23522 +- seq_printf(m, "Overflow: %d entries\n", atomic_read(&overflow_count));
23523 + if (atomic_read_unchecked(&overflow_count))
23524 - seq_printf(m, "Overflow: %d entries\n",
23525 -- atomic_read(&overflow_count));
23526 -+ atomic_read_unchecked(&overflow_count));
23527 ++ seq_printf(m, "Overflow: %d entries\n", atomic_read_unchecked(&overflow_count));
23528 + seq_printf(m, "Collection: %s\n", timer_stats_active ? "active" : "inactive");
23529
23530 for (i = 0; i < nr_entries; i++) {
23531 - entry = entries + i;
23532 @@ -417,7 +421,11 @@ static int __init init_tstats_procfs(void)
23533 {
23534 struct proc_dir_entry *pe;
23535 @@ -86976,7 +88539,7 @@ index 0b537f2..40d6c20 100644
23536 return -ENOMEM;
23537 return 0;
23538 diff --git a/kernel/timer.c b/kernel/timer.c
23539 -index 4296d13..0164b04 100644
23540 +index accfd24..e00f0c0 100644
23541 --- a/kernel/timer.c
23542 +++ b/kernel/timer.c
23543 @@ -1366,7 +1366,7 @@ void update_process_times(int user_tick)
23544 @@ -86998,10 +88561,10 @@ index 4296d13..0164b04 100644
23545 struct timer_list timer;
23546 unsigned long expire;
23547 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
23548 -index b8b8560..75b1a09 100644
23549 +index f785aef..59f1b18 100644
23550 --- a/kernel/trace/blktrace.c
23551 +++ b/kernel/trace/blktrace.c
23552 -@@ -317,7 +317,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
23553 +@@ -328,7 +328,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
23554 struct blk_trace *bt = filp->private_data;
23555 char buf[16];
23556
23557 @@ -87010,7 +88573,7 @@ index b8b8560..75b1a09 100644
23558
23559 return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
23560 }
23561 -@@ -375,7 +375,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
23562 +@@ -386,7 +386,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
23563 return 1;
23564
23565 bt = buf->chan->private_data;
23566 @@ -87019,17 +88582,17 @@ index b8b8560..75b1a09 100644
23567 return 0;
23568 }
23569
23570 -@@ -476,7 +476,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
23571 +@@ -487,7 +487,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
23572
23573 bt->dir = dir;
23574 bt->dev = dev;
23575 - atomic_set(&bt->dropped, 0);
23576 + atomic_set_unchecked(&bt->dropped, 0);
23577 + INIT_LIST_HEAD(&bt->running_list);
23578
23579 ret = -EIO;
23580 - bt->dropped_file = debugfs_create_file("dropped", 0444, dir, bt,
23581 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
23582 -index 1345d9f..db46efe 100644
23583 +index 72a0f81..0bbfd090 100644
23584 --- a/kernel/trace/ftrace.c
23585 +++ b/kernel/trace/ftrace.c
23586 @@ -1944,12 +1944,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
23587 @@ -87052,7 +88615,7 @@ index 1345d9f..db46efe 100644
23588 }
23589
23590 /*
23591 -@@ -4043,8 +4048,10 @@ static int ftrace_process_locs(struct module *mod,
23592 +@@ -4119,8 +4124,10 @@ static int ftrace_process_locs(struct module *mod,
23593 if (!count)
23594 return 0;
23595
23596 @@ -87063,7 +88626,7 @@ index 1345d9f..db46efe 100644
23597
23598 start_pg = ftrace_allocate_pages(count);
23599 if (!start_pg)
23600 -@@ -4766,8 +4773,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
23601 +@@ -4851,8 +4858,6 @@ ftrace_enable_sysctl(struct ctl_table *table, int write,
23602 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
23603
23604 static int ftrace_graph_active;
23605 @@ -87072,7 +88635,7 @@ index 1345d9f..db46efe 100644
23606 int ftrace_graph_entry_stub(struct ftrace_graph_ent *trace)
23607 {
23608 return 0;
23609 -@@ -4918,6 +4923,10 @@ static struct ftrace_ops fgraph_ops __read_mostly = {
23610 +@@ -5003,6 +5008,10 @@ static struct ftrace_ops fgraph_ops __read_mostly = {
23611 FTRACE_OPS_FL_RECURSION_SAFE,
23612 };
23613
23614 @@ -87083,7 +88646,7 @@ index 1345d9f..db46efe 100644
23615 int register_ftrace_graph(trace_func_graph_ret_t retfunc,
23616 trace_func_graph_ent_t entryfunc)
23617 {
23618 -@@ -4931,7 +4940,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
23619 +@@ -5016,7 +5025,6 @@ int register_ftrace_graph(trace_func_graph_ret_t retfunc,
23620 goto out;
23621 }
23622
23623 @@ -87370,10 +88933,10 @@ index cc2f66f..05edd54 100644
23624 *data_page = bpage;
23625
23626 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
23627 -index b778e96..4e84621 100644
23628 +index 9d20cd9..221d816 100644
23629 --- a/kernel/trace/trace.c
23630 +++ b/kernel/trace/trace.c
23631 -@@ -3335,7 +3335,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
23632 +@@ -3346,7 +3346,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
23633 return 0;
23634 }
23635
23636 @@ -87383,10 +88946,10 @@ index b778e96..4e84621 100644
23637 /* do nothing if flag is already set */
23638 if (!!(trace_flags & mask) == !!enabled)
23639 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
23640 -index 10c86fb..645ab0a 100644
23641 +index ea189e0..a5b48c4 100644
23642 --- a/kernel/trace/trace.h
23643 +++ b/kernel/trace/trace.h
23644 -@@ -1029,7 +1029,7 @@ extern const char *__stop___tracepoint_str[];
23645 +@@ -1040,7 +1040,7 @@ extern const char *__stop___tracepoint_str[];
23646 void trace_printk_init_buffers(void);
23647 void trace_printk_start_comm(void);
23648 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
23649 @@ -87416,10 +88979,10 @@ index 26dc348..8708ca7 100644
23650 + return atomic64_inc_return_unchecked(&trace_counter);
23651 }
23652 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
23653 -index 368a4d5..7b6d1d5 100644
23654 +index a11800a..3dafde5 100644
23655 --- a/kernel/trace/trace_events.c
23656 +++ b/kernel/trace/trace_events.c
23657 -@@ -1673,7 +1673,6 @@ __trace_early_add_new_event(struct ftrace_event_call *call,
23658 +@@ -1681,7 +1681,6 @@ __trace_early_add_new_event(struct ftrace_event_call *call,
23659 return 0;
23660 }
23661
23662 @@ -87428,7 +88991,7 @@ index 368a4d5..7b6d1d5 100644
23663
23664 /* Add an additional event_call dynamically */
23665 diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
23666 -index b3dcfb2..ebee344 100644
23667 +index 0abd9b8..6a663a2 100644
23668 --- a/kernel/trace/trace_mmiotrace.c
23669 +++ b/kernel/trace/trace_mmiotrace.c
23670 @@ -24,7 +24,7 @@ struct header_iter {
23671 @@ -87468,7 +89031,7 @@ index b3dcfb2..ebee344 100644
23672 }
23673 entry = ring_buffer_event_data(event);
23674 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
23675 -index 34e7cba..6f9a729 100644
23676 +index ed32284..884d6c3 100644
23677 --- a/kernel/trace/trace_output.c
23678 +++ b/kernel/trace/trace_output.c
23679 @@ -294,7 +294,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
23680 @@ -87480,7 +89043,7 @@ index 34e7cba..6f9a729 100644
23681 if (p) {
23682 s->len = p - s->buffer;
23683 return 1;
23684 -@@ -893,14 +893,16 @@ int register_ftrace_event(struct trace_event *event)
23685 +@@ -908,14 +908,16 @@ int register_ftrace_event(struct trace_event *event)
23686 goto out;
23687 }
23688
23689 @@ -87515,7 +89078,7 @@ index b20428c..4845a10 100644
23690
23691 local_irq_save(flags);
23692 diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
23693 -index 13fb113..a6ced3f 100644
23694 +index 240fb62..583473e 100644
23695 --- a/kernel/user_namespace.c
23696 +++ b/kernel/user_namespace.c
23697 @@ -82,6 +82,21 @@ int create_user_ns(struct cred *new)
23698 @@ -87540,7 +89103,7 @@ index 13fb113..a6ced3f 100644
23699 ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL);
23700 if (!ns)
23701 return -ENOMEM;
23702 -@@ -860,7 +875,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns)
23703 +@@ -866,7 +881,7 @@ static int userns_install(struct nsproxy *nsproxy, void *ns)
23704 if (atomic_read(&current->mm->mm_users) > 1)
23705 return -EINVAL;
23706
23707 @@ -87576,10 +89139,10 @@ index 4431610..4265616 100644
23708 .thread_should_run = watchdog_should_run,
23709 .thread_fn = watchdog,
23710 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
23711 -index 93c2652..66a1cfd 100644
23712 +index b010eac..e4bda78 100644
23713 --- a/kernel/workqueue.c
23714 +++ b/kernel/workqueue.c
23715 -@@ -4668,7 +4668,7 @@ static void rebind_workers(struct worker_pool *pool)
23716 +@@ -4671,7 +4671,7 @@ static void rebind_workers(struct worker_pool *pool)
23717 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
23718 worker_flags |= WORKER_REBOUND;
23719 worker_flags &= ~WORKER_UNBOUND;
23720 @@ -87589,10 +89152,10 @@ index 93c2652..66a1cfd 100644
23721
23722 spin_unlock_irq(&pool->lock);
23723 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
23724 -index 094f315..244a824 100644
23725 +index db25707..8b16430 100644
23726 --- a/lib/Kconfig.debug
23727 +++ b/lib/Kconfig.debug
23728 -@@ -836,7 +836,7 @@ config DEBUG_MUTEXES
23729 +@@ -845,7 +845,7 @@ config DEBUG_MUTEXES
23730
23731 config DEBUG_WW_MUTEX_SLOWPATH
23732 bool "Wait/wound mutex debugging: Slowpath testing"
23733 @@ -87601,7 +89164,7 @@ index 094f315..244a824 100644
23734 select DEBUG_LOCK_ALLOC
23735 select DEBUG_SPINLOCK
23736 select DEBUG_MUTEXES
23737 -@@ -849,7 +849,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
23738 +@@ -858,7 +858,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
23739
23740 config DEBUG_LOCK_ALLOC
23741 bool "Lock debugging: detect incorrect freeing of live locks"
23742 @@ -87610,7 +89173,7 @@ index 094f315..244a824 100644
23743 select DEBUG_SPINLOCK
23744 select DEBUG_MUTEXES
23745 select LOCKDEP
23746 -@@ -863,7 +863,7 @@ config DEBUG_LOCK_ALLOC
23747 +@@ -872,7 +872,7 @@ config DEBUG_LOCK_ALLOC
23748
23749 config PROVE_LOCKING
23750 bool "Lock debugging: prove locking correctness"
23751 @@ -87619,7 +89182,7 @@ index 094f315..244a824 100644
23752 select LOCKDEP
23753 select DEBUG_SPINLOCK
23754 select DEBUG_MUTEXES
23755 -@@ -914,7 +914,7 @@ config LOCKDEP
23756 +@@ -923,7 +923,7 @@ config LOCKDEP
23757
23758 config LOCK_STAT
23759 bool "Lock usage statistics"
23760 @@ -87628,7 +89191,7 @@ index 094f315..244a824 100644
23761 select LOCKDEP
23762 select DEBUG_SPINLOCK
23763 select DEBUG_MUTEXES
23764 -@@ -1376,6 +1376,7 @@ config LATENCYTOP
23765 +@@ -1385,6 +1385,7 @@ config LATENCYTOP
23766 depends on DEBUG_KERNEL
23767 depends on STACKTRACE_SUPPORT
23768 depends on PROC_FS
23769 @@ -87636,7 +89199,7 @@ index 094f315..244a824 100644
23770 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
23771 select KALLSYMS
23772 select KALLSYMS_ALL
23773 -@@ -1392,7 +1393,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
23774 +@@ -1401,7 +1402,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
23775 config DEBUG_STRICT_USER_COPY_CHECKS
23776 bool "Strict user copy size checks"
23777 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
23778 @@ -87645,7 +89208,7 @@ index 094f315..244a824 100644
23779 help
23780 Enabling this option turns a certain set of sanity checks for user
23781 copy operations into compile time failures.
23782 -@@ -1502,7 +1503,7 @@ endmenu # runtime tests
23783 +@@ -1520,7 +1521,7 @@ endmenu # runtime tests
23784
23785 config PROVIDE_OHCI1394_DMA_INIT
23786 bool "Remote debugging over FireWire early on boot"
23787 @@ -87654,7 +89217,7 @@ index 094f315..244a824 100644
23788 help
23789 If you want to debug problems which hang or crash the kernel early
23790 on boot and the crashing machine has a FireWire port, you can use
23791 -@@ -1531,7 +1532,7 @@ config PROVIDE_OHCI1394_DMA_INIT
23792 +@@ -1549,7 +1550,7 @@ config PROVIDE_OHCI1394_DMA_INIT
23793
23794 config FIREWIRE_OHCI_REMOTE_DMA
23795 bool "Remote debugging over FireWire with firewire-ohci"
23796 @@ -87664,12 +89227,12 @@ index 094f315..244a824 100644
23797 This option lets you use the FireWire bus for remote debugging
23798 with help of the firewire-ohci driver. It enables unfiltered
23799 diff --git a/lib/Makefile b/lib/Makefile
23800 -index f3bb2cb..b358ace 100644
23801 +index a459c31..3320e82 100644
23802 --- a/lib/Makefile
23803 +++ b/lib/Makefile
23804 -@@ -52,7 +52,7 @@ obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
23805 -
23806 +@@ -49,7 +49,7 @@ obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o
23807 obj-$(CONFIG_BTREE) += btree.o
23808 + obj-$(CONFIG_ASSOCIATIVE_ARRAY) += assoc_array.o
23809 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
23810 -obj-$(CONFIG_DEBUG_LIST) += list_debug.o
23811 +obj-y += list_debug.o
23812 @@ -87730,7 +89293,7 @@ index 1686034..a9c00c8 100644
23813 file = NULL;
23814 line = 0;
23815 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
23816 -index bf2c8b1..1d00ccf 100644
23817 +index e0731c3..ad66444 100644
23818 --- a/lib/debugobjects.c
23819 +++ b/lib/debugobjects.c
23820 @@ -286,7 +286,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
23821 @@ -87858,10 +89421,10 @@ index bd2bea9..6b3c95e 100644
23822 return false;
23823
23824 diff --git a/lib/kobject.c b/lib/kobject.c
23825 -index 084f7b1..d265b8a 100644
23826 +index 5b4b888..c2950f7 100644
23827 --- a/lib/kobject.c
23828 +++ b/lib/kobject.c
23829 -@@ -875,9 +875,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
23830 +@@ -957,9 +957,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
23831
23832
23833 static DEFINE_SPINLOCK(kobj_ns_type_lock);
23834 @@ -88120,396 +89683,21 @@ index 7811ed3..f80ca19 100644
23835
23836 static inline void *ptr_to_indirect(void *ptr)
23837 {
23838 -diff --git a/lib/random32.c b/lib/random32.c
23839 -index 01e8890..1e5b2df 100644
23840 ---- a/lib/random32.c
23841 -+++ b/lib/random32.c
23842 -@@ -2,19 +2,19 @@
23843 - This is a maximally equidistributed combined Tausworthe generator
23844 - based on code from GNU Scientific Library 1.5 (30 Jun 2004)
23845 -
23846 -- x_n = (s1_n ^ s2_n ^ s3_n)
23847 -+ lfsr113 version:
23848 -
23849 -- s1_{n+1} = (((s1_n & 4294967294) <<12) ^ (((s1_n <<13) ^ s1_n) >>19))
23850 -- s2_{n+1} = (((s2_n & 4294967288) << 4) ^ (((s2_n << 2) ^ s2_n) >>25))
23851 -- s3_{n+1} = (((s3_n & 4294967280) <<17) ^ (((s3_n << 3) ^ s3_n) >>11))
23852 -+ x_n = (s1_n ^ s2_n ^ s3_n ^ s4_n)
23853 -
23854 -- The period of this generator is about 2^88.
23855 -+ s1_{n+1} = (((s1_n & 4294967294) << 18) ^ (((s1_n << 6) ^ s1_n) >> 13))
23856 -+ s2_{n+1} = (((s2_n & 4294967288) << 2) ^ (((s2_n << 2) ^ s2_n) >> 27))
23857 -+ s3_{n+1} = (((s3_n & 4294967280) << 7) ^ (((s3_n << 13) ^ s3_n) >> 21))
23858 -+ s4_{n+1} = (((s4_n & 4294967168) << 13) ^ (((s4_n << 3) ^ s4_n) >> 12))
23859 -+
23860 -+ The period of this generator is about 2^113 (see erratum paper).
23861 -
23862 - From: P. L'Ecuyer, "Maximally Equidistributed Combined Tausworthe
23863 -- Generators", Mathematics of Computation, 65, 213 (1996), 203--213.
23864 --
23865 -- This is available on the net from L'Ecuyer's home page,
23866 --
23867 -+ Generators", Mathematics of Computation, 65, 213 (1996), 203--213:
23868 - http://www.iro.umontreal.ca/~lecuyer/myftp/papers/tausme.ps
23869 - ftp://ftp.iro.umontreal.ca/pub/simulation/lecuyer/papers/tausme.ps
23870 -
23871 -@@ -29,7 +29,7 @@
23872 - that paper.)
23873 -
23874 - This affects the seeding procedure by imposing the requirement
23875 -- s1 > 1, s2 > 7, s3 > 15.
23876 -+ s1 > 1, s2 > 7, s3 > 15, s4 > 127.
23877 -
23878 - */
23879 -
23880 -@@ -38,6 +38,11 @@
23881 - #include <linux/export.h>
23882 - #include <linux/jiffies.h>
23883 - #include <linux/random.h>
23884 -+#include <linux/sched.h>
23885 -+
23886 -+#ifdef CONFIG_RANDOM32_SELFTEST
23887 -+static void __init prandom_state_selftest(void);
23888 -+#endif
23889 -
23890 - static DEFINE_PER_CPU(struct rnd_state, net_rand_state);
23891 -
23892 -@@ -52,11 +57,12 @@ u32 prandom_u32_state(struct rnd_state *state)
23893 - {
23894 - #define TAUSWORTHE(s,a,b,c,d) ((s&c)<<d) ^ (((s <<a) ^ s)>>b)
23895 -
23896 -- state->s1 = TAUSWORTHE(state->s1, 13, 19, 4294967294UL, 12);
23897 -- state->s2 = TAUSWORTHE(state->s2, 2, 25, 4294967288UL, 4);
23898 -- state->s3 = TAUSWORTHE(state->s3, 3, 11, 4294967280UL, 17);
23899 -+ state->s1 = TAUSWORTHE(state->s1, 6U, 13U, 4294967294U, 18U);
23900 -+ state->s2 = TAUSWORTHE(state->s2, 2U, 27U, 4294967288U, 2U);
23901 -+ state->s3 = TAUSWORTHE(state->s3, 13U, 21U, 4294967280U, 7U);
23902 -+ state->s4 = TAUSWORTHE(state->s4, 3U, 12U, 4294967168U, 13U);
23903 -
23904 -- return (state->s1 ^ state->s2 ^ state->s3);
23905 -+ return (state->s1 ^ state->s2 ^ state->s3 ^ state->s4);
23906 - }
23907 - EXPORT_SYMBOL(prandom_u32_state);
23908 -
23909 -@@ -126,6 +132,38 @@ void prandom_bytes(void *buf, int bytes)
23910 - }
23911 - EXPORT_SYMBOL(prandom_bytes);
23912 -
23913 -+static void prandom_warmup(struct rnd_state *state)
23914 -+{
23915 -+ /* Calling RNG ten times to satify recurrence condition */
23916 -+ prandom_u32_state(state);
23917 -+ prandom_u32_state(state);
23918 -+ prandom_u32_state(state);
23919 -+ prandom_u32_state(state);
23920 -+ prandom_u32_state(state);
23921 -+ prandom_u32_state(state);
23922 -+ prandom_u32_state(state);
23923 -+ prandom_u32_state(state);
23924 -+ prandom_u32_state(state);
23925 -+ prandom_u32_state(state);
23926 -+}
23927 -+
23928 -+static void prandom_seed_very_weak(struct rnd_state *state, u32 seed)
23929 -+{
23930 -+ /* Note: This sort of seeding is ONLY used in test cases and
23931 -+ * during boot at the time from core_initcall until late_initcall
23932 -+ * as we don't have a stronger entropy source available yet.
23933 -+ * After late_initcall, we reseed entire state, we have to (!),
23934 -+ * otherwise an attacker just needs to search 32 bit space to
23935 -+ * probe for our internal 128 bit state if he knows a couple
23936 -+ * of prandom32 outputs!
23937 -+ */
23938 -+#define LCG(x) ((x) * 69069U) /* super-duper LCG */
23939 -+ state->s1 = __seed(LCG(seed), 2U);
23940 -+ state->s2 = __seed(LCG(state->s1), 8U);
23941 -+ state->s3 = __seed(LCG(state->s2), 16U);
23942 -+ state->s4 = __seed(LCG(state->s3), 128U);
23943 -+}
23944 -+
23945 - /**
23946 - * prandom_seed - add entropy to pseudo random number generator
23947 - * @seed: seed value
23948 -@@ -141,7 +179,9 @@ void prandom_seed(u32 entropy)
23949 - */
23950 - for_each_possible_cpu (i) {
23951 - struct rnd_state *state = &per_cpu(net_rand_state, i);
23952 -- state->s1 = __seed(state->s1 ^ entropy, 2);
23953 -+
23954 -+ state->s1 = __seed(state->s1 ^ entropy, 2U);
23955 -+ prandom_warmup(state);
23956 - }
23957 - }
23958 - EXPORT_SYMBOL(prandom_seed);
23959 -@@ -154,46 +194,249 @@ static int __init prandom_init(void)
23960 - {
23961 - int i;
23962 -
23963 -+#ifdef CONFIG_RANDOM32_SELFTEST
23964 -+ prandom_state_selftest();
23965 -+#endif
23966 -+
23967 - for_each_possible_cpu(i) {
23968 - struct rnd_state *state = &per_cpu(net_rand_state,i);
23969 -
23970 --#define LCG(x) ((x) * 69069) /* super-duper LCG */
23971 -- state->s1 = __seed(LCG(i + jiffies), 2);
23972 -- state->s2 = __seed(LCG(state->s1), 8);
23973 -- state->s3 = __seed(LCG(state->s2), 16);
23974 --
23975 -- /* "warm it up" */
23976 -- prandom_u32_state(state);
23977 -- prandom_u32_state(state);
23978 -- prandom_u32_state(state);
23979 -- prandom_u32_state(state);
23980 -- prandom_u32_state(state);
23981 -- prandom_u32_state(state);
23982 -+ prandom_seed_very_weak(state, (i + jiffies) ^ random_get_entropy());
23983 -+ prandom_warmup(state);
23984 - }
23985 - return 0;
23986 - }
23987 - core_initcall(prandom_init);
23988 -
23989 -+static void __prandom_timer(unsigned long dontcare);
23990 -+static DEFINE_TIMER(seed_timer, __prandom_timer, 0, 0);
23991 -+
23992 -+static void __prandom_timer(unsigned long dontcare)
23993 -+{
23994 -+ u32 entropy;
23995 -+ unsigned long expires;
23996 -+
23997 -+ get_random_bytes(&entropy, sizeof(entropy));
23998 -+ prandom_seed(entropy);
23999 -+
24000 -+ /* reseed every ~60 seconds, in [40 .. 80) interval with slack */
24001 -+ expires = 40 + (prandom_u32() % 40);
24002 -+ seed_timer.expires = jiffies + msecs_to_jiffies(expires * MSEC_PER_SEC);
24003 -+
24004 -+ add_timer(&seed_timer);
24005 -+}
24006 -+
24007 -+static void __init __prandom_start_seed_timer(void)
24008 -+{
24009 -+ set_timer_slack(&seed_timer, HZ);
24010 -+ seed_timer.expires = jiffies + msecs_to_jiffies(40 * MSEC_PER_SEC);
24011 -+ add_timer(&seed_timer);
24012 -+}
24013 -+
24014 - /*
24015 - * Generate better values after random number generator
24016 - * is fully initialized.
24017 - */
24018 --static int __init prandom_reseed(void)
24019 -+static void __prandom_reseed(bool late)
24020 - {
24021 - int i;
24022 -+ unsigned long flags;
24023 -+ static bool latch = false;
24024 -+ static DEFINE_SPINLOCK(lock);
24025 -+
24026 -+ /* only allow initial seeding (late == false) once */
24027 -+ spin_lock_irqsave(&lock, flags);
24028 -+ if (latch && !late)
24029 -+ goto out;
24030 -+ latch = true;
24031 +diff --git a/lib/rbtree.c b/lib/rbtree.c
24032 +index 65f4eff..2cfa167 100644
24033 +--- a/lib/rbtree.c
24034 ++++ b/lib/rbtree.c
24035 +@@ -380,7 +380,9 @@ static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
24036 + static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
24037 +
24038 + static const struct rb_augment_callbacks dummy_callbacks = {
24039 +- dummy_propagate, dummy_copy, dummy_rotate
24040 ++ .propagate = dummy_propagate,
24041 ++ .copy = dummy_copy,
24042 ++ .rotate = dummy_rotate
24043 + };
24044
24045 - for_each_possible_cpu(i) {
24046 - struct rnd_state *state = &per_cpu(net_rand_state,i);
24047 -- u32 seeds[3];
24048 -+ u32 seeds[4];
24049 -
24050 - get_random_bytes(&seeds, sizeof(seeds));
24051 -- state->s1 = __seed(seeds[0], 2);
24052 -- state->s2 = __seed(seeds[1], 8);
24053 -- state->s3 = __seed(seeds[2], 16);
24054 -+ state->s1 = __seed(seeds[0], 2U);
24055 -+ state->s2 = __seed(seeds[1], 8U);
24056 -+ state->s3 = __seed(seeds[2], 16U);
24057 -+ state->s4 = __seed(seeds[3], 128U);
24058 -
24059 -- /* mix it in */
24060 -- prandom_u32_state(state);
24061 -+ prandom_warmup(state);
24062 - }
24063 -+out:
24064 -+ spin_unlock_irqrestore(&lock, flags);
24065 -+}
24066 -+
24067 -+void prandom_reseed_late(void)
24068 -+{
24069 -+ __prandom_reseed(true);
24070 -+}
24071 -+
24072 -+static int __init prandom_reseed(void)
24073 -+{
24074 -+ __prandom_reseed(false);
24075 -+ __prandom_start_seed_timer();
24076 - return 0;
24077 - }
24078 - late_initcall(prandom_reseed);
24079 -+
24080 -+#ifdef CONFIG_RANDOM32_SELFTEST
24081 -+static struct prandom_test1 {
24082 -+ u32 seed;
24083 -+ u32 result;
24084 -+} test1[] = {
24085 -+ { 1U, 3484351685U },
24086 -+ { 2U, 2623130059U },
24087 -+ { 3U, 3125133893U },
24088 -+ { 4U, 984847254U },
24089 -+};
24090 -+
24091 -+static struct prandom_test2 {
24092 -+ u32 seed;
24093 -+ u32 iteration;
24094 -+ u32 result;
24095 -+} test2[] = {
24096 -+ /* Test cases against taus113 from GSL library. */
24097 -+ { 931557656U, 959U, 2975593782U },
24098 -+ { 1339693295U, 876U, 3887776532U },
24099 -+ { 1545556285U, 961U, 1615538833U },
24100 -+ { 601730776U, 723U, 1776162651U },
24101 -+ { 1027516047U, 687U, 511983079U },
24102 -+ { 416526298U, 700U, 916156552U },
24103 -+ { 1395522032U, 652U, 2222063676U },
24104 -+ { 366221443U, 617U, 2992857763U },
24105 -+ { 1539836965U, 714U, 3783265725U },
24106 -+ { 556206671U, 994U, 799626459U },
24107 -+ { 684907218U, 799U, 367789491U },
24108 -+ { 2121230701U, 931U, 2115467001U },
24109 -+ { 1668516451U, 644U, 3620590685U },
24110 -+ { 768046066U, 883U, 2034077390U },
24111 -+ { 1989159136U, 833U, 1195767305U },
24112 -+ { 536585145U, 996U, 3577259204U },
24113 -+ { 1008129373U, 642U, 1478080776U },
24114 -+ { 1740775604U, 939U, 1264980372U },
24115 -+ { 1967883163U, 508U, 10734624U },
24116 -+ { 1923019697U, 730U, 3821419629U },
24117 -+ { 442079932U, 560U, 3440032343U },
24118 -+ { 1961302714U, 845U, 841962572U },
24119 -+ { 2030205964U, 962U, 1325144227U },
24120 -+ { 1160407529U, 507U, 240940858U },
24121 -+ { 635482502U, 779U, 4200489746U },
24122 -+ { 1252788931U, 699U, 867195434U },
24123 -+ { 1961817131U, 719U, 668237657U },
24124 -+ { 1071468216U, 983U, 917876630U },
24125 -+ { 1281848367U, 932U, 1003100039U },
24126 -+ { 582537119U, 780U, 1127273778U },
24127 -+ { 1973672777U, 853U, 1071368872U },
24128 -+ { 1896756996U, 762U, 1127851055U },
24129 -+ { 847917054U, 500U, 1717499075U },
24130 -+ { 1240520510U, 951U, 2849576657U },
24131 -+ { 1685071682U, 567U, 1961810396U },
24132 -+ { 1516232129U, 557U, 3173877U },
24133 -+ { 1208118903U, 612U, 1613145022U },
24134 -+ { 1817269927U, 693U, 4279122573U },
24135 -+ { 1510091701U, 717U, 638191229U },
24136 -+ { 365916850U, 807U, 600424314U },
24137 -+ { 399324359U, 702U, 1803598116U },
24138 -+ { 1318480274U, 779U, 2074237022U },
24139 -+ { 697758115U, 840U, 1483639402U },
24140 -+ { 1696507773U, 840U, 577415447U },
24141 -+ { 2081979121U, 981U, 3041486449U },
24142 -+ { 955646687U, 742U, 3846494357U },
24143 -+ { 1250683506U, 749U, 836419859U },
24144 -+ { 595003102U, 534U, 366794109U },
24145 -+ { 47485338U, 558U, 3521120834U },
24146 -+ { 619433479U, 610U, 3991783875U },
24147 -+ { 704096520U, 518U, 4139493852U },
24148 -+ { 1712224984U, 606U, 2393312003U },
24149 -+ { 1318233152U, 922U, 3880361134U },
24150 -+ { 855572992U, 761U, 1472974787U },
24151 -+ { 64721421U, 703U, 683860550U },
24152 -+ { 678931758U, 840U, 380616043U },
24153 -+ { 692711973U, 778U, 1382361947U },
24154 -+ { 677703619U, 530U, 2826914161U },
24155 -+ { 92393223U, 586U, 1522128471U },
24156 -+ { 1222592920U, 743U, 3466726667U },
24157 -+ { 358288986U, 695U, 1091956998U },
24158 -+ { 1935056945U, 958U, 514864477U },
24159 -+ { 735675993U, 990U, 1294239989U },
24160 -+ { 1560089402U, 897U, 2238551287U },
24161 -+ { 70616361U, 829U, 22483098U },
24162 -+ { 368234700U, 731U, 2913875084U },
24163 -+ { 20221190U, 879U, 1564152970U },
24164 -+ { 539444654U, 682U, 1835141259U },
24165 -+ { 1314987297U, 840U, 1801114136U },
24166 -+ { 2019295544U, 645U, 3286438930U },
24167 -+ { 469023838U, 716U, 1637918202U },
24168 -+ { 1843754496U, 653U, 2562092152U },
24169 -+ { 400672036U, 809U, 4264212785U },
24170 -+ { 404722249U, 965U, 2704116999U },
24171 -+ { 600702209U, 758U, 584979986U },
24172 -+ { 519953954U, 667U, 2574436237U },
24173 -+ { 1658071126U, 694U, 2214569490U },
24174 -+ { 420480037U, 749U, 3430010866U },
24175 -+ { 690103647U, 969U, 3700758083U },
24176 -+ { 1029424799U, 937U, 3787746841U },
24177 -+ { 2012608669U, 506U, 3362628973U },
24178 -+ { 1535432887U, 998U, 42610943U },
24179 -+ { 1330635533U, 857U, 3040806504U },
24180 -+ { 1223800550U, 539U, 3954229517U },
24181 -+ { 1322411537U, 680U, 3223250324U },
24182 -+ { 1877847898U, 945U, 2915147143U },
24183 -+ { 1646356099U, 874U, 965988280U },
24184 -+ { 805687536U, 744U, 4032277920U },
24185 -+ { 1948093210U, 633U, 1346597684U },
24186 -+ { 392609744U, 783U, 1636083295U },
24187 -+ { 690241304U, 770U, 1201031298U },
24188 -+ { 1360302965U, 696U, 1665394461U },
24189 -+ { 1220090946U, 780U, 1316922812U },
24190 -+ { 447092251U, 500U, 3438743375U },
24191 -+ { 1613868791U, 592U, 828546883U },
24192 -+ { 523430951U, 548U, 2552392304U },
24193 -+ { 726692899U, 810U, 1656872867U },
24194 -+ { 1364340021U, 836U, 3710513486U },
24195 -+ { 1986257729U, 931U, 935013962U },
24196 -+ { 407983964U, 921U, 728767059U },
24197 -+};
24198 -+
24199 -+static void __init prandom_state_selftest(void)
24200 -+{
24201 -+ int i, j, errors = 0, runs = 0;
24202 -+ bool error = false;
24203 -+
24204 -+ for (i = 0; i < ARRAY_SIZE(test1); i++) {
24205 -+ struct rnd_state state;
24206 -+
24207 -+ prandom_seed_very_weak(&state, test1[i].seed);
24208 -+ prandom_warmup(&state);
24209 -+
24210 -+ if (test1[i].result != prandom_u32_state(&state))
24211 -+ error = true;
24212 -+ }
24213 -+
24214 -+ if (error)
24215 -+ pr_warn("prandom: seed boundary self test failed\n");
24216 -+ else
24217 -+ pr_info("prandom: seed boundary self test passed\n");
24218 -+
24219 -+ for (i = 0; i < ARRAY_SIZE(test2); i++) {
24220 -+ struct rnd_state state;
24221 -+
24222 -+ prandom_seed_very_weak(&state, test2[i].seed);
24223 -+ prandom_warmup(&state);
24224 -+
24225 -+ for (j = 0; j < test2[i].iteration - 1; j++)
24226 -+ prandom_u32_state(&state);
24227 -+
24228 -+ if (test2[i].result != prandom_u32_state(&state))
24229 -+ errors++;
24230 -+
24231 -+ runs++;
24232 -+ cond_resched();
24233 -+ }
24234 -+
24235 -+ if (errors)
24236 -+ pr_warn("prandom: %d/%d self tests failed\n", errors, runs);
24237 -+ else
24238 -+ pr_info("prandom: %d self tests passed\n", runs);
24239 -+}
24240 -+#endif
24241 + void rb_insert_color(struct rb_node *node, struct rb_root *root)
24242 diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
24243 index bb2b201..46abaf9 100644
24244 --- a/lib/strncpy_from_user.c
24245 @@ -88537,10 +89725,10 @@ index a28df52..3d55877 100644
24246 unsigned long c;
24247
24248 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
24249 -index 4e8686c..3e8c92f 100644
24250 +index e4399fa..5e8b214 100644
24251 --- a/lib/swiotlb.c
24252 +++ b/lib/swiotlb.c
24253 -@@ -664,7 +664,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
24254 +@@ -668,7 +668,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
24255
24256 void
24257 swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
24258 @@ -88564,7 +89752,7 @@ index 4f5b1dd..7cab418 100644
24259 +}
24260 +EXPORT_SYMBOL(copy_to_user_overflow);
24261 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
24262 -index d76555c..62d4bfe 100644
24263 +index 10909c5..653e1b8 100644
24264 --- a/lib/vsprintf.c
24265 +++ b/lib/vsprintf.c
24266 @@ -16,6 +16,9 @@
24267 @@ -88597,7 +89785,7 @@ index d76555c..62d4bfe 100644
24268 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
24269 * - 'B' For backtraced symbolic direct pointers with offset
24270 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
24271 -@@ -1232,12 +1240,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24272 +@@ -1234,12 +1242,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24273
24274 if (!ptr && *fmt != 'K') {
24275 /*
24276 @@ -88612,7 +89800,7 @@ index d76555c..62d4bfe 100644
24277 }
24278
24279 switch (*fmt) {
24280 -@@ -1247,6 +1255,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24281 +@@ -1249,6 +1257,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24282 /* Fallthrough */
24283 case 'S':
24284 case 's':
24285 @@ -88625,7 +89813,7 @@ index d76555c..62d4bfe 100644
24286 case 'B':
24287 return symbol_string(buf, end, ptr, spec, fmt);
24288 case 'R':
24289 -@@ -1302,6 +1316,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24290 +@@ -1304,6 +1318,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24291 va_end(va);
24292 return buf;
24293 }
24294 @@ -88634,7 +89822,7 @@ index d76555c..62d4bfe 100644
24295 case 'K':
24296 /*
24297 * %pK cannot be used in IRQ context because its test
24298 -@@ -1363,6 +1379,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24299 +@@ -1365,6 +1381,21 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
24300 ((const struct file *)ptr)->f_path.dentry,
24301 spec, fmt);
24302 }
24303 @@ -88688,10 +89876,10 @@ index 0000000..7cd6065
24304 @@ -0,0 +1 @@
24305 +-grsec
24306 diff --git a/mm/Kconfig b/mm/Kconfig
24307 -index 394838f..0e5f816 100644
24308 +index 723bbe0..ea624b1 100644
24309 --- a/mm/Kconfig
24310 +++ b/mm/Kconfig
24311 -@@ -317,10 +317,11 @@ config KSM
24312 +@@ -326,10 +326,11 @@ config KSM
24313 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
24314
24315 config DEFAULT_MMAP_MIN_ADDR
24316 @@ -88706,7 +89894,7 @@ index 394838f..0e5f816 100644
24317 This is the portion of low virtual memory which should be protected
24318 from userspace allocation. Keeping a user from writing to low pages
24319 can help reduce the impact of kernel NULL pointer bugs.
24320 -@@ -351,7 +352,7 @@ config MEMORY_FAILURE
24321 +@@ -360,7 +361,7 @@ config MEMORY_FAILURE
24322
24323 config HWPOISON_INJECT
24324 tristate "HWPoison pages injector"
24325 @@ -88738,7 +89926,7 @@ index ce682f7..1fb54f9 100644
24326 bdi_destroy(bdi);
24327 return err;
24328 diff --git a/mm/filemap.c b/mm/filemap.c
24329 -index ae4846f..b0acebe 100644
24330 +index b7749a9..50d1123 100644
24331 --- a/mm/filemap.c
24332 +++ b/mm/filemap.c
24333 @@ -1768,7 +1768,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
24334 @@ -88838,42 +90026,11 @@ index b32b70c..e512eb0 100644
24335 pkmap_count[last_pkmap_nr] = 1;
24336 set_page_address(page, (void *)vaddr);
24337
24338 -diff --git a/mm/huge_memory.c b/mm/huge_memory.c
24339 -index 4796245..292a266 100644
24340 ---- a/mm/huge_memory.c
24341 -+++ b/mm/huge_memory.c
24342 -@@ -1154,7 +1154,7 @@ alloc:
24343 - new_page = NULL;
24344 -
24345 - if (unlikely(!new_page)) {
24346 -- if (is_huge_zero_pmd(orig_pmd)) {
24347 -+ if (!page) {
24348 - ret = do_huge_pmd_wp_zero_page_fallback(mm, vma,
24349 - address, pmd, orig_pmd, haddr);
24350 - } else {
24351 -@@ -1181,7 +1181,7 @@ alloc:
24352 -
24353 - count_vm_event(THP_FAULT_ALLOC);
24354 -
24355 -- if (is_huge_zero_pmd(orig_pmd))
24356 -+ if (!page)
24357 - clear_huge_page(new_page, haddr, HPAGE_PMD_NR);
24358 - else
24359 - copy_user_huge_page(new_page, page, haddr, vma, HPAGE_PMD_NR);
24360 -@@ -1207,7 +1207,7 @@ alloc:
24361 - page_add_new_anon_rmap(new_page, vma, haddr);
24362 - set_pmd_at(mm, haddr, pmd, entry);
24363 - update_mmu_cache_pmd(vma, address, pmd);
24364 -- if (is_huge_zero_pmd(orig_pmd)) {
24365 -+ if (!page) {
24366 - add_mm_counter(mm, MM_ANONPAGES, HPAGE_PMD_NR);
24367 - put_huge_zero_page();
24368 - } else {
24369 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
24370 -index 0b7656e..d21cefc 100644
24371 +index dee6cf4..52b94f7 100644
24372 --- a/mm/hugetlb.c
24373 +++ b/mm/hugetlb.c
24374 -@@ -2094,15 +2094,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
24375 +@@ -2077,15 +2077,17 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
24376 struct hstate *h = &default_hstate;
24377 unsigned long tmp;
24378 int ret;
24379 @@ -88894,7 +90051,7 @@ index 0b7656e..d21cefc 100644
24380 if (ret)
24381 goto out;
24382
24383 -@@ -2147,15 +2149,17 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
24384 +@@ -2130,15 +2132,17 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
24385 struct hstate *h = &default_hstate;
24386 unsigned long tmp;
24387 int ret;
24388 @@ -88915,7 +90072,7 @@ index 0b7656e..d21cefc 100644
24389 if (ret)
24390 goto out;
24391
24392 -@@ -2605,6 +2609,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
24393 +@@ -2596,6 +2600,27 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
24394 return 1;
24395 }
24396
24397 @@ -88943,7 +90100,7 @@ index 0b7656e..d21cefc 100644
24398 /*
24399 * Hugetlb_cow() should be called with page lock of the original hugepage held.
24400 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
24401 -@@ -2721,6 +2746,11 @@ retry_avoidcopy:
24402 +@@ -2712,6 +2737,11 @@ retry_avoidcopy:
24403 make_huge_pte(vma, new_page, 1));
24404 page_remove_rmap(old_page);
24405 hugepage_add_new_anon_rmap(new_page, vma, address);
24406 @@ -88955,7 +90112,7 @@ index 0b7656e..d21cefc 100644
24407 /* Make the old page be freed below */
24408 new_page = old_page;
24409 }
24410 -@@ -2883,6 +2913,10 @@ retry:
24411 +@@ -2876,6 +2906,10 @@ retry:
24412 && (vma->vm_flags & VM_SHARED)));
24413 set_huge_pte_at(mm, address, ptep, new_pte);
24414
24415 @@ -88965,8 +90122,8 @@ index 0b7656e..d21cefc 100644
24416 +
24417 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
24418 /* Optimization, do the COW without a second fault */
24419 - ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page);
24420 -@@ -2912,6 +2946,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24421 + ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page, ptl);
24422 +@@ -2906,6 +2940,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24423 static DEFINE_MUTEX(hugetlb_instantiation_mutex);
24424 struct hstate *h = hstate_vma(vma);
24425
24426 @@ -88977,7 +90134,7 @@ index 0b7656e..d21cefc 100644
24427 address &= huge_page_mask(h);
24428
24429 ptep = huge_pte_offset(mm, address);
24430 -@@ -2925,6 +2963,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24431 +@@ -2919,6 +2957,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24432 VM_FAULT_SET_HINDEX(hstate_index(h));
24433 }
24434
24435 @@ -89026,7 +90183,7 @@ index 684f7aa..9eb9edc 100644
24436 extern void set_pageblock_order(void);
24437 unsigned long reclaim_clean_pages_from_list(struct zone *zone,
24438 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
24439 -index e126b0e..e986018 100644
24440 +index 31f01c5..7015178 100644
24441 --- a/mm/kmemleak.c
24442 +++ b/mm/kmemleak.c
24443 @@ -363,7 +363,7 @@ static void print_unreferenced(struct seq_file *seq,
24444 @@ -89038,7 +90195,7 @@ index e126b0e..e986018 100644
24445 }
24446 }
24447
24448 -@@ -1851,7 +1851,7 @@ static int __init kmemleak_late_init(void)
24449 +@@ -1853,7 +1853,7 @@ static int __init kmemleak_late_init(void)
24450 return -ENOMEM;
24451 }
24452
24453 @@ -89150,7 +90307,7 @@ index 539eeb9..e24a987 100644
24454 if (end == start)
24455 return error;
24456 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
24457 -index 9aea53f..f239c30 100644
24458 +index fabe550..f31b51c 100644
24459 --- a/mm/memory-failure.c
24460 +++ b/mm/memory-failure.c
24461 @@ -61,7 +61,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
24462 @@ -89225,7 +90382,7 @@ index 9aea53f..f239c30 100644
24463 freeit = 1;
24464 if (PageHuge(page))
24465 clear_page_hwpoison_huge_page(page);
24466 -@@ -1533,11 +1533,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
24467 +@@ -1519,11 +1519,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
24468 if (PageHuge(page)) {
24469 set_page_hwpoison_huge_page(hpage);
24470 dequeue_hwpoisoned_huge_page(hpage);
24471 @@ -89239,7 +90396,7 @@ index 9aea53f..f239c30 100644
24472 }
24473 }
24474 return ret;
24475 -@@ -1576,7 +1576,7 @@ static int __soft_offline_page(struct page *page, int flags)
24476 +@@ -1562,7 +1562,7 @@ static int __soft_offline_page(struct page *page, int flags)
24477 put_page(page);
24478 pr_info("soft_offline: %#lx: invalidated\n", pfn);
24479 SetPageHWPoison(page);
24480 @@ -89248,7 +90405,7 @@ index 9aea53f..f239c30 100644
24481 return 0;
24482 }
24483
24484 -@@ -1621,7 +1621,7 @@ static int __soft_offline_page(struct page *page, int flags)
24485 +@@ -1607,7 +1607,7 @@ static int __soft_offline_page(struct page *page, int flags)
24486 if (!is_free_buddy_page(page))
24487 pr_info("soft offline: %#lx: page leaked\n",
24488 pfn);
24489 @@ -89257,7 +90414,7 @@ index 9aea53f..f239c30 100644
24490 }
24491 } else {
24492 pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
24493 -@@ -1682,11 +1682,11 @@ int soft_offline_page(struct page *page, int flags)
24494 +@@ -1681,11 +1681,11 @@ int soft_offline_page(struct page *page, int flags)
24495 if (PageHuge(page)) {
24496 set_page_hwpoison_huge_page(hpage);
24497 dequeue_hwpoisoned_huge_page(hpage);
24498 @@ -89270,9 +90427,9 @@ index 9aea53f..f239c30 100644
24499 + atomic_long_inc_unchecked(&num_poisoned_pages);
24500 }
24501 }
24502 - unset:
24503 + unset_migratetype_isolate(page, MIGRATE_MOVABLE);
24504 diff --git a/mm/memory.c b/mm/memory.c
24505 -index d176154..cd1b387 100644
24506 +index 6768ce9..4c41d69 100644
24507 --- a/mm/memory.c
24508 +++ b/mm/memory.c
24509 @@ -402,6 +402,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
24510 @@ -89309,7 +90466,7 @@ index d176154..cd1b387 100644
24511 }
24512
24513 /*
24514 -@@ -1636,12 +1642,6 @@ no_page_table:
24515 +@@ -1635,12 +1641,6 @@ no_page_table:
24516 return page;
24517 }
24518
24519 @@ -89322,7 +90479,7 @@ index d176154..cd1b387 100644
24520 /**
24521 * __get_user_pages() - pin user pages in memory
24522 * @tsk: task_struct of target task
24523 -@@ -1728,10 +1728,10 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24524 +@@ -1727,10 +1727,10 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24525
24526 i = 0;
24527
24528 @@ -89335,7 +90492,7 @@ index d176154..cd1b387 100644
24529 if (!vma && in_gate_area(mm, start)) {
24530 unsigned long pg = start & PAGE_MASK;
24531 pgd_t *pgd;
24532 -@@ -1780,7 +1780,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24533 +@@ -1779,7 +1779,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24534 goto next_page;
24535 }
24536
24537 @@ -89344,7 +90501,7 @@ index d176154..cd1b387 100644
24538 (vma->vm_flags & (VM_IO | VM_PFNMAP)) ||
24539 !(vm_flags & vma->vm_flags))
24540 return i ? : -EFAULT;
24541 -@@ -1809,11 +1809,6 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24542 +@@ -1808,11 +1808,6 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
24543 int ret;
24544 unsigned int fault_flags = 0;
24545
24546 @@ -89356,7 +90513,7 @@ index d176154..cd1b387 100644
24547 if (foll_flags & FOLL_WRITE)
24548 fault_flags |= FAULT_FLAG_WRITE;
24549 if (nonblocking)
24550 -@@ -1893,7 +1888,7 @@ next_page:
24551 +@@ -1892,7 +1887,7 @@ next_page:
24552 start += page_increm * PAGE_SIZE;
24553 nr_pages -= page_increm;
24554 } while (nr_pages && start < vma->vm_end);
24555 @@ -89365,7 +90522,7 @@ index d176154..cd1b387 100644
24556 return i;
24557 }
24558 EXPORT_SYMBOL(__get_user_pages);
24559 -@@ -2100,6 +2095,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
24560 +@@ -2099,6 +2094,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
24561 page_add_file_rmap(page);
24562 set_pte_at(mm, addr, pte, mk_pte(page, prot));
24563
24564 @@ -89376,7 +90533,7 @@ index d176154..cd1b387 100644
24565 retval = 0;
24566 pte_unmap_unlock(pte, ptl);
24567 return retval;
24568 -@@ -2144,9 +2143,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
24569 +@@ -2143,9 +2142,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
24570 if (!page_count(page))
24571 return -EINVAL;
24572 if (!(vma->vm_flags & VM_MIXEDMAP)) {
24573 @@ -89398,7 +90555,7 @@ index d176154..cd1b387 100644
24574 }
24575 return insert_page(vma, addr, page, vma->vm_page_prot);
24576 }
24577 -@@ -2229,6 +2240,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
24578 +@@ -2228,6 +2239,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
24579 unsigned long pfn)
24580 {
24581 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
24582 @@ -89406,7 +90563,7 @@ index d176154..cd1b387 100644
24583
24584 if (addr < vma->vm_start || addr >= vma->vm_end)
24585 return -EFAULT;
24586 -@@ -2476,7 +2488,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
24587 +@@ -2475,7 +2487,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
24588
24589 BUG_ON(pud_huge(*pud));
24590
24591 @@ -89417,7 +90574,7 @@ index d176154..cd1b387 100644
24592 if (!pmd)
24593 return -ENOMEM;
24594 do {
24595 -@@ -2496,7 +2510,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
24596 +@@ -2495,7 +2509,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
24597 unsigned long next;
24598 int err;
24599
24600 @@ -89428,7 +90585,7 @@ index d176154..cd1b387 100644
24601 if (!pud)
24602 return -ENOMEM;
24603 do {
24604 -@@ -2584,6 +2600,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
24605 +@@ -2583,6 +2599,186 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
24606 copy_user_highpage(dst, src, va, vma);
24607 }
24608
24609 @@ -89615,7 +90772,7 @@ index d176154..cd1b387 100644
24610 /*
24611 * This routine handles present pages, when users try to write
24612 * to a shared page. It is done by copying the page to a new address
24613 -@@ -2800,6 +2996,12 @@ gotten:
24614 +@@ -2807,6 +3003,12 @@ gotten:
24615 */
24616 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
24617 if (likely(pte_same(*page_table, orig_pte))) {
24618 @@ -89628,7 +90785,7 @@ index d176154..cd1b387 100644
24619 if (old_page) {
24620 if (!PageAnon(old_page)) {
24621 dec_mm_counter_fast(mm, MM_FILEPAGES);
24622 -@@ -2851,6 +3053,10 @@ gotten:
24623 +@@ -2858,6 +3060,10 @@ gotten:
24624 page_remove_rmap(old_page);
24625 }
24626
24627 @@ -89639,7 +90796,7 @@ index d176154..cd1b387 100644
24628 /* Free the old page.. */
24629 new_page = old_page;
24630 ret |= VM_FAULT_WRITE;
24631 -@@ -3128,6 +3334,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
24632 +@@ -3135,6 +3341,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
24633 swap_free(entry);
24634 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
24635 try_to_free_swap(page);
24636 @@ -89651,7 +90808,7 @@ index d176154..cd1b387 100644
24637 unlock_page(page);
24638 if (page != swapcache) {
24639 /*
24640 -@@ -3151,6 +3362,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
24641 +@@ -3158,6 +3369,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
24642
24643 /* No need to invalidate - it was non-present before */
24644 update_mmu_cache(vma, address, page_table);
24645 @@ -89663,7 +90820,7 @@ index d176154..cd1b387 100644
24646 unlock:
24647 pte_unmap_unlock(page_table, ptl);
24648 out:
24649 -@@ -3170,40 +3386,6 @@ out_release:
24650 +@@ -3177,40 +3393,6 @@ out_release:
24651 }
24652
24653 /*
24654 @@ -89704,7 +90861,7 @@ index d176154..cd1b387 100644
24655 * We enter with non-exclusive mmap_sem (to exclude vma changes,
24656 * but allow concurrent faults), and pte mapped but not yet locked.
24657 * We return with mmap_sem still held, but pte unmapped and unlocked.
24658 -@@ -3212,27 +3394,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
24659 +@@ -3219,27 +3401,23 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
24660 unsigned long address, pte_t *page_table, pmd_t *pmd,
24661 unsigned int flags)
24662 {
24663 @@ -89737,7 +90894,7 @@ index d176154..cd1b387 100644
24664 if (unlikely(anon_vma_prepare(vma)))
24665 goto oom;
24666 page = alloc_zeroed_user_highpage_movable(vma, address);
24667 -@@ -3256,6 +3434,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
24668 +@@ -3263,6 +3441,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
24669 if (!pte_none(*page_table))
24670 goto release;
24671
24672 @@ -89749,7 +90906,7 @@ index d176154..cd1b387 100644
24673 inc_mm_counter_fast(mm, MM_ANONPAGES);
24674 page_add_new_anon_rmap(page, vma, address);
24675 setpte:
24676 -@@ -3263,6 +3446,12 @@ setpte:
24677 +@@ -3270,6 +3453,12 @@ setpte:
24678
24679 /* No need to invalidate - it was non-present before */
24680 update_mmu_cache(vma, address, page_table);
24681 @@ -89762,7 +90919,7 @@ index d176154..cd1b387 100644
24682 unlock:
24683 pte_unmap_unlock(page_table, ptl);
24684 return 0;
24685 -@@ -3406,6 +3595,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24686 +@@ -3413,6 +3602,12 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24687 */
24688 /* Only go through if we didn't race with anybody else... */
24689 if (likely(pte_same(*page_table, orig_pte))) {
24690 @@ -89775,7 +90932,7 @@ index d176154..cd1b387 100644
24691 flush_icache_page(vma, page);
24692 entry = mk_pte(page, vma->vm_page_prot);
24693 if (flags & FAULT_FLAG_WRITE)
24694 -@@ -3427,6 +3622,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24695 +@@ -3434,6 +3629,14 @@ static int __do_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24696
24697 /* no need to invalidate: a not-present page won't be cached */
24698 update_mmu_cache(vma, address, page_table);
24699 @@ -89790,7 +90947,7 @@ index d176154..cd1b387 100644
24700 } else {
24701 if (cow_page)
24702 mem_cgroup_uncharge_page(cow_page);
24703 -@@ -3737,6 +3940,12 @@ static int handle_pte_fault(struct mm_struct *mm,
24704 +@@ -3681,6 +3884,12 @@ static int handle_pte_fault(struct mm_struct *mm,
24705 if (flags & FAULT_FLAG_WRITE)
24706 flush_tlb_fix_spurious_fault(vma, address);
24707 }
24708 @@ -89803,7 +90960,7 @@ index d176154..cd1b387 100644
24709 unlock:
24710 pte_unmap_unlock(pte, ptl);
24711 return 0;
24712 -@@ -3753,9 +3962,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24713 +@@ -3697,9 +3906,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
24714 pmd_t *pmd;
24715 pte_t *pte;
24716
24717 @@ -89845,7 +91002,7 @@ index d176154..cd1b387 100644
24718 retry:
24719 pgd = pgd_offset(mm, address);
24720 pud = pud_alloc(mm, pgd, address);
24721 -@@ -3894,6 +4135,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
24722 +@@ -3838,6 +4079,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
24723 spin_unlock(&mm->page_table_lock);
24724 return 0;
24725 }
24726 @@ -89869,7 +91026,7 @@ index d176154..cd1b387 100644
24727 #endif /* __PAGETABLE_PUD_FOLDED */
24728
24729 #ifndef __PAGETABLE_PMD_FOLDED
24730 -@@ -3924,6 +4182,30 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
24731 +@@ -3868,6 +4126,30 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
24732 spin_unlock(&mm->page_table_lock);
24733 return 0;
24734 }
24735 @@ -89900,7 +91057,7 @@ index d176154..cd1b387 100644
24736 #endif /* __PAGETABLE_PMD_FOLDED */
24737
24738 #if !defined(__HAVE_ARCH_GATE_AREA)
24739 -@@ -3937,7 +4219,7 @@ static int __init gate_vma_init(void)
24740 +@@ -3881,7 +4163,7 @@ static int __init gate_vma_init(void)
24741 gate_vma.vm_start = FIXADDR_USER_START;
24742 gate_vma.vm_end = FIXADDR_USER_END;
24743 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
24744 @@ -89909,7 +91066,7 @@ index d176154..cd1b387 100644
24745
24746 return 0;
24747 }
24748 -@@ -4071,8 +4353,8 @@ out:
24749 +@@ -4015,8 +4297,8 @@ out:
24750 return ret;
24751 }
24752
24753 @@ -89920,7 +91077,7 @@ index d176154..cd1b387 100644
24754 {
24755 resource_size_t phys_addr;
24756 unsigned long prot = 0;
24757 -@@ -4098,8 +4380,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
24758 +@@ -4042,8 +4324,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
24759 * Access another process' address space as given in mm. If non-NULL, use the
24760 * given task for page fault accounting.
24761 */
24762 @@ -89931,7 +91088,7 @@ index d176154..cd1b387 100644
24763 {
24764 struct vm_area_struct *vma;
24765 void *old_buf = buf;
24766 -@@ -4107,7 +4389,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
24767 +@@ -4051,7 +4333,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
24768 down_read(&mm->mmap_sem);
24769 /* ignore errors, just check how much was successfully transferred */
24770 while (len) {
24771 @@ -89940,7 +91097,7 @@ index d176154..cd1b387 100644
24772 void *maddr;
24773 struct page *page = NULL;
24774
24775 -@@ -4166,8 +4448,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
24776 +@@ -4110,8 +4392,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
24777 *
24778 * The caller must hold a reference on @mm.
24779 */
24780 @@ -89951,7 +91108,7 @@ index d176154..cd1b387 100644
24781 {
24782 return __access_remote_vm(NULL, mm, addr, buf, len, write);
24783 }
24784 -@@ -4177,11 +4459,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
24785 +@@ -4121,11 +4403,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
24786 * Source/target buffer must be kernel space,
24787 * Do not walk the page table directly, use get_user_pages
24788 */
24789 @@ -89967,10 +91124,10 @@ index d176154..cd1b387 100644
24790 mm = get_task_mm(tsk);
24791 if (!mm)
24792 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
24793 -index 6b22d8f9..8b5f6cf 100644
24794 +index 0cd2c4d..9558c83 100644
24795 --- a/mm/mempolicy.c
24796 +++ b/mm/mempolicy.c
24797 -@@ -746,6 +746,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
24798 +@@ -747,6 +747,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
24799 unsigned long vmstart;
24800 unsigned long vmend;
24801
24802 @@ -89981,7 +91138,7 @@ index 6b22d8f9..8b5f6cf 100644
24803 vma = find_vma(mm, start);
24804 if (!vma || vma->vm_start > start)
24805 return -EFAULT;
24806 -@@ -789,6 +793,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
24807 +@@ -790,6 +794,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
24808 err = vma_replace_policy(vma, new_pol);
24809 if (err)
24810 goto out;
24811 @@ -89998,7 +91155,7 @@ index 6b22d8f9..8b5f6cf 100644
24812 }
24813
24814 out:
24815 -@@ -1252,6 +1266,17 @@ static long do_mbind(unsigned long start, unsigned long len,
24816 +@@ -1255,6 +1269,17 @@ static long do_mbind(unsigned long start, unsigned long len,
24817
24818 if (end < start)
24819 return -EINVAL;
24820 @@ -90016,7 +91173,7 @@ index 6b22d8f9..8b5f6cf 100644
24821 if (end == start)
24822 return 0;
24823
24824 -@@ -1480,8 +1505,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
24825 +@@ -1483,8 +1508,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
24826 */
24827 tcred = __task_cred(task);
24828 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
24829 @@ -90026,7 +91183,7 @@ index 6b22d8f9..8b5f6cf 100644
24830 rcu_read_unlock();
24831 err = -EPERM;
24832 goto out_put;
24833 -@@ -1512,6 +1536,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
24834 +@@ -1515,6 +1539,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
24835 goto out;
24836 }
24837
24838 @@ -90043,10 +91200,10 @@ index 6b22d8f9..8b5f6cf 100644
24839 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
24840
24841 diff --git a/mm/migrate.c b/mm/migrate.c
24842 -index e3cf71d..c94506c 100644
24843 +index 9194375..75c81e2 100644
24844 --- a/mm/migrate.c
24845 +++ b/mm/migrate.c
24846 -@@ -1406,8 +1406,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
24847 +@@ -1464,8 +1464,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
24848 */
24849 tcred = __task_cred(task);
24850 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
24851 @@ -90128,7 +91285,7 @@ index 192e6ee..b044449 100644
24852 capable(CAP_IPC_LOCK))
24853 ret = do_mlockall(flags);
24854 diff --git a/mm/mmap.c b/mm/mmap.c
24855 -index 362e5f1..8968e02 100644
24856 +index 834b2d7..650d1b9 100644
24857 --- a/mm/mmap.c
24858 +++ b/mm/mmap.c
24859 @@ -36,6 +36,7 @@
24860 @@ -90193,7 +91350,7 @@ index 362e5f1..8968e02 100644
24861 /*
24862 * Make sure vm_committed_as in one cacheline and not cacheline shared with
24863 * other variables. It can be updated by several CPUs frequently.
24864 -@@ -247,6 +268,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
24865 +@@ -245,6 +266,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
24866 struct vm_area_struct *next = vma->vm_next;
24867
24868 might_sleep();
24869 @@ -90201,7 +91358,7 @@ index 362e5f1..8968e02 100644
24870 if (vma->vm_ops && vma->vm_ops->close)
24871 vma->vm_ops->close(vma);
24872 if (vma->vm_file)
24873 -@@ -291,6 +313,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
24874 +@@ -289,6 +311,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
24875 * not page aligned -Ram Gupta
24876 */
24877 rlim = rlimit(RLIMIT_DATA);
24878 @@ -90209,7 +91366,24 @@ index 362e5f1..8968e02 100644
24879 if (rlim < RLIM_INFINITY && (brk - mm->start_brk) +
24880 (mm->end_data - mm->start_data) > rlim)
24881 goto out;
24882 -@@ -933,6 +956,12 @@ static int
24883 +@@ -893,7 +916,15 @@ again: remove_next = 1 + (end > next->vm_end);
24884 + static inline int is_mergeable_vma(struct vm_area_struct *vma,
24885 + struct file *file, unsigned long vm_flags)
24886 + {
24887 +- if (vma->vm_flags ^ vm_flags)
24888 ++ /*
24889 ++ * VM_SOFTDIRTY should not prevent from VMA merging, if we
24890 ++ * match the flags but dirty bit -- the caller should mark
24891 ++ * merged VMA as dirty. If dirty bit won't be excluded from
24892 ++ * comparison, we increase pressue on the memory system forcing
24893 ++ * the kernel to generate new VMAs when old one could be
24894 ++ * extended instead.
24895 ++ */
24896 ++ if ((vma->vm_flags ^ vm_flags) & ~VM_SOFTDIRTY)
24897 + return 0;
24898 + if (vma->vm_file != file)
24899 + return 0;
24900 +@@ -931,6 +962,12 @@ static int
24901 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
24902 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
24903 {
24904 @@ -90222,7 +91396,7 @@ index 362e5f1..8968e02 100644
24905 if (is_mergeable_vma(vma, file, vm_flags) &&
24906 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
24907 if (vma->vm_pgoff == vm_pgoff)
24908 -@@ -952,6 +981,12 @@ static int
24909 +@@ -950,6 +987,12 @@ static int
24910 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
24911 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
24912 {
24913 @@ -90235,7 +91409,7 @@ index 362e5f1..8968e02 100644
24914 if (is_mergeable_vma(vma, file, vm_flags) &&
24915 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
24916 pgoff_t vm_pglen;
24917 -@@ -994,13 +1029,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
24918 +@@ -992,13 +1035,20 @@ can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
24919 struct vm_area_struct *vma_merge(struct mm_struct *mm,
24920 struct vm_area_struct *prev, unsigned long addr,
24921 unsigned long end, unsigned long vm_flags,
24922 @@ -90257,7 +91431,7 @@ index 362e5f1..8968e02 100644
24923 /*
24924 * We later require that vma->vm_flags == vm_flags,
24925 * so this tests vma->vm_flags & VM_SPECIAL, too.
24926 -@@ -1016,6 +1058,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24927 +@@ -1014,6 +1064,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24928 if (next && next->vm_end == end) /* cases 6, 7, 8 */
24929 next = next->vm_next;
24930
24931 @@ -90273,7 +91447,7 @@ index 362e5f1..8968e02 100644
24932 /*
24933 * Can it merge with the predecessor?
24934 */
24935 -@@ -1035,9 +1086,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24936 +@@ -1033,9 +1092,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24937 /* cases 1, 6 */
24938 err = vma_adjust(prev, prev->vm_start,
24939 next->vm_end, prev->vm_pgoff, NULL);
24940 @@ -90299,7 +91473,7 @@ index 362e5f1..8968e02 100644
24941 if (err)
24942 return NULL;
24943 khugepaged_enter_vma_merge(prev);
24944 -@@ -1051,12 +1117,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24945 +@@ -1049,12 +1123,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
24946 mpol_equal(policy, vma_policy(next)) &&
24947 can_vma_merge_before(next, vm_flags,
24948 anon_vma, file, pgoff+pglen)) {
24949 @@ -90329,7 +91503,16 @@ index 362e5f1..8968e02 100644
24950 if (err)
24951 return NULL;
24952 khugepaged_enter_vma_merge(area);
24953 -@@ -1165,8 +1246,10 @@ none:
24954 +@@ -1082,7 +1171,7 @@ static int anon_vma_compatible(struct vm_area_struct *a, struct vm_area_struct *
24955 + return a->vm_end == b->vm_start &&
24956 + mpol_equal(vma_policy(a), vma_policy(b)) &&
24957 + a->vm_file == b->vm_file &&
24958 +- !((a->vm_flags ^ b->vm_flags) & ~(VM_READ|VM_WRITE|VM_EXEC)) &&
24959 ++ !((a->vm_flags ^ b->vm_flags) & ~(VM_READ|VM_WRITE|VM_EXEC|VM_SOFTDIRTY)) &&
24960 + b->vm_pgoff == a->vm_pgoff + ((b->vm_start - a->vm_start) >> PAGE_SHIFT);
24961 + }
24962 +
24963 +@@ -1163,8 +1252,10 @@ none:
24964 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
24965 struct file *file, long pages)
24966 {
24967 @@ -90342,7 +91525,7 @@ index 362e5f1..8968e02 100644
24968
24969 mm->total_vm += pages;
24970
24971 -@@ -1174,7 +1257,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
24972 +@@ -1172,7 +1263,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
24973 mm->shared_vm += pages;
24974 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
24975 mm->exec_vm += pages;
24976 @@ -90351,7 +91534,7 @@ index 362e5f1..8968e02 100644
24977 mm->stack_vm += pages;
24978 }
24979 #endif /* CONFIG_PROC_FS */
24980 -@@ -1212,7 +1295,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
24981 +@@ -1210,7 +1301,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
24982 * (the exception is when the underlying filesystem is noexec
24983 * mounted, in which case we dont add PROT_EXEC.)
24984 */
24985 @@ -90360,7 +91543,7 @@ index 362e5f1..8968e02 100644
24986 if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC)))
24987 prot |= PROT_EXEC;
24988
24989 -@@ -1238,7 +1321,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
24990 +@@ -1236,7 +1327,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
24991 /* Obtain the address to map to. we verify (or select) it and ensure
24992 * that it represents a valid section of the address space.
24993 */
24994 @@ -90369,7 +91552,7 @@ index 362e5f1..8968e02 100644
24995 if (addr & ~PAGE_MASK)
24996 return addr;
24997
24998 -@@ -1249,6 +1332,43 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
24999 +@@ -1247,6 +1338,43 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
25000 vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
25001 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
25002
25003 @@ -90413,7 +91596,7 @@ index 362e5f1..8968e02 100644
25004 if (flags & MAP_LOCKED)
25005 if (!can_do_mlock())
25006 return -EPERM;
25007 -@@ -1260,6 +1380,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
25008 +@@ -1258,6 +1386,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
25009 locked += mm->locked_vm;
25010 lock_limit = rlimit(RLIMIT_MEMLOCK);
25011 lock_limit >>= PAGE_SHIFT;
25012 @@ -90421,7 +91604,7 @@ index 362e5f1..8968e02 100644
25013 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
25014 return -EAGAIN;
25015 }
25016 -@@ -1344,6 +1465,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
25017 +@@ -1342,6 +1471,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
25018 vm_flags |= VM_NORESERVE;
25019 }
25020
25021 @@ -90431,7 +91614,7 @@ index 362e5f1..8968e02 100644
25022 addr = mmap_region(file, addr, len, vm_flags, pgoff);
25023 if (!IS_ERR_VALUE(addr) &&
25024 ((vm_flags & VM_LOCKED) ||
25025 -@@ -1437,7 +1561,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
25026 +@@ -1435,7 +1567,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
25027 vm_flags_t vm_flags = vma->vm_flags;
25028
25029 /* If it was private or non-writable, the write bit is already clear */
25030 @@ -90440,7 +91623,7 @@ index 362e5f1..8968e02 100644
25031 return 0;
25032
25033 /* The backer wishes to know when pages are first written to? */
25034 -@@ -1483,7 +1607,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
25035 +@@ -1481,7 +1613,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
25036 struct rb_node **rb_link, *rb_parent;
25037 unsigned long charged = 0;
25038
25039 @@ -90463,7 +91646,7 @@ index 362e5f1..8968e02 100644
25040 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
25041 unsigned long nr_pages;
25042
25043 -@@ -1502,11 +1641,10 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
25044 +@@ -1500,11 +1647,10 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
25045
25046 /* Clear old maps */
25047 error = -ENOMEM;
25048 @@ -90476,7 +91659,7 @@ index 362e5f1..8968e02 100644
25049 }
25050
25051 /*
25052 -@@ -1537,6 +1675,16 @@ munmap_back:
25053 +@@ -1535,6 +1681,16 @@ munmap_back:
25054 goto unacct_error;
25055 }
25056
25057 @@ -90493,7 +91676,7 @@ index 362e5f1..8968e02 100644
25058 vma->vm_mm = mm;
25059 vma->vm_start = addr;
25060 vma->vm_end = addr + len;
25061 -@@ -1556,6 +1704,13 @@ munmap_back:
25062 +@@ -1554,6 +1710,13 @@ munmap_back:
25063 if (error)
25064 goto unmap_and_free_vma;
25065
25066 @@ -90507,7 +91690,7 @@ index 362e5f1..8968e02 100644
25067 /* Can addr have changed??
25068 *
25069 * Answer: Yes, several device drivers can do it in their
25070 -@@ -1589,6 +1744,12 @@ munmap_back:
25071 +@@ -1587,6 +1750,12 @@ munmap_back:
25072 }
25073
25074 vma_link(mm, vma, prev, rb_link, rb_parent);
25075 @@ -90520,7 +91703,7 @@ index 362e5f1..8968e02 100644
25076 /* Once vma denies write, undo our temporary denial count */
25077 if (vm_flags & VM_DENYWRITE)
25078 allow_write_access(file);
25079 -@@ -1597,6 +1758,7 @@ out:
25080 +@@ -1595,6 +1764,7 @@ out:
25081 perf_event_mmap(vma);
25082
25083 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
25084 @@ -90528,7 +91711,7 @@ index 362e5f1..8968e02 100644
25085 if (vm_flags & VM_LOCKED) {
25086 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
25087 vma == get_gate_vma(current->mm)))
25088 -@@ -1629,6 +1791,12 @@ unmap_and_free_vma:
25089 +@@ -1627,6 +1797,12 @@ unmap_and_free_vma:
25090 unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);
25091 charged = 0;
25092 free_vma:
25093 @@ -90541,7 +91724,7 @@ index 362e5f1..8968e02 100644
25094 kmem_cache_free(vm_area_cachep, vma);
25095 unacct_error:
25096 if (charged)
25097 -@@ -1636,7 +1804,63 @@ unacct_error:
25098 +@@ -1634,7 +1810,63 @@ unacct_error:
25099 return error;
25100 }
25101
25102 @@ -90606,7 +91789,7 @@ index 362e5f1..8968e02 100644
25103 {
25104 /*
25105 * We implement the search by looking for an rbtree node that
25106 -@@ -1684,11 +1908,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
25107 +@@ -1682,11 +1914,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
25108 }
25109 }
25110
25111 @@ -90637,7 +91820,7 @@ index 362e5f1..8968e02 100644
25112 if (gap_end >= low_limit && gap_end - gap_start >= length)
25113 goto found;
25114
25115 -@@ -1738,7 +1980,7 @@ found:
25116 +@@ -1736,7 +1986,7 @@ found:
25117 return gap_start;
25118 }
25119
25120 @@ -90646,7 +91829,7 @@ index 362e5f1..8968e02 100644
25121 {
25122 struct mm_struct *mm = current->mm;
25123 struct vm_area_struct *vma;
25124 -@@ -1792,6 +2034,24 @@ check_current:
25125 +@@ -1790,6 +2040,24 @@ check_current:
25126 gap_end = vma->vm_start;
25127 if (gap_end < low_limit)
25128 return -ENOMEM;
25129 @@ -90671,7 +91854,7 @@ index 362e5f1..8968e02 100644
25130 if (gap_start <= high_limit && gap_end - gap_start >= length)
25131 goto found;
25132
25133 -@@ -1855,6 +2115,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
25134 +@@ -1853,6 +2121,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
25135 struct mm_struct *mm = current->mm;
25136 struct vm_area_struct *vma;
25137 struct vm_unmapped_area_info info;
25138 @@ -90679,7 +91862,7 @@ index 362e5f1..8968e02 100644
25139
25140 if (len > TASK_SIZE - mmap_min_addr)
25141 return -ENOMEM;
25142 -@@ -1862,19 +2123,30 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
25143 +@@ -1860,11 +2129,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
25144 if (flags & MAP_FIXED)
25145 return addr;
25146
25147 @@ -90696,22 +91879,15 @@ index 362e5f1..8968e02 100644
25148 return addr;
25149 }
25150
25151 - info.flags = 0;
25152 - info.length = len;
25153 - info.low_limit = TASK_UNMAPPED_BASE;
25154 -+
25155 -+#ifdef CONFIG_PAX_RANDMMAP
25156 -+ if (mm->pax_flags & MF_PAX_RANDMMAP)
25157 -+ info.low_limit += mm->delta_mmap;
25158 -+#endif
25159 -+
25160 +@@ -1873,6 +2146,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
25161 + info.low_limit = mm->mmap_base;
25162 info.high_limit = TASK_SIZE;
25163 info.align_mask = 0;
25164 + info.threadstack_offset = offset;
25165 return vm_unmapped_area(&info);
25166 }
25167 #endif
25168 -@@ -1893,6 +2165,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25169 +@@ -1891,6 +2165,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25170 struct mm_struct *mm = current->mm;
25171 unsigned long addr = addr0;
25172 struct vm_unmapped_area_info info;
25173 @@ -90719,7 +91895,7 @@ index 362e5f1..8968e02 100644
25174
25175 /* requested length too big for entire address space */
25176 if (len > TASK_SIZE - mmap_min_addr)
25177 -@@ -1901,12 +2174,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25178 +@@ -1899,12 +2174,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25179 if (flags & MAP_FIXED)
25180 return addr;
25181
25182 @@ -90737,7 +91913,7 @@ index 362e5f1..8968e02 100644
25183 return addr;
25184 }
25185
25186 -@@ -1915,6 +2192,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25187 +@@ -1913,6 +2192,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25188 info.low_limit = max(PAGE_SIZE, mmap_min_addr);
25189 info.high_limit = mm->mmap_base;
25190 info.align_mask = 0;
25191 @@ -90745,7 +91921,7 @@ index 362e5f1..8968e02 100644
25192 addr = vm_unmapped_area(&info);
25193
25194 /*
25195 -@@ -1927,6 +2205,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25196 +@@ -1925,6 +2205,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
25197 VM_BUG_ON(addr != -ENOMEM);
25198 info.flags = 0;
25199 info.low_limit = TASK_UNMAPPED_BASE;
25200 @@ -90758,7 +91934,7 @@ index 362e5f1..8968e02 100644
25201 info.high_limit = TASK_SIZE;
25202 addr = vm_unmapped_area(&info);
25203 }
25204 -@@ -2028,6 +2312,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
25205 +@@ -2026,6 +2312,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
25206 return vma;
25207 }
25208
25209 @@ -90787,7 +91963,7 @@ index 362e5f1..8968e02 100644
25210 /*
25211 * Verify that the stack growth is acceptable and
25212 * update accounting. This is shared with both the
25213 -@@ -2044,6 +2350,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25214 +@@ -2042,6 +2350,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25215 return -ENOMEM;
25216
25217 /* Stack limit test */
25218 @@ -90795,7 +91971,7 @@ index 362e5f1..8968e02 100644
25219 if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
25220 return -ENOMEM;
25221
25222 -@@ -2054,6 +2361,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25223 +@@ -2052,6 +2361,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25224 locked = mm->locked_vm + grow;
25225 limit = ACCESS_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
25226 limit >>= PAGE_SHIFT;
25227 @@ -90803,7 +91979,7 @@ index 362e5f1..8968e02 100644
25228 if (locked > limit && !capable(CAP_IPC_LOCK))
25229 return -ENOMEM;
25230 }
25231 -@@ -2083,37 +2391,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25232 +@@ -2081,37 +2391,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
25233 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
25234 * vma is the last one with address > vma->vm_end. Have to extend vma.
25235 */
25236 @@ -90861,7 +92037,7 @@ index 362e5f1..8968e02 100644
25237 unsigned long size, grow;
25238
25239 size = address - vma->vm_start;
25240 -@@ -2148,6 +2467,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
25241 +@@ -2146,6 +2467,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
25242 }
25243 }
25244 }
25245 @@ -90870,7 +92046,7 @@ index 362e5f1..8968e02 100644
25246 vma_unlock_anon_vma(vma);
25247 khugepaged_enter_vma_merge(vma);
25248 validate_mm(vma->vm_mm);
25249 -@@ -2162,6 +2483,8 @@ int expand_downwards(struct vm_area_struct *vma,
25250 +@@ -2160,6 +2483,8 @@ int expand_downwards(struct vm_area_struct *vma,
25251 unsigned long address)
25252 {
25253 int error;
25254 @@ -90879,7 +92055,7 @@ index 362e5f1..8968e02 100644
25255
25256 /*
25257 * We must make sure the anon_vma is allocated
25258 -@@ -2175,6 +2498,15 @@ int expand_downwards(struct vm_area_struct *vma,
25259 +@@ -2173,6 +2498,15 @@ int expand_downwards(struct vm_area_struct *vma,
25260 if (error)
25261 return error;
25262
25263 @@ -90895,7 +92071,7 @@ index 362e5f1..8968e02 100644
25264 vma_lock_anon_vma(vma);
25265
25266 /*
25267 -@@ -2184,9 +2516,17 @@ int expand_downwards(struct vm_area_struct *vma,
25268 +@@ -2182,9 +2516,17 @@ int expand_downwards(struct vm_area_struct *vma,
25269 */
25270
25271 /* Somebody else might have raced and expanded it already */
25272 @@ -90914,7 +92090,7 @@ index 362e5f1..8968e02 100644
25273 size = vma->vm_end - address;
25274 grow = (vma->vm_start - address) >> PAGE_SHIFT;
25275
25276 -@@ -2211,13 +2551,27 @@ int expand_downwards(struct vm_area_struct *vma,
25277 +@@ -2209,13 +2551,27 @@ int expand_downwards(struct vm_area_struct *vma,
25278 vma->vm_pgoff -= grow;
25279 anon_vma_interval_tree_post_update_vma(vma);
25280 vma_gap_update(vma);
25281 @@ -90942,7 +92118,7 @@ index 362e5f1..8968e02 100644
25282 khugepaged_enter_vma_merge(vma);
25283 validate_mm(vma->vm_mm);
25284 return error;
25285 -@@ -2315,6 +2669,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
25286 +@@ -2313,6 +2669,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
25287 do {
25288 long nrpages = vma_pages(vma);
25289
25290 @@ -90956,7 +92132,7 @@ index 362e5f1..8968e02 100644
25291 if (vma->vm_flags & VM_ACCOUNT)
25292 nr_accounted += nrpages;
25293 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
25294 -@@ -2359,6 +2720,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
25295 +@@ -2357,6 +2720,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
25296 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
25297 vma->vm_prev = NULL;
25298 do {
25299 @@ -90973,7 +92149,7 @@ index 362e5f1..8968e02 100644
25300 vma_rb_erase(vma, &mm->mm_rb);
25301 mm->map_count--;
25302 tail_vma = vma;
25303 -@@ -2384,14 +2755,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25304 +@@ -2382,14 +2755,33 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25305 struct vm_area_struct *new;
25306 int err = -ENOMEM;
25307
25308 @@ -91007,7 +92183,7 @@ index 362e5f1..8968e02 100644
25309 /* most fields are the same, copy all, and then fixup */
25310 *new = *vma;
25311
25312 -@@ -2404,6 +2794,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25313 +@@ -2402,6 +2794,22 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25314 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
25315 }
25316
25317 @@ -91030,7 +92206,7 @@ index 362e5f1..8968e02 100644
25318 err = vma_dup_policy(vma, new);
25319 if (err)
25320 goto out_free_vma;
25321 -@@ -2423,6 +2829,38 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25322 +@@ -2421,6 +2829,38 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25323 else
25324 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
25325
25326 @@ -91069,7 +92245,7 @@ index 362e5f1..8968e02 100644
25327 /* Success. */
25328 if (!err)
25329 return 0;
25330 -@@ -2432,10 +2870,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25331 +@@ -2430,10 +2870,18 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25332 new->vm_ops->close(new);
25333 if (new->vm_file)
25334 fput(new->vm_file);
25335 @@ -91089,7 +92265,7 @@ index 362e5f1..8968e02 100644
25336 kmem_cache_free(vm_area_cachep, new);
25337 out_err:
25338 return err;
25339 -@@ -2448,6 +2894,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25340 +@@ -2446,6 +2894,15 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
25341 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
25342 unsigned long addr, int new_below)
25343 {
25344 @@ -91105,7 +92281,7 @@ index 362e5f1..8968e02 100644
25345 if (mm->map_count >= sysctl_max_map_count)
25346 return -ENOMEM;
25347
25348 -@@ -2459,11 +2914,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
25349 +@@ -2457,11 +2914,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
25350 * work. This now handles partial unmappings.
25351 * Jeremy Fitzhardinge <jeremy@××××.org>
25352 */
25353 @@ -91136,7 +92312,7 @@ index 362e5f1..8968e02 100644
25354 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
25355 return -EINVAL;
25356
25357 -@@ -2538,6 +3012,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
25358 +@@ -2536,6 +3012,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
25359 /* Fix up all other VM information */
25360 remove_vma_list(mm, vma);
25361
25362 @@ -91145,7 +92321,7 @@ index 362e5f1..8968e02 100644
25363 return 0;
25364 }
25365
25366 -@@ -2546,6 +3022,13 @@ int vm_munmap(unsigned long start, size_t len)
25367 +@@ -2544,6 +3022,13 @@ int vm_munmap(unsigned long start, size_t len)
25368 int ret;
25369 struct mm_struct *mm = current->mm;
25370
25371 @@ -91159,7 +92335,7 @@ index 362e5f1..8968e02 100644
25372 down_write(&mm->mmap_sem);
25373 ret = do_munmap(mm, start, len);
25374 up_write(&mm->mmap_sem);
25375 -@@ -2559,16 +3042,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
25376 +@@ -2557,16 +3042,6 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
25377 return vm_munmap(addr, len);
25378 }
25379
25380 @@ -91176,7 +92352,7 @@ index 362e5f1..8968e02 100644
25381 /*
25382 * this is really a simplified "do_mmap". it only handles
25383 * anonymous maps. eventually we may be able to do some
25384 -@@ -2582,6 +3055,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25385 +@@ -2580,6 +3055,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25386 struct rb_node ** rb_link, * rb_parent;
25387 pgoff_t pgoff = addr >> PAGE_SHIFT;
25388 int error;
25389 @@ -91184,7 +92360,7 @@ index 362e5f1..8968e02 100644
25390
25391 len = PAGE_ALIGN(len);
25392 if (!len)
25393 -@@ -2589,16 +3063,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25394 +@@ -2587,16 +3063,30 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25395
25396 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
25397
25398 @@ -91216,7 +92392,7 @@ index 362e5f1..8968e02 100644
25399 locked += mm->locked_vm;
25400 lock_limit = rlimit(RLIMIT_MEMLOCK);
25401 lock_limit >>= PAGE_SHIFT;
25402 -@@ -2615,21 +3103,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25403 +@@ -2613,21 +3103,20 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25404 /*
25405 * Clear old maps. this also does some error checking for us
25406 */
25407 @@ -91241,7 +92417,7 @@ index 362e5f1..8968e02 100644
25408 return -ENOMEM;
25409
25410 /* Can we just expand an old private anonymous mapping? */
25411 -@@ -2643,7 +3130,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25412 +@@ -2641,7 +3130,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25413 */
25414 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
25415 if (!vma) {
25416 @@ -91250,7 +92426,7 @@ index 362e5f1..8968e02 100644
25417 return -ENOMEM;
25418 }
25419
25420 -@@ -2657,10 +3144,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25421 +@@ -2655,10 +3144,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
25422 vma_link(mm, vma, prev, rb_link, rb_parent);
25423 out:
25424 perf_event_mmap(vma);
25425 @@ -91264,7 +92440,7 @@ index 362e5f1..8968e02 100644
25426 return addr;
25427 }
25428
25429 -@@ -2722,6 +3210,7 @@ void exit_mmap(struct mm_struct *mm)
25430 +@@ -2720,6 +3210,7 @@ void exit_mmap(struct mm_struct *mm)
25431 while (vma) {
25432 if (vma->vm_flags & VM_ACCOUNT)
25433 nr_accounted += vma_pages(vma);
25434 @@ -91272,7 +92448,7 @@ index 362e5f1..8968e02 100644
25435 vma = remove_vma(vma);
25436 }
25437 vm_unacct_memory(nr_accounted);
25438 -@@ -2738,6 +3227,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
25439 +@@ -2737,6 +3228,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
25440 struct vm_area_struct *prev;
25441 struct rb_node **rb_link, *rb_parent;
25442
25443 @@ -91286,7 +92462,7 @@ index 362e5f1..8968e02 100644
25444 /*
25445 * The vm_pgoff of a purely anonymous vma should be irrelevant
25446 * until its first write fault, when page's anon_vma and index
25447 -@@ -2761,7 +3257,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
25448 +@@ -2760,7 +3258,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
25449 security_vm_enough_memory_mm(mm, vma_pages(vma)))
25450 return -ENOMEM;
25451
25452 @@ -91308,7 +92484,7 @@ index 362e5f1..8968e02 100644
25453 return 0;
25454 }
25455
25456 -@@ -2780,6 +3290,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
25457 +@@ -2779,6 +3291,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
25458 struct rb_node **rb_link, *rb_parent;
25459 bool faulted_in_anon_vma = true;
25460
25461 @@ -91317,7 +92493,7 @@ index 362e5f1..8968e02 100644
25462 /*
25463 * If anonymous vma has not yet been faulted, update new pgoff
25464 * to match new location, to increase its chance of merging.
25465 -@@ -2844,6 +3356,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
25466 +@@ -2843,6 +3357,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
25467 return NULL;
25468 }
25469
25470 @@ -91357,7 +92533,7 @@ index 362e5f1..8968e02 100644
25471 /*
25472 * Return true if the calling process may expand its vm space by the passed
25473 * number of pages
25474 -@@ -2855,6 +3400,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
25475 +@@ -2854,6 +3401,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
25476
25477 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
25478
25479 @@ -91365,7 +92541,7 @@ index 362e5f1..8968e02 100644
25480 if (cur + npages > lim)
25481 return 0;
25482 return 1;
25483 -@@ -2925,6 +3471,22 @@ int install_special_mapping(struct mm_struct *mm,
25484 +@@ -2924,6 +3472,22 @@ int install_special_mapping(struct mm_struct *mm,
25485 vma->vm_start = addr;
25486 vma->vm_end = addr + len;
25487
25488 @@ -91389,7 +92565,7 @@ index 362e5f1..8968e02 100644
25489 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
25490
25491 diff --git a/mm/mprotect.c b/mm/mprotect.c
25492 -index 7651a57..d761c62 100644
25493 +index bb53a65..249c052 100644
25494 --- a/mm/mprotect.c
25495 +++ b/mm/mprotect.c
25496 @@ -23,10 +23,18 @@
25497 @@ -91411,7 +92587,7 @@ index 7651a57..d761c62 100644
25498
25499 #ifndef pgprot_modify
25500 static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
25501 -@@ -250,6 +258,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
25502 +@@ -222,6 +230,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
25503 return pages;
25504 }
25505
25506 @@ -91460,7 +92636,7 @@ index 7651a57..d761c62 100644
25507 int
25508 mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
25509 unsigned long start, unsigned long end, unsigned long newflags)
25510 -@@ -262,11 +312,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
25511 +@@ -234,11 +284,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
25512 int error;
25513 int dirty_accountable = 0;
25514
25515 @@ -91490,7 +92666,7 @@ index 7651a57..d761c62 100644
25516 /*
25517 * If we make a private mapping writable we increase our commit;
25518 * but (without finer accounting) cannot reduce our commit if we
25519 -@@ -283,6 +351,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
25520 +@@ -255,6 +323,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
25521 }
25522 }
25523
25524 @@ -91533,7 +92709,7 @@ index 7651a57..d761c62 100644
25525 /*
25526 * First try to merge with previous and/or next vma.
25527 */
25528 -@@ -313,9 +417,21 @@ success:
25529 +@@ -285,9 +389,21 @@ success:
25530 * vm_flags and vm_page_prot are protected by the mmap_sem
25531 * held in write mode.
25532 */
25533 @@ -91556,7 +92732,7 @@ index 7651a57..d761c62 100644
25534
25535 if (vma_wants_writenotify(vma)) {
25536 vma->vm_page_prot = vm_get_page_prot(newflags & ~VM_SHARED);
25537 -@@ -354,6 +470,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25538 +@@ -326,6 +442,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25539 end = start + len;
25540 if (end <= start)
25541 return -ENOMEM;
25542 @@ -91574,7 +92750,7 @@ index 7651a57..d761c62 100644
25543 if (!arch_validate_prot(prot))
25544 return -EINVAL;
25545
25546 -@@ -361,7 +488,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25547 +@@ -333,7 +460,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25548 /*
25549 * Does the application expect PROT_READ to imply PROT_EXEC:
25550 */
25551 @@ -91583,7 +92759,7 @@ index 7651a57..d761c62 100644
25552 prot |= PROT_EXEC;
25553
25554 vm_flags = calc_vm_prot_bits(prot);
25555 -@@ -393,6 +520,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25556 +@@ -365,6 +492,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25557 if (start > vma->vm_start)
25558 prev = vma;
25559
25560 @@ -91595,7 +92771,7 @@ index 7651a57..d761c62 100644
25561 for (nstart = start ; ; ) {
25562 unsigned long newflags;
25563
25564 -@@ -403,6 +535,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25565 +@@ -375,6 +507,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25566
25567 /* newflags >> 4 shift VM_MAY% in place of VM_% */
25568 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
25569 @@ -91610,7 +92786,7 @@ index 7651a57..d761c62 100644
25570 error = -EACCES;
25571 goto out;
25572 }
25573 -@@ -417,6 +557,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25574 +@@ -389,6 +529,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
25575 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
25576 if (error)
25577 goto out;
25578 @@ -91728,7 +92904,7 @@ index 0843feb..4f5b2e6 100644
25579 out:
25580 if (ret & ~PAGE_MASK)
25581 diff --git a/mm/nommu.c b/mm/nommu.c
25582 -index ecd1f15..77039bd 100644
25583 +index fec093a..8162f74 100644
25584 --- a/mm/nommu.c
25585 +++ b/mm/nommu.c
25586 @@ -64,7 +64,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
25587 @@ -91763,7 +92939,7 @@ index ecd1f15..77039bd 100644
25588 *region = *vma->vm_region;
25589 new->vm_region = region;
25590
25591 -@@ -1993,8 +1984,8 @@ int generic_file_remap_pages(struct vm_area_struct *vma, unsigned long addr,
25592 +@@ -1992,8 +1983,8 @@ int generic_file_remap_pages(struct vm_area_struct *vma, unsigned long addr,
25593 }
25594 EXPORT_SYMBOL(generic_file_remap_pages);
25595
25596 @@ -91774,7 +92950,7 @@ index ecd1f15..77039bd 100644
25597 {
25598 struct vm_area_struct *vma;
25599
25600 -@@ -2035,8 +2026,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
25601 +@@ -2034,8 +2025,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
25602 *
25603 * The caller must hold a reference on @mm.
25604 */
25605 @@ -91785,7 +92961,7 @@ index ecd1f15..77039bd 100644
25606 {
25607 return __access_remote_vm(NULL, mm, addr, buf, len, write);
25608 }
25609 -@@ -2045,7 +2036,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
25610 +@@ -2044,7 +2035,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
25611 * Access another process' address space.
25612 * - source/target buffer must be kernel space
25613 */
25614 @@ -91808,7 +92984,7 @@ index 6380758..4064aec 100644
25615 unsigned long bg_thresh,
25616 unsigned long dirty,
25617 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
25618 -index 317ea74..a4a1977 100644
25619 +index 5248fe0..0f693aa 100644
25620 --- a/mm/page_alloc.c
25621 +++ b/mm/page_alloc.c
25622 @@ -61,6 +61,7 @@
25623 @@ -91918,7 +93094,7 @@ index 8c79a47..a689e0d 100644
25624 };
25625
25626 diff --git a/mm/percpu.c b/mm/percpu.c
25627 -index 8c8e08f..73a5cda 100644
25628 +index 0d10def..6dc822d 100644
25629 --- a/mm/percpu.c
25630 +++ b/mm/percpu.c
25631 @@ -122,7 +122,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
25632 @@ -91982,7 +93158,7 @@ index fd26d04..0cea1b0 100644
25633 if (!mm || IS_ERR(mm)) {
25634 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
25635 diff --git a/mm/rmap.c b/mm/rmap.c
25636 -index b9d2222..e4baa1f 100644
25637 +index 068522d..f539f21 100644
25638 --- a/mm/rmap.c
25639 +++ b/mm/rmap.c
25640 @@ -163,6 +163,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
25641 @@ -92085,7 +93261,7 @@ index b9d2222..e4baa1f 100644
25642
25643 /*
25644 diff --git a/mm/shmem.c b/mm/shmem.c
25645 -index 8297623..6b9dfe9 100644
25646 +index 902a148..58f9d59 100644
25647 --- a/mm/shmem.c
25648 +++ b/mm/shmem.c
25649 @@ -33,7 +33,7 @@
25650 @@ -92145,10 +93321,10 @@ index 8297623..6b9dfe9 100644
25651 return -ENOMEM;
25652
25653 diff --git a/mm/slab.c b/mm/slab.c
25654 -index 2580db0..0523956 100644
25655 +index eb043bf..d82f5a8 100644
25656 --- a/mm/slab.c
25657 +++ b/mm/slab.c
25658 -@@ -366,10 +366,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
25659 +@@ -300,10 +300,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
25660 if ((x)->max_freeable < i) \
25661 (x)->max_freeable = i; \
25662 } while (0)
25663 @@ -92165,7 +93341,7 @@ index 2580db0..0523956 100644
25664 #else
25665 #define STATS_INC_ACTIVE(x) do { } while (0)
25666 #define STATS_DEC_ACTIVE(x) do { } while (0)
25667 -@@ -386,6 +388,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
25668 +@@ -320,6 +322,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
25669 #define STATS_INC_ALLOCMISS(x) do { } while (0)
25670 #define STATS_INC_FREEHIT(x) do { } while (0)
25671 #define STATS_INC_FREEMISS(x) do { } while (0)
25672 @@ -92174,16 +93350,16 @@ index 2580db0..0523956 100644
25673 #endif
25674
25675 #if DEBUG
25676 -@@ -477,7 +481,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct slab *slab,
25677 +@@ -403,7 +407,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct page *page,
25678 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
25679 */
25680 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
25681 -- const struct slab *slab, void *obj)
25682 -+ const struct slab *slab, const void *obj)
25683 +- const struct page *page, void *obj)
25684 ++ const struct page *page, const void *obj)
25685 {
25686 - u32 offset = (obj - slab->s_mem);
25687 + u32 offset = (obj - page->s_mem);
25688 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
25689 -@@ -1571,12 +1575,12 @@ void __init kmem_cache_init(void)
25690 +@@ -1489,12 +1493,12 @@ void __init kmem_cache_init(void)
25691 */
25692
25693 kmalloc_caches[INDEX_AC] = create_kmalloc_cache("kmalloc-ac",
25694 @@ -92198,7 +93374,7 @@ index 2580db0..0523956 100644
25695
25696 slab_early_init = 0;
25697
25698 -@@ -3577,6 +3581,21 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
25699 +@@ -3428,6 +3432,21 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
25700 struct array_cache *ac = cpu_cache_get(cachep);
25701
25702 check_irq_off();
25703 @@ -92220,7 +93396,7 @@ index 2580db0..0523956 100644
25704 kmemleak_free_recursive(objp, cachep->flags);
25705 objp = cache_free_debugcheck(cachep, objp, caller);
25706
25707 -@@ -3805,6 +3824,7 @@ void kfree(const void *objp)
25708 +@@ -3656,6 +3675,7 @@ void kfree(const void *objp)
25709
25710 if (unlikely(ZERO_OR_NULL_PTR(objp)))
25711 return;
25712 @@ -92228,7 +93404,7 @@ index 2580db0..0523956 100644
25713 local_irq_save(flags);
25714 kfree_debugcheck(objp);
25715 c = virt_to_cache(objp);
25716 -@@ -4246,14 +4266,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
25717 +@@ -4097,14 +4117,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
25718 }
25719 /* cpu stats */
25720 {
25721 @@ -92255,7 +93431,7 @@ index 2580db0..0523956 100644
25722 #endif
25723 }
25724
25725 -@@ -4471,13 +4499,71 @@ static const struct file_operations proc_slabstats_operations = {
25726 +@@ -4334,13 +4362,69 @@ static const struct file_operations proc_slabstats_operations = {
25727 static int __init slab_proc_init(void)
25728 {
25729 #ifdef CONFIG_DEBUG_SLAB_LEAK
25730 @@ -92295,7 +93471,6 @@ index 2580db0..0523956 100644
25731 +{
25732 + struct page *page;
25733 + struct kmem_cache *cachep;
25734 -+ struct slab *slabp;
25735 + unsigned int objnr;
25736 + unsigned long offset;
25737 +
25738 @@ -92314,10 +93489,9 @@ index 2580db0..0523956 100644
25739 + if (!(cachep->flags & SLAB_USERCOPY))
25740 + return cachep->name;
25741 +
25742 -+ slabp = page->slab_page;
25743 -+ objnr = obj_to_index(cachep, slabp, ptr);
25744 ++ objnr = obj_to_index(cachep, page, ptr);
25745 + BUG_ON(objnr >= cachep->num);
25746 -+ offset = ptr - index_to_obj(cachep, slabp, objnr) - obj_offset(cachep);
25747 ++ offset = ptr - index_to_obj(cachep, page, objnr) - obj_offset(cachep);
25748 + if (offset <= cachep->object_size && n <= cachep->object_size - offset)
25749 + return NULL;
25750 +
25751 @@ -92329,7 +93503,7 @@ index 2580db0..0523956 100644
25752 * ksize - get the actual amount of memory allocated for a given object
25753 * @objp: Pointer to the object
25754 diff --git a/mm/slab.h b/mm/slab.h
25755 -index a535033..2f98fe5 100644
25756 +index 0859c42..2f7b737 100644
25757 --- a/mm/slab.h
25758 +++ b/mm/slab.h
25759 @@ -32,6 +32,15 @@ extern struct list_head slab_caches;
25760 @@ -92358,7 +93532,7 @@ index a535033..2f98fe5 100644
25761
25762 #if defined(CONFIG_DEBUG_SLAB)
25763 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
25764 -@@ -231,6 +241,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
25765 +@@ -233,6 +243,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
25766 return s;
25767
25768 page = virt_to_head_page(x);
25769 @@ -92369,7 +93543,7 @@ index a535033..2f98fe5 100644
25770 if (slab_equal_or_root(cachep, s))
25771 return cachep;
25772 diff --git a/mm/slab_common.c b/mm/slab_common.c
25773 -index e2e98af..3b1a163 100644
25774 +index 0b7bb39..334c328 100644
25775 --- a/mm/slab_common.c
25776 +++ b/mm/slab_common.c
25777 @@ -23,11 +23,22 @@
25778 @@ -92887,7 +94061,7 @@ index 4bf8809..98a6914 100644
25779 EXPORT_SYMBOL(kmem_cache_free);
25780
25781 diff --git a/mm/slub.c b/mm/slub.c
25782 -index 96f2169..9111a59 100644
25783 +index 545a170..a086226 100644
25784 --- a/mm/slub.c
25785 +++ b/mm/slub.c
25786 @@ -207,7 +207,7 @@ struct track {
25787 @@ -92908,7 +94082,7 @@ index 96f2169..9111a59 100644
25788 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
25789 #ifdef CONFIG_STACKTRACE
25790 {
25791 -@@ -2616,6 +2616,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
25792 +@@ -2643,6 +2643,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
25793
25794 slab_free_hook(s, x);
25795
25796 @@ -92923,7 +94097,7 @@ index 96f2169..9111a59 100644
25797 redo:
25798 /*
25799 * Determine the currently cpus per cpu slab.
25800 -@@ -2683,7 +2691,7 @@ static int slub_min_objects;
25801 +@@ -2710,7 +2718,7 @@ static int slub_min_objects;
25802 * Merge control. If this is set then no merging of slab caches will occur.
25803 * (Could be removed. This was introduced to pacify the merge skeptics.)
25804 */
25805 @@ -92932,7 +94106,7 @@ index 96f2169..9111a59 100644
25806
25807 /*
25808 * Calculate the order of allocation given an slab object size.
25809 -@@ -2960,6 +2968,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
25810 +@@ -2987,6 +2995,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
25811 s->inuse = size;
25812
25813 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
25814 @@ -92942,7 +94116,7 @@ index 96f2169..9111a59 100644
25815 s->ctor)) {
25816 /*
25817 * Relocate free pointer after the object if it is not
25818 -@@ -3305,6 +3316,59 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
25819 +@@ -3332,6 +3343,59 @@ void *__kmalloc_node(size_t size, gfp_t flags, int node)
25820 EXPORT_SYMBOL(__kmalloc_node);
25821 #endif
25822
25823 @@ -93002,7 +94176,7 @@ index 96f2169..9111a59 100644
25824 size_t ksize(const void *object)
25825 {
25826 struct page *page;
25827 -@@ -3333,6 +3397,7 @@ void kfree(const void *x)
25828 +@@ -3360,6 +3424,7 @@ void kfree(const void *x)
25829 if (unlikely(ZERO_OR_NULL_PTR(x)))
25830 return;
25831
25832 @@ -93010,7 +94184,7 @@ index 96f2169..9111a59 100644
25833 page = virt_to_head_page(x);
25834 if (unlikely(!PageSlab(page))) {
25835 BUG_ON(!PageCompound(page));
25836 -@@ -3638,7 +3703,7 @@ static int slab_unmergeable(struct kmem_cache *s)
25837 +@@ -3665,7 +3730,7 @@ static int slab_unmergeable(struct kmem_cache *s)
25838 /*
25839 * We may have set a slab to be unmergeable during bootstrap.
25840 */
25841 @@ -93019,7 +94193,7 @@ index 96f2169..9111a59 100644
25842 return 1;
25843
25844 return 0;
25845 -@@ -3696,7 +3761,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
25846 +@@ -3723,7 +3788,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
25847
25848 s = find_mergeable(memcg, size, align, flags, name, ctor);
25849 if (s) {
25850 @@ -93028,7 +94202,7 @@ index 96f2169..9111a59 100644
25851 /*
25852 * Adjust the object sizes so that we clear
25853 * the complete object on kzalloc.
25854 -@@ -3705,7 +3770,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
25855 +@@ -3732,7 +3797,7 @@ __kmem_cache_alias(struct mem_cgroup *memcg, const char *name, size_t size,
25856 s->inuse = max_t(int, s->inuse, ALIGN(size, sizeof(void *)));
25857
25858 if (sysfs_slab_alias(s, name)) {
25859 @@ -93037,7 +94211,7 @@ index 96f2169..9111a59 100644
25860 s = NULL;
25861 }
25862 }
25863 -@@ -3825,7 +3890,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
25864 +@@ -3852,7 +3917,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
25865 }
25866 #endif
25867
25868 @@ -93046,7 +94220,7 @@ index 96f2169..9111a59 100644
25869 static int count_inuse(struct page *page)
25870 {
25871 return page->inuse;
25872 -@@ -4214,12 +4279,12 @@ static void resiliency_test(void)
25873 +@@ -4241,12 +4306,12 @@ static void resiliency_test(void)
25874 validate_slab_cache(kmalloc_caches[9]);
25875 }
25876 #else
25877 @@ -93061,7 +94235,7 @@ index 96f2169..9111a59 100644
25878 enum slab_stat_type {
25879 SL_ALL, /* All slabs */
25880 SL_PARTIAL, /* Only partially allocated slabs */
25881 -@@ -4459,7 +4524,7 @@ SLAB_ATTR_RO(ctor);
25882 +@@ -4486,7 +4551,7 @@ SLAB_ATTR_RO(ctor);
25883
25884 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
25885 {
25886 @@ -93070,7 +94244,7 @@ index 96f2169..9111a59 100644
25887 }
25888 SLAB_ATTR_RO(aliases);
25889
25890 -@@ -4547,6 +4612,14 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
25891 +@@ -4574,6 +4639,14 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
25892 SLAB_ATTR_RO(cache_dma);
25893 #endif
25894
25895 @@ -93085,7 +94259,7 @@ index 96f2169..9111a59 100644
25896 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
25897 {
25898 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
25899 -@@ -4881,6 +4954,9 @@ static struct attribute *slab_attrs[] = {
25900 +@@ -4908,6 +4981,9 @@ static struct attribute *slab_attrs[] = {
25901 #ifdef CONFIG_ZONE_DMA
25902 &cache_dma_attr.attr,
25903 #endif
25904 @@ -93095,7 +94269,7 @@ index 96f2169..9111a59 100644
25905 #ifdef CONFIG_NUMA
25906 &remote_node_defrag_ratio_attr.attr,
25907 #endif
25908 -@@ -5113,6 +5189,7 @@ static char *create_unique_id(struct kmem_cache *s)
25909 +@@ -5140,6 +5216,7 @@ static char *create_unique_id(struct kmem_cache *s)
25910 return name;
25911 }
25912
25913 @@ -93103,7 +94277,7 @@ index 96f2169..9111a59 100644
25914 static int sysfs_slab_add(struct kmem_cache *s)
25915 {
25916 int err;
25917 -@@ -5136,7 +5213,7 @@ static int sysfs_slab_add(struct kmem_cache *s)
25918 +@@ -5163,7 +5240,7 @@ static int sysfs_slab_add(struct kmem_cache *s)
25919 }
25920
25921 s->kobj.kset = slab_kset;
25922 @@ -93112,7 +94286,7 @@ index 96f2169..9111a59 100644
25923 if (err) {
25924 kobject_put(&s->kobj);
25925 return err;
25926 -@@ -5170,6 +5247,7 @@ static void sysfs_slab_remove(struct kmem_cache *s)
25927 +@@ -5197,6 +5274,7 @@ static void sysfs_slab_remove(struct kmem_cache *s)
25928 kobject_del(&s->kobj);
25929 kobject_put(&s->kobj);
25930 }
25931 @@ -93120,7 +94294,7 @@ index 96f2169..9111a59 100644
25932
25933 /*
25934 * Need to buffer aliases during bootup until sysfs becomes
25935 -@@ -5183,6 +5261,7 @@ struct saved_alias {
25936 +@@ -5210,6 +5288,7 @@ struct saved_alias {
25937
25938 static struct saved_alias *alias_list;
25939
25940 @@ -93128,7 +94302,7 @@ index 96f2169..9111a59 100644
25941 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
25942 {
25943 struct saved_alias *al;
25944 -@@ -5205,6 +5284,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
25945 +@@ -5232,6 +5311,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
25946 alias_list = al;
25947 return 0;
25948 }
25949 @@ -93159,7 +94333,7 @@ index 27eeab3..7c3f7f2 100644
25950 return pgd;
25951 }
25952 diff --git a/mm/sparse.c b/mm/sparse.c
25953 -index 4ac1d7e..bbfcb1f 100644
25954 +index 8cc7be0..d0f7d7a 100644
25955 --- a/mm/sparse.c
25956 +++ b/mm/sparse.c
25957 @@ -745,7 +745,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
25958 @@ -93172,7 +94346,7 @@ index 4ac1d7e..bbfcb1f 100644
25959 }
25960 }
25961 diff --git a/mm/swap.c b/mm/swap.c
25962 -index 759c3ca..7c1a5b4 100644
25963 +index 84b26aa..ce39899 100644
25964 --- a/mm/swap.c
25965 +++ b/mm/swap.c
25966 @@ -77,6 +77,8 @@ static void __put_compound_page(struct page *page)
25967 @@ -93185,7 +94359,7 @@ index 759c3ca..7c1a5b4 100644
25968 }
25969
25970 diff --git a/mm/swapfile.c b/mm/swapfile.c
25971 -index de7c904..c84bf11 100644
25972 +index 612a7c9..66b0f5a 100644
25973 --- a/mm/swapfile.c
25974 +++ b/mm/swapfile.c
25975 @@ -66,7 +66,7 @@ static DEFINE_MUTEX(swapon_mutex);
25976 @@ -93236,10 +94410,10 @@ index de7c904..c84bf11 100644
25977
25978 if (S_ISREG(inode->i_mode))
25979 diff --git a/mm/util.c b/mm/util.c
25980 -index eaf63fc2..c6952b2 100644
25981 +index 808f375..e4764b5 100644
25982 --- a/mm/util.c
25983 +++ b/mm/util.c
25984 -@@ -294,6 +294,12 @@ done:
25985 +@@ -297,6 +297,12 @@ done:
25986 void arch_pick_mmap_layout(struct mm_struct *mm)
25987 {
25988 mm->mmap_base = TASK_UNMAPPED_BASE;
25989 @@ -93252,20 +94426,8 @@ index eaf63fc2..c6952b2 100644
25990 mm->get_unmapped_area = arch_get_unmapped_area;
25991 }
25992 #endif
25993 -@@ -387,7 +393,10 @@ struct address_space *page_mapping(struct page *page)
25994 - {
25995 - struct address_space *mapping = page->mapping;
25996 -
25997 -- VM_BUG_ON(PageSlab(page));
25998 -+ /* This happens if someone calls flush_dcache_page on slab page */
25999 -+ if (unlikely(PageSlab(page)))
26000 -+ return NULL;
26001 -+
26002 - if (unlikely(PageSwapCache(page))) {
26003 - swp_entry_t entry;
26004 -
26005 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
26006 -index 1074543..136dbe0 100644
26007 +index 0fdf968..d6686e8 100644
26008 --- a/mm/vmalloc.c
26009 +++ b/mm/vmalloc.c
26010 @@ -59,8 +59,19 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
26011 @@ -93368,7 +94530,7 @@ index 1074543..136dbe0 100644
26012 if (!pmd_none(*pmd)) {
26013 pte_t *ptep, pte;
26014
26015 -@@ -1303,6 +1339,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
26016 +@@ -1309,6 +1345,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
26017 struct vm_struct *area;
26018
26019 BUG_ON(in_interrupt());
26020 @@ -93385,7 +94547,7 @@ index 1074543..136dbe0 100644
26021 if (flags & VM_IOREMAP)
26022 align = 1ul << clamp(fls(size), PAGE_SHIFT, IOREMAP_MAX_ORDER);
26023
26024 -@@ -1528,6 +1574,11 @@ void *vmap(struct page **pages, unsigned int count,
26025 +@@ -1534,6 +1580,11 @@ void *vmap(struct page **pages, unsigned int count,
26026 if (count > totalram_pages)
26027 return NULL;
26028
26029 @@ -93397,7 +94559,7 @@ index 1074543..136dbe0 100644
26030 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
26031 __builtin_return_address(0));
26032 if (!area)
26033 -@@ -1629,6 +1680,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
26034 +@@ -1634,6 +1685,13 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
26035 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
26036 goto fail;
26037
26038 @@ -93411,7 +94573,7 @@ index 1074543..136dbe0 100644
26039 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED,
26040 start, end, node, gfp_mask, caller);
26041 if (!area)
26042 -@@ -1805,10 +1863,9 @@ EXPORT_SYMBOL(vzalloc_node);
26043 +@@ -1810,10 +1868,9 @@ EXPORT_SYMBOL(vzalloc_node);
26044 * For tight control over page level allocator and protection flags
26045 * use __vmalloc() instead.
26046 */
26047 @@ -93423,7 +94585,7 @@ index 1074543..136dbe0 100644
26048 NUMA_NO_NODE, __builtin_return_address(0));
26049 }
26050
26051 -@@ -2115,6 +2172,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
26052 +@@ -2120,6 +2177,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
26053 {
26054 struct vm_struct *area;
26055
26056 @@ -93432,7 +94594,7 @@ index 1074543..136dbe0 100644
26057 size = PAGE_ALIGN(size);
26058
26059 if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
26060 -@@ -2600,7 +2659,11 @@ static int s_show(struct seq_file *m, void *p)
26061 +@@ -2602,7 +2661,11 @@ static int s_show(struct seq_file *m, void *p)
26062 v->addr, v->addr + v->size, v->size);
26063
26064 if (v->caller)
26065 @@ -93445,7 +94607,7 @@ index 1074543..136dbe0 100644
26066 if (v->nr_pages)
26067 seq_printf(m, " pages=%d", v->nr_pages);
26068 diff --git a/mm/vmstat.c b/mm/vmstat.c
26069 -index 5a442a7..dbbda4a 100644
26070 +index 7249614..2639fc7 100644
26071 --- a/mm/vmstat.c
26072 +++ b/mm/vmstat.c
26073 @@ -20,6 +20,7 @@
26074 @@ -93527,8 +94689,8 @@ index 5a442a7..dbbda4a 100644
26075 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
26076 v[i] = global_page_state(i);
26077 v += NR_VM_ZONE_STAT_ITEMS;
26078 -@@ -1281,10 +1294,16 @@ static int __init setup_vmstat(void)
26079 - start_cpu_timer(cpu);
26080 +@@ -1300,10 +1313,16 @@ static int __init setup_vmstat(void)
26081 + put_online_cpus();
26082 #endif
26083 #ifdef CONFIG_PROC_FS
26084 - proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
26085 @@ -93549,7 +94711,7 @@ index 5a442a7..dbbda4a 100644
26086 return 0;
26087 }
26088 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
26089 -index 61fc573..b5e47d0 100644
26090 +index b3d17d1..e8e4cdd 100644
26091 --- a/net/8021q/vlan.c
26092 +++ b/net/8021q/vlan.c
26093 @@ -472,7 +472,7 @@ out:
26094 @@ -93571,6 +94733,37 @@ index 61fc573..b5e47d0 100644
26095 struct vlan_net *vn;
26096
26097 vn = net_generic(net, vlan_net_id);
26098 +diff --git a/net/9p/client.c b/net/9p/client.c
26099 +index ee8fd6b..0469d50 100644
26100 +--- a/net/9p/client.c
26101 ++++ b/net/9p/client.c
26102 +@@ -588,7 +588,7 @@ static int p9_check_zc_errors(struct p9_client *c, struct p9_req_t *req,
26103 + len - inline_len);
26104 + } else {
26105 + err = copy_from_user(ename + inline_len,
26106 +- uidata, len - inline_len);
26107 ++ (char __force_user *)uidata, len - inline_len);
26108 + if (err) {
26109 + err = -EFAULT;
26110 + goto out_err;
26111 +@@ -1563,7 +1563,7 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
26112 + kernel_buf = 1;
26113 + indata = data;
26114 + } else
26115 +- indata = (__force char *)udata;
26116 ++ indata = (__force_kernel char *)udata;
26117 + /*
26118 + * response header len is 11
26119 + * PDU Header(7) + IO Size (4)
26120 +@@ -1638,7 +1638,7 @@ p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
26121 + kernel_buf = 1;
26122 + odata = data;
26123 + } else
26124 +- odata = (char *)udata;
26125 ++ odata = (char __force_kernel *)udata;
26126 + req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, odata, 0, rsize,
26127 + P9_ZC_HDR_SZ, kernel_buf, "dqd",
26128 + fid->fid, offset, rsize);
26129 diff --git a/net/9p/mod.c b/net/9p/mod.c
26130 index 6ab36ae..6f1841b 100644
26131 --- a/net/9p/mod.c
26132 @@ -93594,7 +94787,7 @@ index 6ab36ae..6f1841b 100644
26133 }
26134 EXPORT_SYMBOL(v9fs_unregister_trans);
26135 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
26136 -index 3ffda1b..fceac96 100644
26137 +index 9321a77..ed2f256 100644
26138 --- a/net/9p/trans_fd.c
26139 +++ b/net/9p/trans_fd.c
26140 @@ -432,7 +432,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
26141 @@ -93646,6 +94839,23 @@ index 876fbe8..8bbea9f 100644
26142 __SONET_ITEMS
26143 #undef __HANDLE_ITEM
26144 }
26145 +diff --git a/net/atm/lec.c b/net/atm/lec.c
26146 +index f23916b..dd4d26b 100644
26147 +--- a/net/atm/lec.c
26148 ++++ b/net/atm/lec.c
26149 +@@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
26150 + }
26151 +
26152 + static struct lane2_ops lane2_ops = {
26153 +- lane2_resolve, /* resolve, spec 3.1.3 */
26154 +- lane2_associate_req, /* associate_req, spec 3.1.4 */
26155 +- NULL /* associate indicator, spec 3.1.5 */
26156 ++ .resolve = lane2_resolve,
26157 ++ .associate_req = lane2_associate_req,
26158 ++ .associate_indicator = NULL
26159 + };
26160 +
26161 + static unsigned char bus_mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
26162 diff --git a/net/atm/lec.h b/net/atm/lec.h
26163 index 4149db1..f2ab682 100644
26164 --- a/net/atm/lec.h
26165 @@ -93659,6 +94869,62 @@ index 4149db1..f2ab682 100644
26166
26167 /*
26168 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
26169 +diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
26170 +index d1b2d9a..d549f7f 100644
26171 +--- a/net/atm/mpoa_caches.c
26172 ++++ b/net/atm/mpoa_caches.c
26173 +@@ -535,30 +535,30 @@ static void eg_destroy_cache(struct mpoa_client *mpc)
26174 +
26175 +
26176 + static struct in_cache_ops ingress_ops = {
26177 +- in_cache_add_entry, /* add_entry */
26178 +- in_cache_get, /* get */
26179 +- in_cache_get_with_mask, /* get_with_mask */
26180 +- in_cache_get_by_vcc, /* get_by_vcc */
26181 +- in_cache_put, /* put */
26182 +- in_cache_remove_entry, /* remove_entry */
26183 +- cache_hit, /* cache_hit */
26184 +- clear_count_and_expired, /* clear_count */
26185 +- check_resolving_entries, /* check_resolving */
26186 +- refresh_entries, /* refresh */
26187 +- in_destroy_cache /* destroy_cache */
26188 ++ .add_entry = in_cache_add_entry,
26189 ++ .get = in_cache_get,
26190 ++ .get_with_mask = in_cache_get_with_mask,
26191 ++ .get_by_vcc = in_cache_get_by_vcc,
26192 ++ .put = in_cache_put,
26193 ++ .remove_entry = in_cache_remove_entry,
26194 ++ .cache_hit = cache_hit,
26195 ++ .clear_count = clear_count_and_expired,
26196 ++ .check_resolving = check_resolving_entries,
26197 ++ .refresh = refresh_entries,
26198 ++ .destroy_cache = in_destroy_cache
26199 + };
26200 +
26201 + static struct eg_cache_ops egress_ops = {
26202 +- eg_cache_add_entry, /* add_entry */
26203 +- eg_cache_get_by_cache_id, /* get_by_cache_id */
26204 +- eg_cache_get_by_tag, /* get_by_tag */
26205 +- eg_cache_get_by_vcc, /* get_by_vcc */
26206 +- eg_cache_get_by_src_ip, /* get_by_src_ip */
26207 +- eg_cache_put, /* put */
26208 +- eg_cache_remove_entry, /* remove_entry */
26209 +- update_eg_cache_entry, /* update */
26210 +- clear_expired, /* clear_expired */
26211 +- eg_destroy_cache /* destroy_cache */
26212 ++ .add_entry = eg_cache_add_entry,
26213 ++ .get_by_cache_id = eg_cache_get_by_cache_id,
26214 ++ .get_by_tag = eg_cache_get_by_tag,
26215 ++ .get_by_vcc = eg_cache_get_by_vcc,
26216 ++ .get_by_src_ip = eg_cache_get_by_src_ip,
26217 ++ .put = eg_cache_put,
26218 ++ .remove_entry = eg_cache_remove_entry,
26219 ++ .update = update_eg_cache_entry,
26220 ++ .clear_expired = clear_expired,
26221 ++ .destroy_cache = eg_destroy_cache
26222 + };
26223 +
26224 +
26225 diff --git a/net/atm/proc.c b/net/atm/proc.c
26226 index bbb6461..cf04016 100644
26227 --- a/net/atm/proc.c
26228 @@ -93712,10 +94978,10 @@ index 919a5ce..cc6b444 100644
26229 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
26230 if (!table)
26231 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
26232 -index 0a8a80c..f7e89aa 100644
26233 +index b9c8a6e..ed0f711 100644
26234 --- a/net/batman-adv/bat_iv_ogm.c
26235 +++ b/net/batman-adv/bat_iv_ogm.c
26236 -@@ -121,7 +121,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
26237 +@@ -297,7 +297,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
26238
26239 /* randomize initial seqno to avoid collision */
26240 get_random_bytes(&random_seqno, sizeof(random_seqno));
26241 @@ -93724,8 +94990,8 @@ index 0a8a80c..f7e89aa 100644
26242
26243 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
26244 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
26245 -@@ -703,9 +703,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
26246 - batadv_ogm_packet = (struct batadv_ogm_packet *)(*ogm_buff);
26247 +@@ -884,9 +884,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
26248 + batadv_ogm_packet->tvlv_len = htons(tvlv_len);
26249
26250 /* change sequence number to network order */
26251 - seqno = (uint32_t)atomic_read(&hard_iface->bat_iv.ogm_seqno);
26252 @@ -93734,9 +95000,9 @@ index 0a8a80c..f7e89aa 100644
26253 - atomic_inc(&hard_iface->bat_iv.ogm_seqno);
26254 + atomic_inc_unchecked(&hard_iface->bat_iv.ogm_seqno);
26255
26256 - batadv_ogm_packet->ttvn = atomic_read(&bat_priv->tt.vn);
26257 - batadv_ogm_packet->tt_crc = htons(bat_priv->tt.local_crc);
26258 -@@ -1111,7 +1111,7 @@ static void batadv_iv_ogm_process(const struct ethhdr *ethhdr,
26259 + batadv_iv_ogm_slide_own_bcast_window(hard_iface);
26260 + batadv_iv_ogm_queue_add(bat_priv, hard_iface->bat_iv.ogm_buff,
26261 +@@ -1251,7 +1251,7 @@ static void batadv_iv_ogm_process(const struct ethhdr *ethhdr,
26262 return;
26263
26264 /* could be changed by schedule_own_packet() */
26265 @@ -93745,24 +95011,24 @@ index 0a8a80c..f7e89aa 100644
26266
26267 if (batadv_ogm_packet->flags & BATADV_DIRECTLINK)
26268 has_directlink_flag = 1;
26269 -diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
26270 -index c478e6b..469fd2f 100644
26271 ---- a/net/batman-adv/hard-interface.c
26272 -+++ b/net/batman-adv/hard-interface.c
26273 -@@ -453,7 +453,7 @@ int batadv_hardif_enable_interface(struct batadv_hard_iface *hard_iface,
26274 - hard_iface->batman_adv_ptype.dev = hard_iface->net_dev;
26275 - dev_add_pack(&hard_iface->batman_adv_ptype);
26276 -
26277 -- atomic_set(&hard_iface->frag_seqno, 1);
26278 -+ atomic_set_unchecked(&hard_iface->frag_seqno, 1);
26279 - batadv_info(hard_iface->soft_iface, "Adding interface: %s\n",
26280 - hard_iface->net_dev->name);
26281 -
26282 +diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
26283 +index 6ddb614..ca7e886 100644
26284 +--- a/net/batman-adv/fragmentation.c
26285 ++++ b/net/batman-adv/fragmentation.c
26286 +@@ -447,7 +447,7 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
26287 + frag_header.packet_type = BATADV_UNICAST_FRAG;
26288 + frag_header.version = BATADV_COMPAT_VERSION;
26289 + frag_header.ttl = BATADV_TTL;
26290 +- frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
26291 ++ frag_header.seqno = htons(atomic_inc_return_unchecked(&bat_priv->frag_seqno));
26292 + frag_header.reserved = 0;
26293 + frag_header.no = 0;
26294 + frag_header.total_size = htons(skb->len);
26295 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
26296 -index 813db4e..847edac 100644
26297 +index a8f99d1..11797ef 100644
26298 --- a/net/batman-adv/soft-interface.c
26299 +++ b/net/batman-adv/soft-interface.c
26300 -@@ -263,7 +263,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
26301 +@@ -278,7 +278,7 @@ static int batadv_interface_tx(struct sk_buff *skb,
26302 primary_if->net_dev->dev_addr, ETH_ALEN);
26303
26304 /* set broadcast sequence number */
26305 @@ -93771,7 +95037,7 @@ index 813db4e..847edac 100644
26306 bcast_packet->seqno = htonl(seqno);
26307
26308 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
26309 -@@ -483,7 +483,7 @@ static int batadv_softif_init_late(struct net_device *dev)
26310 +@@ -688,7 +688,7 @@ static int batadv_softif_init_late(struct net_device *dev)
26311 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
26312
26313 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
26314 @@ -93780,11 +95046,20 @@ index 813db4e..847edac 100644
26315 atomic_set(&bat_priv->tt.vn, 0);
26316 atomic_set(&bat_priv->tt.local_changes, 0);
26317 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
26318 +@@ -700,7 +700,7 @@ static int batadv_softif_init_late(struct net_device *dev)
26319 +
26320 + /* randomize initial seqno to avoid collision */
26321 + get_random_bytes(&random_seqno, sizeof(random_seqno));
26322 +- atomic_set(&bat_priv->frag_seqno, random_seqno);
26323 ++ atomic_set_unchecked(&bat_priv->frag_seqno, random_seqno);
26324 +
26325 + bat_priv->primary_if = NULL;
26326 + bat_priv->num_ifaces = 0;
26327 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
26328 -index b2c94e1..3d47e07 100644
26329 +index 91dd369..9c25750 100644
26330 --- a/net/batman-adv/types.h
26331 +++ b/net/batman-adv/types.h
26332 -@@ -51,7 +51,7 @@
26333 +@@ -56,7 +56,7 @@
26334 struct batadv_hard_iface_bat_iv {
26335 unsigned char *ogm_buff;
26336 int ogm_buff_len;
26337 @@ -93793,16 +95068,16 @@ index b2c94e1..3d47e07 100644
26338 };
26339
26340 /**
26341 -@@ -76,7 +76,7 @@ struct batadv_hard_iface {
26342 - int16_t if_num;
26343 - char if_status;
26344 - struct net_device *net_dev;
26345 +@@ -673,7 +673,7 @@ struct batadv_priv {
26346 + atomic_t bonding;
26347 + atomic_t fragmentation;
26348 + atomic_t packet_size_max;
26349 - atomic_t frag_seqno;
26350 + atomic_unchecked_t frag_seqno;
26351 - uint8_t num_bcasts;
26352 - struct kobject *hardif_obj;
26353 - atomic_t refcount;
26354 -@@ -560,7 +560,7 @@ struct batadv_priv {
26355 + #ifdef CONFIG_BATMAN_ADV_BLA
26356 + atomic_t bridge_loop_avoidance;
26357 + #endif
26358 +@@ -687,7 +687,7 @@ struct batadv_priv {
26359 #ifdef CONFIG_BATMAN_ADV_DEBUG
26360 atomic_t log_level;
26361 #endif
26362 @@ -93811,24 +95086,11 @@ index b2c94e1..3d47e07 100644
26363 atomic_t bcast_queue_left;
26364 atomic_t batman_queue_left;
26365 char num_ifaces;
26366 -diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c
26367 -index 48b31d3..62a0bcb 100644
26368 ---- a/net/batman-adv/unicast.c
26369 -+++ b/net/batman-adv/unicast.c
26370 -@@ -272,7 +272,7 @@ int batadv_frag_send_skb(struct sk_buff *skb, struct batadv_priv *bat_priv,
26371 - frag1->flags = BATADV_UNI_FRAG_HEAD | large_tail;
26372 - frag2->flags = large_tail;
26373 -
26374 -- seqno = atomic_add_return(2, &hard_iface->frag_seqno);
26375 -+ seqno = atomic_add_return_unchecked(2, &hard_iface->frag_seqno);
26376 - frag1->seqno = htons(seqno - 1);
26377 - frag2->seqno = htons(seqno);
26378 -
26379 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
26380 -index fa4bf66..e92948f 100644
26381 +index 7552f9e..074ce29 100644
26382 --- a/net/bluetooth/hci_sock.c
26383 +++ b/net/bluetooth/hci_sock.c
26384 -@@ -932,7 +932,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
26385 +@@ -1052,7 +1052,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
26386 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
26387 }
26388
26389 @@ -93838,10 +95100,10 @@ index fa4bf66..e92948f 100644
26390 err = -EFAULT;
26391 break;
26392 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
26393 -index 63fa111..b166ec6 100644
26394 +index 4af3821..f2ba46c 100644
26395 --- a/net/bluetooth/l2cap_core.c
26396 +++ b/net/bluetooth/l2cap_core.c
26397 -@@ -3511,8 +3511,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
26398 +@@ -3500,8 +3500,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
26399 break;
26400
26401 case L2CAP_CONF_RFC:
26402 @@ -93855,10 +95117,10 @@ index 63fa111..b166ec6 100644
26403 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
26404 rfc.mode != chan->mode)
26405 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
26406 -index 0098af8..fb5a31f 100644
26407 +index 7cc24d2..e83f531 100644
26408 --- a/net/bluetooth/l2cap_sock.c
26409 +++ b/net/bluetooth/l2cap_sock.c
26410 -@@ -485,7 +485,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
26411 +@@ -545,7 +545,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
26412 struct sock *sk = sock->sk;
26413 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
26414 struct l2cap_options opts;
26415 @@ -93868,7 +95130,7 @@ index 0098af8..fb5a31f 100644
26416 u32 opt;
26417
26418 BT_DBG("sk %p", sk);
26419 -@@ -507,7 +508,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
26420 +@@ -567,7 +568,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
26421 opts.max_tx = chan->max_tx;
26422 opts.txwin_size = chan->tx_win;
26423
26424 @@ -93877,7 +95139,7 @@ index 0098af8..fb5a31f 100644
26425 if (copy_from_user((char *) &opts, optval, len)) {
26426 err = -EFAULT;
26427 break;
26428 -@@ -587,7 +588,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26429 +@@ -647,7 +648,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26430 struct bt_security sec;
26431 struct bt_power pwr;
26432 struct l2cap_conn *conn;
26433 @@ -93887,7 +95149,7 @@ index 0098af8..fb5a31f 100644
26434 u32 opt;
26435
26436 BT_DBG("sk %p", sk);
26437 -@@ -610,7 +612,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26438 +@@ -670,7 +672,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26439
26440 sec.level = BT_SECURITY_LOW;
26441
26442 @@ -93896,7 +95158,7 @@ index 0098af8..fb5a31f 100644
26443 if (copy_from_user((char *) &sec, optval, len)) {
26444 err = -EFAULT;
26445 break;
26446 -@@ -707,7 +709,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26447 +@@ -770,7 +772,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
26448
26449 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
26450
26451 @@ -93906,10 +95168,10 @@ index 0098af8..fb5a31f 100644
26452 err = -EFAULT;
26453 break;
26454 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
26455 -index c1c6028..17e8dcc 100644
26456 +index 3c2d3e4..884855a 100644
26457 --- a/net/bluetooth/rfcomm/sock.c
26458 +++ b/net/bluetooth/rfcomm/sock.c
26459 -@@ -665,7 +665,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
26460 +@@ -672,7 +672,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
26461 struct sock *sk = sock->sk;
26462 struct bt_security sec;
26463 int err = 0;
26464 @@ -93918,7 +95180,7 @@ index c1c6028..17e8dcc 100644
26465 u32 opt;
26466
26467 BT_DBG("sk %p", sk);
26468 -@@ -687,7 +687,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
26469 +@@ -694,7 +694,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
26470
26471 sec.level = BT_SECURITY_LOW;
26472
26473 @@ -93949,46 +95211,6 @@ index 84fcf9f..e389b27 100644
26474
26475 tty_port_close(&dev->port, tty, filp);
26476 }
26477 -diff --git a/net/bridge/netfilter/ebt_ulog.c b/net/bridge/netfilter/ebt_ulog.c
26478 -index 5180938..7c470c3 100644
26479 ---- a/net/bridge/netfilter/ebt_ulog.c
26480 -+++ b/net/bridge/netfilter/ebt_ulog.c
26481 -@@ -181,6 +181,7 @@ static void ebt_ulog_packet(struct net *net, unsigned int hooknr,
26482 - ub->qlen++;
26483 -
26484 - pm = nlmsg_data(nlh);
26485 -+ memset(pm, 0, sizeof(*pm));
26486 -
26487 - /* Fill in the ulog data */
26488 - pm->version = EBT_ULOG_VERSION;
26489 -@@ -193,8 +194,6 @@ static void ebt_ulog_packet(struct net *net, unsigned int hooknr,
26490 - pm->hook = hooknr;
26491 - if (uloginfo->prefix != NULL)
26492 - strcpy(pm->prefix, uloginfo->prefix);
26493 -- else
26494 -- *(pm->prefix) = '\0';
26495 -
26496 - if (in) {
26497 - strcpy(pm->physindev, in->name);
26498 -@@ -204,16 +203,14 @@ static void ebt_ulog_packet(struct net *net, unsigned int hooknr,
26499 - strcpy(pm->indev, br_port_get_rcu(in)->br->dev->name);
26500 - else
26501 - strcpy(pm->indev, in->name);
26502 -- } else
26503 -- pm->indev[0] = pm->physindev[0] = '\0';
26504 -+ }
26505 -
26506 - if (out) {
26507 - /* If out exists, then out is a bridge port */
26508 - strcpy(pm->physoutdev, out->name);
26509 - /* rcu_read_lock()ed by nf_hook_slow */
26510 - strcpy(pm->outdev, br_port_get_rcu(out)->br->dev->name);
26511 -- } else
26512 -- pm->outdev[0] = pm->physoutdev[0] = '\0';
26513 -+ }
26514 -
26515 - if (skb_copy_bits(skb, -ETH_HLEN, pm->data, copy_len) < 0)
26516 - BUG();
26517 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
26518 index ac78024..161a80c 100644
26519 --- a/net/bridge/netfilter/ebtables.c
26520 @@ -94064,7 +95286,7 @@ index 0f45522..dab651f 100644
26521 list_del(&p->list);
26522 goto out;
26523 diff --git a/net/can/af_can.c b/net/can/af_can.c
26524 -index 3ab8dd2..b9aef13 100644
26525 +index d249874..99e197b 100644
26526 --- a/net/can/af_can.c
26527 +++ b/net/can/af_can.c
26528 @@ -862,7 +862,7 @@ static const struct net_proto_family can_family_ops = {
26529 @@ -94130,7 +95352,7 @@ index 4a5df7b..9ad1f1d 100644
26530
26531 switch (ss->ss_family) {
26532 diff --git a/net/compat.c b/net/compat.c
26533 -index dd32e34..6066f87 100644
26534 +index dd32e34..0529c9c 100644
26535 --- a/net/compat.c
26536 +++ b/net/compat.c
26537 @@ -73,9 +73,9 @@ int get_compat_msghdr(struct msghdr *kmsg, struct compat_msghdr __user *umsg)
26538 @@ -94260,6 +95482,15 @@ index dd32e34..6066f87 100644
26539 struct group_filter __user *kgf;
26540 int __user *koptlen;
26541 u32 interface, fmode, numsrc;
26542 +@@ -783,7 +783,7 @@ asmlinkage long compat_sys_recvmmsg(int fd, struct compat_mmsghdr __user *mmsg,
26543 + if (COMPAT_USE_64BIT_TIME)
26544 + return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
26545 + flags | MSG_CMSG_COMPAT,
26546 +- (struct timespec *) timeout);
26547 ++ (struct timespec __force_kernel *) timeout);
26548 +
26549 + if (timeout == NULL)
26550 + return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
26551 @@ -808,7 +808,7 @@ asmlinkage long compat_sys_socketcall(int call, u32 __user *args)
26552
26553 if (call < SYS_SOCKET || call > SYS_SENDMMSG)
26554 @@ -94270,7 +95501,7 @@ index dd32e34..6066f87 100644
26555 a0 = a[0];
26556 a1 = a[1];
26557 diff --git a/net/core/datagram.c b/net/core/datagram.c
26558 -index af814e7..3d761de 100644
26559 +index a16ed7b..eb44d17 100644
26560 --- a/net/core/datagram.c
26561 +++ b/net/core/datagram.c
26562 @@ -301,7 +301,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
26563 @@ -94283,10 +95514,10 @@ index af814e7..3d761de 100644
26564
26565 return err;
26566 diff --git a/net/core/dev.c b/net/core/dev.c
26567 -index 3d13874..6e78dc7 100644
26568 +index 0ce469e..dfb53d2 100644
26569 --- a/net/core/dev.c
26570 +++ b/net/core/dev.c
26571 -@@ -1680,14 +1680,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
26572 +@@ -1684,14 +1684,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
26573 {
26574 if (skb_shinfo(skb)->tx_flags & SKBTX_DEV_ZEROCOPY) {
26575 if (skb_copy_ubufs(skb, GFP_ATOMIC)) {
26576 @@ -94303,7 +95534,7 @@ index 3d13874..6e78dc7 100644
26577 kfree_skb(skb);
26578 return NET_RX_DROP;
26579 }
26580 -@@ -2428,7 +2428,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
26581 +@@ -2434,7 +2434,7 @@ static int illegal_highdma(struct net_device *dev, struct sk_buff *skb)
26582
26583 struct dev_gso_cb {
26584 void (*destructor)(struct sk_buff *skb);
26585 @@ -94312,7 +95543,7 @@ index 3d13874..6e78dc7 100644
26586
26587 #define DEV_GSO_CB(skb) ((struct dev_gso_cb *)(skb)->cb)
26588
26589 -@@ -3203,7 +3203,7 @@ enqueue:
26590 +@@ -3222,7 +3222,7 @@ enqueue:
26591
26592 local_irq_restore(flags);
26593
26594 @@ -94321,7 +95552,7 @@ index 3d13874..6e78dc7 100644
26595 kfree_skb(skb);
26596 return NET_RX_DROP;
26597 }
26598 -@@ -3275,7 +3275,7 @@ int netif_rx_ni(struct sk_buff *skb)
26599 +@@ -3294,7 +3294,7 @@ int netif_rx_ni(struct sk_buff *skb)
26600 }
26601 EXPORT_SYMBOL(netif_rx_ni);
26602
26603 @@ -94330,7 +95561,7 @@ index 3d13874..6e78dc7 100644
26604 {
26605 struct softnet_data *sd = &__get_cpu_var(softnet_data);
26606
26607 -@@ -3609,7 +3609,7 @@ ncls:
26608 +@@ -3628,7 +3628,7 @@ ncls:
26609 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
26610 } else {
26611 drop:
26612 @@ -94339,7 +95570,7 @@ index 3d13874..6e78dc7 100644
26613 kfree_skb(skb);
26614 /* Jamal, now you will not able to escape explaining
26615 * me how you were going to use this. :-)
26616 -@@ -4269,7 +4269,7 @@ void netif_napi_del(struct napi_struct *napi)
26617 +@@ -4288,7 +4288,7 @@ void netif_napi_del(struct napi_struct *napi)
26618 }
26619 EXPORT_SYMBOL(netif_napi_del);
26620
26621 @@ -94348,7 +95579,7 @@ index 3d13874..6e78dc7 100644
26622 {
26623 struct softnet_data *sd = &__get_cpu_var(softnet_data);
26624 unsigned long time_limit = jiffies + 2;
26625 -@@ -5973,7 +5973,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
26626 +@@ -6177,7 +6177,7 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
26627 } else {
26628 netdev_stats_to_stats64(storage, &dev->stats);
26629 }
26630 @@ -94376,67 +95607,18 @@ index 5b7d0e1..cb960fc 100644
26631 }
26632 EXPORT_SYMBOL(dev_load);
26633 diff --git a/net/core/filter.c b/net/core/filter.c
26634 -index 01b7808..ad30d62 100644
26635 +index ad30d62..c2757df 100644
26636 --- a/net/core/filter.c
26637 +++ b/net/core/filter.c
26638 -@@ -36,7 +36,6 @@
26639 - #include <asm/uaccess.h>
26640 - #include <asm/unaligned.h>
26641 - #include <linux/filter.h>
26642 --#include <linux/reciprocal_div.h>
26643 - #include <linux/ratelimit.h>
26644 - #include <linux/seccomp.h>
26645 - #include <linux/if_vlan.h>
26646 -@@ -166,7 +165,7 @@ unsigned int sk_run_filter(const struct sk_buff *skb,
26647 - A /= X;
26648 - continue;
26649 - case BPF_S_ALU_DIV_K:
26650 -- A = reciprocal_divide(A, K);
26651 -+ A /= K;
26652 - continue;
26653 - case BPF_S_ALU_MOD_X:
26654 - if (X == 0)
26655 -@@ -553,11 +552,6 @@ int sk_chk_filter(struct sock_filter *filter, unsigned int flen)
26656 - /* Some instructions need special checks */
26657 - switch (code) {
26658 - case BPF_S_ALU_DIV_K:
26659 -- /* check for division by zero */
26660 -- if (ftest->k == 0)
26661 -- return -EINVAL;
26662 -- ftest->k = reciprocal_value(ftest->k);
26663 -- break;
26664 - case BPF_S_ALU_MOD_K:
26665 - /* check for division by zero */
26666 - if (ftest->k == 0)
26667 -@@ -853,27 +847,7 @@ void sk_decode_filter(struct sock_filter *filt, struct sock_filter *to)
26668 - to->code = decodes[code];
26669 - to->jt = filt->jt;
26670 - to->jf = filt->jf;
26671 --
26672 -- if (code == BPF_S_ALU_DIV_K) {
26673 -- /*
26674 -- * When loaded this rule user gave us X, which was
26675 -- * translated into R = r(X). Now we calculate the
26676 -- * RR = r(R) and report it back. If next time this
26677 -- * value is loaded and RRR = r(RR) is calculated
26678 -- * then the R == RRR will be true.
26679 -- *
26680 -- * One exception. X == 1 translates into R == 0 and
26681 -- * we can't calculate RR out of it with r().
26682 -- */
26683 --
26684 -- if (filt->k == 0)
26685 -- to->k = 1;
26686 -- else
26687 -- to->k = reciprocal_value(filt->k);
26688 --
26689 -- BUG_ON(reciprocal_value(to->k) != filt->k);
26690 -- } else
26691 -- to->k = filt->k;
26692 -+ to->k = filt->k;
26693 - }
26694 +@@ -679,7 +679,7 @@ int sk_unattached_filter_create(struct sk_filter **pfp,
26695 + fp = kmalloc(sk_filter_size(fprog->len), GFP_KERNEL);
26696 + if (!fp)
26697 + return -ENOMEM;
26698 +- memcpy(fp->insns, fprog->filter, fsize);
26699 ++ memcpy(fp->insns, (void __force_kernel *)fprog->filter, fsize);
26700
26701 - int sk_get_filter(struct sock *sk, struct sock_filter __user *ubuf, unsigned int len)
26702 + atomic_set(&fp->refcnt, 1);
26703 + fp->len = fprog->len;
26704 diff --git a/net/core/flow.c b/net/core/flow.c
26705 index dfa602c..3103d88 100644
26706 --- a/net/core/flow.c
26707 @@ -94478,7 +95660,7 @@ index dfa602c..3103d88 100644
26708 fle->object = flo;
26709 else
26710 diff --git a/net/core/iovec.c b/net/core/iovec.c
26711 -index 7d84ea1..55385ae 100644
26712 +index b618694..192bbba 100644
26713 --- a/net/core/iovec.c
26714 +++ b/net/core/iovec.c
26715 @@ -42,7 +42,7 @@ int verify_iovec(struct msghdr *m, struct iovec *iov, struct sockaddr_storage *a
26716 @@ -94500,10 +95682,10 @@ index 7d84ea1..55385ae 100644
26717
26718 m->msg_iov = iov;
26719 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
26720 -index 11af243..7357d84 100644
26721 +index 932c6d7..7c7aa10 100644
26722 --- a/net/core/neighbour.c
26723 +++ b/net/core/neighbour.c
26724 -@@ -2774,7 +2774,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
26725 +@@ -2775,7 +2775,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
26726 void __user *buffer, size_t *lenp, loff_t *ppos)
26727 {
26728 int size, ret;
26729 @@ -94531,12 +95713,12 @@ index 2bf8329..7960607 100644
26730
26731 return 0;
26732 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
26733 -index d954b56..b0a0f7a 100644
26734 +index f3edf96..3cd8b40 100644
26735 --- a/net/core/net-sysfs.c
26736 +++ b/net/core/net-sysfs.c
26737 -@@ -1356,7 +1356,7 @@ void netdev_class_remove_file(struct class_attribute *class_attr)
26738 +@@ -1358,7 +1358,7 @@ void netdev_class_remove_file_ns(struct class_attribute *class_attr,
26739 }
26740 - EXPORT_SYMBOL(netdev_class_remove_file);
26741 + EXPORT_SYMBOL(netdev_class_remove_file_ns);
26742
26743 -int netdev_kobject_init(void)
26744 +int __init netdev_kobject_init(void)
26745 @@ -94584,7 +95766,7 @@ index 81d3a9a..a0bd7a8 100644
26746 return error;
26747 }
26748 diff --git a/net/core/netpoll.c b/net/core/netpoll.c
26749 -index 0c1482c..f7ae314 100644
26750 +index 19fe9c7..b6bb620 100644
26751 --- a/net/core/netpoll.c
26752 +++ b/net/core/netpoll.c
26753 @@ -435,7 +435,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
26754 @@ -94606,7 +95788,7 @@ index 0c1482c..f7ae314 100644
26755 iph->ttl = 64;
26756 iph->protocol = IPPROTO_UDP;
26757 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
26758 -index 2a0e21d..6ad7642 100644
26759 +index cf67144..12bf94c 100644
26760 --- a/net/core/rtnetlink.c
26761 +++ b/net/core/rtnetlink.c
26762 @@ -58,7 +58,7 @@ struct rtnl_link {
26763 @@ -94685,10 +95867,19 @@ index b442e7e..6f5b5a2 100644
26764 {
26765 struct socket *sock;
26766 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
26767 -index 743e6eb..a399a6d 100644
26768 +index 06e72d3..19dfa7b 100644
26769 --- a/net/core/skbuff.c
26770 +++ b/net/core/skbuff.c
26771 -@@ -3104,13 +3104,15 @@ void __init skb_init(void)
26772 +@@ -2034,7 +2034,7 @@ EXPORT_SYMBOL(__skb_checksum);
26773 + __wsum skb_checksum(const struct sk_buff *skb, int offset,
26774 + int len, __wsum csum)
26775 + {
26776 +- const struct skb_checksum_ops ops = {
26777 ++ static const struct skb_checksum_ops ops = {
26778 + .update = csum_partial_ext,
26779 + .combine = csum_block_add_ext,
26780 + };
26781 +@@ -3147,13 +3147,15 @@ void __init skb_init(void)
26782 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
26783 sizeof(struct sk_buff),
26784 0,
26785 @@ -94707,7 +95898,7 @@ index 743e6eb..a399a6d 100644
26786 }
26787
26788 diff --git a/net/core/sock.c b/net/core/sock.c
26789 -index 5cec994..81aa1dd 100644
26790 +index 5393b4b..997c88b 100644
26791 --- a/net/core/sock.c
26792 +++ b/net/core/sock.c
26793 @@ -393,7 +393,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
26794 @@ -94755,7 +95946,7 @@ index 5cec994..81aa1dd 100644
26795 goto discard_and_relse;
26796 }
26797
26798 -@@ -949,12 +949,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26799 +@@ -950,12 +950,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26800 struct timeval tm;
26801 } v;
26802
26803 @@ -94771,7 +95962,7 @@ index 5cec994..81aa1dd 100644
26804 return -EINVAL;
26805
26806 memset(&v, 0, sizeof(v));
26807 -@@ -1106,11 +1106,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26808 +@@ -1107,11 +1107,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26809
26810 case SO_PEERNAME:
26811 {
26812 @@ -94785,7 +95976,7 @@ index 5cec994..81aa1dd 100644
26813 return -EINVAL;
26814 if (copy_to_user(optval, address, len))
26815 return -EFAULT;
26816 -@@ -1183,7 +1183,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26817 +@@ -1188,7 +1188,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
26818
26819 if (len > lv)
26820 len = lv;
26821 @@ -94794,7 +95985,7 @@ index 5cec994..81aa1dd 100644
26822 return -EFAULT;
26823 lenout:
26824 if (put_user(len, optlen))
26825 -@@ -2326,7 +2326,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
26826 +@@ -2351,7 +2351,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
26827 */
26828 smp_wmb();
26829 atomic_set(&sk->sk_refcnt, 1);
26830 @@ -94803,7 +95994,7 @@ index 5cec994..81aa1dd 100644
26831 }
26832 EXPORT_SYMBOL(sock_init_data);
26833
26834 -@@ -2451,6 +2451,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
26835 +@@ -2476,6 +2476,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
26836 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
26837 int level, int type)
26838 {
26839 @@ -94811,7 +96002,7 @@ index 5cec994..81aa1dd 100644
26840 struct sock_exterr_skb *serr;
26841 struct sk_buff *skb, *skb2;
26842 int copied, err;
26843 -@@ -2472,7 +2473,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
26844 +@@ -2497,7 +2498,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
26845 sock_recv_timestamp(msg, sk, skb);
26846
26847 serr = SKB_EXT_ERR(skb);
26848 @@ -94964,6 +96155,19 @@ index dd4d506..fb2fb87 100644
26849 };
26850
26851 static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gfp)
26852 +diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
26853 +index dd0dfb2..fdbc764 100644
26854 +--- a/net/decnet/dn_dev.c
26855 ++++ b/net/decnet/dn_dev.c
26856 +@@ -200,7 +200,7 @@ static struct dn_dev_sysctl_table {
26857 + .extra1 = &min_t3,
26858 + .extra2 = &max_t3
26859 + },
26860 +- {0}
26861 ++ { }
26862 + },
26863 + };
26864 +
26865 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
26866 index 5325b54..a0d4d69 100644
26867 --- a/net/decnet/sysctl_net_decnet.c
26868 @@ -94986,41 +96190,26 @@ index 5325b54..a0d4d69 100644
26869 return -EFAULT;
26870
26871 *lenp = len;
26872 -diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
26873 -index 008f337..b03b8c9 100644
26874 ---- a/net/ieee802154/6lowpan.c
26875 -+++ b/net/ieee802154/6lowpan.c
26876 -@@ -548,7 +548,7 @@ static int lowpan_header_create(struct sk_buff *skb,
26877 - hc06_ptr += 3;
26878 - } else {
26879 - /* compress nothing */
26880 -- memcpy(hc06_ptr, &hdr, 4);
26881 -+ memcpy(hc06_ptr, hdr, 4);
26882 - /* replace the top byte with new ECN | DSCP format */
26883 - *hc06_ptr = tmp;
26884 - hc06_ptr += 4;
26885 -diff --git a/net/ieee802154/nl-phy.c b/net/ieee802154/nl-phy.c
26886 -index 22b1a70..4efd237 100644
26887 ---- a/net/ieee802154/nl-phy.c
26888 -+++ b/net/ieee802154/nl-phy.c
26889 -@@ -224,8 +224,10 @@ static int ieee802154_add_iface(struct sk_buff *skb,
26890 -
26891 - if (info->attrs[IEEE802154_ATTR_DEV_TYPE]) {
26892 - type = nla_get_u8(info->attrs[IEEE802154_ATTR_DEV_TYPE]);
26893 -- if (type >= __IEEE802154_DEV_MAX)
26894 -- return -EINVAL;
26895 -+ if (type >= __IEEE802154_DEV_MAX) {
26896 -+ rc = -EINVAL;
26897 -+ goto nla_put_failure;
26898 -+ }
26899 - }
26900 +diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c
26901 +index 1865fdf..581a595 100644
26902 +--- a/net/ieee802154/dgram.c
26903 ++++ b/net/ieee802154/dgram.c
26904 +@@ -315,8 +315,9 @@ static int dgram_recvmsg(struct kiocb *iocb, struct sock *sk,
26905 + if (saddr) {
26906 + saddr->family = AF_IEEE802154;
26907 + saddr->addr = mac_cb(skb)->sa;
26908 ++ }
26909 ++ if (addr_len)
26910 + *addr_len = sizeof(*saddr);
26911 +- }
26912
26913 - dev = phy->add_iface(phy, devname, type);
26914 + if (flags & MSG_TRUNC)
26915 + copied = skb->len;
26916 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
26917 -index cfeb85c..385989a 100644
26918 +index 70011e0..454ca6a 100644
26919 --- a/net/ipv4/af_inet.c
26920 +++ b/net/ipv4/af_inet.c
26921 -@@ -1675,13 +1675,9 @@ static int __init inet_init(void)
26922 +@@ -1683,13 +1683,9 @@ static int __init inet_init(void)
26923
26924 BUILD_BUG_ON(sizeof(struct inet_skb_parm) > FIELD_SIZEOF(struct sk_buff, cb));
26925
26926 @@ -95035,7 +96224,7 @@ index cfeb85c..385989a 100644
26927
26928 rc = proto_register(&udp_prot, 1);
26929 if (rc)
26930 -@@ -1790,8 +1786,6 @@ out_unregister_udp_proto:
26931 +@@ -1796,8 +1792,6 @@ out_unregister_udp_proto:
26932 proto_unregister(&udp_prot);
26933 out_unregister_tcp_proto:
26934 proto_unregister(&tcp_prot);
26935 @@ -95116,10 +96305,10 @@ index a1b5bcb..62ec5c6 100644
26936 #endif
26937 if (dflt != &ipv4_devconf_dflt)
26938 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
26939 -index b3f627a..b0f3e99 100644
26940 +index d846304..d0622bb 100644
26941 --- a/net/ipv4/fib_frontend.c
26942 +++ b/net/ipv4/fib_frontend.c
26943 -@@ -1017,12 +1017,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
26944 +@@ -1015,12 +1015,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
26945 #ifdef CONFIG_IP_ROUTE_MULTIPATH
26946 fib_sync_up(dev);
26947 #endif
26948 @@ -95134,7 +96323,7 @@ index b3f627a..b0f3e99 100644
26949 if (ifa->ifa_dev->ifa_list == NULL) {
26950 /* Last address was deleted from this interface.
26951 * Disable IP.
26952 -@@ -1058,7 +1058,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
26953 +@@ -1056,7 +1056,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
26954 #ifdef CONFIG_IP_ROUTE_MULTIPATH
26955 fib_sync_up(dev);
26956 #endif
26957 @@ -95144,7 +96333,7 @@ index b3f627a..b0f3e99 100644
26958 break;
26959 case NETDEV_DOWN:
26960 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
26961 -index d5dbca5..6251d5f 100644
26962 +index e63f47a..e5c531d 100644
26963 --- a/net/ipv4/fib_semantics.c
26964 +++ b/net/ipv4/fib_semantics.c
26965 @@ -766,7 +766,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
26966 @@ -95157,23 +96346,23 @@ index d5dbca5..6251d5f 100644
26967 return nh->nh_saddr;
26968 }
26969 diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
26970 -index 6acb541..9ea617d 100644
26971 +index fc0e649..febfa65 100644
26972 --- a/net/ipv4/inet_connection_sock.c
26973 +++ b/net/ipv4/inet_connection_sock.c
26974 -@@ -37,7 +37,7 @@ struct local_ports sysctl_local_ports __read_mostly = {
26975 - .range = { 32768, 61000 },
26976 - };
26977 +@@ -29,7 +29,7 @@ const char inet_csk_timer_bug_msg[] = "inet_csk BUG: unknown timer value\n";
26978 + EXPORT_SYMBOL(inet_csk_timer_bug_msg);
26979 + #endif
26980
26981 -unsigned long *sysctl_local_reserved_ports;
26982 +unsigned long sysctl_local_reserved_ports[65536 / 8 / sizeof(unsigned long)];
26983 EXPORT_SYMBOL(sysctl_local_reserved_ports);
26984
26985 - void inet_get_local_port_range(int *low, int *high)
26986 + void inet_get_local_port_range(struct net *net, int *low, int *high)
26987 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
26988 -index 96da9c7..b956690 100644
26989 +index 8b9cf27..0d8d592 100644
26990 --- a/net/ipv4/inet_hashtables.c
26991 +++ b/net/ipv4/inet_hashtables.c
26992 -@@ -18,12 +18,15 @@
26993 +@@ -18,6 +18,7 @@
26994 #include <linux/sched.h>
26995 #include <linux/slab.h>
26996 #include <linux/wait.h>
26997 @@ -95181,8 +96370,9 @@ index 96da9c7..b956690 100644
26998
26999 #include <net/inet_connection_sock.h>
27000 #include <net/inet_hashtables.h>
27001 - #include <net/secure_seq.h>
27002 - #include <net/ip.h>
27003 +@@ -49,6 +50,8 @@ static unsigned int inet_sk_ehashfn(const struct sock *sk)
27004 + return inet_ehashfn(net, laddr, lport, faddr, fport);
27005 + }
27006
27007 +extern void gr_update_task_in_ip_table(struct task_struct *task, const struct inet_sock *inet);
27008 +
27009 @@ -95214,10 +96404,10 @@ index 33d5537..da337a4 100644
27010 secure_ip_id(daddr->addr.a4) :
27011 secure_ipv6_id(daddr->addr.a6));
27012 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
27013 -index b66910a..cfe416e 100644
27014 +index 2481993..2d9a7a7 100644
27015 --- a/net/ipv4/ip_fragment.c
27016 +++ b/net/ipv4/ip_fragment.c
27017 -@@ -282,7 +282,7 @@ static inline int ip_frag_too_far(struct ipq *qp)
27018 +@@ -283,7 +283,7 @@ static inline int ip_frag_too_far(struct ipq *qp)
27019 return 0;
27020
27021 start = qp->rid;
27022 @@ -95226,7 +96416,7 @@ index b66910a..cfe416e 100644
27023 qp->rid = end;
27024
27025 rc = qp->q.fragments && (end - start) > max;
27026 -@@ -759,12 +759,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
27027 +@@ -760,12 +760,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
27028
27029 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
27030 {
27031 @@ -95241,7 +96431,7 @@ index b66910a..cfe416e 100644
27032 if (table == NULL)
27033 goto err_alloc;
27034
27035 -@@ -775,9 +774,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
27036 +@@ -776,9 +775,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
27037 /* Don't export sysctls to unprivileged users */
27038 if (net->user_ns != &init_user_ns)
27039 table[0].procname = NULL;
27040 @@ -95254,7 +96444,7 @@ index b66910a..cfe416e 100644
27041 if (hdr == NULL)
27042 goto err_reg;
27043
27044 -@@ -785,8 +785,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
27045 +@@ -786,8 +786,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
27046 return 0;
27047
27048 err_reg:
27049 @@ -95296,10 +96486,10 @@ index e560ef3..218c5c5 100644
27050 .maxtype = IFLA_GRE_MAX,
27051 .policy = ipgre_policy,
27052 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
27053 -index 23e6ab0..be67a57 100644
27054 +index ddf32a6..3fdeea9 100644
27055 --- a/net/ipv4/ip_sockglue.c
27056 +++ b/net/ipv4/ip_sockglue.c
27057 -@@ -1153,7 +1153,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
27058 +@@ -1172,7 +1172,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
27059 len = min_t(unsigned int, len, opt->optlen);
27060 if (put_user(len, optlen))
27061 return -EFAULT;
27062 @@ -95309,7 +96499,7 @@ index 23e6ab0..be67a57 100644
27063 return -EFAULT;
27064 return 0;
27065 }
27066 -@@ -1284,7 +1285,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
27067 +@@ -1303,7 +1304,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
27068 if (sk->sk_type != SOCK_STREAM)
27069 return -ENOPROTOOPT;
27070
27071 @@ -95319,7 +96509,7 @@ index 23e6ab0..be67a57 100644
27072 msg.msg_flags = flags;
27073
27074 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
27075 -index 26847e1..75d2d2f 100644
27076 +index 52b802a..b725179 100644
27077 --- a/net/ipv4/ip_vti.c
27078 +++ b/net/ipv4/ip_vti.c
27079 @@ -44,7 +44,7 @@
27080 @@ -95331,7 +96521,7 @@ index 26847e1..75d2d2f 100644
27081
27082 static int vti_net_id __read_mostly;
27083 static int vti_tunnel_init(struct net_device *dev);
27084 -@@ -425,7 +425,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
27085 +@@ -360,7 +360,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
27086 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
27087 };
27088
27089 @@ -95372,7 +96562,7 @@ index efa1138..20dbba0 100644
27090 return res;
27091 }
27092 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
27093 -index 7f80fb4..b0328f6 100644
27094 +index fe3e9f7..4956990 100644
27095 --- a/net/ipv4/ipip.c
27096 +++ b/net/ipv4/ipip.c
27097 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
27098 @@ -95384,7 +96574,7 @@ index 7f80fb4..b0328f6 100644
27099
27100 static int ipip_err(struct sk_buff *skb, u32 info)
27101 {
27102 -@@ -408,7 +408,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
27103 +@@ -409,7 +409,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
27104 [IFLA_IPTUN_PMTUDISC] = { .type = NLA_U8 },
27105 };
27106
27107 @@ -95393,30 +96583,11 @@ index 7f80fb4..b0328f6 100644
27108 .kind = "ipip",
27109 .maxtype = IFLA_IPTUN_MAX,
27110 .policy = ipip_policy,
27111 -diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
27112 -index 62212c7..1672409 100644
27113 ---- a/net/ipv4/ipmr.c
27114 -+++ b/net/ipv4/ipmr.c
27115 -@@ -157,9 +157,12 @@ static struct mr_table *ipmr_get_table(struct net *net, u32 id)
27116 - static int ipmr_fib_lookup(struct net *net, struct flowi4 *flp4,
27117 - struct mr_table **mrt)
27118 - {
27119 -+ int err;
27120 - struct ipmr_result res;
27121 -- struct fib_lookup_arg arg = { .result = &res, };
27122 -- int err;
27123 -+ struct fib_lookup_arg arg = {
27124 -+ .result = &res,
27125 -+ .flags = FIB_LOOKUP_NOREF,
27126 -+ };
27127 -
27128 - err = fib_rules_lookup(net->ipv4.mr_rules_ops,
27129 - flowi4_to_flowi(flp4), 0, &arg);
27130 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
27131 -index 85a4f21..1beb1f5 100644
27132 +index 59da7cd..e318de1 100644
27133 --- a/net/ipv4/netfilter/arp_tables.c
27134 +++ b/net/ipv4/netfilter/arp_tables.c
27135 -@@ -880,14 +880,14 @@ static int compat_table_info(const struct xt_table_info *info,
27136 +@@ -885,14 +885,14 @@ static int compat_table_info(const struct xt_table_info *info,
27137 #endif
27138
27139 static int get_info(struct net *net, void __user *user,
27140 @@ -95434,7 +96605,7 @@ index 85a4f21..1beb1f5 100644
27141 sizeof(struct arpt_getinfo));
27142 return -EINVAL;
27143 }
27144 -@@ -924,7 +924,7 @@ static int get_info(struct net *net, void __user *user,
27145 +@@ -929,7 +929,7 @@ static int get_info(struct net *net, void __user *user,
27146 info.size = private->size;
27147 strcpy(info.name, name);
27148
27149 @@ -95443,7 +96614,7 @@ index 85a4f21..1beb1f5 100644
27150 ret = -EFAULT;
27151 else
27152 ret = 0;
27153 -@@ -1683,7 +1683,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
27154 +@@ -1688,7 +1688,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
27155
27156 switch (cmd) {
27157 case ARPT_SO_GET_INFO:
27158 @@ -95452,7 +96623,7 @@ index 85a4f21..1beb1f5 100644
27159 break;
27160 case ARPT_SO_GET_ENTRIES:
27161 ret = compat_get_entries(sock_net(sk), user, len);
27162 -@@ -1728,7 +1728,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
27163 +@@ -1733,7 +1733,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
27164
27165 switch (cmd) {
27166 case ARPT_SO_GET_INFO:
27167 @@ -95462,10 +96633,10 @@ index 85a4f21..1beb1f5 100644
27168
27169 case ARPT_SO_GET_ENTRIES:
27170 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
27171 -index d23118d..6ad7277 100644
27172 +index 718dfbd..cef4152 100644
27173 --- a/net/ipv4/netfilter/ip_tables.c
27174 +++ b/net/ipv4/netfilter/ip_tables.c
27175 -@@ -1068,14 +1068,14 @@ static int compat_table_info(const struct xt_table_info *info,
27176 +@@ -1073,14 +1073,14 @@ static int compat_table_info(const struct xt_table_info *info,
27177 #endif
27178
27179 static int get_info(struct net *net, void __user *user,
27180 @@ -95483,7 +96654,7 @@ index d23118d..6ad7277 100644
27181 sizeof(struct ipt_getinfo));
27182 return -EINVAL;
27183 }
27184 -@@ -1112,7 +1112,7 @@ static int get_info(struct net *net, void __user *user,
27185 +@@ -1117,7 +1117,7 @@ static int get_info(struct net *net, void __user *user,
27186 info.size = private->size;
27187 strcpy(info.name, name);
27188
27189 @@ -95492,7 +96663,7 @@ index d23118d..6ad7277 100644
27190 ret = -EFAULT;
27191 else
27192 ret = 0;
27193 -@@ -1966,7 +1966,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
27194 +@@ -1971,7 +1971,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
27195
27196 switch (cmd) {
27197 case IPT_SO_GET_INFO:
27198 @@ -95501,7 +96672,7 @@ index d23118d..6ad7277 100644
27199 break;
27200 case IPT_SO_GET_ENTRIES:
27201 ret = compat_get_entries(sock_net(sk), user, len);
27202 -@@ -2013,7 +2013,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
27203 +@@ -2018,7 +2018,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
27204
27205 switch (cmd) {
27206 case IPT_SO_GET_INFO:
27207 @@ -95510,43 +96681,8 @@ index d23118d..6ad7277 100644
27208 break;
27209
27210 case IPT_SO_GET_ENTRIES:
27211 -diff --git a/net/ipv4/netfilter/ipt_ULOG.c b/net/ipv4/netfilter/ipt_ULOG.c
27212 -index cbc2215..9cb993c 100644
27213 ---- a/net/ipv4/netfilter/ipt_ULOG.c
27214 -+++ b/net/ipv4/netfilter/ipt_ULOG.c
27215 -@@ -220,6 +220,7 @@ static void ipt_ulog_packet(struct net *net,
27216 - ub->qlen++;
27217 -
27218 - pm = nlmsg_data(nlh);
27219 -+ memset(pm, 0, sizeof(*pm));
27220 -
27221 - /* We might not have a timestamp, get one */
27222 - if (skb->tstamp.tv64 == 0)
27223 -@@ -238,8 +239,6 @@ static void ipt_ulog_packet(struct net *net,
27224 - }
27225 - else if (loginfo->prefix[0] != '\0')
27226 - strncpy(pm->prefix, loginfo->prefix, sizeof(pm->prefix));
27227 -- else
27228 -- *(pm->prefix) = '\0';
27229 -
27230 - if (in && in->hard_header_len > 0 &&
27231 - skb->mac_header != skb->network_header &&
27232 -@@ -251,13 +250,9 @@ static void ipt_ulog_packet(struct net *net,
27233 -
27234 - if (in)
27235 - strncpy(pm->indev_name, in->name, sizeof(pm->indev_name));
27236 -- else
27237 -- pm->indev_name[0] = '\0';
27238 -
27239 - if (out)
27240 - strncpy(pm->outdev_name, out->name, sizeof(pm->outdev_name));
27241 -- else
27242 -- pm->outdev_name[0] = '\0';
27243 -
27244 - /* copy_len <= skb->len, so can't fail. */
27245 - if (skb_copy_bits(skb, 0, pm->payload, copy_len) < 0)
27246 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
27247 -index c482f7c..2784262 100644
27248 +index 242e7f4..a084e95 100644
27249 --- a/net/ipv4/ping.c
27250 +++ b/net/ipv4/ping.c
27251 @@ -55,7 +55,7 @@
27252 @@ -95558,7 +96694,7 @@ index c482f7c..2784262 100644
27253 EXPORT_SYMBOL_GPL(pingv6_ops);
27254
27255 static u16 ping_port_rover;
27256 -@@ -335,7 +335,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
27257 +@@ -334,7 +334,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
27258 return -ENODEV;
27259 }
27260 }
27261 @@ -95567,7 +96703,7 @@ index c482f7c..2784262 100644
27262 scoped);
27263 rcu_read_unlock();
27264
27265 -@@ -541,7 +541,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
27266 +@@ -542,7 +542,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
27267 }
27268 #if IS_ENABLED(CONFIG_IPV6)
27269 } else if (skb->protocol == htons(ETH_P_IPV6)) {
27270 @@ -95576,7 +96712,7 @@ index c482f7c..2784262 100644
27271 #endif
27272 }
27273
27274 -@@ -559,7 +559,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
27275 +@@ -560,7 +560,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
27276 info, (u8 *)icmph);
27277 #if IS_ENABLED(CONFIG_IPV6)
27278 } else if (family == AF_INET6) {
27279 @@ -95585,7 +96721,28 @@ index c482f7c..2784262 100644
27280 info, (u8 *)icmph);
27281 #endif
27282 }
27283 -@@ -841,7 +841,7 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27284 +@@ -830,6 +830,8 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27285 + {
27286 + struct inet_sock *isk = inet_sk(sk);
27287 + int family = sk->sk_family;
27288 ++ struct sockaddr_in *sin;
27289 ++ struct sockaddr_in6 *sin6;
27290 + struct sk_buff *skb;
27291 + int copied, err;
27292 +
27293 +@@ -839,12 +841,19 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27294 + if (flags & MSG_OOB)
27295 + goto out;
27296 +
27297 ++ if (addr_len) {
27298 ++ if (family == AF_INET)
27299 ++ *addr_len = sizeof(*sin);
27300 ++ else if (family == AF_INET6 && addr_len)
27301 ++ *addr_len = sizeof(*sin6);
27302 ++ }
27303 ++
27304 + if (flags & MSG_ERRQUEUE) {
27305 + if (family == AF_INET) {
27306 return ip_recv_error(sk, msg, len, addr_len);
27307 #if IS_ENABLED(CONFIG_IPV6)
27308 } else if (family == AF_INET6) {
27309 @@ -95594,7 +96751,19 @@ index c482f7c..2784262 100644
27310 addr_len);
27311 #endif
27312 }
27313 -@@ -900,7 +900,7 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27314 +@@ -876,7 +885,6 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27315 + sin->sin_port = 0 /* skb->h.uh->source */;
27316 + sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
27317 + memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
27318 +- *addr_len = sizeof(*sin);
27319 + }
27320 +
27321 + if (isk->cmsg_flags)
27322 +@@ -899,11 +907,10 @@ int ping_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27323 + sin6->sin6_scope_id =
27324 + ipv6_iface_scope_id(&sin6->sin6_addr,
27325 + IP6CB(skb)->iif);
27326 +- *addr_len = sizeof(*sin6);
27327 }
27328
27329 if (inet6_sk(sk)->rxopt.all)
27330 @@ -95603,17 +96772,17 @@ index c482f7c..2784262 100644
27331 #endif
27332 } else {
27333 BUG();
27334 -@@ -1090,7 +1090,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
27335 +@@ -1093,7 +1100,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
27336 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
27337 0, sock_i_ino(sp),
27338 atomic_read(&sp->sk_refcnt), sp,
27339 -- atomic_read(&sp->sk_drops), len);
27340 -+ atomic_read_unchecked(&sp->sk_drops), len);
27341 +- atomic_read(&sp->sk_drops));
27342 ++ atomic_read_unchecked(&sp->sk_drops));
27343 }
27344
27345 static int ping_v4_seq_show(struct seq_file *seq, void *v)
27346 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
27347 -index 7d3db78..9fd511d 100644
27348 +index 23c3e5b..cdb8b36 100644
27349 --- a/net/ipv4/raw.c
27350 +++ b/net/ipv4/raw.c
27351 @@ -311,7 +311,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
27352 @@ -95625,7 +96794,25 @@ index 7d3db78..9fd511d 100644
27353 kfree_skb(skb);
27354 return NET_RX_DROP;
27355 }
27356 -@@ -746,16 +746,20 @@ static int raw_init(struct sock *sk)
27357 +@@ -696,6 +696,9 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27358 + if (flags & MSG_OOB)
27359 + goto out;
27360 +
27361 ++ if (addr_len)
27362 ++ *addr_len = sizeof(*sin);
27363 ++
27364 + if (flags & MSG_ERRQUEUE) {
27365 + err = ip_recv_error(sk, msg, len, addr_len);
27366 + goto out;
27367 +@@ -723,7 +726,6 @@ static int raw_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27368 + sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
27369 + sin->sin_port = 0;
27370 + memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
27371 +- *addr_len = sizeof(*sin);
27372 + }
27373 + if (inet->cmsg_flags)
27374 + ip_cmsg_recv(msg, skb);
27375 +@@ -748,16 +750,20 @@ static int raw_init(struct sock *sk)
27376
27377 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
27378 {
27379 @@ -95647,7 +96834,7 @@ index 7d3db78..9fd511d 100644
27380
27381 if (get_user(len, optlen))
27382 goto out;
27383 -@@ -765,8 +769,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
27384 +@@ -767,8 +773,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
27385 if (len > sizeof(struct icmp_filter))
27386 len = sizeof(struct icmp_filter);
27387 ret = -EFAULT;
27388 @@ -95658,7 +96845,7 @@ index 7d3db78..9fd511d 100644
27389 goto out;
27390 ret = 0;
27391 out: return ret;
27392 -@@ -995,7 +999,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
27393 +@@ -997,7 +1003,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
27394 0, 0L, 0,
27395 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
27396 0, sock_i_ino(sp),
27397 @@ -95668,10 +96855,10 @@ index 7d3db78..9fd511d 100644
27398
27399 static int raw_seq_show(struct seq_file *seq, void *v)
27400 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
27401 -index 62290b5..f0d944f 100644
27402 +index f8da282..133a1c7 100644
27403 --- a/net/ipv4/route.c
27404 +++ b/net/ipv4/route.c
27405 -@@ -2617,34 +2617,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
27406 +@@ -2621,34 +2621,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
27407 .maxlen = sizeof(int),
27408 .mode = 0200,
27409 .proc_handler = ipv4_sysctl_rtcache_flush,
27410 @@ -95714,7 +96901,7 @@ index 62290b5..f0d944f 100644
27411 err_dup:
27412 return -ENOMEM;
27413 }
27414 -@@ -2667,8 +2667,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
27415 +@@ -2671,8 +2671,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
27416
27417 static __net_init int rt_genid_init(struct net *net)
27418 {
27419 @@ -95726,11 +96913,11 @@ index 62290b5..f0d944f 100644
27420 sizeof(net->ipv4.dev_addr_genid));
27421 return 0;
27422 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
27423 -index 540279f..9855b16 100644
27424 +index 3d69ec8..57207b4 100644
27425 --- a/net/ipv4/sysctl_net_ipv4.c
27426 +++ b/net/ipv4/sysctl_net_ipv4.c
27427 -@@ -58,7 +58,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
27428 - {
27429 +@@ -60,7 +60,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
27430 + container_of(table->data, struct net, ipv4.sysctl_local_ports.range);
27431 int ret;
27432 int range[2];
27433 - struct ctl_table tmp = {
27434 @@ -95738,7 +96925,7 @@ index 540279f..9855b16 100644
27435 .data = &range,
27436 .maxlen = sizeof(range),
27437 .mode = table->mode,
27438 -@@ -111,7 +111,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
27439 +@@ -118,7 +118,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
27440 int ret;
27441 gid_t urange[2];
27442 kgid_t low, high;
27443 @@ -95747,7 +96934,7 @@ index 540279f..9855b16 100644
27444 .data = &urange,
27445 .maxlen = sizeof(urange),
27446 .mode = table->mode,
27447 -@@ -142,7 +142,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
27448 +@@ -149,7 +149,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
27449 void __user *buffer, size_t *lenp, loff_t *ppos)
27450 {
27451 char val[TCP_CA_NAME_MAX];
27452 @@ -95756,7 +96943,7 @@ index 540279f..9855b16 100644
27453 .data = val,
27454 .maxlen = TCP_CA_NAME_MAX,
27455 };
27456 -@@ -161,7 +161,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
27457 +@@ -168,7 +168,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
27458 void __user *buffer, size_t *lenp,
27459 loff_t *ppos)
27460 {
27461 @@ -95765,7 +96952,7 @@ index 540279f..9855b16 100644
27462 int ret;
27463
27464 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
27465 -@@ -178,7 +178,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
27466 +@@ -185,7 +185,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
27467 void __user *buffer, size_t *lenp,
27468 loff_t *ppos)
27469 {
27470 @@ -95774,28 +96961,7 @@ index 540279f..9855b16 100644
27471 int ret;
27472
27473 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
27474 -@@ -204,15 +204,17 @@ static int ipv4_tcp_mem(struct ctl_table *ctl, int write,
27475 - struct mem_cgroup *memcg;
27476 - #endif
27477 -
27478 -- struct ctl_table tmp = {
27479 -+ ctl_table_no_const tmp = {
27480 - .data = &vec,
27481 - .maxlen = sizeof(vec),
27482 - .mode = ctl->mode,
27483 - };
27484 -
27485 - if (!write) {
27486 -- ctl->data = &net->ipv4.sysctl_tcp_mem;
27487 -- return proc_doulongvec_minmax(ctl, write, buffer, lenp, ppos);
27488 -+ ctl_table_no_const tcp_mem = *ctl;
27489 -+
27490 -+ tcp_mem.data = &net->ipv4.sysctl_tcp_mem;
27491 -+ return proc_doulongvec_minmax(&tcp_mem, write, buffer, lenp, ppos);
27492 - }
27493 -
27494 - ret = proc_doulongvec_minmax(&tmp, write, buffer, lenp, ppos);
27495 -@@ -240,7 +242,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
27496 +@@ -204,7 +204,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
27497 void __user *buffer, size_t *lenp,
27498 loff_t *ppos)
27499 {
27500 @@ -95804,7 +96970,7 @@ index 540279f..9855b16 100644
27501 struct tcp_fastopen_context *ctxt;
27502 int ret;
27503 u32 user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
27504 -@@ -483,7 +485,7 @@ static struct ctl_table ipv4_table[] = {
27505 +@@ -445,7 +445,7 @@ static struct ctl_table ipv4_table[] = {
27506 },
27507 {
27508 .procname = "ip_local_reserved_ports",
27509 @@ -95813,7 +96979,7 @@ index 540279f..9855b16 100644
27510 .maxlen = 65536,
27511 .mode = 0644,
27512 .proc_handler = proc_do_large_bitmap,
27513 -@@ -864,11 +866,10 @@ static struct ctl_table ipv4_net_table[] = {
27514 +@@ -827,13 +827,12 @@ static struct ctl_table ipv4_net_table[] = {
27515
27516 static __net_init int ipv4_sysctl_init_net(struct net *net)
27517 {
27518 @@ -95822,14 +96988,16 @@ index 540279f..9855b16 100644
27519
27520 - table = ipv4_net_table;
27521 if (!net_eq(net, &init_net)) {
27522 + int i;
27523 +
27524 - table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
27525 + table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
27526 if (table == NULL)
27527 goto err_alloc;
27528
27529 -@@ -903,15 +904,17 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
27530 -
27531 - tcp_init_mem(net);
27532 +@@ -856,15 +855,17 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
27533 + net->ipv4.sysctl_local_ports.range[0] = 32768;
27534 + net->ipv4.sysctl_local_ports.range[1] = 61000;
27535
27536 - net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
27537 + if (!net_eq(net, &init_net))
27538 @@ -95848,7 +97016,7 @@ index 540279f..9855b16 100644
27539 err_alloc:
27540 return -ENOMEM;
27541 }
27542 -@@ -933,16 +936,6 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = {
27543 +@@ -886,16 +887,6 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = {
27544 static __init int sysctl_ipv4_init(void)
27545 {
27546 struct ctl_table_header *hdr;
27547 @@ -95866,10 +97034,19 @@ index 540279f..9855b16 100644
27548 hdr = register_net_sysctl(&init_net, "net/ipv4", ipv4_table);
27549 if (hdr == NULL)
27550 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
27551 -index 068c8fb..a755c52 100644
27552 +index c53b7f3..a89aadd 100644
27553 --- a/net/ipv4/tcp_input.c
27554 +++ b/net/ipv4/tcp_input.c
27555 -@@ -4435,7 +4435,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
27556 +@@ -759,7 +759,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
27557 + * without any lock. We want to make sure compiler wont store
27558 + * intermediate values in this location.
27559 + */
27560 +- ACCESS_ONCE(sk->sk_pacing_rate) = min_t(u64, rate,
27561 ++ ACCESS_ONCE_RW(sk->sk_pacing_rate) = min_t(u64, rate,
27562 + sk->sk_max_pacing_rate);
27563 + }
27564 +
27565 +@@ -4482,7 +4482,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
27566 * simplifies code)
27567 */
27568 static void
27569 @@ -95878,7 +97055,7 @@ index 068c8fb..a755c52 100644
27570 struct sk_buff *head, struct sk_buff *tail,
27571 u32 start, u32 end)
27572 {
27573 -@@ -5520,6 +5520,7 @@ discard:
27574 +@@ -5559,6 +5559,7 @@ discard:
27575 tcp_paws_reject(&tp->rx_opt, 0))
27576 goto discard_and_undo;
27577
27578 @@ -95886,7 +97063,7 @@ index 068c8fb..a755c52 100644
27579 if (th->syn) {
27580 /* We see SYN without ACK. It is attempt of
27581 * simultaneous connect with crossed SYNs.
27582 -@@ -5570,6 +5571,7 @@ discard:
27583 +@@ -5609,6 +5610,7 @@ discard:
27584 goto discard;
27585 #endif
27586 }
27587 @@ -95894,7 +97071,7 @@ index 068c8fb..a755c52 100644
27588 /* "fifth, if neither of the SYN or RST bits is set then
27589 * drop the segment and return."
27590 */
27591 -@@ -5616,7 +5618,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
27592 +@@ -5655,7 +5657,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
27593 goto discard;
27594
27595 if (th->syn) {
27596 @@ -95904,7 +97081,7 @@ index 068c8fb..a755c52 100644
27597 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
27598 return 1;
27599 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
27600 -index 5031f68..91569e2 100644
27601 +index 0672139..cacc17d 100644
27602 --- a/net/ipv4/tcp_ipv4.c
27603 +++ b/net/ipv4/tcp_ipv4.c
27604 @@ -91,6 +91,10 @@ int sysctl_tcp_low_latency __read_mostly;
27605 @@ -95918,7 +97095,7 @@ index 5031f68..91569e2 100644
27606 #ifdef CONFIG_TCP_MD5SIG
27607 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
27608 __be32 daddr, __be32 saddr, const struct tcphdr *th);
27609 -@@ -1829,6 +1833,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
27610 +@@ -1830,6 +1834,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
27611 return 0;
27612
27613 reset:
27614 @@ -95928,7 +97105,7 @@ index 5031f68..91569e2 100644
27615 tcp_v4_send_reset(rsk, skb);
27616 discard:
27617 kfree_skb(skb);
27618 -@@ -1974,12 +1981,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
27619 +@@ -1975,12 +1982,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
27620 TCP_SKB_CB(skb)->sacked = 0;
27621
27622 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
27623 @@ -95951,7 +97128,7 @@ index 5031f68..91569e2 100644
27624
27625 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
27626 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
27627 -@@ -2033,6 +2047,10 @@ csum_error:
27628 +@@ -2034,6 +2048,10 @@ csum_error:
27629 bad_packet:
27630 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
27631 } else {
27632 @@ -95963,7 +97140,7 @@ index 5031f68..91569e2 100644
27633 }
27634
27635 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
27636 -index 58a3e69..7f0626e 100644
27637 +index 97b6841..0893357 100644
27638 --- a/net/ipv4/tcp_minisocks.c
27639 +++ b/net/ipv4/tcp_minisocks.c
27640 @@ -27,6 +27,10 @@
27641 @@ -95977,7 +97154,7 @@ index 58a3e69..7f0626e 100644
27642 int sysctl_tcp_syncookies __read_mostly = 1;
27643 EXPORT_SYMBOL(sysctl_tcp_syncookies);
27644
27645 -@@ -711,7 +715,10 @@ embryonic_reset:
27646 +@@ -708,7 +712,10 @@ embryonic_reset:
27647 * avoid becoming vulnerable to outside attack aiming at
27648 * resetting legit local connections.
27649 */
27650 @@ -95990,10 +97167,10 @@ index 58a3e69..7f0626e 100644
27651 reqsk_fastopen_remove(sk, req, true);
27652 tcp_reset(sk);
27653 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
27654 -index 611beab..c4b6e1d 100644
27655 +index 8b97d71..9d7ccf5 100644
27656 --- a/net/ipv4/tcp_probe.c
27657 +++ b/net/ipv4/tcp_probe.c
27658 -@@ -245,7 +245,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
27659 +@@ -238,7 +238,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
27660 if (cnt + width >= len)
27661 break;
27662
27663 @@ -96003,7 +97180,7 @@ index 611beab..c4b6e1d 100644
27664 cnt += width;
27665 }
27666 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
27667 -index 4b85e6f..22f9ac9 100644
27668 +index 64f0354..a81b39d 100644
27669 --- a/net/ipv4/tcp_timer.c
27670 +++ b/net/ipv4/tcp_timer.c
27671 @@ -22,6 +22,10 @@
27672 @@ -96017,7 +97194,7 @@ index 4b85e6f..22f9ac9 100644
27673 int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
27674 int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
27675 int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
27676 -@@ -185,6 +189,13 @@ static int tcp_write_timeout(struct sock *sk)
27677 +@@ -189,6 +193,13 @@ static int tcp_write_timeout(struct sock *sk)
27678 }
27679 }
27680
27681 @@ -96032,7 +97209,7 @@ index 4b85e6f..22f9ac9 100644
27682 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
27683 /* Has it gone just too far? */
27684 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
27685 -index 6ca9907..a1e6c00 100644
27686 +index a7e4729..2758946 100644
27687 --- a/net/ipv4/udp.c
27688 +++ b/net/ipv4/udp.c
27689 @@ -87,6 +87,7 @@
27690 @@ -96043,7 +97220,7 @@ index 6ca9907..a1e6c00 100644
27691 #include <linux/socket.h>
27692 #include <linux/sockios.h>
27693 #include <linux/igmp.h>
27694 -@@ -112,6 +113,10 @@
27695 +@@ -113,6 +114,10 @@
27696 #include <net/busy_poll.h>
27697 #include "udp_impl.h"
27698
27699 @@ -96054,7 +97231,7 @@ index 6ca9907..a1e6c00 100644
27700 struct udp_table udp_table __read_mostly;
27701 EXPORT_SYMBOL(udp_table);
27702
27703 -@@ -595,6 +600,9 @@ found:
27704 +@@ -615,6 +620,9 @@ found:
27705 return s;
27706 }
27707
27708 @@ -96064,7 +97241,7 @@ index 6ca9907..a1e6c00 100644
27709 /*
27710 * This routine is called by the ICMP module when it gets some
27711 * sort of error condition. If err < 0 then the socket should
27712 -@@ -892,9 +900,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27713 +@@ -914,9 +922,18 @@ int udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27714 dport = usin->sin_port;
27715 if (dport == 0)
27716 return -EINVAL;
27717 @@ -96083,7 +97260,7 @@ index 6ca9907..a1e6c00 100644
27718 daddr = inet->inet_daddr;
27719 dport = inet->inet_dport;
27720 /* Open fast path for connected socket.
27721 -@@ -1141,7 +1158,7 @@ static unsigned int first_packet_length(struct sock *sk)
27722 +@@ -1163,7 +1180,7 @@ static unsigned int first_packet_length(struct sock *sk)
27723 IS_UDPLITE(sk));
27724 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
27725 IS_UDPLITE(sk));
27726 @@ -96092,7 +97269,20 @@ index 6ca9907..a1e6c00 100644
27727 __skb_unlink(skb, rcvq);
27728 __skb_queue_tail(&list_kill, skb);
27729 }
27730 -@@ -1221,6 +1238,10 @@ try_again:
27731 +@@ -1234,6 +1251,12 @@ int udp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
27732 + int is_udplite = IS_UDPLITE(sk);
27733 + bool slow;
27734 +
27735 ++ /*
27736 ++ * Check any passed addresses
27737 ++ */
27738 ++ if (addr_len)
27739 ++ *addr_len = sizeof(*sin);
27740 ++
27741 + if (flags & MSG_ERRQUEUE)
27742 + return ip_recv_error(sk, msg, len, addr_len);
27743 +
27744 +@@ -1243,6 +1266,10 @@ try_again:
27745 if (!skb)
27746 goto out;
27747
27748 @@ -96103,7 +97293,7 @@ index 6ca9907..a1e6c00 100644
27749 ulen = skb->len - sizeof(struct udphdr);
27750 copied = len;
27751 if (copied > ulen)
27752 -@@ -1254,7 +1275,7 @@ try_again:
27753 +@@ -1276,7 +1303,7 @@ try_again:
27754 if (unlikely(err)) {
27755 trace_kfree_skb(skb, udp_recvmsg);
27756 if (!peeked) {
27757 @@ -96112,7 +97302,15 @@ index 6ca9907..a1e6c00 100644
27758 UDP_INC_STATS_USER(sock_net(sk),
27759 UDP_MIB_INERRORS, is_udplite);
27760 }
27761 -@@ -1542,7 +1563,7 @@ csum_error:
27762 +@@ -1295,7 +1322,6 @@ try_again:
27763 + sin->sin_port = udp_hdr(skb)->source;
27764 + sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
27765 + memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
27766 +- *addr_len = sizeof(*sin);
27767 + }
27768 + if (inet->cmsg_flags)
27769 + ip_cmsg_recv(msg, skb);
27770 +@@ -1566,7 +1592,7 @@ csum_error:
27771 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
27772 drop:
27773 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
27774 @@ -96121,7 +97319,7 @@ index 6ca9907..a1e6c00 100644
27775 kfree_skb(skb);
27776 return -1;
27777 }
27778 -@@ -1561,7 +1582,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
27779 +@@ -1585,7 +1611,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
27780 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
27781
27782 if (!skb1) {
27783 @@ -96130,7 +97328,7 @@ index 6ca9907..a1e6c00 100644
27784 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
27785 IS_UDPLITE(sk));
27786 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
27787 -@@ -1733,6 +1754,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
27788 +@@ -1786,6 +1812,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
27789 goto csum_error;
27790
27791 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
27792 @@ -96140,17 +97338,17 @@ index 6ca9907..a1e6c00 100644
27793 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
27794
27795 /*
27796 -@@ -2165,7 +2189,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
27797 +@@ -2350,7 +2379,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
27798 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
27799 0, sock_i_ino(sp),
27800 atomic_read(&sp->sk_refcnt), sp,
27801 -- atomic_read(&sp->sk_drops), len);
27802 -+ atomic_read_unchecked(&sp->sk_drops), len);
27803 +- atomic_read(&sp->sk_drops));
27804 ++ atomic_read_unchecked(&sp->sk_drops));
27805 }
27806
27807 int udp4_seq_show(struct seq_file *seq, void *v)
27808 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
27809 -index adf9983..8e45d0a 100644
27810 +index e1a6393..f634ce5 100644
27811 --- a/net/ipv4/xfrm4_policy.c
27812 +++ b/net/ipv4/xfrm4_policy.c
27813 @@ -186,11 +186,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
27814 @@ -96203,10 +97401,10 @@ index adf9983..8e45d0a 100644
27815 return -ENOMEM;
27816 }
27817 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
27818 -index cd3fb30..b7dfef7 100644
27819 +index 4b6b720..272c0c5 100644
27820 --- a/net/ipv6/addrconf.c
27821 +++ b/net/ipv6/addrconf.c
27822 -@@ -586,7 +586,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
27823 +@@ -589,7 +589,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
27824 idx = 0;
27825 head = &net->dev_index_head[h];
27826 rcu_read_lock();
27827 @@ -96215,7 +97413,7 @@ index cd3fb30..b7dfef7 100644
27828 net->dev_base_seq;
27829 hlist_for_each_entry_rcu(dev, head, index_hlist) {
27830 if (idx < s_idx)
27831 -@@ -2364,7 +2364,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
27832 +@@ -2334,7 +2334,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
27833 p.iph.ihl = 5;
27834 p.iph.protocol = IPPROTO_IPV6;
27835 p.iph.ttl = 64;
27836 @@ -96224,7 +97422,7 @@ index cd3fb30..b7dfef7 100644
27837
27838 if (ops->ndo_do_ioctl) {
27839 mm_segment_t oldfs = get_fs();
27840 -@@ -3977,7 +3977,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
27841 +@@ -3962,7 +3962,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
27842 s_ip_idx = ip_idx = cb->args[2];
27843
27844 rcu_read_lock();
27845 @@ -96233,7 +97431,7 @@ index cd3fb30..b7dfef7 100644
27846 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
27847 idx = 0;
27848 head = &net->dev_index_head[h];
27849 -@@ -4603,7 +4603,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
27850 +@@ -4569,7 +4569,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
27851 dst_free(&ifp->rt->dst);
27852 break;
27853 }
27854 @@ -96242,7 +97440,7 @@ index cd3fb30..b7dfef7 100644
27855 rt_genid_bump_ipv6(net);
27856 }
27857
27858 -@@ -4624,7 +4624,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
27859 +@@ -4590,7 +4590,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
27860 int *valp = ctl->data;
27861 int val = *valp;
27862 loff_t pos = *ppos;
27863 @@ -96251,7 +97449,7 @@ index cd3fb30..b7dfef7 100644
27864 int ret;
27865
27866 /*
27867 -@@ -4709,7 +4709,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
27868 +@@ -4675,7 +4675,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
27869 int *valp = ctl->data;
27870 int val = *valp;
27871 loff_t pos = *ppos;
27872 @@ -96261,10 +97459,10 @@ index cd3fb30..b7dfef7 100644
27873
27874 /*
27875 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
27876 -index 8132b44..b8eca70 100644
27877 +index 4fbdb70..f6411f2 100644
27878 --- a/net/ipv6/af_inet6.c
27879 +++ b/net/ipv6/af_inet6.c
27880 -@@ -767,7 +767,7 @@ static int __net_init inet6_net_init(struct net *net)
27881 +@@ -776,7 +776,7 @@ static int __net_init inet6_net_init(struct net *net)
27882
27883 net->ipv6.sysctl.bindv6only = 0;
27884 net->ipv6.sysctl.icmpv6_time = 1*HZ;
27885 @@ -96274,10 +97472,10 @@ index 8132b44..b8eca70 100644
27886 err = ipv6_init_mibs(net);
27887 if (err)
27888 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
27889 -index c66c6df..f375d3c 100644
27890 +index 93b1aa3..e902855 100644
27891 --- a/net/ipv6/datagram.c
27892 +++ b/net/ipv6/datagram.c
27893 -@@ -908,5 +908,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
27894 +@@ -906,5 +906,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
27895 0,
27896 sock_i_ino(sp),
27897 atomic_read(&sp->sk_refcnt), sp,
27898 @@ -96298,7 +97496,7 @@ index eef8d94..cfa1852 100644
27899 table = kmemdup(ipv6_icmp_table_template,
27900 sizeof(ipv6_icmp_table_template),
27901 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
27902 -index bf4a9a0..e5f6ac5 100644
27903 +index 8acb286..840dd06 100644
27904 --- a/net/ipv6/ip6_gre.c
27905 +++ b/net/ipv6/ip6_gre.c
27906 @@ -74,7 +74,7 @@ struct ip6gre_net {
27907 @@ -96310,7 +97508,7 @@ index bf4a9a0..e5f6ac5 100644
27908 static int ip6gre_tunnel_init(struct net_device *dev);
27909 static void ip6gre_tunnel_setup(struct net_device *dev);
27910 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
27911 -@@ -1286,7 +1286,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
27912 +@@ -1294,7 +1294,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
27913 }
27914
27915
27916 @@ -96319,7 +97517,7 @@ index bf4a9a0..e5f6ac5 100644
27917 .handler = ip6gre_rcv,
27918 .err_handler = ip6gre_err,
27919 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
27920 -@@ -1622,7 +1622,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
27921 +@@ -1637,7 +1637,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
27922 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
27923 };
27924
27925 @@ -96328,7 +97526,7 @@ index bf4a9a0..e5f6ac5 100644
27926 .kind = "ip6gre",
27927 .maxtype = IFLA_GRE_MAX,
27928 .policy = ip6gre_policy,
27929 -@@ -1635,7 +1635,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
27930 +@@ -1650,7 +1650,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
27931 .fill_info = ip6gre_fill_info,
27932 };
27933
27934 @@ -96338,7 +97536,7 @@ index bf4a9a0..e5f6ac5 100644
27935 .maxtype = IFLA_GRE_MAX,
27936 .policy = ip6gre_policy,
27937 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
27938 -index c1e11b5..568e633 100644
27939 +index 7881965..9cf62c4 100644
27940 --- a/net/ipv6/ip6_tunnel.c
27941 +++ b/net/ipv6/ip6_tunnel.c
27942 @@ -89,7 +89,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
27943 @@ -96350,7 +97548,7 @@ index c1e11b5..568e633 100644
27944
27945 static int ip6_tnl_net_id __read_mostly;
27946 struct ip6_tnl_net {
27947 -@@ -1699,7 +1699,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
27948 +@@ -1717,7 +1717,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
27949 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
27950 };
27951
27952 @@ -96359,27 +97557,30 @@ index c1e11b5..568e633 100644
27953 .kind = "ip6tnl",
27954 .maxtype = IFLA_IPTUN_MAX,
27955 .policy = ip6_tnl_policy,
27956 -diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
27957 -index f365310..0eb4038 100644
27958 ---- a/net/ipv6/ip6mr.c
27959 -+++ b/net/ipv6/ip6mr.c
27960 -@@ -141,9 +141,12 @@ static struct mr6_table *ip6mr_get_table(struct net *net, u32 id)
27961 - static int ip6mr_fib_lookup(struct net *net, struct flowi6 *flp6,
27962 - struct mr6_table **mrt)
27963 - {
27964 -+ int err;
27965 - struct ip6mr_result res;
27966 -- struct fib_lookup_arg arg = { .result = &res, };
27967 -- int err;
27968 -+ struct fib_lookup_arg arg = {
27969 -+ .result = &res,
27970 -+ .flags = FIB_LOOKUP_NOREF,
27971 -+ };
27972 +diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
27973 +index 7b42d5e..1eff693 100644
27974 +--- a/net/ipv6/ip6_vti.c
27975 ++++ b/net/ipv6/ip6_vti.c
27976 +@@ -63,7 +63,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
27977 +
27978 + static int vti6_dev_init(struct net_device *dev);
27979 + static void vti6_dev_setup(struct net_device *dev);
27980 +-static struct rtnl_link_ops vti6_link_ops __read_mostly;
27981 ++static struct rtnl_link_ops vti6_link_ops;
27982 +
27983 + static int vti6_net_id __read_mostly;
27984 + struct vti6_net {
27985 +@@ -902,7 +902,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
27986 + [IFLA_VTI_OKEY] = { .type = NLA_U32 },
27987 + };
27988
27989 - err = fib_rules_lookup(net->ipv6.mr6_rules_ops,
27990 - flowi6_to_flowi(flp6), 0, &arg);
27991 +-static struct rtnl_link_ops vti6_link_ops __read_mostly = {
27992 ++static struct rtnl_link_ops vti6_link_ops = {
27993 + .kind = "vti6",
27994 + .maxtype = IFLA_VTI_MAX,
27995 + .policy = vti6_policy,
27996 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
27997 -index d1e2e8e..51c19ae 100644
27998 +index 1c6ce31..299e566 100644
27999 --- a/net/ipv6/ipv6_sockglue.c
28000 +++ b/net/ipv6/ipv6_sockglue.c
28001 @@ -991,7 +991,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
28002 @@ -96392,10 +97593,10 @@ index d1e2e8e..51c19ae 100644
28003 msg.msg_flags = flags;
28004
28005 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
28006 -index 44400c2..8e11f52 100644
28007 +index 710238f..0fd1816 100644
28008 --- a/net/ipv6/netfilter/ip6_tables.c
28009 +++ b/net/ipv6/netfilter/ip6_tables.c
28010 -@@ -1078,14 +1078,14 @@ static int compat_table_info(const struct xt_table_info *info,
28011 +@@ -1083,14 +1083,14 @@ static int compat_table_info(const struct xt_table_info *info,
28012 #endif
28013
28014 static int get_info(struct net *net, void __user *user,
28015 @@ -96413,7 +97614,7 @@ index 44400c2..8e11f52 100644
28016 sizeof(struct ip6t_getinfo));
28017 return -EINVAL;
28018 }
28019 -@@ -1122,7 +1122,7 @@ static int get_info(struct net *net, void __user *user,
28020 +@@ -1127,7 +1127,7 @@ static int get_info(struct net *net, void __user *user,
28021 info.size = private->size;
28022 strcpy(info.name, name);
28023
28024 @@ -96422,7 +97623,7 @@ index 44400c2..8e11f52 100644
28025 ret = -EFAULT;
28026 else
28027 ret = 0;
28028 -@@ -1976,7 +1976,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
28029 +@@ -1981,7 +1981,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
28030
28031 switch (cmd) {
28032 case IP6T_SO_GET_INFO:
28033 @@ -96431,7 +97632,7 @@ index 44400c2..8e11f52 100644
28034 break;
28035 case IP6T_SO_GET_ENTRIES:
28036 ret = compat_get_entries(sock_net(sk), user, len);
28037 -@@ -2023,7 +2023,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
28038 +@@ -2028,7 +2028,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
28039
28040 switch (cmd) {
28041 case IP6T_SO_GET_INFO:
28042 @@ -96441,7 +97642,7 @@ index 44400c2..8e11f52 100644
28043
28044 case IP6T_SO_GET_ENTRIES:
28045 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
28046 -index 253566a..9fa50c7 100644
28047 +index 767ab8d..c5ec70a 100644
28048 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
28049 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
28050 @@ -90,12 +90,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
28051 @@ -96516,7 +97717,7 @@ index 827f795..7e28e82 100644
28052 EXPORT_SYMBOL(ipv6_select_ident);
28053
28054 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
28055 -index 7856e96..75ebc7f 100644
28056 +index a83243c..a1ca589 100644
28057 --- a/net/ipv6/ping.c
28058 +++ b/net/ipv6/ping.c
28059 @@ -246,6 +246,22 @@ static struct pernet_operations ping_v6_net_ops = {
28060 @@ -96569,10 +97770,10 @@ index 7856e96..75ebc7f 100644
28061 unregister_pernet_subsys(&ping_v6_net_ops);
28062 #endif
28063 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
28064 -index 430067c..4adf088 100644
28065 +index b6bb87e..06cc9ed 100644
28066 --- a/net/ipv6/raw.c
28067 +++ b/net/ipv6/raw.c
28068 -@@ -385,7 +385,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
28069 +@@ -384,7 +384,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
28070 {
28071 if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
28072 skb_checksum_complete(skb)) {
28073 @@ -96581,7 +97782,7 @@ index 430067c..4adf088 100644
28074 kfree_skb(skb);
28075 return NET_RX_DROP;
28076 }
28077 -@@ -413,7 +413,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
28078 +@@ -412,7 +412,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
28079 struct raw6_sock *rp = raw6_sk(sk);
28080
28081 if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
28082 @@ -96590,7 +97791,7 @@ index 430067c..4adf088 100644
28083 kfree_skb(skb);
28084 return NET_RX_DROP;
28085 }
28086 -@@ -437,7 +437,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
28087 +@@ -436,7 +436,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
28088
28089 if (inet->hdrincl) {
28090 if (skb_checksum_complete(skb)) {
28091 @@ -96599,7 +97800,25 @@ index 430067c..4adf088 100644
28092 kfree_skb(skb);
28093 return NET_RX_DROP;
28094 }
28095 -@@ -607,7 +607,7 @@ out:
28096 +@@ -465,6 +465,9 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
28097 + if (flags & MSG_OOB)
28098 + return -EOPNOTSUPP;
28099 +
28100 ++ if (addr_len)
28101 ++ *addr_len=sizeof(*sin6);
28102 ++
28103 + if (flags & MSG_ERRQUEUE)
28104 + return ipv6_recv_error(sk, msg, len, addr_len);
28105 +
28106 +@@ -503,7 +506,6 @@ static int rawv6_recvmsg(struct kiocb *iocb, struct sock *sk,
28107 + sin6->sin6_flowinfo = 0;
28108 + sin6->sin6_scope_id = ipv6_iface_scope_id(&sin6->sin6_addr,
28109 + IP6CB(skb)->iif);
28110 +- *addr_len = sizeof(*sin6);
28111 + }
28112 +
28113 + sock_recv_ts_and_drops(msg, sk, skb);
28114 +@@ -606,7 +608,7 @@ out:
28115 return err;
28116 }
28117
28118 @@ -96608,7 +97827,7 @@ index 430067c..4adf088 100644
28119 struct flowi6 *fl6, struct dst_entry **dstp,
28120 unsigned int flags)
28121 {
28122 -@@ -920,12 +920,15 @@ do_confirm:
28123 +@@ -918,12 +920,15 @@ do_confirm:
28124 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
28125 char __user *optval, int optlen)
28126 {
28127 @@ -96625,7 +97844,7 @@ index 430067c..4adf088 100644
28128 return 0;
28129 default:
28130 return -ENOPROTOOPT;
28131 -@@ -938,6 +941,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
28132 +@@ -936,6 +941,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
28133 char __user *optval, int __user *optlen)
28134 {
28135 int len;
28136 @@ -96633,7 +97852,7 @@ index 430067c..4adf088 100644
28137
28138 switch (optname) {
28139 case ICMPV6_FILTER:
28140 -@@ -949,7 +953,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
28141 +@@ -947,7 +953,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
28142 len = sizeof(struct icmp6_filter);
28143 if (put_user(len, optlen))
28144 return -EFAULT;
28145 @@ -96644,7 +97863,7 @@ index 430067c..4adf088 100644
28146 return 0;
28147 default:
28148 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
28149 -index 1aeb473..bea761c 100644
28150 +index cc85a9b..526a133 100644
28151 --- a/net/ipv6/reassembly.c
28152 +++ b/net/ipv6/reassembly.c
28153 @@ -626,12 +626,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
28154 @@ -96686,10 +97905,10 @@ index 1aeb473..bea761c 100644
28155 return -ENOMEM;
28156 }
28157 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
28158 -index 0accb13..f793130 100644
28159 +index 4b4944c..4580b91 100644
28160 --- a/net/ipv6/route.c
28161 +++ b/net/ipv6/route.c
28162 -@@ -3003,7 +3003,7 @@ struct ctl_table ipv6_route_table_template[] = {
28163 +@@ -2954,7 +2954,7 @@ struct ctl_table ipv6_route_table_template[] = {
28164
28165 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
28166 {
28167 @@ -96699,7 +97918,7 @@ index 0accb13..f793130 100644
28168 table = kmemdup(ipv6_route_table_template,
28169 sizeof(ipv6_route_table_template),
28170 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
28171 -index b433884..3875266 100644
28172 +index d3005b3..b36df4a 100644
28173 --- a/net/ipv6/sit.c
28174 +++ b/net/ipv6/sit.c
28175 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
28176 @@ -96711,7 +97930,7 @@ index b433884..3875266 100644
28177
28178 static int sit_net_id __read_mostly;
28179 struct sit_net {
28180 -@@ -1603,7 +1603,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
28181 +@@ -1664,7 +1664,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
28182 unregister_netdevice_queue(dev, head);
28183 }
28184
28185 @@ -96734,7 +97953,7 @@ index 107b2f1..72741a9 100644
28186 struct ctl_table *ipv6_icmp_table;
28187 int err;
28188 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
28189 -index 5c71501..7e8d5d3 100644
28190 +index f67033b..6f974fc 100644
28191 --- a/net/ipv6/tcp_ipv6.c
28192 +++ b/net/ipv6/tcp_ipv6.c
28193 @@ -104,6 +104,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
28194 @@ -96793,12 +98012,12 @@ index 5c71501..7e8d5d3 100644
28195 }
28196
28197 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
28198 -index 3d2758d..626c422 100644
28199 +index 089c741..cfee117 100644
28200 --- a/net/ipv6/udp.c
28201 +++ b/net/ipv6/udp.c
28202 -@@ -53,6 +53,10 @@
28203 - #include <trace/events/skb.h>
28204 - #include "udp_impl.h"
28205 +@@ -76,6 +76,10 @@ static unsigned int udp6_ehashfn(struct net *net,
28206 + udp_ipv6_hash_secret + net_hash_mix(net));
28207 + }
28208
28209 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
28210 +extern int grsec_enable_blackhole;
28211 @@ -96806,8 +98025,18 @@ index 3d2758d..626c422 100644
28212 +
28213 int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
28214 {
28215 - const struct in6_addr *sk_rcv_saddr6 = &inet6_sk(sk)->rcv_saddr;
28216 -@@ -417,7 +421,7 @@ try_again:
28217 + const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
28218 +@@ -392,6 +396,9 @@ int udpv6_recvmsg(struct kiocb *iocb, struct sock *sk,
28219 + int is_udp4;
28220 + bool slow;
28221 +
28222 ++ if (addr_len)
28223 ++ *addr_len = sizeof(struct sockaddr_in6);
28224 ++
28225 + if (flags & MSG_ERRQUEUE)
28226 + return ipv6_recv_error(sk, msg, len, addr_len);
28227 +
28228 +@@ -435,7 +442,7 @@ try_again:
28229 if (unlikely(err)) {
28230 trace_kfree_skb(skb, udpv6_recvmsg);
28231 if (!peeked) {
28232 @@ -96816,7 +98045,16 @@ index 3d2758d..626c422 100644
28233 if (is_udp4)
28234 UDP_INC_STATS_USER(sock_net(sk),
28235 UDP_MIB_INERRORS,
28236 -@@ -665,7 +669,7 @@ csum_error:
28237 +@@ -477,7 +484,7 @@ try_again:
28238 + ipv6_iface_scope_id(&sin6->sin6_addr,
28239 + IP6CB(skb)->iif);
28240 + }
28241 +- *addr_len = sizeof(*sin6);
28242 ++
28243 + }
28244 + if (is_udp4) {
28245 + if (inet->cmsg_flags)
28246 +@@ -685,7 +692,7 @@ csum_error:
28247 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
28248 drop:
28249 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
28250 @@ -96825,7 +98063,7 @@ index 3d2758d..626c422 100644
28251 kfree_skb(skb);
28252 return -1;
28253 }
28254 -@@ -723,7 +727,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
28255 +@@ -742,7 +749,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
28256 if (likely(skb1 == NULL))
28257 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
28258 if (!skb1) {
28259 @@ -96834,7 +98072,7 @@ index 3d2758d..626c422 100644
28260 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
28261 IS_UDPLITE(sk));
28262 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
28263 -@@ -863,6 +867,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
28264 +@@ -881,6 +888,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
28265 goto csum_error;
28266
28267 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
28268 @@ -96845,7 +98083,7 @@ index 3d2758d..626c422 100644
28269
28270 kfree_skb(skb);
28271 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
28272 -index 550b195..6acea83 100644
28273 +index 5f8e128..865d38e 100644
28274 --- a/net/ipv6/xfrm6_policy.c
28275 +++ b/net/ipv6/xfrm6_policy.c
28276 @@ -212,11 +212,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
28277 @@ -97019,8 +98257,30 @@ index 545f047..9757a9d 100644
28278 } while (!res);
28279 return res;
28280 }
28281 +diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
28282 +index da1a1ce..571db8d 100644
28283 +--- a/net/l2tp/l2tp_ip.c
28284 ++++ b/net/l2tp/l2tp_ip.c
28285 +@@ -518,6 +518,9 @@ static int l2tp_ip_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
28286 + if (flags & MSG_OOB)
28287 + goto out;
28288 +
28289 ++ if (addr_len)
28290 ++ *addr_len = sizeof(*sin);
28291 ++
28292 + skb = skb_recv_datagram(sk, flags, noblock, &err);
28293 + if (!skb)
28294 + goto out;
28295 +@@ -540,7 +543,6 @@ static int l2tp_ip_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
28296 + sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
28297 + sin->sin_port = 0;
28298 + memset(&sin->sin_zero, 0, sizeof(sin->sin_zero));
28299 +- *addr_len = sizeof(*sin);
28300 + }
28301 + if (inet->cmsg_flags)
28302 + ip_cmsg_recv(msg, skb);
28303 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
28304 -index 9903ee5..18978be 100644
28305 +index 364ce0c..3ebb5a4 100644
28306 --- a/net/mac80211/cfg.c
28307 +++ b/net/mac80211/cfg.c
28308 @@ -826,7 +826,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
28309 @@ -97032,7 +98292,7 @@ index 9903ee5..18978be 100644
28310 local->_oper_chandef = *chandef;
28311 ieee80211_hw_config(local, 0);
28312 }
28313 -@@ -3124,7 +3124,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
28314 +@@ -3308,7 +3308,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
28315 else
28316 local->probe_req_reg--;
28317
28318 @@ -97041,7 +98301,7 @@ index 9903ee5..18978be 100644
28319 break;
28320
28321 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
28322 -@@ -3587,8 +3587,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
28323 +@@ -3771,8 +3771,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
28324 if (chanctx_conf) {
28325 *chandef = chanctx_conf->def;
28326 ret = 0;
28327 @@ -97053,7 +98313,7 @@ index 9903ee5..18978be 100644
28328 if (local->use_chanctx)
28329 *chandef = local->monitor_chandef;
28330 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
28331 -index 611abfc..8c2c7e4 100644
28332 +index 4aea4e7..9e698d1 100644
28333 --- a/net/mac80211/ieee80211_i.h
28334 +++ b/net/mac80211/ieee80211_i.h
28335 @@ -28,6 +28,7 @@
28336 @@ -97064,7 +98324,7 @@ index 611abfc..8c2c7e4 100644
28337 #include "key.h"
28338 #include "sta_info.h"
28339 #include "debug.h"
28340 -@@ -945,7 +946,7 @@ struct ieee80211_local {
28341 +@@ -961,7 +962,7 @@ struct ieee80211_local {
28342 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
28343 spinlock_t queue_stop_reason_lock;
28344
28345 @@ -97074,7 +98334,7 @@ index 611abfc..8c2c7e4 100644
28346 /* number of interfaces with corresponding FIF_ flags */
28347 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
28348 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
28349 -index fcecd63..a404454 100644
28350 +index a075791..1d0027f 100644
28351 --- a/net/mac80211/iface.c
28352 +++ b/net/mac80211/iface.c
28353 @@ -519,7 +519,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
28354 @@ -97113,7 +98373,7 @@ index fcecd63..a404454 100644
28355 drv_stop(local);
28356 err_del_bss:
28357 sdata->bss = NULL;
28358 -@@ -852,7 +852,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28359 +@@ -856,7 +856,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28360 }
28361
28362 if (going_down)
28363 @@ -97122,7 +98382,7 @@ index fcecd63..a404454 100644
28364
28365 switch (sdata->vif.type) {
28366 case NL80211_IFTYPE_AP_VLAN:
28367 -@@ -919,7 +919,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28368 +@@ -923,7 +923,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28369 }
28370 spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags);
28371
28372 @@ -97131,7 +98391,7 @@ index fcecd63..a404454 100644
28373 ieee80211_clear_tx_pending(local);
28374
28375 /*
28376 -@@ -959,7 +959,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28377 +@@ -963,7 +963,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28378
28379 ieee80211_recalc_ps(local, -1);
28380
28381 @@ -97140,7 +98400,7 @@ index fcecd63..a404454 100644
28382 ieee80211_stop_device(local);
28383
28384 /* no reconfiguring after stop! */
28385 -@@ -970,7 +970,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28386 +@@ -974,7 +974,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
28387 ieee80211_configure_filter(local);
28388 ieee80211_hw_config(local, hw_reconf_flags);
28389
28390 @@ -97150,7 +98410,7 @@ index fcecd63..a404454 100644
28391 }
28392
28393 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
28394 -index e765f77..dfd72e7 100644
28395 +index 7d1c3ac..b62dd29 100644
28396 --- a/net/mac80211/main.c
28397 +++ b/net/mac80211/main.c
28398 @@ -172,7 +172,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
28399 @@ -97194,10 +98454,10 @@ index 3401262..d5cd68d 100644
28400
28401 suspend:
28402 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
28403 -index e126605..73d2c39 100644
28404 +index 22b223f..ab70070 100644
28405 --- a/net/mac80211/rate.c
28406 +++ b/net/mac80211/rate.c
28407 -@@ -725,7 +725,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
28408 +@@ -734,7 +734,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
28409
28410 ASSERT_RTNL();
28411
28412 @@ -97207,7 +98467,7 @@ index e126605..73d2c39 100644
28413
28414 if (local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL) {
28415 diff --git a/net/mac80211/rc80211_pid_debugfs.c b/net/mac80211/rc80211_pid_debugfs.c
28416 -index c97a065..ff61928 100644
28417 +index 6ff1346..936ca9a 100644
28418 --- a/net/mac80211/rc80211_pid_debugfs.c
28419 +++ b/net/mac80211/rc80211_pid_debugfs.c
28420 @@ -193,7 +193,7 @@ static ssize_t rate_control_pid_events_read(struct file *file, char __user *buf,
28421 @@ -97220,10 +98480,10 @@ index c97a065..ff61928 100644
28422
28423 return p;
28424 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
28425 -index 69e4ef5..e8e4b92 100644
28426 +index 9f9b9bd..d6fcf59 100644
28427 --- a/net/mac80211/util.c
28428 +++ b/net/mac80211/util.c
28429 -@@ -1470,7 +1470,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
28430 +@@ -1474,7 +1474,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
28431 }
28432 #endif
28433 /* everything else happens only if HW was up & running */
28434 @@ -97232,7 +98492,7 @@ index 69e4ef5..e8e4b92 100644
28435 goto wake_up;
28436
28437 /*
28438 -@@ -1695,7 +1695,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
28439 +@@ -1699,7 +1699,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
28440 local->in_reconfig = false;
28441 barrier();
28442
28443 @@ -97242,10 +98502,10 @@ index 69e4ef5..e8e4b92 100644
28444
28445 /*
28446 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
28447 -index 6e839b6..002a233 100644
28448 +index c3398cd..98ad3b4 100644
28449 --- a/net/netfilter/Kconfig
28450 +++ b/net/netfilter/Kconfig
28451 -@@ -950,6 +950,16 @@ config NETFILTER_XT_MATCH_ESP
28452 +@@ -1002,6 +1002,16 @@ config NETFILTER_XT_MATCH_ESP
28453
28454 To compile it as a module, choose M here. If unsure, say N.
28455
28456 @@ -97263,10 +98523,10 @@ index 6e839b6..002a233 100644
28457 tristate '"hashlimit" match support'
28458 depends on (IP6_NF_IPTABLES || IP6_NF_IPTABLES=n)
28459 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
28460 -index c3a0a12..90b587f 100644
28461 +index 394483b..ed51f2d 100644
28462 --- a/net/netfilter/Makefile
28463 +++ b/net/netfilter/Makefile
28464 -@@ -112,6 +112,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
28465 +@@ -130,6 +130,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
28466 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
28467 obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
28468 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
28469 @@ -97275,10 +98535,10 @@ index c3a0a12..90b587f 100644
28470 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
28471 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
28472 diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
28473 -index f2e30fb..f131862 100644
28474 +index bac7e01..1d7a31a 100644
28475 --- a/net/netfilter/ipset/ip_set_core.c
28476 +++ b/net/netfilter/ipset/ip_set_core.c
28477 -@@ -1819,7 +1819,7 @@ done:
28478 +@@ -1950,7 +1950,7 @@ done:
28479 return ret;
28480 }
28481
28482 @@ -97319,7 +98579,7 @@ index 4c8e5c0..5a79b4d 100644
28483
28484 if (!todrop_rate[i]) return 0;
28485 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
28486 -index 3581736..c0453e9 100644
28487 +index 4f26ee4..6a9d7c3 100644
28488 --- a/net/netfilter/ipvs/ip_vs_core.c
28489 +++ b/net/netfilter/ipvs/ip_vs_core.c
28490 @@ -567,7 +567,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
28491 @@ -97341,7 +98601,7 @@ index 3581736..c0453e9 100644
28492 if (ipvs->sync_state & IP_VS_STATE_MASTER)
28493 ip_vs_sync_conn(net, cp, pkts);
28494 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
28495 -index a3df9bd..895ae09 100644
28496 +index 35be035..dad174b 100644
28497 --- a/net/netfilter/ipvs/ip_vs_ctl.c
28498 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
28499 @@ -794,7 +794,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
28500 @@ -97353,7 +98613,7 @@ index a3df9bd..895ae09 100644
28501
28502 /* bind the service */
28503 old_svc = rcu_dereference_protected(dest->svc, 1);
28504 -@@ -1641,7 +1641,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
28505 +@@ -1654,7 +1654,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
28506 * align with netns init in ip_vs_control_net_init()
28507 */
28508
28509 @@ -97362,7 +98622,7 @@ index a3df9bd..895ae09 100644
28510 {
28511 .procname = "amemthresh",
28512 .maxlen = sizeof(int),
28513 -@@ -2062,7 +2062,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
28514 +@@ -2075,7 +2075,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
28515 " %-7s %-6d %-10d %-10d\n",
28516 &dest->addr.in6,
28517 ntohs(dest->port),
28518 @@ -97371,7 +98631,7 @@ index a3df9bd..895ae09 100644
28519 atomic_read(&dest->weight),
28520 atomic_read(&dest->activeconns),
28521 atomic_read(&dest->inactconns));
28522 -@@ -2073,7 +2073,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
28523 +@@ -2086,7 +2086,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
28524 "%-7s %-6d %-10d %-10d\n",
28525 ntohl(dest->addr.ip),
28526 ntohs(dest->port),
28527 @@ -97380,7 +98640,7 @@ index a3df9bd..895ae09 100644
28528 atomic_read(&dest->weight),
28529 atomic_read(&dest->activeconns),
28530 atomic_read(&dest->inactconns));
28531 -@@ -2551,7 +2551,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
28532 +@@ -2564,7 +2564,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
28533
28534 entry.addr = dest->addr.ip;
28535 entry.port = dest->port;
28536 @@ -97389,7 +98649,7 @@ index a3df9bd..895ae09 100644
28537 entry.weight = atomic_read(&dest->weight);
28538 entry.u_threshold = dest->u_threshold;
28539 entry.l_threshold = dest->l_threshold;
28540 -@@ -3094,7 +3094,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
28541 +@@ -3107,7 +3107,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
28542 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
28543 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
28544 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
28545 @@ -97398,7 +98658,7 @@ index a3df9bd..895ae09 100644
28546 IP_VS_CONN_F_FWD_MASK)) ||
28547 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
28548 atomic_read(&dest->weight)) ||
28549 -@@ -3684,7 +3684,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
28550 +@@ -3697,7 +3697,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
28551 {
28552 int idx;
28553 struct netns_ipvs *ipvs = net_ipvs(net);
28554 @@ -97408,7 +98668,7 @@ index a3df9bd..895ae09 100644
28555 atomic_set(&ipvs->dropentry, 0);
28556 spin_lock_init(&ipvs->dropentry_lock);
28557 diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
28558 -index eff13c9..c1aab3e 100644
28559 +index ca056a3..9cf01ef 100644
28560 --- a/net/netfilter/ipvs/ip_vs_lblc.c
28561 +++ b/net/netfilter/ipvs/ip_vs_lblc.c
28562 @@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
28563 @@ -97421,7 +98681,7 @@ index eff13c9..c1aab3e 100644
28564 .procname = "lblc_expiration",
28565 .data = NULL,
28566 diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
28567 -index 0b85500..8513fa5 100644
28568 +index 3f21a2f..a112e85 100644
28569 --- a/net/netfilter/ipvs/ip_vs_lblcr.c
28570 +++ b/net/netfilter/ipvs/ip_vs_lblcr.c
28571 @@ -289,7 +289,7 @@ struct ip_vs_lblcr_table {
28572 @@ -97434,7 +98694,7 @@ index 0b85500..8513fa5 100644
28573 .procname = "lblcr_expiration",
28574 .data = NULL,
28575 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
28576 -index f448471..995f131 100644
28577 +index f63c238..1b87f8a 100644
28578 --- a/net/netfilter/ipvs/ip_vs_sync.c
28579 +++ b/net/netfilter/ipvs/ip_vs_sync.c
28580 @@ -609,7 +609,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
28581 @@ -97487,10 +98747,10 @@ index c47444e..b0961c6 100644
28582 }
28583
28584 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
28585 -index 2d3030a..7ba1c0a 100644
28586 +index a4b5e2a..13b1de3 100644
28587 --- a/net/netfilter/nf_conntrack_acct.c
28588 +++ b/net/netfilter/nf_conntrack_acct.c
28589 -@@ -60,7 +60,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
28590 +@@ -62,7 +62,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
28591 #ifdef CONFIG_SYSCTL
28592 static int nf_conntrack_acct_init_sysctl(struct net *net)
28593 {
28594 @@ -97500,10 +98760,10 @@ index 2d3030a..7ba1c0a 100644
28595 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
28596 GFP_KERNEL);
28597 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
28598 -index 5d892fe..d2fc9d8 100644
28599 +index 43549eb..0bbeace 100644
28600 --- a/net/netfilter/nf_conntrack_core.c
28601 +++ b/net/netfilter/nf_conntrack_core.c
28602 -@@ -1600,6 +1600,10 @@ void nf_conntrack_init_end(void)
28603 +@@ -1605,6 +1605,10 @@ void nf_conntrack_init_end(void)
28604 #define DYING_NULLS_VAL ((1<<30)+1)
28605 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
28606
28607 @@ -97514,7 +98774,7 @@ index 5d892fe..d2fc9d8 100644
28608 int nf_conntrack_init_net(struct net *net)
28609 {
28610 int ret;
28611 -@@ -1614,7 +1618,11 @@ int nf_conntrack_init_net(struct net *net)
28612 +@@ -1619,7 +1623,11 @@ int nf_conntrack_init_net(struct net *net)
28613 goto err_stat;
28614 }
28615
28616 @@ -97628,7 +98888,7 @@ index f641751..d3c5b51 100644
28617 table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
28618 GFP_KERNEL);
28619 diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c
28620 -index 902fb0a..87f7fdb 100644
28621 +index 7a394df..bd91a8a 100644
28622 --- a/net/netfilter/nf_conntrack_timestamp.c
28623 +++ b/net/netfilter/nf_conntrack_timestamp.c
28624 @@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = {
28625 @@ -97696,7 +98956,7 @@ index f042ae5..30ea486 100644
28626 }
28627 EXPORT_SYMBOL(nf_unregister_sockopt);
28628 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
28629 -index d92cc31..e46f350 100644
28630 +index a155d19..726b0f2 100644
28631 --- a/net/netfilter/nfnetlink_log.c
28632 +++ b/net/netfilter/nfnetlink_log.c
28633 @@ -82,7 +82,7 @@ static int nfnl_log_net_id __read_mostly;
28634 @@ -97708,7 +98968,7 @@ index d92cc31..e46f350 100644
28635 };
28636
28637 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
28638 -@@ -563,7 +563,7 @@ __build_packet_message(struct nfnl_log_net *log,
28639 +@@ -564,7 +564,7 @@ __build_packet_message(struct nfnl_log_net *log,
28640 /* global sequence number */
28641 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
28642 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
28643 @@ -97717,6 +98977,28 @@ index d92cc31..e46f350 100644
28644 goto nla_put_failure;
28645
28646 if (data_len) {
28647 +diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
28648 +index da0c1f4..f79737a 100644
28649 +--- a/net/netfilter/nft_compat.c
28650 ++++ b/net/netfilter/nft_compat.c
28651 +@@ -216,7 +216,7 @@ target_dump_info(struct sk_buff *skb, const struct xt_target *t, const void *in)
28652 + /* We want to reuse existing compat_to_user */
28653 + old_fs = get_fs();
28654 + set_fs(KERNEL_DS);
28655 +- t->compat_to_user(out, in);
28656 ++ t->compat_to_user((void __force_user *)out, in);
28657 + set_fs(old_fs);
28658 + ret = nla_put(skb, NFTA_TARGET_INFO, XT_ALIGN(t->targetsize), out);
28659 + kfree(out);
28660 +@@ -403,7 +403,7 @@ match_dump_info(struct sk_buff *skb, const struct xt_match *m, const void *in)
28661 + /* We want to reuse existing compat_to_user */
28662 + old_fs = get_fs();
28663 + set_fs(KERNEL_DS);
28664 +- m->compat_to_user(out, in);
28665 ++ m->compat_to_user((void __force_user *)out, in);
28666 + set_fs(old_fs);
28667 + ret = nla_put(skb, NFTA_MATCH_INFO, XT_ALIGN(m->matchsize), out);
28668 + kfree(out);
28669 diff --git a/net/netfilter/xt_gradm.c b/net/netfilter/xt_gradm.c
28670 new file mode 100644
28671 index 0000000..c566332
28672 @@ -97809,7 +99091,7 @@ index 4fe4fb4..87a89e5 100644
28673 return 0;
28674 }
28675 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
28676 -index 6135635..5bdc54a 100644
28677 +index bca50b9..8f8a85e 100644
28678 --- a/net/netlink/af_netlink.c
28679 +++ b/net/netlink/af_netlink.c
28680 @@ -249,7 +249,7 @@ static void netlink_overrun(struct sock *sk)
28681 @@ -97830,48 +99112,6 @@ index 6135635..5bdc54a 100644
28682 sock_i_ino(s)
28683 );
28684
28685 -diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
28686 -index 0c741ce..f8c8ca7 100644
28687 ---- a/net/netlink/genetlink.c
28688 -+++ b/net/netlink/genetlink.c
28689 -@@ -310,18 +310,20 @@ int genl_register_ops(struct genl_family *family, struct genl_ops *ops)
28690 - goto errout;
28691 - }
28692 -
28693 -+ pax_open_kernel();
28694 - if (ops->dumpit)
28695 -- ops->flags |= GENL_CMD_CAP_DUMP;
28696 -+ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_DUMP;
28697 - if (ops->doit)
28698 -- ops->flags |= GENL_CMD_CAP_DO;
28699 -+ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_DO;
28700 - if (ops->policy)
28701 -- ops->flags |= GENL_CMD_CAP_HASPOL;
28702 -+ *(unsigned int *)&ops->flags |= GENL_CMD_CAP_HASPOL;
28703 -+ pax_close_kernel();
28704 -
28705 - genl_lock_all();
28706 -- list_add_tail(&ops->ops_list, &family->ops_list);
28707 -+ pax_list_add_tail((struct list_head *)&ops->ops_list, &family->ops_list);
28708 - genl_unlock_all();
28709 -
28710 -- genl_ctrl_event(CTRL_CMD_NEWOPS, ops);
28711 -+ genl_ctrl_event(CTRL_CMD_NEWOPS, (void *)ops);
28712 - err = 0;
28713 - errout:
28714 - return err;
28715 -@@ -351,9 +353,9 @@ int genl_unregister_ops(struct genl_family *family, struct genl_ops *ops)
28716 - genl_lock_all();
28717 - list_for_each_entry(rc, &family->ops_list, ops_list) {
28718 - if (rc == ops) {
28719 -- list_del(&ops->ops_list);
28720 -+ pax_list_del((struct list_head *)&ops->ops_list);
28721 - genl_unlock_all();
28722 -- genl_ctrl_event(CTRL_CMD_DELOPS, ops);
28723 -+ genl_ctrl_event(CTRL_CMD_DELOPS, (void *)ops);
28724 - return 0;
28725 - }
28726 - }
28727 diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
28728 index 53c19a3..b0ac04a 100644
28729 --- a/net/netrom/af_netrom.c
28730 @@ -97924,6 +99164,33 @@ index 88cfbc1..05d73f5 100644
28731 return -EFAULT;
28732 return 0;
28733 }
28734 +diff --git a/net/phonet/datagram.c b/net/phonet/datagram.c
28735 +index 38946b2..12c30f3 100644
28736 +--- a/net/phonet/datagram.c
28737 ++++ b/net/phonet/datagram.c
28738 +@@ -139,6 +139,9 @@ static int pn_recvmsg(struct kiocb *iocb, struct sock *sk,
28739 + MSG_CMSG_COMPAT))
28740 + goto out_nofree;
28741 +
28742 ++ if (addr_len)
28743 ++ *addr_len = sizeof(sa);
28744 ++
28745 + skb = skb_recv_datagram(sk, flags, noblock, &rval);
28746 + if (skb == NULL)
28747 + goto out_nofree;
28748 +@@ -159,10 +162,8 @@ static int pn_recvmsg(struct kiocb *iocb, struct sock *sk,
28749 +
28750 + rval = (flags & MSG_TRUNC) ? skb->len : copylen;
28751 +
28752 +- if (msg->msg_name != NULL) {
28753 +- memcpy(msg->msg_name, &sa, sizeof(sa));
28754 +- *addr_len = sizeof(sa);
28755 +- }
28756 ++ if (msg->msg_name != NULL)
28757 ++ memcpy(msg->msg_name, &sa, sizeof(struct sockaddr_pn));
28758 +
28759 + out:
28760 + skb_free_datagram(sk, skb);
28761 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
28762 index e774117..900b8b7 100644
28763 --- a/net/phonet/pep.c
28764 @@ -97956,17 +99223,17 @@ index e774117..900b8b7 100644
28765 break;
28766 }
28767 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
28768 -index 77e38f7..f4ef5c3 100644
28769 +index 008214a..bb68240 100644
28770 --- a/net/phonet/socket.c
28771 +++ b/net/phonet/socket.c
28772 -@@ -612,7 +612,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
28773 +@@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
28774 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
28775 sock_i_ino(sk),
28776 atomic_read(&sk->sk_refcnt), sk,
28777 -- atomic_read(&sk->sk_drops), &len);
28778 -+ atomic_read_unchecked(&sk->sk_drops), &len);
28779 +- atomic_read(&sk->sk_drops));
28780 ++ atomic_read_unchecked(&sk->sk_drops));
28781 }
28782 - seq_printf(seq, "%*s\n", 127 - len, "");
28783 + seq_pad(seq, '\n');
28784 return 0;
28785 diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c
28786 index c02a8c4..3c5b600 100644
28787 @@ -98039,10 +99306,10 @@ index 31b74f5..dc1fbfa 100644
28788 ic->i_ack_next = 0;
28789 #endif
28790 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
28791 -index 8eb9501..0c386ff 100644
28792 +index b7ebe23..b6352f6 100644
28793 --- a/net/rds/ib_recv.c
28794 +++ b/net/rds/ib_recv.c
28795 -@@ -597,7 +597,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
28796 +@@ -596,7 +596,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
28797 static void rds_ib_set_ack(struct rds_ib_connection *ic, u64 seq,
28798 int ack_required)
28799 {
28800 @@ -98051,7 +99318,7 @@ index 8eb9501..0c386ff 100644
28801 if (ack_required) {
28802 smp_mb__before_clear_bit();
28803 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
28804 -@@ -609,7 +609,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
28805 +@@ -608,7 +608,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
28806 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
28807 smp_mb__after_clear_bit();
28808
28809 @@ -98109,7 +99376,7 @@ index 4503335..db566b4 100644
28810 #endif
28811
28812 diff --git a/net/rds/rds.h b/net/rds/rds.h
28813 -index ec1d731..90a3a8d 100644
28814 +index 48f8ffc..0ef3eec 100644
28815 --- a/net/rds/rds.h
28816 +++ b/net/rds/rds.h
28817 @@ -449,7 +449,7 @@ struct rds_transport {
28818 @@ -98283,7 +99550,7 @@ index 529572f..c758ca7 100644
28819
28820 /* request ACK generation for any ACK or DATA packet that requests
28821 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
28822 -index a693aca..81e7293 100644
28823 +index 5f43675..ca07817 100644
28824 --- a/net/rxrpc/ar-internal.h
28825 +++ b/net/rxrpc/ar-internal.h
28826 @@ -272,8 +272,8 @@ struct rxrpc_connection {
28827 @@ -98408,10 +99675,10 @@ index f226709..0e735a8 100644
28828
28829 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
28830 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
28831 -index e7b2d4f..bb1efd0 100644
28832 +index 7567e6f..299382b 100644
28833 --- a/net/sctp/ipv6.c
28834 +++ b/net/sctp/ipv6.c
28835 -@@ -962,7 +962,7 @@ static const struct inet6_protocol sctpv6_protocol = {
28836 +@@ -964,7 +964,7 @@ static const struct inet6_protocol sctpv6_protocol = {
28837 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
28838 };
28839
28840 @@ -98420,7 +99687,7 @@ index e7b2d4f..bb1efd0 100644
28841 .sa_family = AF_INET6,
28842 .sctp_xmit = sctp_v6_xmit,
28843 .setsockopt = ipv6_setsockopt,
28844 -@@ -994,7 +994,7 @@ static struct sctp_af sctp_af_inet6 = {
28845 +@@ -996,7 +996,7 @@ static struct sctp_af sctp_af_inet6 = {
28846 #endif
28847 };
28848
28849 @@ -98429,7 +99696,7 @@ index e7b2d4f..bb1efd0 100644
28850 .event_msgname = sctp_inet6_event_msgname,
28851 .skb_msgname = sctp_inet6_skb_msgname,
28852 .af_supported = sctp_inet6_af_supported,
28853 -@@ -1019,7 +1019,7 @@ void sctp_v6_pf_init(void)
28854 +@@ -1021,7 +1021,7 @@ void sctp_v6_pf_init(void)
28855
28856 void sctp_v6_pf_exit(void)
28857 {
28858 @@ -98495,7 +99762,7 @@ index 1a6eef3..17e898f 100644
28859 sctp_generate_t1_cookie_event,
28860 sctp_generate_t1_init_event,
28861 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
28862 -index 911b71b..90ade0a 100644
28863 +index 42b709c..e7d09ac 100644
28864 --- a/net/sctp/socket.c
28865 +++ b/net/sctp/socket.c
28866 @@ -2153,11 +2153,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
28867 @@ -98513,7 +99780,7 @@ index 911b71b..90ade0a 100644
28868
28869 /*
28870 * At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
28871 -@@ -4213,13 +4215,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
28872 +@@ -4229,13 +4231,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
28873 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
28874 int __user *optlen)
28875 {
28876 @@ -98531,7 +99798,7 @@ index 911b71b..90ade0a 100644
28877 return -EFAULT;
28878 return 0;
28879 }
28880 -@@ -4237,6 +4242,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
28881 +@@ -4253,6 +4258,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
28882 */
28883 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
28884 {
28885 @@ -98540,7 +99807,7 @@ index 911b71b..90ade0a 100644
28886 /* Applicable to UDP-style socket only */
28887 if (sctp_style(sk, TCP))
28888 return -EOPNOTSUPP;
28889 -@@ -4245,7 +4252,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
28890 +@@ -4261,7 +4268,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
28891 len = sizeof(int);
28892 if (put_user(len, optlen))
28893 return -EFAULT;
28894 @@ -98550,7 +99817,7 @@ index 911b71b..90ade0a 100644
28895 return -EFAULT;
28896 return 0;
28897 }
28898 -@@ -4617,12 +4625,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
28899 +@@ -4633,12 +4641,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
28900 */
28901 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
28902 {
28903 @@ -98567,7 +99834,7 @@ index 911b71b..90ade0a 100644
28904 return -EFAULT;
28905 return 0;
28906 }
28907 -@@ -4663,6 +4674,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
28908 +@@ -4679,6 +4690,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
28909 addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len;
28910 if (space_left < addrlen)
28911 return -ENOMEM;
28912 @@ -98577,10 +99844,10 @@ index 911b71b..90ade0a 100644
28913 return -EFAULT;
28914 to += addrlen;
28915 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
28916 -index 6b36561..4f21064 100644
28917 +index b0565af..d135e6e 100644
28918 --- a/net/sctp/sysctl.c
28919 +++ b/net/sctp/sysctl.c
28920 -@@ -301,7 +301,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl,
28921 +@@ -305,7 +305,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
28922 {
28923 struct net *net = current->nsproxy->net_ns;
28924 char tmp[8];
28925 @@ -98589,7 +99856,25 @@ index 6b36561..4f21064 100644
28926 int ret;
28927 int changed = 0;
28928 char *none = "none";
28929 -@@ -344,7 +344,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl,
28930 +@@ -352,7 +352,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
28931 + {
28932 + struct net *net = current->nsproxy->net_ns;
28933 + int new_value;
28934 +- struct ctl_table tbl;
28935 ++ ctl_table_no_const tbl;
28936 + unsigned int min = *(unsigned int *) ctl->extra1;
28937 + unsigned int max = *(unsigned int *) ctl->extra2;
28938 + int ret;
28939 +@@ -379,7 +379,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
28940 + {
28941 + struct net *net = current->nsproxy->net_ns;
28942 + int new_value;
28943 +- struct ctl_table tbl;
28944 ++ ctl_table_no_const tbl;
28945 + unsigned int min = *(unsigned int *) ctl->extra1;
28946 + unsigned int max = *(unsigned int *) ctl->extra2;
28947 + int ret;
28948 +@@ -402,7 +402,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
28949
28950 int sctp_sysctl_net_register(struct net *net)
28951 {
28952 @@ -98599,7 +99884,7 @@ index 6b36561..4f21064 100644
28953
28954 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
28955 diff --git a/net/socket.c b/net/socket.c
28956 -index e83c416..6342a2f 100644
28957 +index e83c416..1094d88 100644
28958 --- a/net/socket.c
28959 +++ b/net/socket.c
28960 @@ -88,6 +88,7 @@
28961 @@ -98769,7 +100054,7 @@ index e83c416..6342a2f 100644
28962 * the protocol.
28963 */
28964
28965 -+asmlinkage long sys_sendto(int, void *, size_t, unsigned, struct sockaddr *, int);
28966 ++asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
28967 +
28968 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
28969 unsigned int, flags, struct sockaddr __user *, addr,
28970 @@ -98792,7 +100077,16 @@ index e83c416..6342a2f 100644
28971 uaddr_len = COMPAT_NAMELEN(msg);
28972 if (MSG_CMSG_COMPAT & flags)
28973 err = verify_compat_iovec(msg_sys, iov, &addr, VERIFY_WRITE);
28974 -@@ -2985,7 +3051,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
28975 +@@ -2871,7 +2937,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
28976 + ifr = compat_alloc_user_space(buf_size);
28977 + rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
28978 +
28979 +- if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
28980 ++ if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
28981 + return -EFAULT;
28982 +
28983 + if (put_user(convert_in ? rxnfc : compat_ptr(data),
28984 +@@ -2985,14 +3051,14 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
28985 old_fs = get_fs();
28986 set_fs(KERNEL_DS);
28987 err = dev_ioctl(net, cmd,
28988 @@ -98801,6 +100095,14 @@ index e83c416..6342a2f 100644
28989 set_fs(old_fs);
28990
28991 return err;
28992 + case SIOCBONDSLAVEINFOQUERY:
28993 + case SIOCBONDINFOQUERY:
28994 + uifr = compat_alloc_user_space(sizeof(*uifr));
28995 +- if (copy_in_user(&uifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
28996 ++ if (copy_in_user(uifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
28997 + return -EFAULT;
28998 +
28999 + if (get_user(data, &ifr32->ifr_ifru.ifru_data))
29000 @@ -3094,7 +3160,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
29001
29002 old_fs = get_fs();
29003 @@ -98840,7 +100142,7 @@ index e83c416..6342a2f 100644
29004 set_fs(KERNEL_DS);
29005 if (level == SOL_SOCKET)
29006 diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
29007 -index 09fb638..2e6a5c5 100644
29008 +index 008cdad..6f17474 100644
29009 --- a/net/sunrpc/auth_gss/svcauth_gss.c
29010 +++ b/net/sunrpc/auth_gss/svcauth_gss.c
29011 @@ -1140,7 +1140,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
29012 @@ -98862,10 +100164,10 @@ index 09fb638..2e6a5c5 100644
29013 /* make a copy for the caller */
29014 *handle = ctxh;
29015 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
29016 -index 941d19f..c85ff07 100644
29017 +index f09b7db..262b98a 100644
29018 --- a/net/sunrpc/clnt.c
29019 +++ b/net/sunrpc/clnt.c
29020 -@@ -1319,7 +1319,9 @@ call_start(struct rpc_task *task)
29021 +@@ -1415,7 +1415,9 @@ call_start(struct rpc_task *task)
29022 (RPC_IS_ASYNC(task) ? "async" : "sync"));
29023
29024 /* Increment call count */
29025 @@ -98893,10 +100195,10 @@ index ff3cc4b..7612a9e 100644
29026 #else
29027 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
29028 diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
29029 -index b974571..678ed90 100644
29030 +index e7fbe36..8052603 100644
29031 --- a/net/sunrpc/svc.c
29032 +++ b/net/sunrpc/svc.c
29033 -@@ -1160,7 +1160,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
29034 +@@ -1158,7 +1158,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
29035 svc_putnl(resv, RPC_SUCCESS);
29036
29037 /* Bump per-procedure stats counter */
29038 @@ -99146,43 +100448,8 @@ index e7000be..e3b0ba7 100644
29039 uid_eq(root_uid, current_euid())) {
29040 int mode = (table->mode >> 6) & 7;
29041 return (mode << 6) | (mode << 3) | mode;
29042 -diff --git a/net/tipc/link.c b/net/tipc/link.c
29043 -index 0cc3d90..cc42021 100644
29044 ---- a/net/tipc/link.c
29045 -+++ b/net/tipc/link.c
29046 -@@ -1165,7 +1165,7 @@ static int link_send_sections_long(struct tipc_port *sender,
29047 - struct tipc_msg fragm_hdr;
29048 - struct sk_buff *buf, *buf_chain, *prev;
29049 - u32 fragm_crs, fragm_rest, hsz, sect_rest;
29050 -- const unchar *sect_crs;
29051 -+ const unchar __user *sect_crs;
29052 - int curr_sect;
29053 - u32 fragm_no;
29054 - int res = 0;
29055 -@@ -1207,7 +1207,7 @@ again:
29056 -
29057 - if (!sect_rest) {
29058 - sect_rest = msg_sect[++curr_sect].iov_len;
29059 -- sect_crs = (const unchar *)msg_sect[curr_sect].iov_base;
29060 -+ sect_crs = (const unchar __user *)msg_sect[curr_sect].iov_base;
29061 - }
29062 -
29063 - if (sect_rest < fragm_rest)
29064 -diff --git a/net/tipc/msg.c b/net/tipc/msg.c
29065 -index ced60e2..54eab6c 100644
29066 ---- a/net/tipc/msg.c
29067 -+++ b/net/tipc/msg.c
29068 -@@ -93,7 +93,7 @@ int tipc_msg_build(struct tipc_msg *hdr, struct iovec const *msg_sect,
29069 - skb_copy_to_linear_data(*buf, hdr, hsz);
29070 - for (res = 1, cnt = 0; res && (cnt < num_sect); cnt++) {
29071 - skb_copy_to_linear_data_offset(*buf, pos,
29072 -- msg_sect[cnt].iov_base,
29073 -+ (const void __force_kernel *)msg_sect[cnt].iov_base,
29074 - msg_sect[cnt].iov_len);
29075 - pos += msg_sect[cnt].iov_len;
29076 - }
29077 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
29078 -index d38bb45..4fd6ac6 100644
29079 +index d38bb45..38d5df5 100644
29080 --- a/net/tipc/subscr.c
29081 +++ b/net/tipc/subscr.c
29082 @@ -98,7 +98,7 @@ static void subscr_send_event(struct tipc_subscription *sub, u32 found_lower,
29083 @@ -99190,7 +100457,7 @@ index d38bb45..4fd6ac6 100644
29084 int ret;
29085
29086 - msg_sect.iov_base = (void *)&sub->evt;
29087 -+ msg_sect.iov_base = (void __force_user *)&sub->evt;
29088 ++ msg_sect.iov_base = &sub->evt;
29089 msg_sect.iov_len = sizeof(struct tipc_event);
29090
29091 sub->evt.event = htohl(event, sub->swap);
29092 @@ -99285,6 +100552,84 @@ index b3d5150..ff3a837 100644
29093
29094 table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
29095 if (table == NULL)
29096 +diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
29097 +index 9a73074..aecba9a 100644
29098 +--- a/net/vmw_vsock/vmci_transport_notify.c
29099 ++++ b/net/vmw_vsock/vmci_transport_notify.c
29100 +@@ -662,19 +662,19 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
29101 +
29102 + /* Socket control packet based operations. */
29103 + struct vmci_transport_notify_ops vmci_transport_notify_pkt_ops = {
29104 +- vmci_transport_notify_pkt_socket_init,
29105 +- vmci_transport_notify_pkt_socket_destruct,
29106 +- vmci_transport_notify_pkt_poll_in,
29107 +- vmci_transport_notify_pkt_poll_out,
29108 +- vmci_transport_notify_pkt_handle_pkt,
29109 +- vmci_transport_notify_pkt_recv_init,
29110 +- vmci_transport_notify_pkt_recv_pre_block,
29111 +- vmci_transport_notify_pkt_recv_pre_dequeue,
29112 +- vmci_transport_notify_pkt_recv_post_dequeue,
29113 +- vmci_transport_notify_pkt_send_init,
29114 +- vmci_transport_notify_pkt_send_pre_block,
29115 +- vmci_transport_notify_pkt_send_pre_enqueue,
29116 +- vmci_transport_notify_pkt_send_post_enqueue,
29117 +- vmci_transport_notify_pkt_process_request,
29118 +- vmci_transport_notify_pkt_process_negotiate,
29119 ++ .socket_init = vmci_transport_notify_pkt_socket_init,
29120 ++ .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
29121 ++ .poll_in = vmci_transport_notify_pkt_poll_in,
29122 ++ .poll_out = vmci_transport_notify_pkt_poll_out,
29123 ++ .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
29124 ++ .recv_init = vmci_transport_notify_pkt_recv_init,
29125 ++ .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
29126 ++ .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
29127 ++ .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
29128 ++ .send_init = vmci_transport_notify_pkt_send_init,
29129 ++ .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
29130 ++ .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
29131 ++ .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
29132 ++ .process_request = vmci_transport_notify_pkt_process_request,
29133 ++ .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
29134 + };
29135 +diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
29136 +index 622bd7a..b92086c 100644
29137 +--- a/net/vmw_vsock/vmci_transport_notify_qstate.c
29138 ++++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
29139 +@@ -420,19 +420,19 @@ vmci_transport_notify_pkt_send_pre_enqueue(
29140 +
29141 + /* Socket always on control packet based operations. */
29142 + struct vmci_transport_notify_ops vmci_transport_notify_pkt_q_state_ops = {
29143 +- vmci_transport_notify_pkt_socket_init,
29144 +- vmci_transport_notify_pkt_socket_destruct,
29145 +- vmci_transport_notify_pkt_poll_in,
29146 +- vmci_transport_notify_pkt_poll_out,
29147 +- vmci_transport_notify_pkt_handle_pkt,
29148 +- vmci_transport_notify_pkt_recv_init,
29149 +- vmci_transport_notify_pkt_recv_pre_block,
29150 +- vmci_transport_notify_pkt_recv_pre_dequeue,
29151 +- vmci_transport_notify_pkt_recv_post_dequeue,
29152 +- vmci_transport_notify_pkt_send_init,
29153 +- vmci_transport_notify_pkt_send_pre_block,
29154 +- vmci_transport_notify_pkt_send_pre_enqueue,
29155 +- vmci_transport_notify_pkt_send_post_enqueue,
29156 +- vmci_transport_notify_pkt_process_request,
29157 +- vmci_transport_notify_pkt_process_negotiate,
29158 ++ .socket_init = vmci_transport_notify_pkt_socket_init,
29159 ++ .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
29160 ++ .poll_in = vmci_transport_notify_pkt_poll_in,
29161 ++ .poll_out = vmci_transport_notify_pkt_poll_out,
29162 ++ .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
29163 ++ .recv_init = vmci_transport_notify_pkt_recv_init,
29164 ++ .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
29165 ++ .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
29166 ++ .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
29167 ++ .send_init = vmci_transport_notify_pkt_send_init,
29168 ++ .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
29169 ++ .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
29170 ++ .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
29171 ++ .process_request = vmci_transport_notify_pkt_process_request,
29172 ++ .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
29173 + };
29174 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
29175 index c8717c1..08539f5 100644
29176 --- a/net/wireless/wext-core.c
29177 @@ -99322,8 +100667,21 @@ index c8717c1..08539f5 100644
29178 err = handler(dev, info, (union iwreq_data *) iwp, extra);
29179
29180 iwp->length += essid_compat;
29181 +diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
29182 +index 4323952..a06dfe1 100644
29183 +--- a/net/x25/sysctl_net_x25.c
29184 ++++ b/net/x25/sysctl_net_x25.c
29185 +@@ -70,7 +70,7 @@ static struct ctl_table x25_table[] = {
29186 + .mode = 0644,
29187 + .proc_handler = proc_dointvec,
29188 + },
29189 +- { 0, },
29190 ++ { },
29191 + };
29192 +
29193 + void __init x25_register_sysctl(void)
29194 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
29195 -index 76e1873..4a12664 100644
29196 +index 9a91f74..502f6605 100644
29197 --- a/net/xfrm/xfrm_policy.c
29198 +++ b/net/xfrm/xfrm_policy.c
29199 @@ -332,7 +332,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
29200 @@ -99380,7 +100738,7 @@ index 76e1873..4a12664 100644
29201
29202 return xdst;
29203 }
29204 -@@ -2575,11 +2575,12 @@ void xfrm_garbage_collect(struct net *net)
29205 +@@ -2582,11 +2582,12 @@ void xfrm_garbage_collect(struct net *net)
29206 }
29207 EXPORT_SYMBOL(xfrm_garbage_collect);
29208
29209 @@ -99394,7 +100752,7 @@ index 76e1873..4a12664 100644
29210
29211 static void xfrm_init_pmtu(struct dst_entry *dst)
29212 {
29213 -@@ -2629,7 +2630,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
29214 +@@ -2636,7 +2637,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
29215 if (xdst->xfrm_genid != dst->xfrm->genid)
29216 return 0;
29217 if (xdst->num_pols > 0 &&
29218 @@ -99403,7 +100761,7 @@ index 76e1873..4a12664 100644
29219 return 0;
29220
29221 mtu = dst_mtu(dst->child);
29222 -@@ -2717,8 +2718,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
29223 +@@ -2724,8 +2725,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
29224 dst_ops->link_failure = xfrm_link_failure;
29225 if (likely(dst_ops->neigh_lookup == NULL))
29226 dst_ops->neigh_lookup = xfrm_neigh_lookup;
29227 @@ -99412,7 +100770,7 @@ index 76e1873..4a12664 100644
29228 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
29229 }
29230 spin_unlock(&xfrm_policy_afinfo_lock);
29231 -@@ -2772,7 +2771,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
29232 +@@ -2779,7 +2778,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
29233 dst_ops->check = NULL;
29234 dst_ops->negative_advice = NULL;
29235 dst_ops->link_failure = NULL;
29236 @@ -99420,7 +100778,7 @@ index 76e1873..4a12664 100644
29237 }
29238 return err;
29239 }
29240 -@@ -3155,7 +3153,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
29241 +@@ -3162,7 +3160,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
29242 sizeof(pol->xfrm_vec[i].saddr));
29243 pol->xfrm_vec[i].encap_family = mp->new_family;
29244 /* flush bundles */
29245 @@ -99430,7 +100788,7 @@ index 76e1873..4a12664 100644
29246 }
29247
29248 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
29249 -index b9c3f9e..4767526 100644
29250 +index 68c2f35..9eb05ca 100644
29251 --- a/net/xfrm/xfrm_state.c
29252 +++ b/net/xfrm/xfrm_state.c
29253 @@ -174,12 +174,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
29254 @@ -99550,6 +100908,16 @@ index 05a6e3d..6716ec9 100644
29255
29256 __xfrm_sysctl_init(net);
29257
29258 +diff --git a/scripts/Makefile b/scripts/Makefile
29259 +index 01e7adb..6176d5d 100644
29260 +--- a/scripts/Makefile
29261 ++++ b/scripts/Makefile
29262 +@@ -40,3 +40,5 @@ subdir-$(CONFIG_DTC) += dtc
29263 +
29264 + # Let clean descend into subdirs
29265 + subdir- += basic kconfig package selinux
29266 ++
29267 ++clean-files := randstruct.seed
29268 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
29269 index d5d859c..781cbcb 100644
29270 --- a/scripts/Makefile.build
29271 @@ -99718,6 +101086,20 @@ index 0000000..5e0222d
29272 + [[ "$plugincc" =~ "$1" ]] && echo "$1"
29273 + [[ "$plugincc" =~ "$2" ]] && echo "$2"
29274 +fi
29275 +diff --git a/scripts/gen-random-seed.sh b/scripts/gen-random-seed.sh
29276 +new file mode 100644
29277 +index 0000000..17b3162
29278 +--- /dev/null
29279 ++++ b/scripts/gen-random-seed.sh
29280 +@@ -0,0 +1,8 @@
29281 ++#!/bin/sh
29282 ++
29283 ++if [ ! -f 'tools/gcc/randstruct.seed' ]; then
29284 ++ SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
29285 ++ echo "$SEED" > tools/gcc/randstruct.seed
29286 ++fi
29287 ++cat tools/gcc/randstruct.seed | sha256sum | cut -d" " -f1 | tr -d "\n" > tools/gcc/randstruct.hashed_seed
29288 ++cat tools/gcc/randstruct.seed
29289 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
29290 index 5de5660..d3deb89 100644
29291 --- a/scripts/headers_install.sh
29292 @@ -99811,10 +101193,10 @@ index 2370863..212fbca 100644
29293 sprintf(alias, "dmi*");
29294
29295 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
29296 -index 8247979..815ec76 100644
29297 +index 1785576..5e8e06a 100644
29298 --- a/scripts/mod/modpost.c
29299 +++ b/scripts/mod/modpost.c
29300 -@@ -931,6 +931,7 @@ enum mismatch {
29301 +@@ -941,6 +941,7 @@ enum mismatch {
29302 ANY_INIT_TO_ANY_EXIT,
29303 ANY_EXIT_TO_ANY_INIT,
29304 EXPORT_TO_INIT_EXIT,
29305 @@ -99822,7 +101204,7 @@ index 8247979..815ec76 100644
29306 };
29307
29308 struct sectioncheck {
29309 -@@ -1017,6 +1018,12 @@ const struct sectioncheck sectioncheck[] = {
29310 +@@ -1027,6 +1028,12 @@ const struct sectioncheck sectioncheck[] = {
29311 .tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
29312 .mismatch = EXPORT_TO_INIT_EXIT,
29313 .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
29314 @@ -99835,7 +101217,7 @@ index 8247979..815ec76 100644
29315 }
29316 };
29317
29318 -@@ -1137,10 +1144,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
29319 +@@ -1147,10 +1154,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
29320 continue;
29321 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
29322 continue;
29323 @@ -99848,7 +101230,7 @@ index 8247979..815ec76 100644
29324 if (d < 0)
29325 d = addr - sym->st_value;
29326 if (d < distance) {
29327 -@@ -1418,6 +1425,14 @@ static void report_sec_mismatch(const char *modname,
29328 +@@ -1428,6 +1435,14 @@ static void report_sec_mismatch(const char *modname,
29329 tosym, prl_to, prl_to, tosym);
29330 free(prl_to);
29331 break;
29332 @@ -99863,7 +101245,7 @@ index 8247979..815ec76 100644
29333 }
29334 fprintf(stderr, "\n");
29335 }
29336 -@@ -1652,7 +1667,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
29337 +@@ -1662,7 +1677,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
29338 static void check_sec_ref(struct module *mod, const char *modname,
29339 struct elf_info *elf)
29340 {
29341 @@ -99872,7 +101254,7 @@ index 8247979..815ec76 100644
29342 Elf_Shdr *sechdrs = elf->sechdrs;
29343
29344 /* Walk through all sections */
29345 -@@ -1771,7 +1786,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
29346 +@@ -1781,7 +1796,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
29347 va_end(ap);
29348 }
29349
29350 @@ -99881,7 +101263,7 @@ index 8247979..815ec76 100644
29351 {
29352 if (buf->size - buf->pos < len) {
29353 buf->size += len + SZ;
29354 -@@ -1990,7 +2005,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
29355 +@@ -2000,7 +2015,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
29356 if (fstat(fileno(file), &st) < 0)
29357 goto close_write;
29358
29359 @@ -99914,7 +101296,7 @@ index 51207e4..f7d603d 100644
29360 struct module {
29361 struct module *next;
29362 diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
29363 -index 9dfcd6d..099068e 100644
29364 +index deb2994..af4f63e 100644
29365 --- a/scripts/mod/sumversion.c
29366 +++ b/scripts/mod/sumversion.c
29367 @@ -470,7 +470,7 @@ static void write_version(const char *filename, const char *sum,
29368 @@ -99984,10 +101366,10 @@ index 68bb4ef..2f419e1 100644
29369 write_hex_cnt = 0;
29370 for (i = 0; i < logo_clutsize; i++) {
29371 diff --git a/scripts/sortextable.h b/scripts/sortextable.h
29372 -index f5eb43d..1814de8 100644
29373 +index 8fac3fd..32ff38d 100644
29374 --- a/scripts/sortextable.h
29375 +++ b/scripts/sortextable.h
29376 -@@ -106,9 +106,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
29377 +@@ -108,9 +108,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
29378 const char *secstrtab;
29379 const char *strtab;
29380 char *extab_image;
29381 @@ -99997,9 +101379,9 @@ index f5eb43d..1814de8 100644
29382 + unsigned int extab_index = 0;
29383 + unsigned int i;
29384 + unsigned int idx;
29385 + unsigned int num_sections;
29386 + unsigned int secindex_strings;
29387
29388 - shdr = (Elf_Shdr *)((char *)ehdr + _r(&ehdr->e_shoff));
29389 - shstrtab_sec = shdr + r2(&ehdr->e_shstrndx);
29390 diff --git a/security/Kconfig b/security/Kconfig
29391 index e9c6ac7..9551ea7 100644
29392 --- a/security/Kconfig
29393 @@ -100973,7 +102355,7 @@ index e9c6ac7..9551ea7 100644
29394 help
29395 This is the portion of low virtual memory which should be protected
29396 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
29397 -index fb99e18..b3e0bbb 100644
29398 +index 4257b7e..f0c9438 100644
29399 --- a/security/apparmor/lsm.c
29400 +++ b/security/apparmor/lsm.c
29401 @@ -615,7 +615,7 @@ static int apparmor_task_setrlimit(struct task_struct *task,
29402 @@ -101033,10 +102415,10 @@ index b9d613e..f68305c 100644
29403 if (bprm->cap_effective)
29404 return 1;
29405 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
29406 -index b3dd616..4bb17f3 100644
29407 +index 0356e1d..72332ab 100644
29408 --- a/security/integrity/ima/ima.h
29409 +++ b/security/integrity/ima/ima.h
29410 -@@ -83,8 +83,8 @@ int ima_init_crypto(void);
29411 +@@ -118,8 +118,8 @@ int ima_init_template(void);
29412 extern spinlock_t ima_queue_lock;
29413
29414 struct ima_h_table {
29415 @@ -101048,20 +102430,20 @@ index b3dd616..4bb17f3 100644
29416 };
29417 extern struct ima_h_table ima_htable;
29418 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
29419 -index 1c03e8f1..398a941 100644
29420 +index c38bbce..f45133d 100644
29421 --- a/security/integrity/ima/ima_api.c
29422 +++ b/security/integrity/ima/ima_api.c
29423 -@@ -79,7 +79,7 @@ void ima_add_violation(struct inode *inode, const unsigned char *filename,
29424 +@@ -137,7 +137,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,
29425 int result;
29426
29427 /* can overflow, only indicator */
29428 - atomic_long_inc(&ima_htable.violations);
29429 + atomic_long_inc_unchecked(&ima_htable.violations);
29430
29431 - entry = kmalloc(sizeof(*entry), GFP_KERNEL);
29432 - if (!entry) {
29433 + result = ima_alloc_init_template(NULL, file, filename,
29434 + NULL, 0, &entry);
29435 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
29436 -index 38477c9..87a60c7 100644
29437 +index db01125..61f6597 100644
29438 --- a/security/integrity/ima/ima_fs.c
29439 +++ b/security/integrity/ima/ima_fs.c
29440 @@ -28,12 +28,12 @@
29441 @@ -101080,7 +102462,7 @@ index 38477c9..87a60c7 100644
29442 }
29443
29444 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
29445 -index ff63fe0..809cd96 100644
29446 +index d85e997..6992813 100644
29447 --- a/security/integrity/ima/ima_queue.c
29448 +++ b/security/integrity/ima/ima_queue.c
29449 @@ -80,7 +80,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
29450 @@ -101093,7 +102475,7 @@ index ff63fe0..809cd96 100644
29451 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
29452 return 0;
29453 diff --git a/security/keys/compat.c b/security/keys/compat.c
29454 -index d65fa7f..cbfe366 100644
29455 +index bbd32c7..c60c927 100644
29456 --- a/security/keys/compat.c
29457 +++ b/security/keys/compat.c
29458 @@ -44,7 +44,7 @@ static long compat_keyctl_instantiate_key_iov(
29459 @@ -101106,32 +102488,32 @@ index d65fa7f..cbfe366 100644
29460 if (iov != iovstack)
29461 kfree(iov);
29462 diff --git a/security/keys/internal.h b/security/keys/internal.h
29463 -index d4f1468..cc52f92 100644
29464 +index 80b2aac..bb7ee65 100644
29465 --- a/security/keys/internal.h
29466 +++ b/security/keys/internal.h
29467 -@@ -242,7 +242,7 @@ extern long keyctl_instantiate_key_iov(key_serial_t,
29468 +@@ -253,7 +253,7 @@ extern long keyctl_instantiate_key_iov(key_serial_t,
29469 extern long keyctl_invalidate_key(key_serial_t);
29470
29471 extern long keyctl_instantiate_key_common(key_serial_t,
29472 - const struct iovec *,
29473 + const struct iovec __user *,
29474 unsigned, size_t, key_serial_t);
29475 -
29476 - /*
29477 + #ifdef CONFIG_PERSISTENT_KEYRINGS
29478 + extern long keyctl_get_persistent(uid_t, key_serial_t);
29479 diff --git a/security/keys/key.c b/security/keys/key.c
29480 -index 8fb7c7b..ba3610d 100644
29481 +index 6e21c11..9ed67ca 100644
29482 --- a/security/keys/key.c
29483 +++ b/security/keys/key.c
29484 -@@ -284,7 +284,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
29485 +@@ -285,7 +285,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
29486
29487 atomic_set(&key->usage, 1);
29488 init_rwsem(&key->sem);
29489 - lockdep_set_class(&key->sem, &type->lock_class);
29490 + lockdep_set_class(&key->sem, (struct lock_class_key *)&type->lock_class);
29491 - key->type = type;
29492 + key->index_key.type = type;
29493 key->user = user;
29494 key->quotalen = quotalen;
29495 -@@ -1032,7 +1032,9 @@ int register_key_type(struct key_type *ktype)
29496 +@@ -1036,7 +1036,9 @@ int register_key_type(struct key_type *ktype)
29497 struct key_type *p;
29498 int ret;
29499
29500 @@ -101142,7 +102524,7 @@ index 8fb7c7b..ba3610d 100644
29501
29502 ret = -EEXIST;
29503 down_write(&key_types_sem);
29504 -@@ -1044,7 +1046,7 @@ int register_key_type(struct key_type *ktype)
29505 +@@ -1048,7 +1050,7 @@ int register_key_type(struct key_type *ktype)
29506 }
29507
29508 /* store the type */
29509 @@ -101151,7 +102533,7 @@ index 8fb7c7b..ba3610d 100644
29510
29511 pr_notice("Key type %s registered\n", ktype->name);
29512 ret = 0;
29513 -@@ -1066,7 +1068,7 @@ EXPORT_SYMBOL(register_key_type);
29514 +@@ -1070,7 +1072,7 @@ EXPORT_SYMBOL(register_key_type);
29515 void unregister_key_type(struct key_type *ktype)
29516 {
29517 down_write(&key_types_sem);
29518 @@ -101160,7 +102542,7 @@ index 8fb7c7b..ba3610d 100644
29519 downgrade_write(&key_types_sem);
29520 key_gc_keytype(ktype);
29521 pr_notice("Key type %s unregistered\n", ktype->name);
29522 -@@ -1084,10 +1086,10 @@ void __init key_init(void)
29523 +@@ -1088,10 +1090,10 @@ void __init key_init(void)
29524 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
29525
29526 /* add the special key types */
29527 @@ -101176,7 +102558,7 @@ index 8fb7c7b..ba3610d 100644
29528 /* record the root user tracking */
29529 rb_link_node(&root_key_user.node,
29530 diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
29531 -index 33cfd27..842fc5a 100644
29532 +index cee72ce..e46074a 100644
29533 --- a/security/keys/keyctl.c
29534 +++ b/security/keys/keyctl.c
29535 @@ -987,7 +987,7 @@ static int keyctl_change_reqkey_auth(struct key *key)
29536 @@ -101215,30 +102597,6 @@ index 33cfd27..842fc5a 100644
29537 err:
29538 if (iov != iovstack)
29539 kfree(iov);
29540 -diff --git a/security/keys/keyring.c b/security/keys/keyring.c
29541 -index 6ece7f2..ecdb55c 100644
29542 ---- a/security/keys/keyring.c
29543 -+++ b/security/keys/keyring.c
29544 -@@ -227,16 +227,16 @@ static long keyring_read(const struct key *keyring,
29545 - ret = -EFAULT;
29546 -
29547 - for (loop = 0; loop < klist->nkeys; loop++) {
29548 -+ key_serial_t serial;
29549 - key = rcu_deref_link_locked(klist, loop,
29550 - keyring);
29551 -+ serial = key->serial;
29552 -
29553 - tmp = sizeof(key_serial_t);
29554 - if (tmp > buflen)
29555 - tmp = buflen;
29556 -
29557 -- if (copy_to_user(buffer,
29558 -- &key->serial,
29559 -- tmp) != 0)
29560 -+ if (copy_to_user(buffer, &serial, tmp))
29561 - goto error;
29562 -
29563 - buflen -= tmp;
29564 diff --git a/security/min_addr.c b/security/min_addr.c
29565 index f728728..6457a0c 100644
29566 --- a/security/min_addr.c
29567 @@ -101260,7 +102618,7 @@ index f728728..6457a0c 100644
29568
29569 /*
29570 diff --git a/security/security.c b/security/security.c
29571 -index 4dc31f4..eabcf41 100644
29572 +index 15b6928..60d03ec 100644
29573 --- a/security/security.c
29574 +++ b/security/security.c
29575 @@ -33,8 +33,8 @@
29576 @@ -101318,44 +102676,19 @@ index fc3e662..7844c60 100644
29577 lock = &avc_cache.slots_lock[hvalue];
29578
29579 diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
29580 -index 392a044..c3eb2bd 100644
29581 +index 57b0b49..402063e 100644
29582 --- a/security/selinux/hooks.c
29583 +++ b/security/selinux/hooks.c
29584 -@@ -220,6 +220,14 @@ static int inode_alloc_security(struct inode *inode)
29585 - return 0;
29586 - }
29587 +@@ -96,8 +96,6 @@
29588 + #include "audit.h"
29589 + #include "avc_ss.h"
29590
29591 -+static void inode_free_rcu(struct rcu_head *head)
29592 -+{
29593 -+ struct inode_security_struct *isec;
29594 -+
29595 -+ isec = container_of(head, struct inode_security_struct, rcu);
29596 -+ kmem_cache_free(sel_inode_cache, isec);
29597 -+}
29598 -+
29599 - static void inode_free_security(struct inode *inode)
29600 - {
29601 - struct inode_security_struct *isec = inode->i_security;
29602 -@@ -230,8 +238,16 @@ static void inode_free_security(struct inode *inode)
29603 - list_del_init(&isec->list);
29604 - spin_unlock(&sbsec->isec_lock);
29605 -
29606 -- inode->i_security = NULL;
29607 -- kmem_cache_free(sel_inode_cache, isec);
29608 -+ /*
29609 -+ * The inode may still be referenced in a path walk and
29610 -+ * a call to selinux_inode_permission() can be made
29611 -+ * after inode_free_security() is called. Ideally, the VFS
29612 -+ * wouldn't do this, but fixing that is a much harder
29613 -+ * job. For now, simply free the i_security via RCU, and
29614 -+ * leave the current inode->i_security pointer intact.
29615 -+ * The inode will be freed after the RCU grace period too.
29616 -+ */
29617 -+ call_rcu(&isec->rcu, inode_free_rcu);
29618 - }
29619 +-extern struct security_operations *security_ops;
29620 +-
29621 + /* SECMARK reference count */
29622 + static atomic_t selinux_secmark_refcount = ATOMIC_INIT(0);
29623
29624 - static int file_alloc_security(struct file *file)
29625 -@@ -5693,7 +5709,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
29626 +@@ -5745,7 +5743,7 @@ static int selinux_key_getsecurity(struct key *key, char **_buffer)
29627
29628 #endif
29629
29630 @@ -101364,7 +102697,7 @@ index 392a044..c3eb2bd 100644
29631 .name = "selinux",
29632
29633 .ptrace_access_check = selinux_ptrace_access_check,
29634 -@@ -6045,6 +6061,9 @@ static void selinux_nf_ip_exit(void)
29635 +@@ -6098,6 +6096,9 @@ static void selinux_nf_ip_exit(void)
29636 #ifdef CONFIG_SECURITY_SELINUX_DISABLE
29637 static int selinux_disabled;
29638
29639 @@ -101374,7 +102707,7 @@ index 392a044..c3eb2bd 100644
29640 int selinux_disable(void)
29641 {
29642 if (ss_initialized) {
29643 -@@ -6062,7 +6081,9 @@ int selinux_disable(void)
29644 +@@ -6115,7 +6116,9 @@ int selinux_disable(void)
29645 selinux_disabled = 1;
29646 selinux_enabled = 0;
29647
29648 @@ -101385,27 +102718,11 @@ index 392a044..c3eb2bd 100644
29649
29650 /* Try to destroy the avc node cache */
29651 avc_disable();
29652 -diff --git a/security/selinux/include/objsec.h b/security/selinux/include/objsec.h
29653 -index aa47bca..6fd9dd2 100644
29654 ---- a/security/selinux/include/objsec.h
29655 -+++ b/security/selinux/include/objsec.h
29656 -@@ -38,7 +38,10 @@ struct task_security_struct {
29657 -
29658 - struct inode_security_struct {
29659 - struct inode *inode; /* back pointer to inode object */
29660 -- struct list_head list; /* list of inode_security_struct */
29661 -+ union {
29662 -+ struct list_head list; /* list of inode_security_struct */
29663 -+ struct rcu_head rcu; /* for freeing the inode_security_struct */
29664 -+ };
29665 - u32 task_sid; /* SID of creating task */
29666 - u32 sid; /* SID of this object */
29667 - u16 sclass; /* security class of this object */
29668 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
29669 -index c1af4e1..bcb003c 100644
29670 +index 48c3cc9..8022cf7 100644
29671 --- a/security/selinux/include/xfrm.h
29672 +++ b/security/selinux/include/xfrm.h
29673 -@@ -53,7 +53,7 @@ static inline void selinux_xfrm_notify_policyload(void)
29674 +@@ -45,7 +45,7 @@ static inline void selinux_xfrm_notify_policyload(void)
29675 {
29676 struct net *net;
29677
29678 @@ -101415,10 +102732,10 @@ index c1af4e1..bcb003c 100644
29679 for_each_net(net)
29680 rt_genid_bump_all(net);
29681 diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c
29682 -index 8825375..97a623b 100644
29683 +index b0be893..646bd94 100644
29684 --- a/security/smack/smack_lsm.c
29685 +++ b/security/smack/smack_lsm.c
29686 -@@ -3726,7 +3726,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
29687 +@@ -3731,7 +3731,7 @@ static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
29688 return 0;
29689 }
29690
29691 @@ -101650,10 +102967,10 @@ index af49721..e85058e 100644
29692 if (err < 0)
29693 return err;
29694 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
29695 -index a68d4c6..72af3cf 100644
29696 +index 01a5e05..c6bb425 100644
29697 --- a/sound/core/pcm_native.c
29698 +++ b/sound/core/pcm_native.c
29699 -@@ -2809,11 +2809,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
29700 +@@ -2811,11 +2811,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
29701 switch (substream->stream) {
29702 case SNDRV_PCM_STREAM_PLAYBACK:
29703 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
29704 @@ -101667,6 +102984,21 @@ index a68d4c6..72af3cf 100644
29705 break;
29706 default:
29707 result = -EINVAL;
29708 +diff --git a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c
29709 +index 8d4d5e8..fdd0826 100644
29710 +--- a/sound/core/seq/oss/seq_oss.c
29711 ++++ b/sound/core/seq/oss/seq_oss.c
29712 +@@ -75,8 +75,8 @@ static int __init alsa_seq_oss_init(void)
29713 + {
29714 + int rc;
29715 + static struct snd_seq_dev_ops ops = {
29716 +- snd_seq_oss_synth_register,
29717 +- snd_seq_oss_synth_unregister,
29718 ++ .init_device = snd_seq_oss_synth_register,
29719 ++ .free_device = snd_seq_oss_synth_unregister,
29720 + };
29721 +
29722 + snd_seq_autoload_lock();
29723 diff --git a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
29724 index 040c60e..989a19a 100644
29725 --- a/sound/core/seq/seq_device.c
29726 @@ -101707,8 +103039,23 @@ index 040c60e..989a19a 100644
29727 dev->status = SNDRV_SEQ_DEVICE_FREE;
29728 dev->driver_data = NULL;
29729 ops->num_init_devices--;
29730 +diff --git a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c
29731 +index 64069db..3c6d392 100644
29732 +--- a/sound/core/seq/seq_midi.c
29733 ++++ b/sound/core/seq/seq_midi.c
29734 +@@ -462,8 +462,8 @@ snd_seq_midisynth_unregister_port(struct snd_seq_device *dev)
29735 + static int __init alsa_seq_midi_init(void)
29736 + {
29737 + static struct snd_seq_dev_ops ops = {
29738 +- snd_seq_midisynth_register_port,
29739 +- snd_seq_midisynth_unregister_port,
29740 ++ .init_device = snd_seq_midisynth_register_port,
29741 ++ .free_device = snd_seq_midisynth_unregister_port,
29742 + };
29743 + memset(&synths, 0, sizeof(synths));
29744 + snd_seq_autoload_lock();
29745 diff --git a/sound/core/sound.c b/sound/core/sound.c
29746 -index f002bd9..c462985 100644
29747 +index 437c25e..cd040ab 100644
29748 --- a/sound/core/sound.c
29749 +++ b/sound/core/sound.c
29750 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
29751 @@ -101780,6 +103127,21 @@ index 4e0dd22..7a1f32c 100644
29752
29753 return 0;
29754 }
29755 +diff --git a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
29756 +index 6839953..7a0f4b9 100644
29757 +--- a/sound/drivers/opl3/opl3_seq.c
29758 ++++ b/sound/drivers/opl3/opl3_seq.c
29759 +@@ -281,8 +281,8 @@ static int __init alsa_opl3_seq_init(void)
29760 + {
29761 + static struct snd_seq_dev_ops ops =
29762 + {
29763 +- snd_opl3_seq_new_device,
29764 +- snd_opl3_seq_delete_device
29765 ++ .init_device = snd_opl3_seq_new_device,
29766 ++ .free_device = snd_opl3_seq_delete_device
29767 + };
29768 +
29769 + return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OPL3, &ops,
29770 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
29771 index b953fb4..1999c01 100644
29772 --- a/sound/drivers/opl4/opl4_lib.c
29773 @@ -101793,6 +103155,21 @@ index b953fb4..1999c01 100644
29774 {
29775 int timeout = 10;
29776 while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
29777 +diff --git a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c
29778 +index 9919769..d7de36c 100644
29779 +--- a/sound/drivers/opl4/opl4_seq.c
29780 ++++ b/sound/drivers/opl4/opl4_seq.c
29781 +@@ -198,8 +198,8 @@ static int snd_opl4_seq_delete_device(struct snd_seq_device *dev)
29782 + static int __init alsa_opl4_synth_init(void)
29783 + {
29784 + static struct snd_seq_dev_ops ops = {
29785 +- snd_opl4_seq_new_device,
29786 +- snd_opl4_seq_delete_device
29787 ++ .init_device = snd_opl4_seq_new_device,
29788 ++ .free_device = snd_opl4_seq_delete_device
29789 + };
29790 +
29791 + return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_OPL4, &ops,
29792 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
29793 index 991018d..8984740 100644
29794 --- a/sound/drivers/portman2x4.c
29795 @@ -101815,10 +103192,10 @@ index 991018d..8984740 100644
29796 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
29797 };
29798 diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
29799 -index ea995af..f1bfa37 100644
29800 +index 9048777..2d8b1fc 100644
29801 --- a/sound/firewire/amdtp.c
29802 +++ b/sound/firewire/amdtp.c
29803 -@@ -389,7 +389,7 @@ static void queue_out_packet(struct amdtp_out_stream *s, unsigned int cycle)
29804 +@@ -488,7 +488,7 @@ static void queue_out_packet(struct amdtp_out_stream *s, unsigned int cycle)
29805 ptr = s->pcm_buffer_pointer + data_blocks;
29806 if (ptr >= pcm->runtime->buffer_size)
29807 ptr -= pcm->runtime->buffer_size;
29808 @@ -101827,7 +103204,7 @@ index ea995af..f1bfa37 100644
29809
29810 s->pcm_period_pointer += data_blocks;
29811 if (s->pcm_period_pointer >= pcm->runtime->period_size) {
29812 -@@ -557,7 +557,7 @@ EXPORT_SYMBOL(amdtp_out_stream_pcm_pointer);
29813 +@@ -655,7 +655,7 @@ EXPORT_SYMBOL(amdtp_out_stream_pcm_pointer);
29814 */
29815 void amdtp_out_stream_update(struct amdtp_out_stream *s)
29816 {
29817 @@ -101837,10 +103214,10 @@ index ea995af..f1bfa37 100644
29818 }
29819 EXPORT_SYMBOL(amdtp_out_stream_update);
29820 diff --git a/sound/firewire/amdtp.h b/sound/firewire/amdtp.h
29821 -index f6103d6..4843fbf 100644
29822 +index 2746ecd..c35dedd 100644
29823 --- a/sound/firewire/amdtp.h
29824 +++ b/sound/firewire/amdtp.h
29825 -@@ -138,7 +138,7 @@ static inline bool amdtp_out_streaming_error(struct amdtp_out_stream *s)
29826 +@@ -135,7 +135,7 @@ static inline bool amdtp_out_streaming_error(struct amdtp_out_stream *s)
29827 static inline void amdtp_out_stream_pcm_trigger(struct amdtp_out_stream *s,
29828 struct snd_pcm_substream *pcm)
29829 {
29830 @@ -101850,7 +103227,7 @@ index f6103d6..4843fbf 100644
29831
29832 static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc)
29833 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
29834 -index 58a5afe..af5bd64 100644
29835 +index fd42e6b..c041971 100644
29836 --- a/sound/firewire/isight.c
29837 +++ b/sound/firewire/isight.c
29838 @@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
29839 @@ -101862,7 +103239,7 @@ index 58a5afe..af5bd64 100644
29840
29841 isight->period_counter += count;
29842 if (isight->period_counter >= runtime->period_size) {
29843 -@@ -307,7 +307,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
29844 +@@ -299,7 +299,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
29845 if (err < 0)
29846 return err;
29847
29848 @@ -101871,7 +103248,7 @@ index 58a5afe..af5bd64 100644
29849
29850 return 0;
29851 }
29852 -@@ -340,7 +340,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
29853 +@@ -337,7 +337,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
29854 {
29855 struct isight *isight = substream->private_data;
29856
29857 @@ -101880,7 +103257,7 @@ index 58a5afe..af5bd64 100644
29858
29859 mutex_lock(&isight->mutex);
29860 isight_stop_streaming(isight);
29861 -@@ -433,10 +433,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
29862 +@@ -430,10 +430,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
29863
29864 switch (cmd) {
29865 case SNDRV_PCM_TRIGGER_START:
29866 @@ -101894,7 +103271,7 @@ index 58a5afe..af5bd64 100644
29867 default:
29868 return -EINVAL;
29869 diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c
29870 -index 505fc81..62e569e 100644
29871 +index 858023c..83b3d3c 100644
29872 --- a/sound/firewire/scs1x.c
29873 +++ b/sound/firewire/scs1x.c
29874 @@ -74,7 +74,7 @@ static void scs_output_trigger(struct snd_rawmidi_substream *stream, int up)
29875 @@ -101915,7 +103292,7 @@ index 505fc81..62e569e 100644
29876 }
29877
29878 static void scs_input_escaped_byte(struct snd_rawmidi_substream *stream,
29879 -@@ -469,8 +469,8 @@ static void scs_remove(struct fw_unit *unit)
29880 +@@ -473,8 +473,8 @@ static void scs_remove(struct fw_unit *unit)
29881
29882 snd_card_disconnect(scs->card);
29883
29884 @@ -101926,6 +103303,21 @@ index 505fc81..62e569e 100644
29885
29886 wait_event(scs->idle_wait, scs->output_idle);
29887
29888 +diff --git a/sound/isa/sb/emu8000_synth.c b/sound/isa/sb/emu8000_synth.c
29889 +index 4e3fcfb..ab45a9d 100644
29890 +--- a/sound/isa/sb/emu8000_synth.c
29891 ++++ b/sound/isa/sb/emu8000_synth.c
29892 +@@ -120,8 +120,8 @@ static int __init alsa_emu8000_init(void)
29893 + {
29894 +
29895 + static struct snd_seq_dev_ops ops = {
29896 +- snd_emu8000_new_device,
29897 +- snd_emu8000_delete_device,
29898 ++ .init_device = snd_emu8000_new_device,
29899 ++ .free_device = snd_emu8000_delete_device,
29900 + };
29901 + return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU8000, &ops,
29902 + sizeof(struct snd_emu8000*));
29903 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
29904 index 048439a..3be9f6f 100644
29905 --- a/sound/oss/sb_audio.c
29906 @@ -101977,8 +103369,23 @@ index 7d8803a..559f8d0 100644
29907
29908 list_add(&s->list, &cs4297a_devs);
29909
29910 +diff --git a/sound/pci/emu10k1/emu10k1_synth.c b/sound/pci/emu10k1/emu10k1_synth.c
29911 +index 4c41c90..37f3631 100644
29912 +--- a/sound/pci/emu10k1/emu10k1_synth.c
29913 ++++ b/sound/pci/emu10k1/emu10k1_synth.c
29914 +@@ -108,8 +108,8 @@ static int __init alsa_emu10k1_synth_init(void)
29915 + {
29916 +
29917 + static struct snd_seq_dev_ops ops = {
29918 +- snd_emu10k1_synth_new_device,
29919 +- snd_emu10k1_synth_delete_device,
29920 ++ .init_device = snd_emu10k1_synth_new_device,
29921 ++ .free_device = snd_emu10k1_synth_delete_device,
29922 + };
29923 + return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops,
29924 + sizeof(struct snd_emu10k1_synth_arg));
29925 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
29926 -index e938a68..2a728ad 100644
29927 +index 69178c4..4493d52 100644
29928 --- a/sound/pci/hda/hda_codec.c
29929 +++ b/sound/pci/hda/hda_codec.c
29930 @@ -976,14 +976,10 @@ find_codec_preset(struct hda_codec *codec)
29931 @@ -101998,6 +103405,15 @@ index e938a68..2a728ad 100644
29932 mod_requested++;
29933 goto again;
29934 }
29935 +@@ -2668,7 +2664,7 @@ static int get_kctl_0dB_offset(struct snd_kcontrol *kctl, int *step_to_check)
29936 + /* FIXME: set_fs() hack for obtaining user-space TLV data */
29937 + mm_segment_t fs = get_fs();
29938 + set_fs(get_ds());
29939 +- if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), _tlv))
29940 ++ if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), (unsigned int __force_user *)_tlv))
29941 + tlv = _tlv;
29942 + set_fs(fs);
29943 + } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
29944 diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
29945 index 4631a23..001ae57 100644
29946 --- a/sound/pci/ymfpci/ymfpci.h
29947 @@ -102056,10 +103472,10 @@ index d591c15..8cb8f94 100644
29948 chip->pci = pci;
29949 chip->irq = -1;
29950 diff --git a/sound/soc/fsl/fsl_ssi.c b/sound/soc/fsl/fsl_ssi.c
29951 -index 6b81d0c..031c056 100644
29952 +index 35e2773..6d6ceee 100644
29953 --- a/sound/soc/fsl/fsl_ssi.c
29954 +++ b/sound/soc/fsl/fsl_ssi.c
29955 -@@ -864,7 +864,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
29956 +@@ -857,7 +857,7 @@ static int fsl_ssi_probe(struct platform_device *pdev)
29957 {
29958 struct fsl_ssi_private *ssi_private;
29959 int ret = 0;
29960 @@ -102069,10 +103485,10 @@ index 6b81d0c..031c056 100644
29961 const char *p, *sprop;
29962 const uint32_t *iprop;
29963 diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
29964 -index 1a38be0..66809d1 100644
29965 +index a66783e..ed1d791 100644
29966 --- a/sound/soc/soc-core.c
29967 +++ b/sound/soc/soc-core.c
29968 -@@ -2248,8 +2248,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
29969 +@@ -2253,8 +2253,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
29970 if (ret)
29971 return ret;
29972
29973 @@ -102085,19 +103501,46 @@ index 1a38be0..66809d1 100644
29974
29975 snd_ac97_rst_cfg = cfg;
29976 return 0;
29977 +diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
29978 +index 7778b8e..3d619fc 100644
29979 +--- a/sound/synth/emux/emux_seq.c
29980 ++++ b/sound/synth/emux/emux_seq.c
29981 +@@ -33,13 +33,13 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
29982 + * MIDI emulation operators
29983 + */
29984 + static struct snd_midi_op emux_ops = {
29985 +- snd_emux_note_on,
29986 +- snd_emux_note_off,
29987 +- snd_emux_key_press,
29988 +- snd_emux_terminate_note,
29989 +- snd_emux_control,
29990 +- snd_emux_nrpn,
29991 +- snd_emux_sysex,
29992 ++ .note_on = snd_emux_note_on,
29993 ++ .note_off = snd_emux_note_off,
29994 ++ .key_press = snd_emux_key_press,
29995 ++ .note_terminate = snd_emux_terminate_note,
29996 ++ .control = snd_emux_control,
29997 ++ .nrpn = snd_emux_nrpn,
29998 ++ .sysex = snd_emux_sysex,
29999 + };
30000 +
30001 +
30002 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
30003 new file mode 100644
30004 -index 0000000..50f2f2f
30005 +index 0000000..8eb55ca
30006 --- /dev/null
30007 +++ b/tools/gcc/.gitignore
30008 -@@ -0,0 +1 @@
30009 +@@ -0,0 +1,3 @@
30010 +size_overflow_hash.h
30011 ++randstruct.seed
30012 ++randstruct.hashed_seed
30013 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
30014 new file mode 100644
30015 -index 0000000..144dbee
30016 +index 0000000..f8ef8a3
30017 --- /dev/null
30018 +++ b/tools/gcc/Makefile
30019 -@@ -0,0 +1,45 @@
30020 +@@ -0,0 +1,47 @@
30021 +#CC := gcc
30022 +#PLUGIN_SOURCE_FILES := pax_plugin.c
30023 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
30024 @@ -102109,7 +103552,7 @@ index 0000000..144dbee
30025 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu99 -ggdb
30026 +else
30027 +HOSTLIBS := hostcxxlibs
30028 -+HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu++98 -ggdb -Wno-unused-parameter
30029 ++HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu++98 -fno-rtti -ggdb -Wno-unused-parameter
30030 +endif
30031 +
30032 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
30033 @@ -102121,6 +103564,7 @@ index 0000000..144dbee
30034 +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
30035 +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
30036 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
30037 ++$(HOSTLIBS)-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
30038 +
30039 +always := $($(HOSTLIBS)-y)
30040 +
30041 @@ -102133,6 +103577,7 @@ index 0000000..144dbee
30042 +size_overflow_plugin-objs := size_overflow_plugin.o
30043 +latent_entropy_plugin-objs := latent_entropy_plugin.o
30044 +structleak_plugin-objs := structleak_plugin.o
30045 ++randomize_layout_plugin-objs := randomize_layout_plugin.o
30046 +
30047 +$(obj)/size_overflow_plugin.o: $(objtree)/$(obj)/size_overflow_hash.h
30048 +
30049 @@ -102145,12 +103590,12 @@ index 0000000..144dbee
30050 +targets += size_overflow_hash.h
30051 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
30052 new file mode 100644
30053 -index 0000000..22f03c0
30054 +index 0000000..5452feea
30055 --- /dev/null
30056 +++ b/tools/gcc/checker_plugin.c
30057 -@@ -0,0 +1,172 @@
30058 +@@ -0,0 +1,150 @@
30059 +/*
30060 -+ * Copyright 2011 by the PaX Team <pageexec@××××××××.hu>
30061 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
30062 + * Licensed under the GPL v2
30063 + *
30064 + * Note: the choice of the license means that the compilation process is
30065 @@ -102166,27 +103611,8 @@ index 0000000..22f03c0
30066 + * BUGS:
30067 + * - none known
30068 + */
30069 -+#include "gcc-plugin.h"
30070 -+#include "config.h"
30071 -+#include "system.h"
30072 -+#include "coretypes.h"
30073 -+#include "tree.h"
30074 -+#include "tree-pass.h"
30075 -+#include "flags.h"
30076 -+#include "intl.h"
30077 -+#include "toplev.h"
30078 -+#include "plugin.h"
30079 -+//#include "expr.h" where are you...
30080 -+#include "diagnostic.h"
30081 -+#include "plugin-version.h"
30082 -+#include "tm.h"
30083 -+#include "function.h"
30084 -+#include "basic-block.h"
30085 -+#include "gimple.h"
30086 -+#include "rtl.h"
30087 -+#include "emit-rtl.h"
30088 -+#include "tree-flow.h"
30089 -+#include "target.h"
30090 ++
30091 ++#include "gcc-common.h"
30092 +
30093 +extern void c_register_addr_space (const char *str, addr_space_t as);
30094 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
30095 @@ -102195,13 +103621,10 @@ index 0000000..22f03c0
30096 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
30097 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
30098 +
30099 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
30100 -+extern rtx emit_move_insn(rtx x, rtx y);
30101 -+
30102 +int plugin_is_GPL_compatible;
30103 +
30104 +static struct plugin_info checker_plugin_info = {
30105 -+ .version = "201111150100",
30106 ++ .version = "201304082245",
30107 + .help = NULL,
30108 +};
30109 +
30110 @@ -102323,12 +103746,12 @@ index 0000000..22f03c0
30111 +}
30112 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
30113 new file mode 100644
30114 -index 0000000..414fe5e
30115 +index 0000000..06dcfda
30116 --- /dev/null
30117 +++ b/tools/gcc/colorize_plugin.c
30118 -@@ -0,0 +1,151 @@
30119 +@@ -0,0 +1,169 @@
30120 +/*
30121 -+ * Copyright 2012-2013 by PaX Team <pageexec@××××××××.hu>
30122 ++ * Copyright 2012-2014 by PaX Team <pageexec@××××××××.hu>
30123 + * Licensed under the GPL v2
30124 + *
30125 + * Note: the choice of the license means that the compilation process is
30126 @@ -102340,24 +103763,12 @@ index 0000000..414fe5e
30127 + *
30128 + */
30129 +
30130 -+#include "gcc-plugin.h"
30131 -+#include "config.h"
30132 -+#include "system.h"
30133 -+#include "coretypes.h"
30134 -+#include "tree.h"
30135 -+#include "tree-pass.h"
30136 -+#include "flags.h"
30137 -+#include "intl.h"
30138 -+#include "toplev.h"
30139 -+#include "plugin.h"
30140 -+#include "diagnostic.h"
30141 -+#include "plugin-version.h"
30142 -+#include "tm.h"
30143 ++#include "gcc-common.h"
30144 +
30145 +int plugin_is_GPL_compatible;
30146 +
30147 +static struct plugin_info colorize_plugin_info = {
30148 -+ .version = "201302112000",
30149 ++ .version = "201401260140",
30150 + .help = NULL,
30151 +};
30152 +
30153 @@ -102432,26 +103843,56 @@ index 0000000..414fe5e
30154 + return 0;
30155 +}
30156 +
30157 -+struct simple_ipa_opt_pass pass_ipa_colorize_rearm = {
30158 ++#if BUILDING_GCC_VERSION >= 4009
30159 ++static const struct pass_data colorize_rearm_pass_data = {
30160 ++#else
30161 ++struct simple_ipa_opt_pass colorize_rearm_pass = {
30162 + .pass = {
30163 ++#endif
30164 + .type = SIMPLE_IPA_PASS,
30165 + .name = "colorize_rearm",
30166 +#if BUILDING_GCC_VERSION >= 4008
30167 + .optinfo_flags = OPTGROUP_NONE,
30168 +#endif
30169 ++#if BUILDING_GCC_VERSION >= 4009
30170 ++ .has_gate = false,
30171 ++ .has_execute = true,
30172 ++#else
30173 + .gate = NULL,
30174 + .execute = execute_colorize_rearm,
30175 + .sub = NULL,
30176 + .next = NULL,
30177 + .static_pass_number = 0,
30178 ++#endif
30179 + .tv_id = TV_NONE,
30180 + .properties_required = 0,
30181 + .properties_provided = 0,
30182 + .properties_destroyed = 0,
30183 + .todo_flags_start = 0,
30184 + .todo_flags_finish = 0
30185 ++#if BUILDING_GCC_VERSION < 4009
30186 + }
30187 ++#endif
30188 ++};
30189 ++
30190 ++#if BUILDING_GCC_VERSION >= 4009
30191 ++namespace {
30192 ++class colorize_rearm_pass : public simple_ipa_opt_pass {
30193 ++public:
30194 ++ colorize_rearm_pass() : simple_ipa_opt_pass(colorize_rearm_pass_data, g) {}
30195 ++ unsigned int execute() { return execute_colorize_rearm(); }
30196 +};
30197 ++}
30198 ++#endif
30199 ++
30200 ++static struct opt_pass *make_colorize_rearm_pass(void)
30201 ++{
30202 ++#if BUILDING_GCC_VERSION >= 4009
30203 ++ return new colorize_rearm_pass();
30204 ++#else
30205 ++ return &colorize_rearm_pass.pass;
30206 ++#endif
30207 ++}
30208 +
30209 +static void colorize_start_unit(void *gcc_data, void *user_data)
30210 +{
30211 @@ -102461,12 +103902,12 @@ index 0000000..414fe5e
30212 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
30213 +{
30214 + const char * const plugin_name = plugin_info->base_name;
30215 -+ struct register_pass_info colorize_rearm_pass_info = {
30216 -+ .pass = &pass_ipa_colorize_rearm.pass,
30217 -+ .reference_pass_name = "*free_lang_data",
30218 -+ .ref_pass_instance_number = 1,
30219 -+ .pos_op = PASS_POS_INSERT_AFTER
30220 -+ };
30221 ++ struct register_pass_info colorize_rearm_pass_info;
30222 ++
30223 ++ colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
30224 ++ colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
30225 ++ colorize_rearm_pass_info.ref_pass_instance_number = 1;
30226 ++ colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
30227 +
30228 + if (!plugin_default_version_check(version, &gcc_version)) {
30229 + error(G_("incompatible gcc/plugin versions"));
30230 @@ -102480,13 +103921,13 @@ index 0000000..414fe5e
30231 +}
30232 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
30233 new file mode 100644
30234 -index 0000000..59bf839
30235 +index 0000000..4f67ac1
30236 --- /dev/null
30237 +++ b/tools/gcc/constify_plugin.c
30238 -@@ -0,0 +1,557 @@
30239 +@@ -0,0 +1,552 @@
30240 +/*
30241 + * Copyright 2011 by Emese Revfy <re.emese@×××××.com>
30242 -+ * Copyright 2011-2013 by PaX Team <pageexec@××××××××.hu>
30243 ++ * Copyright 2011-2014 by PaX Team <pageexec@××××××××.hu>
30244 + * Licensed under the GPL v2, or (at your option) v3
30245 + *
30246 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
30247 @@ -102499,38 +103940,15 @@ index 0000000..59bf839
30248 + * $ gcc -fplugin=constify_plugin.so test.c -O2
30249 + */
30250 +
30251 -+#include "gcc-plugin.h"
30252 -+#include "config.h"
30253 -+#include "system.h"
30254 -+#include "coretypes.h"
30255 -+#include "tree.h"
30256 -+#include "tree-pass.h"
30257 -+#include "flags.h"
30258 -+#include "intl.h"
30259 -+#include "toplev.h"
30260 -+#include "plugin.h"
30261 -+#include "diagnostic.h"
30262 -+#include "plugin-version.h"
30263 -+#include "tm.h"
30264 -+#include "function.h"
30265 -+#include "basic-block.h"
30266 -+#include "gimple.h"
30267 -+#include "rtl.h"
30268 -+#include "emit-rtl.h"
30269 -+#include "tree-flow.h"
30270 -+#include "target.h"
30271 -+#include "langhooks.h"
30272 ++#include "gcc-common.h"
30273 +
30274 -+// should come from c-tree.h if only it were installed for gcc 4.5...
30275 -+#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
30276 -+
30277 -+// unused type flag in all versions 4.5-4.8
30278 ++// unused C type flag in all versions 4.5-4.9
30279 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
30280 +
30281 +int plugin_is_GPL_compatible;
30282 +
30283 +static struct plugin_info const_plugin_info = {
30284 -+ .version = "201401140130",
30285 ++ .version = "201401270210",
30286 + .help = "no-constify\tturn off constification\n",
30287 +};
30288 +
30289 @@ -102605,7 +104023,7 @@ index 0000000..59bf839
30290 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
30291 +
30292 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
30293 -+ gcc_assert(!TYPE_READONLY(node));
30294 ++// gcc_assert(!TYPE_READONLY(node));
30295 + return false;
30296 + }
30297 +
30298 @@ -102634,15 +104052,17 @@ index 0000000..59bf839
30299 +
30300 + // special case handling of simple ptr-to-same-array-type members
30301 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
30302 -+ const_tree ptrtype = TREE_TYPE(TREE_TYPE(field));
30303 ++ tree ptrtype = TREE_TYPE(TREE_TYPE(field));
30304 +
30305 ++ if (TREE_TYPE(TREE_TYPE(field)) == type)
30306 ++ continue;
30307 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
30308 + continue;
30309 -+ if (TREE_TYPE(TREE_TYPE(field)) == type)
30310 ++ if (!constified(ptrtype))
30311 + continue;
30312 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
30313 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
30314 -+ TREE_TYPE(TREE_TYPE(field)) = type;
30315 ++ TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
30316 + }
30317 + continue;
30318 + }
30319 @@ -102868,13 +104288,8 @@ index 0000000..59bf839
30320 +{
30321 + struct varpool_node *node;
30322 +
30323 -+#if BUILDING_GCC_VERSION <= 4007
30324 -+ for (node = varpool_nodes; node; node = node->next) {
30325 -+ tree var = node->decl;
30326 -+#else
30327 + FOR_EACH_VARIABLE(node) {
30328 -+ tree var = node->symbol.decl;
30329 -+#endif
30330 ++ tree var = NODE_DECL(node);
30331 + tree type = TREE_TYPE(var);
30332 +
30333 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
30334 @@ -102904,18 +104319,9 @@ index 0000000..59bf839
30335 + unsigned int ret = 0;
30336 + tree var;
30337 +
30338 -+#if BUILDING_GCC_VERSION == 4005
30339 -+ tree vars;
30340 -+#else
30341 + unsigned int i;
30342 -+#endif
30343 +
30344 -+#if BUILDING_GCC_VERSION == 4005
30345 -+ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) {
30346 -+ var = TREE_VALUE(vars);
30347 -+#else
30348 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
30349 -+#endif
30350 + tree type = TREE_TYPE(var);
30351 +
30352 + gcc_assert(DECL_P(var));
30353 @@ -102937,26 +104343,56 @@ index 0000000..59bf839
30354 + return ret;
30355 +}
30356 +
30357 -+static struct gimple_opt_pass pass_local_variable = {
30358 -+ {
30359 ++#if BUILDING_GCC_VERSION >= 4009
30360 ++static const struct pass_data check_local_variables_pass_data = {
30361 ++#else
30362 ++static struct gimple_opt_pass check_local_variables_pass = {
30363 ++ .pass = {
30364 ++#endif
30365 + .type = GIMPLE_PASS,
30366 + .name = "check_local_variables",
30367 +#if BUILDING_GCC_VERSION >= 4008
30368 + .optinfo_flags = OPTGROUP_NONE,
30369 +#endif
30370 ++#if BUILDING_GCC_VERSION >= 4009
30371 ++ .has_gate = false,
30372 ++ .has_execute = true,
30373 ++#else
30374 + .gate = NULL,
30375 + .execute = check_local_variables,
30376 + .sub = NULL,
30377 + .next = NULL,
30378 + .static_pass_number = 0,
30379 ++#endif
30380 + .tv_id = TV_NONE,
30381 + .properties_required = 0,
30382 + .properties_provided = 0,
30383 + .properties_destroyed = 0,
30384 + .todo_flags_start = 0,
30385 + .todo_flags_finish = 0
30386 ++#if BUILDING_GCC_VERSION < 4009
30387 + }
30388 ++#endif
30389 ++};
30390 ++
30391 ++#if BUILDING_GCC_VERSION >= 4009
30392 ++namespace {
30393 ++class check_local_variables_pass : public gimple_opt_pass {
30394 ++public:
30395 ++ check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
30396 ++ unsigned int execute() { return check_local_variables(); }
30397 +};
30398 ++}
30399 ++#endif
30400 ++
30401 ++static struct opt_pass *make_check_local_variables_pass(void)
30402 ++{
30403 ++#if BUILDING_GCC_VERSION >= 4009
30404 ++ return new check_local_variables_pass();
30405 ++#else
30406 ++ return &check_local_variables_pass.pass;
30407 ++#endif
30408 ++}
30409 +
30410 +static struct {
30411 + const char *name;
30412 @@ -103005,12 +104441,12 @@ index 0000000..59bf839
30413 + int i;
30414 + bool constify = true;
30415 +
30416 -+ struct register_pass_info local_variable_pass_info = {
30417 -+ .pass = &pass_local_variable.pass,
30418 -+ .reference_pass_name = "ssa",
30419 -+ .ref_pass_instance_number = 1,
30420 -+ .pos_op = PASS_POS_INSERT_BEFORE
30421 -+ };
30422 ++ struct register_pass_info check_local_variables_pass_info;
30423 ++
30424 ++ check_local_variables_pass_info.pass = make_check_local_variables_pass();
30425 ++ check_local_variables_pass_info.reference_pass_name = "ssa";
30426 ++ check_local_variables_pass_info.ref_pass_instance_number = 1;
30427 ++ check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
30428 +
30429 + if (!plugin_default_version_check(version, &gcc_version)) {
30430 + error(G_("incompatible gcc/plugin versions"));
30431 @@ -103034,13 +104470,286 @@ index 0000000..59bf839
30432 + if (constify) {
30433 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
30434 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
30435 -+ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &local_variable_pass_info);
30436 ++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
30437 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
30438 + }
30439 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
30440 +
30441 + return 0;
30442 +}
30443 +diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
30444 +new file mode 100644
30445 +index 0000000..986f39b
30446 +--- /dev/null
30447 ++++ b/tools/gcc/gcc-common.h
30448 +@@ -0,0 +1,267 @@
30449 ++#ifndef GCC_COMMON_H_INCLUDED
30450 ++#define GCC_COMMON_H_INCLUDED
30451 ++
30452 ++#include "plugin.h"
30453 ++#include "bversion.h"
30454 ++#include "plugin-version.h"
30455 ++#include "config.h"
30456 ++#include "system.h"
30457 ++#include "coretypes.h"
30458 ++#include "tm.h"
30459 ++#include "line-map.h"
30460 ++#include "input.h"
30461 ++#include "tree.h"
30462 ++
30463 ++#include "tree-inline.h"
30464 ++#include "version.h"
30465 ++#include "rtl.h"
30466 ++#include "tm_p.h"
30467 ++#include "flags.h"
30468 ++//#include "insn-attr.h"
30469 ++//#include "insn-config.h"
30470 ++//#include "insn-flags.h"
30471 ++#include "hard-reg-set.h"
30472 ++//#include "recog.h"
30473 ++#include "output.h"
30474 ++#include "except.h"
30475 ++#include "function.h"
30476 ++#include "toplev.h"
30477 ++//#include "expr.h"
30478 ++#include "basic-block.h"
30479 ++#include "intl.h"
30480 ++#include "ggc.h"
30481 ++//#include "regs.h"
30482 ++#include "timevar.h"
30483 ++
30484 ++#include "params.h"
30485 ++#include "pointer-set.h"
30486 ++#include "emit-rtl.h"
30487 ++//#include "reload.h"
30488 ++//#include "ira.h"
30489 ++//#include "dwarf2asm.h"
30490 ++#include "debug.h"
30491 ++#include "target.h"
30492 ++#include "langhooks.h"
30493 ++#include "cfgloop.h"
30494 ++//#include "hosthooks.h"
30495 ++#include "cgraph.h"
30496 ++#include "opts.h"
30497 ++//#include "coverage.h"
30498 ++//#include "value-prof.h"
30499 ++
30500 ++#if BUILDING_GCC_VERSION >= 4007
30501 ++#include "tree-pretty-print.h"
30502 ++#include "gimple-pretty-print.h"
30503 ++#include "c-tree.h"
30504 ++//#include "alloc-pool.h"
30505 ++#endif
30506 ++
30507 ++#if BUILDING_GCC_VERSION <= 4008
30508 ++#include "tree-flow.h"
30509 ++#endif
30510 ++
30511 ++#include "diagnostic.h"
30512 ++//#include "tree-diagnostic.h"
30513 ++#include "tree-dump.h"
30514 ++#include "tree-pass.h"
30515 ++//#include "df.h"
30516 ++#include "predict.h"
30517 ++//#include "lto-streamer.h"
30518 ++#include "ipa-utils.h"
30519 ++
30520 ++#if BUILDING_GCC_VERSION >= 4009
30521 ++#include "varasm.h"
30522 ++#include "stor-layout.h"
30523 ++#include "internal-fn.h"
30524 ++#include "gimple-expr.h"
30525 ++//#include "diagnostic-color.h"
30526 ++#include "context.h"
30527 ++#include "tree-ssa-alias.h"
30528 ++#include "stringpool.h"
30529 ++#include "tree-ssanames.h"
30530 ++#include "print-tree.h"
30531 ++#include "tree-eh.h"
30532 ++#endif
30533 ++
30534 ++#include "gimple.h"
30535 ++
30536 ++#if BUILDING_GCC_VERSION >= 4009
30537 ++#include "tree-ssa-operands.h"
30538 ++#include "tree-phinodes.h"
30539 ++#include "gimple-iterator.h"
30540 ++#include "gimple-ssa.h"
30541 ++#include "ssa-iterators.h"
30542 ++#endif
30543 ++
30544 ++//#include "expr.h" where are you...
30545 ++extern rtx emit_move_insn(rtx x, rtx y);
30546 ++
30547 ++#define __unused __attribute__((__unused__))
30548 ++
30549 ++#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
30550 ++#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
30551 ++
30552 ++#if BUILDING_GCC_VERSION == 4005
30553 ++#define FOR_EACH_LOCAL_DECL(FUN, I, D) for (tree vars = (FUN)->local_decls; vars && (D = TREE_VALUE(vars)); vars = TREE_CHAIN(vars), I)
30554 ++#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
30555 ++#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
30556 ++
30557 ++static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
30558 ++{
30559 ++ tree fndecl;
30560 ++
30561 ++ if (!is_gimple_call(stmt))
30562 ++ return false;
30563 ++ fndecl = gimple_call_fndecl(stmt);
30564 ++ if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
30565 ++ return false;
30566 ++// print_node(stderr, "pax", fndecl, 4);
30567 ++ return DECL_FUNCTION_CODE(fndecl) == code;
30568 ++}
30569 ++
30570 ++static inline bool is_simple_builtin(tree decl)
30571 ++{
30572 ++ if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
30573 ++ return false;
30574 ++
30575 ++ switch (DECL_FUNCTION_CODE(decl)) {
30576 ++ /* Builtins that expand to constants. */
30577 ++ case BUILT_IN_CONSTANT_P:
30578 ++ case BUILT_IN_EXPECT:
30579 ++ case BUILT_IN_OBJECT_SIZE:
30580 ++ case BUILT_IN_UNREACHABLE:
30581 ++ /* Simple register moves or loads from stack. */
30582 ++ case BUILT_IN_RETURN_ADDRESS:
30583 ++ case BUILT_IN_EXTRACT_RETURN_ADDR:
30584 ++ case BUILT_IN_FROB_RETURN_ADDR:
30585 ++ case BUILT_IN_RETURN:
30586 ++ case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
30587 ++ case BUILT_IN_FRAME_ADDRESS:
30588 ++ case BUILT_IN_VA_END:
30589 ++ case BUILT_IN_STACK_SAVE:
30590 ++ case BUILT_IN_STACK_RESTORE:
30591 ++ /* Exception state returns or moves registers around. */
30592 ++ case BUILT_IN_EH_FILTER:
30593 ++ case BUILT_IN_EH_POINTER:
30594 ++ case BUILT_IN_EH_COPY_VALUES:
30595 ++ return true;
30596 ++
30597 ++ default:
30598 ++ return false;
30599 ++ }
30600 ++}
30601 ++#endif
30602 ++
30603 ++#if BUILDING_GCC_VERSION <= 4006
30604 ++#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
30605 ++#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
30606 ++
30607 ++// should come from c-tree.h if only it were installed for gcc 4.5...
30608 ++#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
30609 ++
30610 ++#define get_random_seed(noinit) ({ \
30611 ++ unsigned HOST_WIDE_INT seed; \
30612 ++ sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
30613 ++ seed * seed; })
30614 ++
30615 ++static inline bool gimple_clobber_p(gimple s)
30616 ++{
30617 ++ return false;
30618 ++}
30619 ++
30620 ++static inline tree builtin_decl_implicit(enum built_in_function fncode)
30621 ++{
30622 ++ return implicit_built_in_decls[fncode];
30623 ++}
30624 ++
30625 ++static inline struct cgraph_node *cgraph_get_create_node(tree decl)
30626 ++{
30627 ++ struct cgraph_node *node = cgraph_get_node(decl);
30628 ++
30629 ++ return node ? node : cgraph_node(decl);
30630 ++}
30631 ++
30632 ++static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
30633 ++{
30634 ++ return node->analyzed && !node->thunk.thunk_p && !node->alias;
30635 ++}
30636 ++
30637 ++static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
30638 ++{
30639 ++ struct cgraph_node *node;
30640 ++
30641 ++ for (node = cgraph_nodes; node; node = node->next)
30642 ++ if (cgraph_function_with_gimple_body_p(node))
30643 ++ return node;
30644 ++ return NULL;
30645 ++}
30646 ++
30647 ++static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
30648 ++{
30649 ++ for (node = node->next; node; node = node->next)
30650 ++ if (cgraph_function_with_gimple_body_p(node))
30651 ++ return node;
30652 ++ return NULL;
30653 ++}
30654 ++
30655 ++#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
30656 ++ for ((node) = cgraph_first_function_with_gimple_body(); (node); \
30657 ++ (node) = cgraph_next_function_with_gimple_body(node))
30658 ++#endif
30659 ++
30660 ++#if BUILDING_GCC_VERSION == 4006
30661 ++extern void debug_gimple_stmt(gimple);
30662 ++extern void debug_gimple_seq(gimple_seq);
30663 ++extern void print_gimple_seq(FILE *, gimple_seq, int, int);
30664 ++extern void print_gimple_stmt(FILE *, gimple, int, int);
30665 ++extern void print_gimple_expr(FILE *, gimple, int, int);
30666 ++extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
30667 ++#endif
30668 ++
30669 ++#if BUILDING_GCC_VERSION <= 4007
30670 ++#define FOR_EACH_VARIABLE(node) for (node = varpool_nodes; node; node = node->next)
30671 ++
30672 ++static inline bool gimple_store_p(gimple gs)
30673 ++{
30674 ++ tree lhs = gimple_get_lhs(gs);
30675 ++ return lhs && !is_gimple_reg(lhs);
30676 ++}
30677 ++#endif
30678 ++
30679 ++#if BUILDING_GCC_VERSION >= 4007
30680 ++#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
30681 ++ cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
30682 ++#endif
30683 ++
30684 ++#if BUILDING_GCC_VERSION <= 4008
30685 ++#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
30686 ++#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
30687 ++
30688 ++static inline const char *get_tree_code_name(enum tree_code code)
30689 ++{
30690 ++ gcc_assert(code < MAX_TREE_CODES);
30691 ++ return tree_code_name[code];
30692 ++}
30693 ++
30694 ++#define ipa_remove_stmt_references(cnode, stmt)
30695 ++#endif
30696 ++
30697 ++#if BUILDING_GCC_VERSION == 4008
30698 ++#define NODE_DECL(node) node->symbol.decl
30699 ++#else
30700 ++#define NODE_DECL(node) node->decl
30701 ++#endif
30702 ++
30703 ++#if BUILDING_GCC_VERSION >= 4008
30704 ++#define add_referenced_var(var)
30705 ++#define mark_sym_for_renaming(var)
30706 ++#define varpool_mark_needed_node(node)
30707 ++#define TODO_dump_func 0
30708 ++#define TODO_dump_cgraph 0
30709 ++#endif
30710 ++
30711 ++#if BUILDING_GCC_VERSION >= 4009
30712 ++#define TODO_ggc_collect 0
30713 ++#endif
30714 ++
30715 ++#endif
30716 diff --git a/tools/gcc/generate_size_overflow_hash.sh b/tools/gcc/generate_size_overflow_hash.sh
30717 new file mode 100644
30718 index 0000000..e518932
30719 @@ -103143,12 +104852,12 @@ index 0000000..e518932
30720 +exit 0
30721 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
30722 new file mode 100644
30723 -index 0000000..568b360
30724 +index 0000000..b559327
30725 --- /dev/null
30726 +++ b/tools/gcc/kallocstat_plugin.c
30727 -@@ -0,0 +1,170 @@
30728 +@@ -0,0 +1,182 @@
30729 +/*
30730 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
30731 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
30732 + * Licensed under the GPL v2
30733 + *
30734 + * Note: the choice of the license means that the compilation process is
30735 @@ -103163,30 +104872,16 @@ index 0000000..568b360
30736 + * BUGS:
30737 + * - none known
30738 + */
30739 -+#include "gcc-plugin.h"
30740 -+#include "config.h"
30741 -+#include "system.h"
30742 -+#include "coretypes.h"
30743 -+#include "tree.h"
30744 -+#include "tree-pass.h"
30745 -+#include "flags.h"
30746 -+#include "intl.h"
30747 -+#include "toplev.h"
30748 -+#include "plugin.h"
30749 -+//#include "expr.h" where are you...
30750 -+#include "diagnostic.h"
30751 -+#include "plugin-version.h"
30752 -+#include "tm.h"
30753 -+#include "function.h"
30754 -+#include "basic-block.h"
30755 -+#include "gimple.h"
30756 -+#include "rtl.h"
30757 -+#include "emit-rtl.h"
30758 +
30759 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
30760 ++#include "gcc-common.h"
30761 +
30762 +int plugin_is_GPL_compatible;
30763 +
30764 ++static struct plugin_info kallocstat_plugin_info = {
30765 ++ .version = "201401260140",
30766 ++ .help = NULL
30767 ++};
30768 ++
30769 +static const char * const kalloc_functions[] = {
30770 + "__kmalloc",
30771 + "kmalloc",
30772 @@ -103199,33 +104894,6 @@ index 0000000..568b360
30773 + "kzalloc_node",
30774 +};
30775 +
30776 -+static struct plugin_info kallocstat_plugin_info = {
30777 -+ .version = "201302112000",
30778 -+};
30779 -+
30780 -+static unsigned int execute_kallocstat(void);
30781 -+
30782 -+static struct gimple_opt_pass kallocstat_pass = {
30783 -+ .pass = {
30784 -+ .type = GIMPLE_PASS,
30785 -+ .name = "kallocstat",
30786 -+#if BUILDING_GCC_VERSION >= 4008
30787 -+ .optinfo_flags = OPTGROUP_NONE,
30788 -+#endif
30789 -+ .gate = NULL,
30790 -+ .execute = execute_kallocstat,
30791 -+ .sub = NULL,
30792 -+ .next = NULL,
30793 -+ .static_pass_number = 0,
30794 -+ .tv_id = TV_NONE,
30795 -+ .properties_required = 0,
30796 -+ .properties_provided = 0,
30797 -+ .properties_destroyed = 0,
30798 -+ .todo_flags_start = 0,
30799 -+ .todo_flags_finish = 0
30800 -+ }
30801 -+};
30802 -+
30803 +static bool is_kalloc(const char *fnname)
30804 +{
30805 + size_t i;
30806 @@ -103241,52 +104909,54 @@ index 0000000..568b360
30807 + basic_block bb;
30808 +
30809 + // 1. loop through BBs and GIMPLE statements
30810 -+ FOR_EACH_BB(bb) {
30811 ++ FOR_EACH_BB_FN(bb, cfun) {
30812 + gimple_stmt_iterator gsi;
30813 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
30814 + // gimple match:
30815 + tree fndecl, size;
30816 -+ gimple call_stmt;
30817 ++ gimple stmt;
30818 + const char *fnname;
30819 +
30820 + // is it a call
30821 -+ call_stmt = gsi_stmt(gsi);
30822 -+ if (!is_gimple_call(call_stmt))
30823 ++ stmt = gsi_stmt(gsi);
30824 ++ if (!is_gimple_call(stmt))
30825 + continue;
30826 -+ fndecl = gimple_call_fndecl(call_stmt);
30827 ++ fndecl = gimple_call_fndecl(stmt);
30828 + if (fndecl == NULL_TREE)
30829 + continue;
30830 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
30831 + continue;
30832 +
30833 + // is it a call to k*alloc
30834 -+ fnname = IDENTIFIER_POINTER(DECL_NAME(fndecl));
30835 ++ fnname = DECL_NAME_POINTER(fndecl);
30836 + if (!is_kalloc(fnname))
30837 + continue;
30838 +
30839 -+ // is the size arg the result of a simple const assignment
30840 -+ size = gimple_call_arg(call_stmt, 0);
30841 ++ // is the size arg const or the result of a simple const assignment
30842 ++ size = gimple_call_arg(stmt, 0);
30843 + while (true) {
30844 -+ gimple def_stmt;
30845 + expanded_location xloc;
30846 + size_t size_val;
30847 +
30848 ++ if (TREE_CONSTANT(size)) {
30849 ++ xloc = expand_location(gimple_location(stmt));
30850 ++ if (!xloc.file)
30851 ++ xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
30852 ++ size_val = TREE_INT_CST_LOW(size);
30853 ++ fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
30854 ++ break;
30855 ++ }
30856 ++
30857 + if (TREE_CODE(size) != SSA_NAME)
30858 + break;
30859 -+ def_stmt = SSA_NAME_DEF_STMT(size);
30860 -+ if (!def_stmt || !is_gimple_assign(def_stmt))
30861 ++ stmt = SSA_NAME_DEF_STMT(size);
30862 ++//debug_gimple_stmt(stmt);
30863 ++//debug_tree(size);
30864 ++ if (!stmt || !is_gimple_assign(stmt))
30865 + break;
30866 -+ if (gimple_num_ops(def_stmt) != 2)
30867 ++ if (gimple_num_ops(stmt) != 2)
30868 + break;
30869 -+ size = gimple_assign_rhs1(def_stmt);
30870 -+ if (!TREE_CONSTANT(size))
30871 -+ continue;
30872 -+ xloc = expand_location(gimple_location(def_stmt));
30873 -+ if (!xloc.file)
30874 -+ xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
30875 -+ size_val = TREE_INT_CST_LOW(size);
30876 -+ fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
30877 -+ break;
30878 ++ size = gimple_assign_rhs1(stmt);
30879 + }
30880 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
30881 +//debug_tree(gimple_call_fn(call_stmt));
30882 @@ -103297,15 +104967,66 @@ index 0000000..568b360
30883 + return 0;
30884 +}
30885 +
30886 ++#if BUILDING_GCC_VERSION >= 4009
30887 ++static const struct pass_data kallocstat_pass_data = {
30888 ++#else
30889 ++static struct gimple_opt_pass kallocstat_pass = {
30890 ++ .pass = {
30891 ++#endif
30892 ++ .type = GIMPLE_PASS,
30893 ++ .name = "kallocstat",
30894 ++#if BUILDING_GCC_VERSION >= 4008
30895 ++ .optinfo_flags = OPTGROUP_NONE,
30896 ++#endif
30897 ++#if BUILDING_GCC_VERSION >= 4009
30898 ++ .has_gate = false,
30899 ++ .has_execute = true,
30900 ++#else
30901 ++ .gate = NULL,
30902 ++ .execute = execute_kallocstat,
30903 ++ .sub = NULL,
30904 ++ .next = NULL,
30905 ++ .static_pass_number = 0,
30906 ++#endif
30907 ++ .tv_id = TV_NONE,
30908 ++ .properties_required = 0,
30909 ++ .properties_provided = 0,
30910 ++ .properties_destroyed = 0,
30911 ++ .todo_flags_start = 0,
30912 ++ .todo_flags_finish = 0
30913 ++#if BUILDING_GCC_VERSION < 4009
30914 ++ }
30915 ++#endif
30916 ++};
30917 ++
30918 ++#if BUILDING_GCC_VERSION >= 4009
30919 ++namespace {
30920 ++class kallocstat_pass : public gimple_opt_pass {
30921 ++public:
30922 ++ kallocstat_pass() : gimple_opt_pass(kallocstat_pass_data, g) {}
30923 ++ unsigned int execute() { return execute_kallocstat(); }
30924 ++};
30925 ++}
30926 ++#endif
30927 ++
30928 ++static struct opt_pass *make_kallocstat_pass(void)
30929 ++{
30930 ++#if BUILDING_GCC_VERSION >= 4009
30931 ++ return new kallocstat_pass();
30932 ++#else
30933 ++ return &kallocstat_pass.pass;
30934 ++#endif
30935 ++}
30936 ++
30937 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
30938 +{
30939 + const char * const plugin_name = plugin_info->base_name;
30940 -+ struct register_pass_info kallocstat_pass_info = {
30941 -+ .pass = &kallocstat_pass.pass,
30942 -+ .reference_pass_name = "ssa",
30943 -+ .ref_pass_instance_number = 1,
30944 -+ .pos_op = PASS_POS_INSERT_AFTER
30945 -+ };
30946 ++ struct register_pass_info kallocstat_pass_info;
30947 ++
30948 ++ kallocstat_pass_info.pass = make_kallocstat_pass();
30949 ++ kallocstat_pass_info.reference_pass_name = "ssa";
30950 ++ kallocstat_pass_info.ref_pass_instance_number = 1;
30951 ++ kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
30952 +
30953 + if (!plugin_default_version_check(version, &gcc_version)) {
30954 + error(G_("incompatible gcc/plugin versions"));
30955 @@ -103319,12 +105040,12 @@ index 0000000..568b360
30956 +}
30957 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
30958 new file mode 100644
30959 -index 0000000..a25306b
30960 +index 0000000..dd73713
30961 --- /dev/null
30962 +++ b/tools/gcc/kernexec_plugin.c
30963 -@@ -0,0 +1,474 @@
30964 +@@ -0,0 +1,519 @@
30965 +/*
30966 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
30967 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
30968 + * Licensed under the GPL v2
30969 + *
30970 + * Note: the choice of the license means that the compilation process is
30971 @@ -103339,134 +105060,19 @@ index 0000000..a25306b
30972 + * BUGS:
30973 + * - none known
30974 + */
30975 -+#include "gcc-plugin.h"
30976 -+#include "config.h"
30977 -+#include "system.h"
30978 -+#include "coretypes.h"
30979 -+#include "tree.h"
30980 -+#include "tree-pass.h"
30981 -+#include "flags.h"
30982 -+#include "intl.h"
30983 -+#include "toplev.h"
30984 -+#include "plugin.h"
30985 -+//#include "expr.h" where are you...
30986 -+#include "diagnostic.h"
30987 -+#include "plugin-version.h"
30988 -+#include "tm.h"
30989 -+#include "function.h"
30990 -+#include "basic-block.h"
30991 -+#include "gimple.h"
30992 -+#include "rtl.h"
30993 -+#include "emit-rtl.h"
30994 -+#include "tree-flow.h"
30995 +
30996 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
30997 -+extern rtx emit_move_insn(rtx x, rtx y);
30998 -+
30999 -+#if BUILDING_GCC_VERSION <= 4006
31000 -+#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
31001 -+#endif
31002 -+
31003 -+#if BUILDING_GCC_VERSION >= 4008
31004 -+#define TODO_dump_func 0
31005 -+#endif
31006 ++#include "gcc-common.h"
31007 +
31008 +int plugin_is_GPL_compatible;
31009 +
31010 +static struct plugin_info kernexec_plugin_info = {
31011 -+ .version = "201308230150",
31012 ++ .version = "201401260140",
31013 + .help = "method=[bts|or]\tinstrumentation method\n"
31014 +};
31015 +
31016 -+static unsigned int execute_kernexec_reload(void);
31017 -+static unsigned int execute_kernexec_fptr(void);
31018 -+static unsigned int execute_kernexec_retaddr(void);
31019 -+static bool kernexec_cmodel_check(void);
31020 -+
31021 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
31022 +static void (*kernexec_instrument_retaddr)(rtx);
31023 +
31024 -+static struct gimple_opt_pass kernexec_reload_pass = {
31025 -+ .pass = {
31026 -+ .type = GIMPLE_PASS,
31027 -+ .name = "kernexec_reload",
31028 -+#if BUILDING_GCC_VERSION >= 4008
31029 -+ .optinfo_flags = OPTGROUP_NONE,
31030 -+#endif
31031 -+ .gate = kernexec_cmodel_check,
31032 -+ .execute = execute_kernexec_reload,
31033 -+ .sub = NULL,
31034 -+ .next = NULL,
31035 -+ .static_pass_number = 0,
31036 -+ .tv_id = TV_NONE,
31037 -+ .properties_required = 0,
31038 -+ .properties_provided = 0,
31039 -+ .properties_destroyed = 0,
31040 -+ .todo_flags_start = 0,
31041 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
31042 -+ }
31043 -+};
31044 -+
31045 -+static struct gimple_opt_pass kernexec_fptr_pass = {
31046 -+ .pass = {
31047 -+ .type = GIMPLE_PASS,
31048 -+ .name = "kernexec_fptr",
31049 -+#if BUILDING_GCC_VERSION >= 4008
31050 -+ .optinfo_flags = OPTGROUP_NONE,
31051 -+#endif
31052 -+ .gate = kernexec_cmodel_check,
31053 -+ .execute = execute_kernexec_fptr,
31054 -+ .sub = NULL,
31055 -+ .next = NULL,
31056 -+ .static_pass_number = 0,
31057 -+ .tv_id = TV_NONE,
31058 -+ .properties_required = 0,
31059 -+ .properties_provided = 0,
31060 -+ .properties_destroyed = 0,
31061 -+ .todo_flags_start = 0,
31062 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
31063 -+ }
31064 -+};
31065 -+
31066 -+static struct rtl_opt_pass kernexec_retaddr_pass = {
31067 -+ .pass = {
31068 -+ .type = RTL_PASS,
31069 -+ .name = "kernexec_retaddr",
31070 -+#if BUILDING_GCC_VERSION >= 4008
31071 -+ .optinfo_flags = OPTGROUP_NONE,
31072 -+#endif
31073 -+ .gate = kernexec_cmodel_check,
31074 -+ .execute = execute_kernexec_retaddr,
31075 -+ .sub = NULL,
31076 -+ .next = NULL,
31077 -+ .static_pass_number = 0,
31078 -+ .tv_id = TV_NONE,
31079 -+ .properties_required = 0,
31080 -+ .properties_provided = 0,
31081 -+ .properties_destroyed = 0,
31082 -+ .todo_flags_start = 0,
31083 -+ .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
31084 -+ }
31085 -+};
31086 -+
31087 -+static bool kernexec_cmodel_check(void)
31088 -+{
31089 -+ tree section;
31090 -+
31091 -+ if (ix86_cmodel != CM_KERNEL)
31092 -+ return false;
31093 -+
31094 -+ section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
31095 -+ if (!section || !TREE_VALUE(section))
31096 -+ return true;
31097 -+
31098 -+ section = TREE_VALUE(TREE_VALUE(section));
31099 -+ if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
31100 -+ return true;
31101 -+
31102 -+ return false;
31103 -+}
31104 -+
31105 +/*
31106 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
31107 + */
31108 @@ -103489,7 +105095,7 @@ index 0000000..a25306b
31109 + basic_block bb;
31110 +
31111 + // 1. loop through BBs and GIMPLE statements
31112 -+ FOR_EACH_BB(bb) {
31113 ++ FOR_EACH_BB_FN(bb, cfun) {
31114 + gimple_stmt_iterator gsi;
31115 +
31116 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
31117 @@ -103532,9 +105138,7 @@ index 0000000..a25306b
31118 +
31119 + // create temporary unsigned long variable used for bitops and cast fptr to it
31120 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
31121 -+#if BUILDING_GCC_VERSION <= 4007
31122 + add_referenced_var(intptr);
31123 -+#endif
31124 + intptr = make_ssa_name(intptr, NULL);
31125 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
31126 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
31127 @@ -103553,9 +105157,7 @@ index 0000000..a25306b
31128 +
31129 + // cast temporary unsigned long back to a temporary fptr variable
31130 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
31131 -+#if BUILDING_GCC_VERSION <= 4007
31132 + add_referenced_var(new_fptr);
31133 -+#endif
31134 + new_fptr = make_ssa_name(new_fptr, NULL);
31135 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
31136 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
31137 @@ -103584,9 +105186,7 @@ index 0000000..a25306b
31138 +
31139 + // create temporary fptr variable
31140 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
31141 -+#if BUILDING_GCC_VERSION <= 4007
31142 + add_referenced_var(new_fptr);
31143 -+#endif
31144 + new_fptr = make_ssa_name(new_fptr, NULL);
31145 +
31146 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
31147 @@ -103620,7 +105220,7 @@ index 0000000..a25306b
31148 + basic_block bb;
31149 +
31150 + // 1. loop through BBs and GIMPLE statements
31151 -+ FOR_EACH_BB(bb) {
31152 ++ FOR_EACH_BB_FN(bb, cfun) {
31153 + gimple_stmt_iterator gsi;
31154 +
31155 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
31156 @@ -103733,30 +105333,196 @@ index 0000000..a25306b
31157 + return 0;
31158 +}
31159 +
31160 ++static bool kernexec_cmodel_check(void)
31161 ++{
31162 ++ tree section;
31163 ++
31164 ++ if (ix86_cmodel != CM_KERNEL)
31165 ++ return false;
31166 ++
31167 ++ section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
31168 ++ if (!section || !TREE_VALUE(section))
31169 ++ return true;
31170 ++
31171 ++ section = TREE_VALUE(TREE_VALUE(section));
31172 ++ if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
31173 ++ return true;
31174 ++
31175 ++ return false;
31176 ++}
31177 ++
31178 ++#if BUILDING_GCC_VERSION >= 4009
31179 ++static const struct pass_data kernexec_reload_pass_data = {
31180 ++#else
31181 ++static struct gimple_opt_pass kernexec_reload_pass = {
31182 ++ .pass = {
31183 ++#endif
31184 ++ .type = GIMPLE_PASS,
31185 ++ .name = "kernexec_reload",
31186 ++#if BUILDING_GCC_VERSION >= 4008
31187 ++ .optinfo_flags = OPTGROUP_NONE,
31188 ++#endif
31189 ++#if BUILDING_GCC_VERSION >= 4009
31190 ++ .has_gate = true,
31191 ++ .has_execute = true,
31192 ++#else
31193 ++ .gate = kernexec_cmodel_check,
31194 ++ .execute = execute_kernexec_reload,
31195 ++ .sub = NULL,
31196 ++ .next = NULL,
31197 ++ .static_pass_number = 0,
31198 ++#endif
31199 ++ .tv_id = TV_NONE,
31200 ++ .properties_required = 0,
31201 ++ .properties_provided = 0,
31202 ++ .properties_destroyed = 0,
31203 ++ .todo_flags_start = 0,
31204 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
31205 ++#if BUILDING_GCC_VERSION < 4009
31206 ++ }
31207 ++#endif
31208 ++};
31209 ++
31210 ++#if BUILDING_GCC_VERSION >= 4009
31211 ++static const struct pass_data kernexec_fptr_pass_data = {
31212 ++#else
31213 ++static struct gimple_opt_pass kernexec_fptr_pass = {
31214 ++ .pass = {
31215 ++#endif
31216 ++ .type = GIMPLE_PASS,
31217 ++ .name = "kernexec_fptr",
31218 ++#if BUILDING_GCC_VERSION >= 4008
31219 ++ .optinfo_flags = OPTGROUP_NONE,
31220 ++#endif
31221 ++#if BUILDING_GCC_VERSION >= 4009
31222 ++ .has_gate = true,
31223 ++ .has_execute = true,
31224 ++#else
31225 ++ .gate = kernexec_cmodel_check,
31226 ++ .execute = execute_kernexec_fptr,
31227 ++ .sub = NULL,
31228 ++ .next = NULL,
31229 ++ .static_pass_number = 0,
31230 ++#endif
31231 ++ .tv_id = TV_NONE,
31232 ++ .properties_required = 0,
31233 ++ .properties_provided = 0,
31234 ++ .properties_destroyed = 0,
31235 ++ .todo_flags_start = 0,
31236 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
31237 ++#if BUILDING_GCC_VERSION < 4009
31238 ++ }
31239 ++#endif
31240 ++};
31241 ++
31242 ++#if BUILDING_GCC_VERSION >= 4009
31243 ++static const struct pass_data kernexec_retaddr_pass_data = {
31244 ++#else
31245 ++static struct rtl_opt_pass kernexec_retaddr_pass = {
31246 ++ .pass = {
31247 ++#endif
31248 ++ .type = RTL_PASS,
31249 ++ .name = "kernexec_retaddr",
31250 ++#if BUILDING_GCC_VERSION >= 4008
31251 ++ .optinfo_flags = OPTGROUP_NONE,
31252 ++#endif
31253 ++#if BUILDING_GCC_VERSION >= 4009
31254 ++ .has_gate = true,
31255 ++ .has_execute = true,
31256 ++#else
31257 ++ .gate = kernexec_cmodel_check,
31258 ++ .execute = execute_kernexec_retaddr,
31259 ++ .sub = NULL,
31260 ++ .next = NULL,
31261 ++ .static_pass_number = 0,
31262 ++#endif
31263 ++ .tv_id = TV_NONE,
31264 ++ .properties_required = 0,
31265 ++ .properties_provided = 0,
31266 ++ .properties_destroyed = 0,
31267 ++ .todo_flags_start = 0,
31268 ++ .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
31269 ++#if BUILDING_GCC_VERSION < 4009
31270 ++ }
31271 ++#endif
31272 ++};
31273 ++
31274 ++#if BUILDING_GCC_VERSION >= 4009
31275 ++namespace {
31276 ++class kernexec_reload_pass : public gimple_opt_pass {
31277 ++public:
31278 ++ kernexec_reload_pass() : gimple_opt_pass(kernexec_reload_pass_data, g) {}
31279 ++ bool gate() { return kernexec_cmodel_check(); }
31280 ++ unsigned int execute() { return execute_kernexec_reload(); }
31281 ++};
31282 ++
31283 ++class kernexec_fptr_pass : public gimple_opt_pass {
31284 ++public:
31285 ++ kernexec_fptr_pass() : gimple_opt_pass(kernexec_fptr_pass_data, g) {}
31286 ++ bool gate() { return kernexec_cmodel_check(); }
31287 ++ unsigned int execute() { return execute_kernexec_fptr(); }
31288 ++};
31289 ++
31290 ++class kernexec_retaddr_pass : public rtl_opt_pass {
31291 ++public:
31292 ++ kernexec_retaddr_pass() : rtl_opt_pass(kernexec_retaddr_pass_data, g) {}
31293 ++ bool gate() { return kernexec_cmodel_check(); }
31294 ++ unsigned int execute() { return execute_kernexec_retaddr(); }
31295 ++};
31296 ++}
31297 ++#endif
31298 ++
31299 ++static struct opt_pass *make_kernexec_reload_pass(void)
31300 ++{
31301 ++#if BUILDING_GCC_VERSION >= 4009
31302 ++ return new kernexec_reload_pass();
31303 ++#else
31304 ++ return &kernexec_reload_pass.pass;
31305 ++#endif
31306 ++}
31307 ++
31308 ++static struct opt_pass *make_kernexec_fptr_pass(void)
31309 ++{
31310 ++#if BUILDING_GCC_VERSION >= 4009
31311 ++ return new kernexec_fptr_pass();
31312 ++#else
31313 ++ return &kernexec_fptr_pass.pass;
31314 ++#endif
31315 ++}
31316 ++
31317 ++static struct opt_pass *make_kernexec_retaddr_pass(void)
31318 ++{
31319 ++#if BUILDING_GCC_VERSION >= 4009
31320 ++ return new kernexec_retaddr_pass();
31321 ++#else
31322 ++ return &kernexec_retaddr_pass.pass;
31323 ++#endif
31324 ++}
31325 ++
31326 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
31327 +{
31328 + const char * const plugin_name = plugin_info->base_name;
31329 + const int argc = plugin_info->argc;
31330 + const struct plugin_argument * const argv = plugin_info->argv;
31331 + int i;
31332 -+ struct register_pass_info kernexec_reload_pass_info = {
31333 -+ .pass = &kernexec_reload_pass.pass,
31334 -+ .reference_pass_name = "ssa",
31335 -+ .ref_pass_instance_number = 1,
31336 -+ .pos_op = PASS_POS_INSERT_AFTER
31337 -+ };
31338 -+ struct register_pass_info kernexec_fptr_pass_info = {
31339 -+ .pass = &kernexec_fptr_pass.pass,
31340 -+ .reference_pass_name = "ssa",
31341 -+ .ref_pass_instance_number = 1,
31342 -+ .pos_op = PASS_POS_INSERT_AFTER
31343 -+ };
31344 -+ struct register_pass_info kernexec_retaddr_pass_info = {
31345 -+ .pass = &kernexec_retaddr_pass.pass,
31346 -+ .reference_pass_name = "pro_and_epilogue",
31347 -+ .ref_pass_instance_number = 1,
31348 -+ .pos_op = PASS_POS_INSERT_AFTER
31349 -+ };
31350 ++ struct register_pass_info kernexec_reload_pass_info;
31351 ++ struct register_pass_info kernexec_fptr_pass_info;
31352 ++ struct register_pass_info kernexec_retaddr_pass_info;
31353 ++
31354 ++ kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
31355 ++ kernexec_reload_pass_info.reference_pass_name = "ssa";
31356 ++ kernexec_reload_pass_info.ref_pass_instance_number = 1;
31357 ++ kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
31358 ++
31359 ++ kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
31360 ++ kernexec_fptr_pass_info.reference_pass_name = "ssa";
31361 ++ kernexec_fptr_pass_info.ref_pass_instance_number = 1;
31362 ++ kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
31363 ++
31364 ++ kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
31365 ++ kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
31366 ++ kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
31367 ++ kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
31368 +
31369 + if (!plugin_default_version_check(version, &gcc_version)) {
31370 + error(G_("incompatible gcc/plugin versions"));
31371 @@ -103799,12 +105565,12 @@ index 0000000..a25306b
31372 +}
31373 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
31374 new file mode 100644
31375 -index 0000000..679b9ef
31376 +index 0000000..f04b680
31377 --- /dev/null
31378 +++ b/tools/gcc/latent_entropy_plugin.c
31379 -@@ -0,0 +1,335 @@
31380 +@@ -0,0 +1,325 @@
31381 +/*
31382 -+ * Copyright 2012-2013 by the PaX Team <pageexec@××××××××.hu>
31383 ++ * Copyright 2012-2014 by the PaX Team <pageexec@××××××××.hu>
31384 + * Licensed under the GPL v2
31385 + *
31386 + * Note: the choice of the license means that the compilation process is
31387 @@ -103823,65 +105589,18 @@ index 0000000..679b9ef
31388 + * BUGS:
31389 + * - LTO needs -flto-partition=none for now
31390 + */
31391 -+#include "gcc-plugin.h"
31392 -+#include "config.h"
31393 -+#include "system.h"
31394 -+#include "coretypes.h"
31395 -+#include "tree.h"
31396 -+#include "tree-pass.h"
31397 -+#include "flags.h"
31398 -+#include "intl.h"
31399 -+#include "toplev.h"
31400 -+#include "plugin.h"
31401 -+//#include "expr.h" where are you...
31402 -+#include "diagnostic.h"
31403 -+#include "plugin-version.h"
31404 -+#include "tm.h"
31405 -+#include "function.h"
31406 -+#include "basic-block.h"
31407 -+#include "gimple.h"
31408 -+#include "rtl.h"
31409 -+#include "emit-rtl.h"
31410 -+#include "tree-flow.h"
31411 -+#include "langhooks.h"
31412 +
31413 -+#if BUILDING_GCC_VERSION >= 4008
31414 -+#define TODO_dump_func 0
31415 -+#endif
31416 ++#include "gcc-common.h"
31417 +
31418 +int plugin_is_GPL_compatible;
31419 +
31420 +static tree latent_entropy_decl;
31421 +
31422 +static struct plugin_info latent_entropy_plugin_info = {
31423 -+ .version = "201308230230",
31424 ++ .version = "201401260140",
31425 + .help = NULL
31426 +};
31427 +
31428 -+static unsigned int execute_latent_entropy(void);
31429 -+static bool gate_latent_entropy(void);
31430 -+
31431 -+static struct gimple_opt_pass latent_entropy_pass = {
31432 -+ .pass = {
31433 -+ .type = GIMPLE_PASS,
31434 -+ .name = "latent_entropy",
31435 -+#if BUILDING_GCC_VERSION >= 4008
31436 -+ .optinfo_flags = OPTGROUP_NONE,
31437 -+#endif
31438 -+ .gate = gate_latent_entropy,
31439 -+ .execute = execute_latent_entropy,
31440 -+ .sub = NULL,
31441 -+ .next = NULL,
31442 -+ .static_pass_number = 0,
31443 -+ .tv_id = TV_NONE,
31444 -+ .properties_required = PROP_gimple_leh | PROP_cfg,
31445 -+ .properties_provided = 0,
31446 -+ .properties_destroyed = 0,
31447 -+ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
31448 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
31449 -+ }
31450 -+};
31451 -+
31452 +static unsigned HOST_WIDE_INT seed;
31453 +static unsigned HOST_WIDE_INT get_random_const(void)
31454 +{
31455 @@ -103992,17 +105711,13 @@ index 0000000..679b9ef
31456 +
31457 + // 1. create temporary copy of latent_entropy
31458 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
31459 -+#if BUILDING_GCC_VERSION <= 4007
31460 + add_referenced_var(temp);
31461 -+#endif
31462 +
31463 + // 2. read...
31464 + temp = make_ssa_name(temp, NULL);
31465 + assign = gimple_build_assign(temp, latent_entropy_decl);
31466 + SSA_NAME_DEF_STMT(temp) = assign;
31467 -+#if BUILDING_GCC_VERSION <= 4007
31468 + add_referenced_var(latent_entropy_decl);
31469 -+#endif
31470 + gsi = gsi_after_labels(bb);
31471 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
31472 + update_stmt(assign);
31473 @@ -104031,13 +105746,9 @@ index 0000000..679b9ef
31474 + if (!latent_entropy_decl) {
31475 + struct varpool_node *node;
31476 +
31477 -+#if BUILDING_GCC_VERSION <= 4007
31478 -+ for (node = varpool_nodes; node; node = node->next) {
31479 -+ tree var = node->decl;
31480 -+#else
31481 + FOR_EACH_VARIABLE(node) {
31482 -+ tree var = node->symbol.decl;
31483 -+#endif
31484 ++ tree var = NODE_DECL(node);
31485 ++
31486 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
31487 + continue;
31488 + latent_entropy_decl = var;
31489 @@ -104054,15 +105765,13 @@ index 0000000..679b9ef
31490 +
31491 + // 1. create local entropy variable
31492 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
31493 -+#if BUILDING_GCC_VERSION <= 4007
31494 + add_referenced_var(local_entropy);
31495 + mark_sym_for_renaming(local_entropy);
31496 -+#endif
31497 +
31498 + // 2. initialize local entropy variable
31499 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
31500 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
31501 + if (dom_info_available_p(CDI_DOMINATORS))
31502 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
31503 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
31504 + gsi = gsi_start_bb(bb);
31505 +
31506 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
31507 @@ -104073,15 +105782,15 @@ index 0000000..679b9ef
31508 + bb = bb->next_bb;
31509 +
31510 + // 3. instrument each BB with an operation on the local entropy variable
31511 -+ while (bb != EXIT_BLOCK_PTR) {
31512 ++ while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
31513 + perturb_local_entropy(bb, local_entropy);
31514 +//debug_bb(bb);
31515 + bb = bb->next_bb;
31516 + };
31517 +
31518 + // 4. mix local entropy into the global entropy variable
31519 -+ perturb_latent_entropy(EXIT_BLOCK_PTR->prev_bb, local_entropy);
31520 -+//debug_bb(EXIT_BLOCK_PTR->prev_bb);
31521 ++ perturb_latent_entropy(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb, local_entropy);
31522 ++//debug_bb(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb);
31523 + return 0;
31524 +}
31525 +
31526 @@ -104089,12 +105798,7 @@ index 0000000..679b9ef
31527 +{
31528 + tree latent_entropy_type;
31529 +
31530 -+#if BUILDING_GCC_VERSION >= 4007
31531 + seed = get_random_seed(false);
31532 -+#else
31533 -+ sscanf(get_random_seed(false), "%" HOST_WIDE_INT_PRINT "x", &seed);
31534 -+ seed *= seed;
31535 -+#endif
31536 +
31537 + if (in_lto_p)
31538 + return;
31539 @@ -104116,15 +105820,67 @@ index 0000000..679b9ef
31540 +// varpool_mark_needed_node(latent_entropy_decl);
31541 +}
31542 +
31543 ++#if BUILDING_GCC_VERSION >= 4009
31544 ++static const struct pass_data latent_entropy_pass_data = {
31545 ++#else
31546 ++static struct gimple_opt_pass latent_entropy_pass = {
31547 ++ .pass = {
31548 ++#endif
31549 ++ .type = GIMPLE_PASS,
31550 ++ .name = "latent_entropy",
31551 ++#if BUILDING_GCC_VERSION >= 4008
31552 ++ .optinfo_flags = OPTGROUP_NONE,
31553 ++#endif
31554 ++#if BUILDING_GCC_VERSION >= 4009
31555 ++ .has_gate = true,
31556 ++ .has_execute = true,
31557 ++#else
31558 ++ .gate = gate_latent_entropy,
31559 ++ .execute = execute_latent_entropy,
31560 ++ .sub = NULL,
31561 ++ .next = NULL,
31562 ++ .static_pass_number = 0,
31563 ++#endif
31564 ++ .tv_id = TV_NONE,
31565 ++ .properties_required = PROP_gimple_leh | PROP_cfg,
31566 ++ .properties_provided = 0,
31567 ++ .properties_destroyed = 0,
31568 ++ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
31569 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
31570 ++#if BUILDING_GCC_VERSION < 4009
31571 ++ }
31572 ++#endif
31573 ++};
31574 ++
31575 ++#if BUILDING_GCC_VERSION >= 4009
31576 ++namespace {
31577 ++class latent_entropy_pass : public gimple_opt_pass {
31578 ++public:
31579 ++ latent_entropy_pass() : gimple_opt_pass(latent_entropy_pass_data, g) {}
31580 ++ bool gate() { return gate_latent_entropy(); }
31581 ++ unsigned int execute() { return execute_latent_entropy(); }
31582 ++};
31583 ++}
31584 ++#endif
31585 ++
31586 ++static struct opt_pass *make_latent_entropy_pass(void)
31587 ++{
31588 ++#if BUILDING_GCC_VERSION >= 4009
31589 ++ return new latent_entropy_pass();
31590 ++#else
31591 ++ return &latent_entropy_pass.pass;
31592 ++#endif
31593 ++}
31594 ++
31595 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
31596 +{
31597 + const char * const plugin_name = plugin_info->base_name;
31598 -+ struct register_pass_info latent_entropy_pass_info = {
31599 -+ .pass = &latent_entropy_pass.pass,
31600 -+ .reference_pass_name = "optimized",
31601 -+ .ref_pass_instance_number = 1,
31602 -+ .pos_op = PASS_POS_INSERT_BEFORE
31603 -+ };
31604 ++ struct register_pass_info latent_entropy_pass_info;
31605 ++
31606 ++ latent_entropy_pass_info.pass = make_latent_entropy_pass();
31607 ++ latent_entropy_pass_info.reference_pass_name = "optimized";
31608 ++ latent_entropy_pass_info.ref_pass_instance_number = 1;
31609 ++ latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
31610 +
31611 + if (!plugin_default_version_check(version, &gcc_version)) {
31612 + error(G_("incompatible gcc/plugin versions"));
31613 @@ -104138,15 +105894,766 @@ index 0000000..679b9ef
31614 +
31615 + return 0;
31616 +}
31617 +diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
31618 +new file mode 100644
31619 +index 0000000..4aceb10
31620 +--- /dev/null
31621 ++++ b/tools/gcc/randomize_layout_plugin.c
31622 +@@ -0,0 +1,746 @@
31623 ++/*
31624 ++ * Copyright 2014 by Open Source Security, Inc., Brad Spengler <spender@××××××××××.net>
31625 ++ * and PaX Team <pageexec@××××××××.hu>
31626 ++ * Licensed under the GPL v2
31627 ++ *
31628 ++ * Usage:
31629 ++ * $ # for 4.5/4.6/C based 4.7
31630 ++ * $ gcc -I`gcc -print-file-name=plugin`/include -I`gcc -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o randomize_layout_plugin.so randomize_layout_plugin.c
31631 ++ * $ # for C++ based 4.7/4.8+
31632 ++ * $ g++ -I`g++ -print-file-name=plugin`/include -I`g++ -print-file-name=plugin`/include/c-family -fPIC -shared -O2 -o randomize_layout_plugin.so randomize_layout_plugin.c
31633 ++ * $ gcc -fplugin=./randomize_layout_plugin.so test.c -O2
31634 ++ */
31635 ++
31636 ++#include "gcc-common.h"
31637 ++
31638 ++#define ORIG_TYPE_NAME(node) \
31639 ++ (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
31640 ++
31641 ++int plugin_is_GPL_compatible;
31642 ++
31643 ++static int performance_mode;
31644 ++
31645 ++static struct plugin_info randomize_layout_plugin_info = {
31646 ++ .version = "201401251240",
31647 ++ .help = "disable\t\t\tdo not activate plugin\n"
31648 ++ "seed\t\t\tprovide a required 64-byte seed in hex format\n"
31649 ++ "performance-mode\tenable cacheline-aware layout randomization\n"
31650 ++};
31651 ++
31652 ++/* from old Linux dcache.h */
31653 ++static inline unsigned long
31654 ++partial_name_hash(unsigned long c, unsigned long prevhash)
31655 ++{
31656 ++ return (prevhash + (c << 4) + (c >> 4)) * 11;
31657 ++}
31658 ++static inline unsigned int
31659 ++name_hash(const unsigned char *name)
31660 ++{
31661 ++ unsigned long hash = 0;
31662 ++ unsigned int len = strlen((const char *)name);
31663 ++ while (len--)
31664 ++ hash = partial_name_hash(*name++, hash);
31665 ++ return (unsigned int)hash;
31666 ++}
31667 ++
31668 ++static tree handle_randomize_layout_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
31669 ++{
31670 ++ tree type;
31671 ++
31672 ++ *no_add_attrs = true;
31673 ++ if (TREE_CODE(*node) == FUNCTION_DECL) {
31674 ++ error("%qE attribute does not apply to functions (%qF)", name, *node);
31675 ++ return NULL_TREE;
31676 ++ }
31677 ++
31678 ++ if (TREE_CODE(*node) == PARM_DECL) {
31679 ++ error("%qE attribute does not apply to function parameters (%qD)", name, *node);
31680 ++ return NULL_TREE;
31681 ++ }
31682 ++
31683 ++ if (TREE_CODE(*node) == VAR_DECL) {
31684 ++ error("%qE attribute does not apply to variables (%qD)", name, *node);
31685 ++ return NULL_TREE;
31686 ++ }
31687 ++
31688 ++ if (TYPE_P(*node)) {
31689 ++ type = *node;
31690 ++ } else {
31691 ++ gcc_assert(TREE_CODE(*node) == TYPE_DECL);
31692 ++ type = TREE_TYPE(*node);
31693 ++ }
31694 ++
31695 ++ if (TREE_CODE(type) != RECORD_TYPE) {
31696 ++ error("%qE attribute used on %qT applies to struct types only", name, type);
31697 ++ return NULL_TREE;
31698 ++ }
31699 ++
31700 ++ if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
31701 ++ error("%qE attribute is already applied to the type %qT", name, type);
31702 ++ return NULL_TREE;
31703 ++ }
31704 ++
31705 ++ *no_add_attrs = false;
31706 ++
31707 ++ return NULL_TREE;
31708 ++}
31709 ++
31710 ++/* set on complete types that we don't need to inspect further at all */
31711 ++static tree handle_randomize_considered_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
31712 ++{
31713 ++ *no_add_attrs = false;
31714 ++ return NULL_TREE;
31715 ++}
31716 ++
31717 ++/*
31718 ++ * set on types that we've performed a shuffle on, to prevent re-shuffling
31719 ++ * this does not preclude us from inspecting its fields for potential shuffles
31720 ++ */
31721 ++static tree handle_randomize_performed_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
31722 ++{
31723 ++ *no_add_attrs = false;
31724 ++ return NULL_TREE;
31725 ++}
31726 ++
31727 ++/*
31728 ++ * 64bit variant of Bob Jenkins' public domain PRNG
31729 ++ * 256 bits of internal state
31730 ++ */
31731 ++
31732 ++typedef unsigned long long u64;
31733 ++
31734 ++typedef struct ranctx { u64 a; u64 b; u64 c; u64 d; } ranctx;
31735 ++
31736 ++#define rot(x,k) (((x)<<(k))|((x)>>(64-(k))))
31737 ++static u64 ranval(ranctx *x) {
31738 ++ u64 e = x->a - rot(x->b, 7);
31739 ++ x->a = x->b ^ rot(x->c, 13);
31740 ++ x->b = x->c + rot(x->d, 37);
31741 ++ x->c = x->d + e;
31742 ++ x->d = e + x->a;
31743 ++ return x->d;
31744 ++}
31745 ++
31746 ++static void raninit(ranctx *x, u64 *seed) {
31747 ++ int i;
31748 ++
31749 ++ x->a = seed[0];
31750 ++ x->b = seed[1];
31751 ++ x->c = seed[2];
31752 ++ x->d = seed[3];
31753 ++
31754 ++ for (i=0; i < 30; ++i)
31755 ++ (void)ranval(x);
31756 ++}
31757 ++
31758 ++static u64 shuffle_seed[4];
31759 ++
31760 ++struct partition_group {
31761 ++ tree tree_start;
31762 ++ unsigned long start;
31763 ++ unsigned long length;
31764 ++};
31765 ++
31766 ++static void partition_struct(tree *fields, unsigned long length, struct partition_group *size_groups, unsigned long *num_groups)
31767 ++{
31768 ++ unsigned long i;
31769 ++ unsigned long accum_size = 0;
31770 ++ unsigned long accum_length = 0;
31771 ++ unsigned long group_idx = 0;
31772 ++
31773 ++ gcc_assert(length < INT_MAX);
31774 ++
31775 ++ memset(size_groups, 0, sizeof(struct partition_group) * length);
31776 ++
31777 ++ for (i = 0; i < length; i++) {
31778 ++ if (size_groups[group_idx].tree_start == NULL_TREE) {
31779 ++ size_groups[group_idx].tree_start = fields[i];
31780 ++ size_groups[group_idx].start = i;
31781 ++ accum_length = 0;
31782 ++ accum_size = 0;
31783 ++ }
31784 ++ accum_size += (unsigned long)int_size_in_bytes(TREE_TYPE(fields[i]));
31785 ++ accum_length++;
31786 ++ if (accum_size >= 64) {
31787 ++ size_groups[group_idx].length = accum_length;
31788 ++ accum_length = 0;
31789 ++ group_idx++;
31790 ++ }
31791 ++ }
31792 ++
31793 ++ if (size_groups[group_idx].tree_start != NULL_TREE &&
31794 ++ !size_groups[group_idx].length) {
31795 ++ size_groups[group_idx].length = accum_length;
31796 ++ group_idx++;
31797 ++ }
31798 ++
31799 ++ *num_groups = group_idx;
31800 ++}
31801 ++
31802 ++static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
31803 ++{
31804 ++ unsigned long i, x;
31805 ++ struct partition_group size_group[length];
31806 ++ unsigned long num_groups = 0;
31807 ++ unsigned long randnum;
31808 ++
31809 ++ partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups);
31810 ++ for (i = num_groups - 1; i > 0; i--) {
31811 ++ struct partition_group tmp;
31812 ++ randnum = ranval(prng_state) % (i + 1);
31813 ++ tmp = size_group[i];
31814 ++ size_group[i] = size_group[randnum];
31815 ++ size_group[randnum] = tmp;
31816 ++ }
31817 ++
31818 ++ for (x = 0; x < num_groups; x++) {
31819 ++ for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) {
31820 ++ tree tmp;
31821 ++ if (DECL_BIT_FIELD_TYPE(newtree[i]))
31822 ++ continue;
31823 ++ randnum = ranval(prng_state) % (i + 1);
31824 ++ // we could handle this case differently if desired
31825 ++ if (DECL_BIT_FIELD_TYPE(newtree[randnum]))
31826 ++ continue;
31827 ++ tmp = newtree[i];
31828 ++ newtree[i] = newtree[randnum];
31829 ++ newtree[randnum] = tmp;
31830 ++ }
31831 ++ }
31832 ++}
31833 ++
31834 ++static void full_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
31835 ++{
31836 ++ unsigned long i, randnum;
31837 ++
31838 ++ for (i = length - 1; i > 0; i--) {
31839 ++ tree tmp;
31840 ++ randnum = ranval(prng_state) % (i + 1);
31841 ++ tmp = newtree[i];
31842 ++ newtree[i] = newtree[randnum];
31843 ++ newtree[randnum] = tmp;
31844 ++ }
31845 ++}
31846 ++
31847 ++/* modern in-place Fisher-Yates shuffle */
31848 ++static void shuffle(const_tree type, tree *newtree, unsigned long length)
31849 ++{
31850 ++ unsigned long i;
31851 ++ u64 seed[4];
31852 ++ ranctx prng_state;
31853 ++ const unsigned char *structname;
31854 ++
31855 ++ if (length == 0)
31856 ++ return;
31857 ++
31858 ++ gcc_assert(TREE_CODE(type) == RECORD_TYPE);
31859 ++
31860 ++ structname = ORIG_TYPE_NAME(type);
31861 ++
31862 ++#ifdef __DEBUG_PLUGIN
31863 ++ fprintf(stderr, "Shuffling struct %s %p\n", (const char *)structname, type);
31864 ++#ifdef __DEBUG_VERBOSE
31865 ++ debug_tree((tree)type);
31866 ++#endif
31867 ++#endif
31868 ++
31869 ++ for (i = 0; i < 4; i++) {
31870 ++ seed[i] = shuffle_seed[i];
31871 ++ seed[i] ^= name_hash(structname);
31872 ++ }
31873 ++
31874 ++ raninit(&prng_state, (u64 *)&seed);
31875 ++
31876 ++ if (performance_mode)
31877 ++ performance_shuffle(newtree, length, &prng_state);
31878 ++ else
31879 ++ full_shuffle(newtree, length, &prng_state);
31880 ++}
31881 ++
31882 ++static bool is_flexible_array(const_tree field)
31883 ++{
31884 ++ const_tree fieldtype;
31885 ++ const_tree typesize;
31886 ++ const_tree elemtype;
31887 ++ const_tree elemsize;
31888 ++
31889 ++ fieldtype = TREE_TYPE(field);
31890 ++ typesize = TYPE_SIZE(fieldtype);
31891 ++
31892 ++ if (TREE_CODE(fieldtype) != ARRAY_TYPE)
31893 ++ return false;
31894 ++
31895 ++ elemtype = TREE_TYPE(fieldtype);
31896 ++ elemsize = TYPE_SIZE(elemtype);
31897 ++
31898 ++ /* size of type is represented in bits */
31899 ++
31900 ++ if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
31901 ++ TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
31902 ++ return true;
31903 ++
31904 ++ if (typesize != NULL_TREE &&
31905 ++ (TREE_CONSTANT(typesize) && (!TREE_INT_CST_LOW(typesize) ||
31906 ++ TREE_INT_CST_LOW(typesize) == TREE_INT_CST_LOW(elemsize))))
31907 ++ return true;
31908 ++
31909 ++ return false;
31910 ++}
31911 ++
31912 ++static int relayout_struct(tree type)
31913 ++{
31914 ++ unsigned long num_fields = (unsigned long)list_length(TYPE_FIELDS(type));
31915 ++ unsigned long shuffle_length = num_fields;
31916 ++ tree field;
31917 ++ tree newtree[num_fields];
31918 ++ unsigned long i;
31919 ++ tree list;
31920 ++ tree variant;
31921 ++
31922 ++ if (TYPE_FIELDS(type) == NULL_TREE)
31923 ++ return 0;
31924 ++
31925 ++ if (num_fields < 2)
31926 ++ return 0;
31927 ++
31928 ++ gcc_assert(TREE_CODE(type) == RECORD_TYPE);
31929 ++
31930 ++ gcc_assert(num_fields < INT_MAX);
31931 ++
31932 ++ if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)) ||
31933 ++ lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
31934 ++ return 0;
31935 ++
31936 ++ for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
31937 ++ gcc_assert(TREE_CODE(field) == FIELD_DECL);
31938 ++ newtree[i] = field;
31939 ++ }
31940 ++
31941 ++ /*
31942 ++ * enforce that we don't randomize the layout of the last
31943 ++ * element of a struct if it's a 0 or 1-length array
31944 ++ * or a proper flexible array
31945 ++ */
31946 ++ if (is_flexible_array(newtree[num_fields - 1]))
31947 ++ shuffle_length--;
31948 ++
31949 ++ shuffle(type, (tree *)newtree, shuffle_length);
31950 ++
31951 ++ /*
31952 ++ * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
31953 ++ * as gcc provides no other way to detect such code
31954 ++ */
31955 ++ list = make_node(FIELD_DECL);
31956 ++ TREE_CHAIN(list) = newtree[0];
31957 ++ TREE_TYPE(list) = void_type_node;
31958 ++ DECL_SIZE(list) = bitsize_zero_node;
31959 ++ DECL_NONADDRESSABLE_P(list) = 1;
31960 ++ DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
31961 ++ DECL_SIZE_UNIT(list) = size_zero_node;
31962 ++ DECL_FIELD_OFFSET(list) = size_zero_node;
31963 ++ // to satisfy the constify plugin
31964 ++ TREE_READONLY(list) = 1;
31965 ++
31966 ++ for (i = 0; i < num_fields - 1; i++)
31967 ++ TREE_CHAIN(newtree[i]) = newtree[i+1];
31968 ++ TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
31969 ++
31970 ++ for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
31971 ++ TYPE_FIELDS(variant) = list;
31972 ++ TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
31973 ++ TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
31974 ++ // force a re-layout
31975 ++ TYPE_SIZE(variant) = NULL_TREE;
31976 ++ layout_type(variant);
31977 ++ }
31978 ++
31979 ++ return 1;
31980 ++}
31981 ++
31982 ++/* from constify plugin */
31983 ++static const_tree get_field_type(const_tree field)
31984 ++{
31985 ++ return strip_array_types(TREE_TYPE(field));
31986 ++}
31987 ++
31988 ++/* from constify plugin */
31989 ++static bool is_fptr(const_tree fieldtype)
31990 ++{
31991 ++ if (TREE_CODE(fieldtype) != POINTER_TYPE)
31992 ++ return false;
31993 ++
31994 ++ return TREE_CODE(TREE_TYPE(fieldtype)) == FUNCTION_TYPE;
31995 ++}
31996 ++
31997 ++/* derived from constify plugin */
31998 ++static int is_pure_ops_struct(const_tree node)
31999 ++{
32000 ++ const_tree field;
32001 ++
32002 ++ gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
32003 ++
32004 ++ for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
32005 ++ const_tree fieldtype = get_field_type(field);
32006 ++ enum tree_code code = TREE_CODE(fieldtype);
32007 ++
32008 ++ if (node == fieldtype)
32009 ++ continue;
32010 ++
32011 ++ if (!is_fptr(fieldtype))
32012 ++ return 0;
32013 ++
32014 ++ if (code != RECORD_TYPE && code != UNION_TYPE)
32015 ++ continue;
32016 ++
32017 ++ if (!is_pure_ops_struct(fieldtype))
32018 ++ return 0;
32019 ++ }
32020 ++
32021 ++ return 1;
32022 ++}
32023 ++
32024 ++static void randomize_type(tree type)
32025 ++{
32026 ++ tree variant;
32027 ++
32028 ++ gcc_assert(TREE_CODE(type) == RECORD_TYPE);
32029 ++
32030 ++ if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
32031 ++ return;
32032 ++
32033 ++ if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
32034 ++ relayout_struct(type);
32035 ++
32036 ++ for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
32037 ++ TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
32038 ++ TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
32039 ++ }
32040 ++#ifdef __DEBUG_PLUGIN
32041 ++ fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
32042 ++#ifdef __DEBUG_VERBOSE
32043 ++ debug_tree(type);
32044 ++#endif
32045 ++#endif
32046 ++}
32047 ++
32048 ++static void finish_type(void *event_data, void *data)
32049 ++{
32050 ++ tree type = (tree)event_data;
32051 ++
32052 ++ if (type == NULL_TREE || type == error_mark_node)
32053 ++ return;
32054 ++
32055 ++ if (TREE_CODE(type) != RECORD_TYPE)
32056 ++ return;
32057 ++
32058 ++ if (TYPE_FIELDS(type) == NULL_TREE)
32059 ++ return;
32060 ++
32061 ++ if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
32062 ++ return;
32063 ++
32064 ++#ifdef __DEBUG_PLUGIN
32065 ++ fprintf(stderr, "Calling randomize_type on %s\n", ORIG_TYPE_NAME(type));
32066 ++#endif
32067 ++#ifdef __DEBUG_VERBOSE
32068 ++ debug_tree(type);
32069 ++#endif
32070 ++ randomize_type(type);
32071 ++
32072 ++ return;
32073 ++}
32074 ++
32075 ++static struct attribute_spec randomize_layout_attr = {
32076 ++ .name = "randomize_layout",
32077 ++ // related to args
32078 ++ .min_length = 0,
32079 ++ .max_length = 0,
32080 ++ .decl_required = false,
32081 ++ // need type declaration
32082 ++ .type_required = true,
32083 ++ .function_type_required = false,
32084 ++ .handler = handle_randomize_layout_attr,
32085 ++#if BUILDING_GCC_VERSION >= 4007
32086 ++ .affects_type_identity = true
32087 ++#endif
32088 ++};
32089 ++
32090 ++static struct attribute_spec no_randomize_layout_attr = {
32091 ++ .name = "no_randomize_layout",
32092 ++ // related to args
32093 ++ .min_length = 0,
32094 ++ .max_length = 0,
32095 ++ .decl_required = false,
32096 ++ // need type declaration
32097 ++ .type_required = true,
32098 ++ .function_type_required = false,
32099 ++ .handler = handle_randomize_layout_attr,
32100 ++#if BUILDING_GCC_VERSION >= 4007
32101 ++ .affects_type_identity = true
32102 ++#endif
32103 ++};
32104 ++
32105 ++static struct attribute_spec randomize_considered_attr = {
32106 ++ .name = "randomize_considered",
32107 ++ // related to args
32108 ++ .min_length = 0,
32109 ++ .max_length = 0,
32110 ++ .decl_required = false,
32111 ++ // need type declaration
32112 ++ .type_required = true,
32113 ++ .function_type_required = false,
32114 ++ .handler = handle_randomize_considered_attr,
32115 ++#if BUILDING_GCC_VERSION >= 4007
32116 ++ .affects_type_identity = false
32117 ++#endif
32118 ++};
32119 ++
32120 ++static struct attribute_spec randomize_performed_attr = {
32121 ++ .name = "randomize_performed",
32122 ++ // related to args
32123 ++ .min_length = 0,
32124 ++ .max_length = 0,
32125 ++ .decl_required = false,
32126 ++ // need type declaration
32127 ++ .type_required = true,
32128 ++ .function_type_required = false,
32129 ++ .handler = handle_randomize_performed_attr,
32130 ++#if BUILDING_GCC_VERSION >= 4007
32131 ++ .affects_type_identity = false
32132 ++#endif
32133 ++};
32134 ++
32135 ++static void register_attributes(void *event_data, void *data)
32136 ++{
32137 ++ register_attribute(&randomize_layout_attr);
32138 ++ register_attribute(&no_randomize_layout_attr);
32139 ++ register_attribute(&randomize_considered_attr);
32140 ++ register_attribute(&randomize_performed_attr);
32141 ++}
32142 ++
32143 ++/*
32144 ++ * iterate over all statements to find "bad" casts:
32145 ++ * those where the address of the start of a structure is cast
32146 ++ * to a pointer of a structure of a different type, or a
32147 ++ * structure pointer type is cast to a different structure pointer type
32148 ++ */
32149 ++static unsigned int find_bad_casts(void)
32150 ++{
32151 ++ basic_block bb;
32152 ++
32153 ++ FOR_ALL_BB(bb) {
32154 ++ gimple_stmt_iterator gsi;
32155 ++
32156 ++ for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
32157 ++ gimple stmt;
32158 ++ const_tree lhs;
32159 ++ const_tree lhs_type;
32160 ++ const_tree rhs1;
32161 ++ const_tree rhs_type;
32162 ++ const_tree ptr_lhs_type;
32163 ++ const_tree ptr_rhs_type;
32164 ++ const_tree op0;
32165 ++ const_tree op0_type;
32166 ++ enum tree_code rhs_code;
32167 ++
32168 ++ stmt = gsi_stmt(gsi);
32169 ++
32170 ++#ifdef __DEBUG_PLUGIN
32171 ++#ifdef __DEBUG_VERBOSE
32172 ++ debug_gimple_stmt(stmt);
32173 ++ debug_tree(gimple_get_lhs(stmt));
32174 ++#endif
32175 ++#endif
32176 ++
32177 ++ if (gimple_code(stmt) != GIMPLE_ASSIGN)
32178 ++ continue;
32179 ++
32180 ++#ifdef __DEBUG_PLUGIN
32181 ++#ifdef __DEBUG_VERBOSE
32182 ++ debug_tree(gimple_assign_rhs1(stmt));
32183 ++#endif
32184 ++#endif
32185 ++
32186 ++ rhs_code = gimple_assign_rhs_code(stmt);
32187 ++
32188 ++ if (rhs_code != ADDR_EXPR && rhs_code != SSA_NAME)
32189 ++ continue;
32190 ++
32191 ++ lhs = gimple_get_lhs(stmt);
32192 ++ lhs_type = TREE_TYPE(lhs);
32193 ++ rhs1 = gimple_assign_rhs1(stmt);
32194 ++ rhs_type = TREE_TYPE(rhs1);
32195 ++
32196 ++ if (TREE_CODE(rhs_type) != POINTER_TYPE ||
32197 ++ TREE_CODE(lhs_type) != POINTER_TYPE)
32198 ++ continue;
32199 ++
32200 ++ ptr_lhs_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type)));
32201 ++ ptr_rhs_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type)));
32202 ++
32203 ++ if (TREE_CODE(ptr_lhs_type) != RECORD_TYPE)
32204 ++ continue;
32205 ++
32206 ++ if (ptr_rhs_type == void_type_node)
32207 ++ continue;
32208 ++
32209 ++ if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
32210 ++#ifndef __DEBUG_PLUGIN
32211 ++ if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_lhs_type)))
32212 ++#endif
32213 ++ inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
32214 ++ continue;
32215 ++ }
32216 ++
32217 ++ if (rhs_code == SSA_NAME && ptr_lhs_type == ptr_rhs_type)
32218 ++ continue;
32219 ++
32220 ++ if (rhs_code == ADDR_EXPR) {
32221 ++ op0 = TREE_OPERAND(rhs1, 0);
32222 ++
32223 ++ if (op0 == NULL_TREE)
32224 ++ continue;
32225 ++
32226 ++ if (TREE_CODE(op0) != VAR_DECL)
32227 ++ continue;
32228 ++
32229 ++ op0_type = strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0)));
32230 ++ if (op0_type == ptr_lhs_type)
32231 ++ continue;
32232 ++
32233 ++#ifndef __DEBUG_PLUGIN
32234 ++ if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(op0_type)))
32235 ++#endif
32236 ++ inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, op0_type);
32237 ++ } else {
32238 ++ const_tree ssa_name_var = SSA_NAME_VAR(rhs1);
32239 ++ /* skip bogus type casts introduced by container_of */
32240 ++ if (ssa_name_var != NULL_TREE && DECL_NAME(ssa_name_var) &&
32241 ++ !strcmp((const char *)DECL_NAME_POINTER(ssa_name_var), "__mptr"))
32242 ++ continue;
32243 ++#ifndef __DEBUG_PLUGIN
32244 ++ if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_rhs_type)))
32245 ++#endif
32246 ++ inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
32247 ++ }
32248 ++
32249 ++ }
32250 ++ }
32251 ++ return 0;
32252 ++}
32253 ++
32254 ++#if BUILDING_GCC_VERSION >= 4009
32255 ++static const struct pass_data randomize_layout_bad_cast_data = {
32256 ++#else
32257 ++static struct gimple_opt_pass randomize_layout_bad_cast = {
32258 ++ .pass = {
32259 ++#endif
32260 ++ .type = GIMPLE_PASS,
32261 ++ .name = "randomize_layout_bad_cast",
32262 ++#if BUILDING_GCC_VERSION >= 4008
32263 ++ .optinfo_flags = OPTGROUP_NONE,
32264 ++#endif
32265 ++#if BUILDING_GCC_VERSION >= 4009
32266 ++ .has_gate = false,
32267 ++ .has_execute = true,
32268 ++#else
32269 ++ .gate = NULL,
32270 ++ .execute = find_bad_casts,
32271 ++ .sub = NULL,
32272 ++ .next = NULL,
32273 ++ .static_pass_number = 0,
32274 ++#endif
32275 ++ .tv_id = TV_NONE,
32276 ++ .properties_required = PROP_cfg,
32277 ++ .properties_provided = 0,
32278 ++ .properties_destroyed = 0,
32279 ++ .todo_flags_start = 0,
32280 ++ .todo_flags_finish = TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow
32281 ++#if BUILDING_GCC_VERSION < 4009
32282 ++ }
32283 ++#endif
32284 ++};
32285 ++
32286 ++#if BUILDING_GCC_VERSION >= 4009
32287 ++namespace {
32288 ++class randomize_layout_bad_cast : public gimple_opt_pass {
32289 ++public:
32290 ++ randomize_layout_bad_cast() : gimple_opt_pass(randomize_layout_bad_cast_data, g) {}
32291 ++ unsigned int execute() { return find_bad_casts(); }
32292 ++};
32293 ++}
32294 ++#endif
32295 ++
32296 ++static struct opt_pass *make_randomize_layout_bad_cast(void)
32297 ++{
32298 ++#if BUILDING_GCC_VERSION >= 4009
32299 ++ return new randomize_layout_bad_cast();
32300 ++#else
32301 ++ return &randomize_layout_bad_cast.pass;
32302 ++#endif
32303 ++}
32304 ++
32305 ++int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
32306 ++{
32307 ++ int i;
32308 ++ const char * const plugin_name = plugin_info->base_name;
32309 ++ const int argc = plugin_info->argc;
32310 ++ const struct plugin_argument * const argv = plugin_info->argv;
32311 ++ bool enable = true;
32312 ++ int obtained_seed = 0;
32313 ++ struct register_pass_info randomize_layout_bad_cast_info;
32314 ++
32315 ++ randomize_layout_bad_cast_info.pass = make_randomize_layout_bad_cast();
32316 ++ randomize_layout_bad_cast_info.reference_pass_name = "ssa";
32317 ++ randomize_layout_bad_cast_info.ref_pass_instance_number = 1;
32318 ++ randomize_layout_bad_cast_info.pos_op = PASS_POS_INSERT_AFTER;
32319 ++
32320 ++ if (!plugin_default_version_check(version, &gcc_version)) {
32321 ++ error(G_("incompatible gcc/plugin versions"));
32322 ++ return 1;
32323 ++ }
32324 ++
32325 ++ if (strcmp(lang_hooks.name, "GNU C")) {
32326 ++ inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name);
32327 ++ enable = false;
32328 ++ }
32329 ++
32330 ++ for (i = 0; i < argc; ++i) {
32331 ++ if (!strcmp(argv[i].key, "disable")) {
32332 ++ enable = false;
32333 ++ continue;
32334 ++ }
32335 ++ if (!strcmp(argv[i].key, "performance-mode")) {
32336 ++ performance_mode = 1;
32337 ++ continue;
32338 ++ }
32339 ++ if (!strcmp(argv[i].key, "seed")) {
32340 ++ if (!argv[i].value) {
32341 ++ error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
32342 ++ continue;
32343 ++ }
32344 ++ if (strlen(argv[i].value) != 64) {
32345 ++ error(G_("invalid value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
32346 ++ continue;
32347 ++ }
32348 ++ obtained_seed = sscanf(argv[i].value, "%016llx%016llx%016llx%016llx",
32349 ++ &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
32350 ++ continue;
32351 ++ }
32352 ++ error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
32353 ++ }
32354 ++
32355 ++ if (obtained_seed != 4) {
32356 ++ error(G_("Invalid seed supplied for %s plugin"), plugin_name);
32357 ++ return 1;
32358 ++ }
32359 ++
32360 ++ register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
32361 ++ if (enable) {
32362 ++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &randomize_layout_bad_cast_info);
32363 ++ register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
32364 ++ }
32365 ++ register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
32366 ++
32367 ++ return 0;
32368 ++}
32369 diff --git a/tools/gcc/size_overflow_hash.data b/tools/gcc/size_overflow_hash.data
32370 new file mode 100644
32371 -index 0000000..3d6cc0f
32372 +index 0000000..0c980be
32373 --- /dev/null
32374 +++ b/tools/gcc/size_overflow_hash.data
32375 -@@ -0,0 +1,7743 @@
32376 +@@ -0,0 +1,5697 @@
32377 +intel_fake_agp_alloc_by_type_1 intel_fake_agp_alloc_by_type 1 1 NULL
32378 +ocfs2_get_refcount_tree_3 ocfs2_get_refcount_tree 0 3 NULL
32379 -+batadv_orig_node_del_if_4 batadv_orig_node_del_if 2 4 NULL
32380 +storvsc_connect_to_vsp_22 storvsc_connect_to_vsp 2 22 NULL
32381 +compat_sock_setsockopt_23 compat_sock_setsockopt 5 23 NULL
32382 +carl9170_alloc_27 carl9170_alloc 1 27 NULL
32383 @@ -104154,116 +106661,81 @@ index 0000000..3d6cc0f
32384 +padzero_55 padzero 1 55 &sel_read_policyvers_55
32385 +cfg80211_disconnected_57 cfg80211_disconnected 4 57 NULL
32386 +__skb_to_sgvec_72 __skb_to_sgvec 0 72 NULL
32387 -+crypto_authenc_setkey_80 crypto_authenc_setkey 3 80 NULL
32388 +snd_korg1212_copy_to_92 snd_korg1212_copy_to 6 92 NULL
32389 +load_msg_95 load_msg 2 95 NULL
32390 -+device_flush_iotlb_115 device_flush_iotlb 2-3 115 NULL
32391 -+write_all_supers_117 write_all_supers 0 117 NULL nohasharray
32392 -+ipath_verbs_send_117 ipath_verbs_send 5-3 117 &write_all_supers_117
32393 ++ipath_verbs_send_117 ipath_verbs_send 5-3 117 NULL
32394 +init_q_132 init_q 4 132 NULL
32395 -+ocfs2_local_alloc_slide_window_134 ocfs2_local_alloc_slide_window 0 134 NULL
32396 +memstick_alloc_host_142 memstick_alloc_host 1 142 NULL
32397 +hva_to_gfn_memslot_149 hva_to_gfn_memslot 0-1 149 NULL
32398 +ping_v6_sendmsg_152 ping_v6_sendmsg 4 152 NULL
32399 +ext4_ext_get_actual_len_153 ext4_ext_get_actual_len 0 153 NULL nohasharray
32400 +tracing_trace_options_write_153 tracing_trace_options_write 3 153 &ext4_ext_get_actual_len_153
32401 -+nvme_create_queue_170 nvme_create_queue 3 170 NULL
32402 ++pci_request_selected_regions_169 pci_request_selected_regions 0 169 NULL
32403 +xfs_buf_item_get_format_189 xfs_buf_item_get_format 2 189 NULL
32404 +iscsi_session_setup_196 iscsi_session_setup 4-5 196 NULL
32405 -+device_add_bin_attributes_205 device_add_bin_attributes 0 205 NULL
32406 +br_port_info_size_268 br_port_info_size 0 268 NULL
32407 +generic_file_direct_write_291 generic_file_direct_write 0 291 NULL
32408 +read_file_war_stats_292 read_file_war_stats 3 292 NULL
32409 +SYSC_connect_304 SYSC_connect 3 304 NULL
32410 +syslog_print_307 syslog_print 2 307 NULL
32411 +dn_setsockopt_314 dn_setsockopt 5 314 NULL
32412 -+next_node_allowed_318 next_node_allowed 1-0 318 NULL
32413 -+mlx5_core_access_reg_361 mlx5_core_access_reg 5-3 361 NULL
32414 -+xfs_get_blocks_364 xfs_get_blocks 2 364 NULL
32415 -+get_more_blocks_367 get_more_blocks 0 367 NULL
32416 -+sysfs_create_dir_398 sysfs_create_dir 0 398 NULL
32417 ++mlx5_core_access_reg_361 mlx5_core_access_reg 3-5 361 NULL
32418 +hw_device_state_409 hw_device_state 0 409 NULL
32419 -+aio_read_events_ring_410 aio_read_events_ring 3 410 NULL
32420 ++aio_read_events_ring_410 aio_read_events_ring 3-0 410 NULL
32421 +lbs_rdmac_read_418 lbs_rdmac_read 3 418 NULL
32422 +snd_ca0106_ptr_read_467 snd_ca0106_ptr_read 0 467 NULL
32423 -+sparse_index_init_482 sparse_index_init 2 482 NULL
32424 +cfs_trace_set_debug_mb_usrstr_486 cfs_trace_set_debug_mb_usrstr 2 486 NULL
32425 +nvme_trans_modesel_data_488 nvme_trans_modesel_data 4 488 NULL
32426 +iwl_dbgfs_protection_mode_write_502 iwl_dbgfs_protection_mode_write 3 502 NULL
32427 +rx_rx_defrag_end_read_505 rx_rx_defrag_end_read 3 505 NULL
32428 -+_snd_pcm_hw_param_first_516 _snd_pcm_hw_param_first 0 516 NULL
32429 +ocfs2_validate_meta_ecc_bhs_527 ocfs2_validate_meta_ecc_bhs 0 527 NULL
32430 +zlib_deflate_workspacesize_537 zlib_deflate_workspacesize 0-1-2 537 NULL
32431 +iwl_dbgfs_wowlan_sram_read_540 iwl_dbgfs_wowlan_sram_read 3 540 NULL
32432 +sco_sock_setsockopt_552 sco_sock_setsockopt 5 552 NULL
32433 +lpfc_nlp_state_name_556 lpfc_nlp_state_name 2 556 NULL
32434 +snd_aw2_saa7146_get_hw_ptr_playback_558 snd_aw2_saa7146_get_hw_ptr_playback 0 558 NULL
32435 -+dev_hard_header_565 dev_hard_header 0 565 NULL nohasharray
32436 -+start_isoc_chain_565 start_isoc_chain 2 565 &dev_hard_header_565
32437 ++start_isoc_chain_565 start_isoc_chain 2 565 NULL nohasharray
32438 ++dev_hard_header_565 dev_hard_header 0 565 &start_isoc_chain_565
32439 +ocfs2_refcounted_xattr_delete_need_584 ocfs2_refcounted_xattr_delete_need 0 584 NULL
32440 +smk_write_load_self2_591 smk_write_load_self2 3 591 NULL
32441 -+cl_page_own0_599 cl_page_own0 0 599 NULL
32442 +btrfs_stack_file_extent_offset_607 btrfs_stack_file_extent_offset 0 607 NULL
32443 +ni_gpct_device_construct_610 ni_gpct_device_construct 5 610 NULL
32444 +fuse_request_alloc_nofs_617 fuse_request_alloc_nofs 1 617 NULL
32445 +ptlrpc_lprocfs_nrs_seq_write_621 ptlrpc_lprocfs_nrs_seq_write 3 621 NULL
32446 +viafb_dfpl_proc_write_627 viafb_dfpl_proc_write 3 627 NULL
32447 -+ocfs2_num_free_extents_632 ocfs2_num_free_extents 0 632 NULL
32448 +clone_split_bio_633 clone_split_bio 6 633 NULL
32449 +ceph_osdc_new_request_635 ceph_osdc_new_request 6 635 NULL
32450 -+remap_to_cache_640 remap_to_cache 3 640 NULL
32451 -+cfs_hash_bkt_size_643 cfs_hash_bkt_size 0 643 NULL nohasharray
32452 -+drbd_bm_find_next_643 drbd_bm_find_next 2 643 &cfs_hash_bkt_size_643
32453 ++cfs_hash_bkt_size_643 cfs_hash_bkt_size 0 643 NULL
32454 +unlink_queued_645 unlink_queued 4 645 NULL
32455 +dtim_interval_read_654 dtim_interval_read 3 654 NULL
32456 -+div_u64_rem_672 div_u64_rem 0 672 NULL
32457 +mem_rx_free_mem_blks_read_675 mem_rx_free_mem_blks_read 3 675 NULL
32458 +persistent_ram_vmap_709 persistent_ram_vmap 1-2 709 NULL
32459 -+ipath_resize_cq_712 ipath_resize_cq 2 712 NULL
32460 -+disk_max_parts_719 disk_max_parts 0 719 NULL
32461 +sctp_setsockopt_peer_addr_params_734 sctp_setsockopt_peer_addr_params 3 734 NULL
32462 +dvb_video_write_754 dvb_video_write 3 754 NULL
32463 +cfs_trace_allocate_string_buffer_781 cfs_trace_allocate_string_buffer 2 781 NULL
32464 -+jbd2_journal_dirty_metadata_784 jbd2_journal_dirty_metadata 0 784 NULL
32465 +ath6kl_disconnect_timeout_write_794 ath6kl_disconnect_timeout_write 3 794 NULL
32466 -+__vmalloc_node_range_811 __vmalloc_node_range 7 811 NULL nohasharray
32467 -+snd_pcm_drain_811 snd_pcm_drain 0 811 &__vmalloc_node_range_811
32468 +if_writecmd_815 if_writecmd 2 815 NULL
32469 +aac_change_queue_depth_825 aac_change_queue_depth 2 825 NULL
32470 -+SyS_write_846 SyS_write 3 846 NULL
32471 -+um_idi_read_850 um_idi_read 3 850 NULL
32472 +error_state_read_859 error_state_read 6 859 NULL
32473 +o2net_send_message_vec_879 o2net_send_message_vec 4 879 NULL nohasharray
32474 +iwl_dbgfs_fh_reg_read_879 iwl_dbgfs_fh_reg_read 3 879 &o2net_send_message_vec_879
32475 -+intel_alloc_iova_883 intel_alloc_iova 3 883 NULL
32476 +snd_pcm_action_single_905 snd_pcm_action_single 0 905 NULL
32477 -+readw_931 readw 0 931 NULL
32478 +carl9170_cmd_buf_950 carl9170_cmd_buf 3 950 NULL
32479 +__nodes_weight_956 __nodes_weight 2-0 956 NULL
32480 +bnx2x_fill_fw_str_968 bnx2x_fill_fw_str 3 968 NULL
32481 +memcmp_990 memcmp 0 990 NULL
32482 -+pte_prefetch_gfn_to_pfn_997 pte_prefetch_gfn_to_pfn 2 997 NULL
32483 -+free_ind_block_999 free_ind_block 0 999 NULL
32484 -+dm_cache_set_dirty_1016 dm_cache_set_dirty 2 1016 NULL
32485 +readreg_1017 readreg 0-1 1017 NULL
32486 -+_do_truncate_1019 _do_truncate 2 1019 NULL
32487 +smk_write_cipso2_1021 smk_write_cipso2 3 1021 NULL
32488 +gigaset_initdriver_1060 gigaset_initdriver 2 1060 NULL
32489 +mce_request_packet_1073 mce_request_packet 3 1073 NULL
32490 +agp_create_memory_1075 agp_create_memory 1 1075 NULL
32491 -+ext4_orphan_add_1080 ext4_orphan_add 0 1080 NULL
32492 +_scsih_adjust_queue_depth_1083 _scsih_adjust_queue_depth 2 1083 NULL
32493 +llcp_sock_sendmsg_1092 llcp_sock_sendmsg 4 1092 NULL
32494 -+inode_ref_info_1094 inode_ref_info 0 1094 NULL nohasharray
32495 -+llc_mac_hdr_init_1094 llc_mac_hdr_init 0 1094 &inode_ref_info_1094
32496 ++llc_mac_hdr_init_1094 llc_mac_hdr_init 0 1094 NULL
32497 +nfs4_init_nonuniform_client_string_1097 nfs4_init_nonuniform_client_string 3 1097 NULL
32498 +utf8s_to_utf16s_1115 utf8s_to_utf16s 0 1115 NULL
32499 -+__btrfs_cow_block_1125 __btrfs_cow_block 7-0 1125 NULL nohasharray
32500 -+__ext4_journal_stop_1125 __ext4_journal_stop 0 1125 &__btrfs_cow_block_1125
32501 +cfg80211_report_obss_beacon_1133 cfg80211_report_obss_beacon 3 1133 NULL
32502 -+vmalloc_32_1135 vmalloc_32 1 1135 NULL
32503 +i2400m_rx_ctl_1157 i2400m_rx_ctl 4 1157 NULL
32504 -+find_free_extent_1173 find_free_extent 4-0 1173 NULL
32505 +ipc_alloc_1192 ipc_alloc 1 1192 NULL
32506 +ib_create_send_mad_1196 ib_create_send_mad 5 1196 NULL
32507 +pstore_ftrace_knob_write_1198 pstore_ftrace_knob_write 3 1198 NULL
32508 @@ -104271,72 +106743,51 @@ index 0000000..3d6cc0f
32509 +dgrp_dpa_read_1204 dgrp_dpa_read 3 1204 NULL
32510 +i2cdev_read_1206 i2cdev_read 3 1206 NULL
32511 +lov_ost_pool_init_1215 lov_ost_pool_init 2 1215 NULL
32512 -+acpi_battery_write_alarm_1240 acpi_battery_write_alarm 3 1240 NULL
32513 -+nested_get_page_1252 nested_get_page 2 1252 NULL
32514 +ocfs2_extend_file_1266 ocfs2_extend_file 3 1266 NULL
32515 +qla4xxx_change_queue_depth_1268 qla4xxx_change_queue_depth 2 1268 NULL
32516 +ioctl_private_iw_point_1273 ioctl_private_iw_point 7 1273 NULL
32517 -+batadv_tt_prepare_packet_buff_1280 batadv_tt_prepare_packet_buff 4 1280 NULL
32518 +SyS_flistxattr_1287 SyS_flistxattr 3 1287 NULL
32519 +tx_frag_in_process_called_read_1290 tx_frag_in_process_called_read 3 1290 NULL
32520 -+ocfs2_append_rec_to_path_1321 ocfs2_append_rec_to_path 0 1321 NULL
32521 +ffs_1322 ffs 0 1322 NULL
32522 -+qlcnic_pci_sriov_configure_1327 qlcnic_pci_sriov_configure 2 1327 NULL nohasharray
32523 -+push_node_left_1327 push_node_left 0 1327 &qlcnic_pci_sriov_configure_1327
32524 ++qlcnic_pci_sriov_configure_1327 qlcnic_pci_sriov_configure 2 1327 NULL
32525 +btrfs_submit_compressed_write_1347 btrfs_submit_compressed_write 5 1347 NULL
32526 -+gen_pool_best_fit_1348 gen_pool_best_fit 2-3-4 1348 NULL
32527 -+btrfs_alloc_logged_file_extent_1354 btrfs_alloc_logged_file_extent 0 1354 NULL
32528 +snd_pcm_lib_write1_1358 snd_pcm_lib_write1 0-3 1358 NULL
32529 +ipx_sendmsg_1362 ipx_sendmsg 4 1362 NULL
32530 -+iov_num_pages_1364 iov_num_pages 0 1364 NULL
32531 +fw_stats_raw_read_1369 fw_stats_raw_read 3 1369 NULL
32532 +ocfs2_prepare_inode_for_write_1372 ocfs2_prepare_inode_for_write 3 1372 NULL
32533 +sctp_setsockopt_initmsg_1383 sctp_setsockopt_initmsg 3 1383 NULL
32534 +do_msgsnd_1387 do_msgsnd 4 1387 NULL
32535 +SYSC_io_getevents_1392 SYSC_io_getevents 3 1392 NULL
32536 -+zone_page_state_1393 zone_page_state 0 1393 NULL
32537 -+file_read_actor_1401 file_read_actor 4 1401 NULL
32538 -+vb2_vmalloc_alloc_1402 vb2_vmalloc_alloc 2 1402 NULL
32539 ++file_read_actor_1401 file_read_actor 4-0 1401 NULL
32540 +cfs_trace_copyout_string_1416 cfs_trace_copyout_string 2 1416 NULL
32541 -+pq_init_1423 pq_init 1 1423 NULL
32542 +init_rs_internal_1436 init_rs_internal 1 1436 NULL
32543 -+vb2_dc_get_user_pages_1442 vb2_dc_get_user_pages 1-3 1442 NULL
32544 +stack_max_size_read_1445 stack_max_size_read 3 1445 NULL
32545 +tx_queue_len_read_1463 tx_queue_len_read 3 1463 NULL
32546 +xprt_alloc_1475 xprt_alloc 2 1475 NULL
32547 +SYSC_syslog_1477 SYSC_syslog 3 1477 NULL
32548 +sta_num_ps_buf_frames_read_1488 sta_num_ps_buf_frames_read 3 1488 NULL
32549 -+posix_acl_permission_1495 posix_acl_permission 0 1495 NULL
32550 +fpregs_set_1497 fpregs_set 4 1497 NULL
32551 -+ocfs2_alloc_dinode_update_counts_1507 ocfs2_alloc_dinode_update_counts 0 1507 NULL
32552 +tomoyo_round2_1518 tomoyo_round2 0 1518 NULL
32553 +alloc_perm_bits_1532 alloc_perm_bits 2 1532 NULL
32554 +ath6kl_init_get_fwcaps_1557 ath6kl_init_get_fwcaps 3 1557 NULL
32555 -+extent_from_logical_1585 extent_from_logical 0 1585 NULL
32556 +ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_1589 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime 3 1589 NULL
32557 +ipath_ht_handle_hwerrors_1592 ipath_ht_handle_hwerrors 3 1592 NULL
32558 +packet_buffer_init_1607 packet_buffer_init 2 1607 NULL
32559 +btmrvl_hscmd_read_1614 btmrvl_hscmd_read 3 1614 NULL
32560 +v9fs_fid_xattr_get_1618 v9fs_fid_xattr_get 0 1618 NULL
32561 -+run_delayed_extent_op_1637 run_delayed_extent_op 0 1637 NULL
32562 +ikconfig_read_current_1658 ikconfig_read_current 3 1658 NULL
32563 -+qgroup_rescan_init_1664 qgroup_rescan_init 0 1664 NULL
32564 +mei_cl_recv_1665 mei_cl_recv 3 1665 NULL
32565 +rmap_add_1677 rmap_add 3 1677 NULL
32566 +configfs_read_file_1683 configfs_read_file 3 1683 NULL
32567 +pdu_write_u_1710 pdu_write_u 3 1710 NULL
32568 -+coda_psdev_write_1711 coda_psdev_write 3 1711 NULL nohasharray
32569 -+gfn_to_hva_prot_1711 gfn_to_hva_prot 2 1711 &coda_psdev_write_1711
32570 -+btrfs_dir_data_len_1714 btrfs_dir_data_len 0 1714 NULL
32571 -+dma_memcpy_pg_to_iovec_1725 dma_memcpy_pg_to_iovec 6 1725 NULL
32572 ++coda_psdev_write_1711 coda_psdev_write 3 1711 NULL
32573 +internal_create_group_1733 internal_create_group 0 1733 NULL
32574 +dev_irnet_read_1741 dev_irnet_read 3 1741 NULL
32575 +tx_frag_called_read_1748 tx_frag_called_read 3 1748 NULL
32576 -+ebt_size_mwt_1768 ebt_size_mwt 0 1768 NULL
32577 +cosa_write_1774 cosa_write 3 1774 NULL
32578 +fcoe_ctlr_device_add_1793 fcoe_ctlr_device_add 3 1793 NULL
32579 -+__nodelist_scnprintf_1815 __nodelist_scnprintf 4-2-0 1815 NULL
32580 -+sb_issue_zeroout_1884 sb_issue_zeroout 3-0 1884 NULL
32581 ++__nodelist_scnprintf_1815 __nodelist_scnprintf 2-0 1815 NULL
32582 ++sb_issue_zeroout_1884 sb_issue_zeroout 3 1884 NULL
32583 +rx_defrag_called_read_1897 rx_defrag_called_read 3 1897 NULL
32584 +nfs_parse_server_name_1899 nfs_parse_server_name 2 1899 NULL
32585 +SyS_add_key_1900 SyS_add_key 4 1900 NULL
32586 @@ -104346,46 +106797,33 @@ index 0000000..3d6cc0f
32587 +ext3_fiemap_1936 ext3_fiemap 4 1936 NULL
32588 +cyttsp_probe_1940 cyttsp_probe 4 1940 NULL
32589 +ieee80211_if_fmt_dot11MeshConfirmTimeout_1945 ieee80211_if_fmt_dot11MeshConfirmTimeout 3 1945 NULL
32590 -+read_swap_header_1957 read_swap_header 0 1957 NULL
32591 +ivtv_v4l2_read_1964 ivtv_v4l2_read 3 1964 NULL
32592 +sel_read_avc_hash_stats_1984 sel_read_avc_hash_stats 3 1984 NULL
32593 +gpio_power_write_1991 gpio_power_write 3 1991 NULL
32594 +__alloc_bootmem_node_1992 __alloc_bootmem_node 2 1992 NULL
32595 -+atomic_read_unchecked_1995 atomic_read_unchecked 0 1995 NULL
32596 -+sb_min_blocksize_2004 sb_min_blocksize 0-2 2004 NULL
32597 -+batadv_tt_commit_changes_2008 batadv_tt_commit_changes 4 2008 NULL
32598 -+sep_prepare_input_dma_table_2009 sep_prepare_input_dma_table 2-3 2009 NULL
32599 +rx_rx_defrag_read_2010 rx_rx_defrag_read 3 2010 NULL
32600 -+ksm_madvise_2012 ksm_madvise 0 2012 NULL
32601 +ocfs2_global_qinit_alloc_2018 ocfs2_global_qinit_alloc 0 2018 NULL
32602 +write_flush_pipefs_2021 write_flush_pipefs 3 2021 NULL
32603 -+BcmCopySection_2035 BcmCopySection 5-0 2035 NULL
32604 ++BcmCopySection_2035 BcmCopySection 5 2035 NULL
32605 +ath6kl_fwlog_mask_read_2050 ath6kl_fwlog_mask_read 3 2050 NULL
32606 +ocfs2_expand_inline_dir_2063 ocfs2_expand_inline_dir 3 2063 NULL
32607 +__generic_copy_from_user_intel_2073 __generic_copy_from_user_intel 0-3 2073 NULL
32608 -+diva_set_driver_dbg_mask_2077 diva_set_driver_dbg_mask 0 2077 NULL nohasharray
32609 -+alloc_retstack_tasklist_2077 alloc_retstack_tasklist 0 2077 &diva_set_driver_dbg_mask_2077
32610 ++diva_set_driver_dbg_mask_2077 diva_set_driver_dbg_mask 0 2077 NULL
32611 +iwl_dbgfs_current_sleep_command_read_2081 iwl_dbgfs_current_sleep_command_read 3 2081 NULL
32612 -+get_unaligned_le32_2092 get_unaligned_le32 0 2092 NULL
32613 +idetape_chrdev_read_2097 idetape_chrdev_read 3 2097 NULL
32614 +audit_expand_2098 audit_expand 0 2098 NULL
32615 -+num_pages_spanned_2105 num_pages_spanned 0 2105 NULL
32616 -+shrd128_2106 shrd128 0-1-3-2 2106 NULL
32617 +iwl_dbgfs_log_event_read_2107 iwl_dbgfs_log_event_read 3 2107 NULL
32618 +ecryptfs_encrypt_and_encode_filename_2109 ecryptfs_encrypt_and_encode_filename 6 2109 NULL
32619 +enable_read_2117 enable_read 3 2117 NULL
32620 +pcf50633_write_block_2124 pcf50633_write_block 2-3 2124 NULL
32621 -+snd_interval_refine_last_2127 snd_interval_refine_last 0 2127 NULL
32622 +check_load_and_stores_2143 check_load_and_stores 2 2143 NULL
32623 -+lp_gpio_irq_map_2149 lp_gpio_irq_map 2 2149 NULL
32624 +iov_iter_count_2152 iov_iter_count 0 2152 NULL
32625 +__copy_to_user_ll_2157 __copy_to_user_ll 0-3 2157 NULL
32626 -+ocfs2_et_sanity_check_2164 ocfs2_et_sanity_check 0 2164 NULL
32627 -+_ore_get_io_state_2166 _ore_get_io_state 5-3-4 2166 NULL
32628 ++_ore_get_io_state_2166 _ore_get_io_state 3-4-5 2166 NULL
32629 +bio_integrity_alloc_2194 bio_integrity_alloc 3 2194 NULL
32630 +picolcd_debug_reset_write_2195 picolcd_debug_reset_write 3 2195 NULL
32631 -+mei_dbgfs_read_meclients_2219 mei_dbgfs_read_meclients 3 2219 NULL nohasharray
32632 -+u32_array_read_2219 u32_array_read 3 2219 &mei_dbgfs_read_meclients_2219
32633 ++u32_array_read_2219 u32_array_read 3 2219 NULL nohasharray
32634 ++mei_dbgfs_read_meclients_2219 mei_dbgfs_read_meclients 3 2219 &u32_array_read_2219
32635 +vhci_write_2224 vhci_write 3 2224 NULL
32636 +__ocfs2_journal_access_2241 __ocfs2_journal_access 0 2241 NULL
32637 +ieee80211_if_read_dot11MeshHWMPRannInterval_2249 ieee80211_if_read_dot11MeshHWMPRannInterval 3 2249 NULL
32638 @@ -104394,74 +106832,54 @@ index 0000000..3d6cc0f
32639 +do_update_counters_2259 do_update_counters 4 2259 NULL
32640 +ath6kl_wmi_bssinfo_event_rx_2275 ath6kl_wmi_bssinfo_event_rx 3 2275 NULL
32641 +debug_debug5_read_2291 debug_debug5_read 3 2291 NULL
32642 -+ocfs2_shift_tree_depth_2292 ocfs2_shift_tree_depth 0 2292 NULL
32643 -+kvm_clear_guest_page_2308 kvm_clear_guest_page 2-4 2308 NULL
32644 ++kvm_clear_guest_page_2308 kvm_clear_guest_page 4 2308 NULL
32645 +intel_sdvo_set_value_2311 intel_sdvo_set_value 4 2311 NULL
32646 -+picolcd_fb_write_2318 picolcd_fb_write 3 2318 NULL nohasharray
32647 -+hfsplus_find_init_2318 hfsplus_find_init 0 2318 &picolcd_fb_write_2318
32648 -+gart_map_page_2325 gart_map_page 4-3 2325 NULL
32649 ++hfsplus_find_init_2318 hfsplus_find_init 0 2318 NULL nohasharray
32650 ++picolcd_fb_write_2318 picolcd_fb_write 3 2318 &hfsplus_find_init_2318
32651 ++dice_hwdep_read_2326 dice_hwdep_read 3 2326 NULL
32652 +__erst_read_to_erange_2341 __erst_read_to_erange 0 2341 NULL
32653 +zr364xx_read_2354 zr364xx_read 3 2354 NULL
32654 ++sysfs_add_file_mode_ns_2362 sysfs_add_file_mode_ns 0 2362 NULL
32655 +viafb_iga2_odev_proc_write_2363 viafb_iga2_odev_proc_write 3 2363 NULL
32656 -+SyS_mremap_2367 SyS_mremap 2-3-1-5 2367 NULL
32657 +xfs_buf_map_from_irec_2368 xfs_buf_map_from_irec 5 2368 NULL nohasharray
32658 +rose_recvmsg_2368 rose_recvmsg 4 2368 &xfs_buf_map_from_irec_2368
32659 +il_dbgfs_sensitivity_read_2370 il_dbgfs_sensitivity_read 3 2370 NULL
32660 +rxpipe_rx_prep_beacon_drop_read_2403 rxpipe_rx_prep_beacon_drop_read 3 2403 NULL
32661 -+SYSC_mlock_2415 SYSC_mlock 1-2 2415 NULL
32662 +isdn_v110_open_2418 isdn_v110_open 3 2418 NULL
32663 +raid1_size_2419 raid1_size 0-2 2419 NULL
32664 -+timespec_to_jiffies_timeout_2428 timespec_to_jiffies_timeout 0 2428 NULL
32665 -+tty_buffer_find_2443 tty_buffer_find 2 2443 NULL
32666 +b43legacy_debugfs_read_2473 b43legacy_debugfs_read 3 2473 NULL
32667 +wiphy_new_2482 wiphy_new 2 2482 NULL
32668 +bio_alloc_bioset_2484 bio_alloc_bioset 2 2484 NULL
32669 +hfsplus_user_setxattr_2485 hfsplus_user_setxattr 4 2485 NULL
32670 -+lookup_cache_entry_2494 lookup_cache_entry 2 2494 NULL
32671 +squashfs_read_fragment_index_table_2506 squashfs_read_fragment_index_table 4 2506 NULL
32672 +v9fs_cached_file_read_2514 v9fs_cached_file_read 3 2514 NULL
32673 +ext4_get_inode_loc_2516 ext4_get_inode_loc 0 2516 NULL
32674 ++batadv_tvlv_container_list_size_2524 batadv_tvlv_container_list_size 0 2524 NULL
32675 +gspca_dev_probe_2570 gspca_dev_probe 4 2570 NULL
32676 +pcm_sanity_check_2574 pcm_sanity_check 0 2574 NULL
32677 +mdc_max_rpcs_in_flight_seq_write_2594 mdc_max_rpcs_in_flight_seq_write 3 2594 NULL
32678 +slot_bytes_2609 slot_bytes 0 2609 NULL
32679 +smk_write_logging_2618 smk_write_logging 3 2618 NULL
32680 +switch_status_2629 switch_status 5 2629 NULL
32681 -+tlv_put_string_2631 tlv_put_string 0 2631 NULL
32682 -+kvm_gfn_to_hva_cache_init_2636 kvm_gfn_to_hva_cache_init 3 2636 NULL
32683 +tcp_xmit_size_goal_2661 tcp_xmit_size_goal 2 2661 NULL
32684 +osc_build_ppga_2670 osc_build_ppga 2 2670 NULL
32685 +ffs_ep0_read_2672 ffs_ep0_read 3 2672 NULL
32686 -+ocfs2_rotate_subtree_right_2674 ocfs2_rotate_subtree_right 0 2674 NULL
32687 +oti6858_write_2692 oti6858_write 4 2692 NULL
32688 +nfc_llcp_send_ui_frame_2702 nfc_llcp_send_ui_frame 5 2702 NULL
32689 -+memcpy_fromiovecend_2707 memcpy_fromiovecend 4-3 2707 NULL
32690 -+SyS_pwrite64_2708 SyS_pwrite64 3 2708 NULL nohasharray
32691 -+lprocfs_stats_counter_size_2708 lprocfs_stats_counter_size 0 2708 &SyS_pwrite64_2708
32692 -+__xip_file_write_2733 __xip_file_write 3-4 2733 NULL
32693 -+can_nocow_extent_2744 can_nocow_extent 3 2744 NULL
32694 ++memcpy_fromiovecend_2707 memcpy_fromiovecend 3-4 2707 NULL
32695 ++lprocfs_stats_counter_size_2708 lprocfs_stats_counter_size 0 2708 NULL
32696 +xfs_readdir_2767 xfs_readdir 3 2767 NULL
32697 -+mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL nohasharray
32698 -+bictcp_update_2771 bictcp_update 2 2771 &mon_bin_ioctl_2771
32699 -+__next_cpu_2782 __next_cpu 1-0 2782 NULL
32700 -+set_msr_hyperv_pw_2785 set_msr_hyperv_pw 3 2785 NULL
32701 ++mon_bin_ioctl_2771 mon_bin_ioctl 3 2771 NULL
32702 +device_add_attrs_2789 device_add_attrs 0 2789 NULL
32703 +iwl_dbgfs_clear_ucode_statistics_write_2804 iwl_dbgfs_clear_ucode_statistics_write 3 2804 NULL
32704 -+vmemmap_pte_populate_2822 vmemmap_pte_populate 3 2822 NULL
32705 +sel_read_enforce_2828 sel_read_enforce 3 2828 NULL
32706 -+vb2_dc_get_userptr_2829 vb2_dc_get_userptr 2-3 2829 NULL nohasharray
32707 -+snd_pcm_reset_2829 snd_pcm_reset 0 2829 &vb2_dc_get_userptr_2829
32708 -+sock_create_2838 sock_create 0 2838 NULL
32709 ++vb2_dc_get_userptr_2829 vb2_dc_get_userptr 2-3 2829 NULL
32710 +wait_for_avail_2847 wait_for_avail 0 2847 NULL
32711 -+ufs_free_fragments_2857 ufs_free_fragments 2 2857 NULL
32712 +sfq_alloc_2861 sfq_alloc 1 2861 NULL
32713 +irnet_ctrl_read_2863 irnet_ctrl_read 4 2863 NULL
32714 +move_addr_to_user_2868 move_addr_to_user 2 2868 NULL
32715 -+mq_map_2871 mq_map 2 2871 NULL
32716 -+__swab64p_2875 __swab64p 0 2875 NULL
32717 +nla_padlen_2883 nla_padlen 1 2883 NULL
32718 +cmm_write_2896 cmm_write 3 2896 NULL
32719 -+alloc_page_cgroup_2919 alloc_page_cgroup 1-2 2919 NULL
32720 +osc_import_seq_write_2923 osc_import_seq_write 3 2923 NULL
32721 +xfs_trans_get_buf_map_2927 xfs_trans_get_buf_map 4 2927 NULL
32722 +nes_read_indexed_2946 nes_read_indexed 0 2946 NULL
32723 @@ -104470,10 +106888,8 @@ index 0000000..3d6cc0f
32724 +set_fast_connectable_2952 set_fast_connectable 4 2952 NULL
32725 +free_area_init_core_2962 free_area_init_core 2-3 2962 NULL
32726 +do_strnlen_user_2976 do_strnlen_user 0-2 2976 NULL
32727 -+ocfs2_find_branch_target_2989 ocfs2_find_branch_target 0 2989 NULL
32728 +p9_nr_pages_2992 p9_nr_pages 0-2 2992 NULL
32729 +lov_stripetype_seq_write_3013 lov_stripetype_seq_write 3 3013 NULL
32730 -+btrfs_add_block_group_cache_3016 btrfs_add_block_group_cache 0 3016 NULL
32731 +do_dmabuf_dirty_sou_3017 do_dmabuf_dirty_sou 7 3017 NULL
32732 +depth_write_3021 depth_write 3 3021 NULL
32733 +snd_azf3328_codec_inl_3022 snd_azf3328_codec_inl 0 3022 NULL
32734 @@ -104484,43 +106900,36 @@ index 0000000..3d6cc0f
32735 +nr_free_buffer_pages_3044 nr_free_buffer_pages 0 3044 NULL
32736 +il3945_ucode_rx_stats_read_3048 il3945_ucode_rx_stats_read 3 3048 NULL
32737 +qp_alloc_ppn_set_3068 qp_alloc_ppn_set 2-4 3068 NULL
32738 -+__blk_end_bidi_request_3070 __blk_end_bidi_request 4-3 3070 NULL
32739 ++__blk_end_bidi_request_3070 __blk_end_bidi_request 3-4 3070 NULL
32740 +dac960_user_command_proc_write_3071 dac960_user_command_proc_write 3 3071 NULL
32741 +read_file_antenna_diversity_3077 read_file_antenna_diversity 3 3077 NULL
32742 -+free_coherent_3082 free_coherent 4-2 3082 NULL
32743 -+ocfs2_get_right_path_3097 ocfs2_get_right_path 0 3097 NULL
32744 +clone_bio_3100 clone_bio 6 3100 NULL nohasharray
32745 +ttusb2_msg_3100 ttusb2_msg 4 3100 &clone_bio_3100
32746 -+rb_alloc_3102 rb_alloc 1-3 3102 NULL
32747 -+simple_write_to_buffer_3122 simple_write_to_buffer 2-5 3122 NULL
32748 ++rb_alloc_3102 rb_alloc 1 3102 NULL
32749 ++simple_write_to_buffer_3122 simple_write_to_buffer 5-2 3122 NULL
32750 +print_time_3132 print_time 0 3132 NULL
32751 +fill_write_buffer_3142 fill_write_buffer 3 3142 NULL
32752 -+find_free_extent_3153 find_free_extent 5 3153 NULL
32753 +CIFSSMBSetPosixACL_3154 CIFSSMBSetPosixACL 5 3154 NULL
32754 +compat_sys_migrate_pages_3157 compat_sys_migrate_pages 2 3157 NULL
32755 -+i915_gem_obj_ggtt_offset_3162 i915_gem_obj_ggtt_offset 0 3162 NULL
32756 +uv_num_possible_blades_3177 uv_num_possible_blades 0 3177 NULL
32757 +uvc_video_stats_dump_3181 uvc_video_stats_dump 3 3181 NULL
32758 +compat_do_ip6t_set_ctl_3184 compat_do_ip6t_set_ctl 4 3184 NULL
32759 -+wait_table_bits_3187 wait_table_bits 1 3187 NULL
32760 -+mempool_create_node_3191 mempool_create_node 1-6 3191 NULL
32761 ++mempool_create_node_3191 mempool_create_node 1 3191 NULL
32762 +alloc_context_3194 alloc_context 1 3194 NULL
32763 +shmem_pread_slow_3198 shmem_pread_slow 3-2 3198 NULL
32764 +codec_reg_write_file_3204 codec_reg_write_file 3 3204 NULL
32765 +SyS_sendto_3219 SyS_sendto 6 3219 NULL
32766 +btrfs_prealloc_file_range_3227 btrfs_prealloc_file_range 3 3227 NULL
32767 -+btrfs_next_leaf_3232 btrfs_next_leaf 0 3232 NULL
32768 +kimage_crash_alloc_3233 kimage_crash_alloc 3 3233 NULL
32769 +write_adapter_mem_3234 write_adapter_mem 3 3234 NULL
32770 +do_read_log_to_user_3236 do_read_log_to_user 4 3236 NULL
32771 +ext3_xattr_find_entry_3237 ext3_xattr_find_entry 0 3237 NULL
32772 +key_key_read_3241 key_key_read 3 3241 NULL
32773 -+mmap_piobufs_3244 mmap_piobufs 4 3244 NULL
32774 -+did_overwrite_first_ref_3259 did_overwrite_first_ref 0 3259 NULL
32775 +__ilog2_u64_3284 __ilog2_u64 0 3284 NULL
32776 +__iovec_copy_from_user_inatomic_3314 __iovec_copy_from_user_inatomic 0-4-3 3314 NULL
32777 +dbDiscardAG_3322 dbDiscardAG 3 3322 NULL
32778 +compat_sys_setsockopt_3326 compat_sys_setsockopt 5 3326 NULL
32779 ++ocfs2_extend_xattr_bucket_3328 ocfs2_extend_xattr_bucket 4 3328 NULL
32780 +read_from_oldmem_3337 read_from_oldmem 2 3337 NULL
32781 +sysfs_create_group_3339 sysfs_create_group 0 3339 NULL
32782 +tty_port_register_device_attr_3341 tty_port_register_device_attr 3 3341 NULL
32783 @@ -104529,33 +106938,24 @@ index 0000000..3d6cc0f
32784 +scnprintf_3360 scnprintf 0-2 3360 NULL
32785 +ReadByteAmd7930_3365 ReadByteAmd7930 0 3365 NULL
32786 +sr_read_3366 sr_read 3 3366 NULL
32787 -+count_inode_refs_3375 count_inode_refs 0 3375 NULL
32788 -+x86_emulate_instruction_3389 x86_emulate_instruction 2 3389 NULL
32789 +mtdchar_writeoob_3393 mtdchar_writeoob 4 3393 NULL
32790 +send_stream_3397 send_stream 4 3397 NULL
32791 +isdn_readbchan_3401 isdn_readbchan 0-5 3401 NULL
32792 +mei_io_cb_alloc_resp_buf_3414 mei_io_cb_alloc_resp_buf 2 3414 NULL
32793 -+zone_to_nid_3415 zone_to_nid 0 3415 NULL
32794 +pci_add_cap_save_buffer_3426 pci_add_cap_save_buffer 3 3426 NULL
32795 +crystalhd_create_dio_pool_3427 crystalhd_create_dio_pool 2 3427 NULL
32796 +SyS_msgsnd_3436 SyS_msgsnd 3 3436 NULL
32797 -+send_unlink_3438 send_unlink 0 3438 NULL
32798 +pipe_iov_copy_to_user_3447 pipe_iov_copy_to_user 3 3447 NULL
32799 -+map_single_3449 map_single 0 3449 NULL
32800 ++s3fb_ddc_read_3451 s3fb_ddc_read 0 3451 NULL
32801 +softsynth_write_3455 softsynth_write 3 3455 NULL
32802 -+jffs2_acl_setxattr_3464 jffs2_acl_setxattr 4 3464 NULL nohasharray
32803 -+snd_pcm_lib_readv_transfer_3464 snd_pcm_lib_readv_transfer 5-4-2 3464 &jffs2_acl_setxattr_3464
32804 ++snd_pcm_lib_readv_transfer_3464 snd_pcm_lib_readv_transfer 5-4-2 3464 NULL nohasharray
32805 ++jffs2_acl_setxattr_3464 jffs2_acl_setxattr 4 3464 &snd_pcm_lib_readv_transfer_3464
32806 +security_context_to_sid_default_3492 security_context_to_sid_default 2 3492 NULL
32807 +xfrm_migrate_msgsize_3496 xfrm_migrate_msgsize 1 3496 NULL
32808 -+run_one_delayed_ref_3503 run_one_delayed_ref 0 3503 NULL nohasharray
32809 -+kvm_handle_bad_page_3503 kvm_handle_bad_page 2 3503 &run_one_delayed_ref_3503
32810 +mem_tx_free_mem_blks_read_3521 mem_tx_free_mem_blks_read 3 3521 NULL
32811 +SyS_semtimedop_3532 SyS_semtimedop 3 3532 NULL
32812 +SyS_readv_3539 SyS_readv 3 3539 NULL
32813 +btrfs_dir_name_len_3549 btrfs_dir_name_len 0 3549 NULL
32814 -+iommu_map_3554 iommu_map 3-2 3554 NULL
32815 -+btrfs_delayed_update_inode_3557 btrfs_delayed_update_inode 0 3557 NULL
32816 -+i915_gem_execbuffer_reserve_3558 i915_gem_execbuffer_reserve 0 3558 NULL
32817 +alloc_smp_resp_3566 alloc_smp_resp 1 3566 NULL
32818 +evtchn_read_3569 evtchn_read 3 3569 NULL
32819 +ll_track_ppid_seq_write_3582 ll_track_ppid_seq_write 3 3582 NULL
32820 @@ -104565,25 +106965,15 @@ index 0000000..3d6cc0f
32821 +edac_mc_alloc_3611 edac_mc_alloc 4 3611 NULL
32822 +tx_tx_starts_read_3617 tx_tx_starts_read 3 3617 NULL
32823 +aligned_kmalloc_3628 aligned_kmalloc 1 3628 NULL
32824 -+x86_swiotlb_alloc_coherent_3649 x86_swiotlb_alloc_coherent 2 3649 NULL
32825 +ath6kl_disconnect_timeout_read_3650 ath6kl_disconnect_timeout_read 3 3650 NULL
32826 +i915_compat_ioctl_3656 i915_compat_ioctl 2 3656 NULL
32827 -+replace_pin_at_irq_node_3687 replace_pin_at_irq_node 2 3687 NULL
32828 -+ntfs_attr_make_non_resident_3694 ntfs_attr_make_non_resident 0-2 3694 NULL
32829 -+snd_m3_assp_read_3703 snd_m3_assp_read 0 3703 NULL nohasharray
32830 -+create_irq_3703 create_irq 0 3703 &snd_m3_assp_read_3703
32831 -+videobuf_pages_to_sg_3708 videobuf_pages_to_sg 2 3708 NULL
32832 ++snd_m3_assp_read_3703 snd_m3_assp_read 0 3703 NULL
32833 +ci_ll_write_3740 ci_ll_write 4 3740 NULL nohasharray
32834 +ath6kl_mgmt_tx_3740 ath6kl_mgmt_tx 7 3740 &ci_ll_write_3740
32835 -+uar_index2pfn_3741 uar_index2pfn 0-2 3741 NULL
32836 +sctp_setsockopt_auth_key_3793 sctp_setsockopt_auth_key 3 3793 NULL
32837 -+btrfs_alloc_chunk_3808 btrfs_alloc_chunk 0 3808 NULL
32838 +ncp_file_write_3813 ncp_file_write 3 3813 NULL
32839 +llc_ui_recvmsg_3826 llc_ui_recvmsg 4 3826 NULL
32840 -+btrfs_uuid_iter_rem_3831 btrfs_uuid_iter_rem 0 3831 NULL
32841 +hfsplus_direct_IO_3835 hfsplus_direct_IO 4 3835 NULL
32842 -+stringify_nodemap_3842 stringify_nodemap 2 3842 NULL
32843 -+ubi_eba_read_leb_3847 ubi_eba_read_leb 0 3847 NULL
32844 +create_one_cdev_3852 create_one_cdev 2 3852 NULL
32845 +smk_read_onlycap_3855 smk_read_onlycap 3 3855 NULL
32846 +get_fd_set_3866 get_fd_set 1 3866 NULL
32847 @@ -104597,24 +106987,20 @@ index 0000000..3d6cc0f
32848 +SyS_move_pages_3920 SyS_move_pages 2 3920 NULL
32849 +hdlc_irq_one_3944 hdlc_irq_one 2 3944 NULL
32850 +brcmf_debugfs_fws_stats_read_3947 brcmf_debugfs_fws_stats_read 3 3947 NULL
32851 ++ll_get_max_mdsize_3962 ll_get_max_mdsize 0 3962 NULL
32852 +mite_bytes_written_to_memory_lb_3987 mite_bytes_written_to_memory_lb 0 3987 NULL
32853 +do_add_counters_3992 do_add_counters 3 3992 NULL
32854 +obd_alloc_memmd_4002 obd_alloc_memmd 0 4002 NULL
32855 +userspace_status_4004 userspace_status 4 4004 NULL
32856 -+mei_write_4005 mei_write 3 4005 NULL nohasharray
32857 -+xfs_check_block_4005 xfs_check_block 4 4005 &mei_write_4005
32858 ++xfs_check_block_4005 xfs_check_block 4 4005 NULL nohasharray
32859 ++mei_write_4005 mei_write 3 4005 &xfs_check_block_4005
32860 +snd_hdsp_capture_copy_4011 snd_hdsp_capture_copy 5 4011 NULL
32861 -+mm_populate_4016 mm_populate 1-2 4016 NULL nohasharray
32862 -+i915_gem_object_unbind_4016 i915_gem_object_unbind 0 4016 &mm_populate_4016
32863 +blk_end_request_4024 blk_end_request 3 4024 NULL
32864 +ext4_xattr_find_entry_4025 ext4_xattr_find_entry 0 4025 NULL
32865 +mtip_hw_read_registers_4037 mtip_hw_read_registers 3 4037 NULL
32866 -+i915_gpu_idle_4062 i915_gpu_idle 0 4062 NULL
32867 -+vmemmap_pmd_populate_4071 vmemmap_pmd_populate 3 4071 NULL
32868 +read_file_queues_4078 read_file_queues 3 4078 NULL
32869 +fbcon_do_set_font_4079 fbcon_do_set_font 2-3 4079 NULL
32870 -+btrfs_inc_ref_4084 btrfs_inc_ref 0 4084 NULL
32871 -+da9052_free_irq_4090 da9052_free_irq 2 4090 NULL
32872 ++C_SYSC_rt_sigpending_4114 C_SYSC_rt_sigpending 2 4114 NULL
32873 +tm6000_read_4151 tm6000_read 3 4151 NULL
32874 +mpt_raid_phys_disk_get_num_paths_4155 mpt_raid_phys_disk_get_num_paths 0 4155 NULL
32875 +msg_bits_4158 msg_bits 0-3-4 4158 NULL
32876 @@ -104622,87 +107008,65 @@ index 0000000..3d6cc0f
32877 +blk_dropped_read_4168 blk_dropped_read 3 4168 NULL
32878 +read_file_bool_4180 read_file_bool 3 4180 NULL
32879 +ocfs2_find_cpos_for_right_leaf_4194 ocfs2_find_cpos_for_right_leaf 0 4194 NULL
32880 ++vring_new_virtqueue_4199 vring_new_virtqueue 2 4199 NULL
32881 +f1x_determine_channel_4202 f1x_determine_channel 2 4202 NULL
32882 +_osd_req_list_objects_4204 _osd_req_list_objects 6 4204 NULL
32883 +__snd_gf1_read_addr_4210 __snd_gf1_read_addr 0 4210 NULL
32884 +ath6kl_force_roam_write_4282 ath6kl_force_roam_write 3 4282 NULL
32885 +goldfish_audio_write_4284 goldfish_audio_write 3 4284 NULL
32886 -+msb_do_write_request_4286 msb_do_write_request 2 4286 NULL
32887 -+paging32_page_fault_4288 paging32_page_fault 2 4288 NULL
32888 -+xt_compat_add_offset_4289 xt_compat_add_offset 0 4289 NULL
32889 +__usbnet_read_cmd_4299 __usbnet_read_cmd 7 4299 NULL
32890 +dvb_ringbuffer_pkt_read_user_4303 dvb_ringbuffer_pkt_read_user 3-2-5 4303 NULL
32891 -+__pool_find_4308 __pool_find 3 4308 NULL
32892 +count_strings_4315 count_strings 0 4315 NULL
32893 ++__sysfs_add_one_4326 __sysfs_add_one 0 4326 NULL
32894 +nouveau_fifo_create__4327 nouveau_fifo_create_ 5-6 4327 NULL
32895 +snd_rawmidi_kernel_read_4328 snd_rawmidi_kernel_read 3 4328 NULL
32896 -+kvm_apic_get_reg_4354 kvm_apic_get_reg 0 4354 NULL
32897 +__copy_from_user_inatomic_4365 __copy_from_user_inatomic 0-3 4365 NULL nohasharray
32898 +lookup_string_4365 lookup_string 0 4365 &__copy_from_user_inatomic_4365
32899 -+btrfs_set_disk_extent_flags_4374 btrfs_set_disk_extent_flags 0 4374 NULL
32900 +irda_sendmsg_4388 irda_sendmsg 4 4388 NULL
32901 -+access_process_vm_4412 access_process_vm 0-4-2 4412 NULL nohasharray
32902 ++access_process_vm_4412 access_process_vm 0 4412 NULL nohasharray
32903 +cxacru_cm_get_array_4412 cxacru_cm_get_array 4 4412 &access_process_vm_4412
32904 +libfc_vport_create_4415 libfc_vport_create 2 4415 NULL
32905 +rtw_android_get_rssi_4421 rtw_android_get_rssi 0 4421 NULL
32906 +do_pages_stat_4437 do_pages_stat 2 4437 NULL
32907 -+memparse_4444 memparse 0 4444 NULL
32908 -+tcp_dma_try_early_copy_4457 tcp_dma_try_early_copy 3 4457 NULL
32909 +at76_set_card_command_4471 at76_set_card_command 4 4471 NULL
32910 +snd_seq_expand_var_event_4481 snd_seq_expand_var_event 5-0 4481 NULL
32911 -+ocfs2_grow_tree_4492 ocfs2_grow_tree 0 4492 NULL
32912 +vmbus_establish_gpadl_4495 vmbus_establish_gpadl 3 4495 NULL
32913 +set_link_security_4502 set_link_security 4 4502 NULL
32914 -+dm_cache_remove_mapping_4513 dm_cache_remove_mapping 2 4513 NULL
32915 -+__gfn_to_pfn_memslot_4530 __gfn_to_pfn_memslot 2-0 4530 NULL
32916 +ll_max_readahead_per_file_mb_seq_write_4531 ll_max_readahead_per_file_mb_seq_write 3 4531 NULL
32917 -+da9052_group_write_4534 da9052_group_write 2-3 4534 NULL
32918 +tty_register_device_4544 tty_register_device 2 4544 NULL
32919 -+videobuf_vmalloc_to_sg_4548 videobuf_vmalloc_to_sg 2 4548 NULL
32920 +btrfs_file_extent_inline_item_len_4575 btrfs_file_extent_inline_item_len 0 4575 NULL
32921 +xfs_buf_get_maps_4581 xfs_buf_get_maps 2 4581 NULL
32922 -+iommu_map_page_4588 iommu_map_page 5 4588 NULL
32923 +bch_alloc_4593 bch_alloc 1 4593 NULL
32924 +ocfs2_refcount_lock_4595 ocfs2_refcount_lock 0 4595 NULL
32925 -+__wb_force_remove_mapping_4622 __wb_force_remove_mapping 2 4622 NULL
32926 +ll_rw_extents_stats_seq_write_4633 ll_rw_extents_stats_seq_write 3 4633 NULL
32927 +iwl_dbgfs_tx_queue_read_4635 iwl_dbgfs_tx_queue_read 3 4635 NULL
32928 -+ext3_orphan_add_4665 ext3_orphan_add 0 4665 NULL
32929 +skb_add_data_nocache_4682 skb_add_data_nocache 4 4682 NULL
32930 +cx18_read_pos_4683 cx18_read_pos 3 4683 NULL
32931 +short_retry_limit_read_4687 short_retry_limit_read 3 4687 NULL
32932 +kone_receive_4690 kone_receive 4 4690 NULL
32933 -+link_to_fixup_dir_4699 link_to_fixup_dir 0 4699 NULL
32934 ++hash_netportnet6_expire_4702 hash_netportnet6_expire 4 4702 NULL
32935 +cxgbi_alloc_big_mem_4707 cxgbi_alloc_big_mem 1 4707 NULL
32936 -+konepure_sysfs_read_4709 konepure_sysfs_read 6 4709 NULL
32937 +ati_create_gatt_pages_4722 ati_create_gatt_pages 1 4722 NULL nohasharray
32938 +show_header_4722 show_header 3 4722 &ati_create_gatt_pages_4722
32939 -+gfs2_bit_search_4728 gfs2_bit_search 0-2 4728 NULL
32940 -+ll_rw_offset_stats_seq_write_4736 ll_rw_offset_stats_seq_write 3 4736 NULL nohasharray
32941 -+bitmap_startwrite_4736 bitmap_startwrite 2 4736 &ll_rw_offset_stats_seq_write_4736
32942 -+__find_free_cblock_4741 __find_free_cblock 2 4741 NULL
32943 ++bitmap_startwrite_4736 bitmap_startwrite 2 4736 NULL nohasharray
32944 ++ll_rw_offset_stats_seq_write_4736 ll_rw_offset_stats_seq_write 3 4736 &bitmap_startwrite_4736
32945 +lu_buf_alloc_4753 lu_buf_alloc 2 4753 NULL
32946 -+find_next_best_node_4774 find_next_best_node 1-0 4774 NULL nohasharray
32947 -+pwr_rcvd_bcns_cnt_read_4774 pwr_rcvd_bcns_cnt_read 3 4774 &find_next_best_node_4774
32948 -+btrfs_del_items_4791 btrfs_del_items 0 4791 NULL nohasharray
32949 -+create_subvol_4791 create_subvol 4 4791 &btrfs_del_items_4791
32950 ++pwr_rcvd_bcns_cnt_read_4774 pwr_rcvd_bcns_cnt_read 3 4774 NULL
32951 ++create_subvol_4791 create_subvol 4 4791 NULL
32952 +ncp__vol2io_4804 ncp__vol2io 5 4804 NULL
32953 +repair_io_failure_4815 repair_io_failure 4-3 4815 NULL
32954 +comedi_buf_write_free_4847 comedi_buf_write_free 2 4847 NULL
32955 +gigaset_if_receive_4861 gigaset_if_receive 3 4861 NULL
32956 +key_tx_spec_read_4862 key_tx_spec_read 3 4862 NULL
32957 -+get_new_location_4866 get_new_location 0 4866 NULL
32958 -+ocfs2_defrag_extent_4873 ocfs2_defrag_extent 3-2 4873 NULL
32959 ++ocfs2_defrag_extent_4873 ocfs2_defrag_extent 2 4873 NULL
32960 +hid_register_field_4874 hid_register_field 2-3 4874 NULL
32961 +vga_arb_read_4886 vga_arb_read 3 4886 NULL
32962 -+ntfs_rl_insert_4931 ntfs_rl_insert 4-2 4931 NULL
32963 +ieee80211_if_fmt_ave_beacon_4941 ieee80211_if_fmt_ave_beacon 3 4941 NULL
32964 +ocfs2_should_refresh_lock_res_4958 ocfs2_should_refresh_lock_res 0 4958 NULL
32965 +compat_rawv6_setsockopt_4967 compat_rawv6_setsockopt 5 4967 NULL
32966 ++ath10k_read_chip_id_4969 ath10k_read_chip_id 3 4969 NULL
32967 +skb_network_header_len_4971 skb_network_header_len 0 4971 NULL
32968 +ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval_4976 ieee80211_if_fmt_dot11MeshHWMPconfirmationInterval 3 4976 NULL
32969 -+do_sync_read_4977 do_sync_read 0 4977 NULL
32970 -+vmw_surface_define_size_4993 vmw_surface_define_size 0 4993 NULL
32971 +compat_SyS_ipc_5000 compat_SyS_ipc 3 5000 NULL
32972 +do_mincore_5018 do_mincore 0-2-1 5018 NULL
32973 +btrfs_punch_hole_5041 btrfs_punch_hole 2 5041 NULL
32974 @@ -104710,75 +107074,46 @@ index 0000000..3d6cc0f
32975 +ocfs2_check_range_for_holes_5066 ocfs2_check_range_for_holes 3-2 5066 NULL
32976 +snd_mixart_BA1_read_5082 snd_mixart_BA1_read 5 5082 NULL
32977 +snd_emu10k1_ptr20_read_5087 snd_emu10k1_ptr20_read 0 5087 NULL
32978 -+get_random_bytes_5091 get_random_bytes 2 5091 NULL nohasharray
32979 -+kfifo_copy_from_user_5091 kfifo_copy_from_user 4-3-0 5091 &get_random_bytes_5091 nohasharray
32980 -+blk_rq_sectors_5091 blk_rq_sectors 0 5091 &kfifo_copy_from_user_5091
32981 ++kfifo_copy_from_user_5091 kfifo_copy_from_user 3-4-0 5091 NULL nohasharray
32982 ++get_random_bytes_5091 get_random_bytes 2 5091 &kfifo_copy_from_user_5091 nohasharray
32983 ++blk_rq_sectors_5091 blk_rq_sectors 0 5091 &get_random_bytes_5091
32984 +sound_write_5102 sound_write 3 5102 NULL
32985 -+clear_dirty_5105 clear_dirty 3 5105 NULL
32986 +i40e_dbg_netdev_ops_write_5117 i40e_dbg_netdev_ops_write 3 5117 NULL
32987 +qib_7220_handle_hwerrors_5142 qib_7220_handle_hwerrors 3 5142 NULL
32988 -+ufs_add_fragments_5144 ufs_add_fragments 2 5144 NULL
32989 -+ocfs2_inode_lock_full_nested_5148 ocfs2_inode_lock_full_nested 0 5148 NULL
32990 +__uwb_addr_print_5161 __uwb_addr_print 2 5161 NULL
32991 +iwl_dbgfs_status_read_5171 iwl_dbgfs_status_read 3 5171 NULL
32992 +acpi_pcc_get_sqty_5176 acpi_pcc_get_sqty 0 5176 NULL
32993 -+ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL nohasharray
32994 -+r600_mip_minify_5214 r600_mip_minify 2-1-0 5214 &ppp_cp_parse_cr_5214
32995 ++ppp_cp_parse_cr_5214 ppp_cp_parse_cr 4 5214 NULL
32996 +dwc2_hcd_urb_alloc_5217 dwc2_hcd_urb_alloc 2 5217 NULL
32997 +ath6kl_debug_roam_tbl_event_5224 ath6kl_debug_roam_tbl_event 3 5224 NULL
32998 -+nouveau_fb_create__5244 nouveau_fb_create_ 5 5244 NULL
32999 -+gfn_to_hva_memslot_5265 gfn_to_hva_memslot 2 5265 NULL
33000 -+btrfs_alloc_reserved_file_extent_5274 btrfs_alloc_reserved_file_extent 0 5274 NULL
33001 -+iommu_domain_identity_map_5284 iommu_domain_identity_map 2-3 5284 NULL
33002 -+alloc_cache_blocks_with_hash_5285 alloc_cache_blocks_with_hash 2 5285 NULL
33003 +usb_descriptor_fillbuf_5302 usb_descriptor_fillbuf 0 5302 NULL
33004 -+__gfn_to_hva_memslot_5304 __gfn_to_hva_memslot 0-2 5304 NULL
33005 +r592_write_fifo_pio_5315 r592_write_fifo_pio 3 5315 NULL
33006 +sbc_get_write_same_sectors_5317 sbc_get_write_same_sectors 0 5317 NULL
33007 +pwr_elp_enter_read_5324 pwr_elp_enter_read 3 5324 NULL
33008 -+allocate_cnodes_5329 allocate_cnodes 1 5329 NULL
33009 -+vm_insert_pfn_5341 vm_insert_pfn 3-0 5341 NULL
33010 +cq_free_res_5355 cq_free_res 5 5355 NULL
33011 +ps_pspoll_utilization_read_5361 ps_pspoll_utilization_read 3 5361 NULL
33012 -+cciss_allocate_sg_chain_blocks_5368 cciss_allocate_sg_chain_blocks 2-3 5368 NULL
33013 -+kvm_pin_pages_5369 kvm_pin_pages 2-0 5369 NULL
33014 -+bitmap_fold_5396 bitmap_fold 4 5396 NULL
33015 -+security_inode_init_security_5408 security_inode_init_security 0 5408 NULL
33016 -+__resolve_indirect_refs_5409 __resolve_indirect_refs 0 5409 NULL
33017 -+nilfs_palloc_entries_per_group_5418 nilfs_palloc_entries_per_group 0 5418 NULL
33018 -+check_item_in_log_5440 check_item_in_log 0 5440 NULL
33019 ++cciss_allocate_sg_chain_blocks_5368 cciss_allocate_sg_chain_blocks 3-2 5368 NULL
33020 +__split_bvec_across_targets_5454 __split_bvec_across_targets 3 5454 NULL
33021 +xfs_efd_init_5463 xfs_efd_init 3 5463 NULL
33022 +xfs_efi_init_5476 xfs_efi_init 2 5476 NULL
33023 -+ubi_leb_write_5478 ubi_leb_write 4-5 5478 NULL
33024 +cifs_security_flags_proc_write_5484 cifs_security_flags_proc_write 3 5484 NULL
33025 +tty_write_5494 tty_write 3 5494 NULL
33026 +tomoyo_update_domain_5498 tomoyo_update_domain 2 5498 NULL nohasharray
33027 +ieee80211_if_fmt_last_beacon_5498 ieee80211_if_fmt_last_beacon 3 5498 &tomoyo_update_domain_5498
33028 +__max_nr_grant_frames_5505 __max_nr_grant_frames 0 5505 NULL
33029 +ieee80211_if_fmt_auto_open_plinks_5534 ieee80211_if_fmt_auto_open_plinks 3 5534 NULL
33030 -+iommu_prepare_identity_map_5540 iommu_prepare_identity_map 2-3 5540 NULL
33031 +get_entry_msg_len_5552 get_entry_msg_len 0 5552 NULL
33032 +le_readq_5557 le_readq 0 5557 NULL
33033 +inw_5558 inw 0 5558 NULL
33034 +bioset_create_5580 bioset_create 1 5580 NULL
33035 -+domain_sg_mapping_5586 domain_sg_mapping 4 5586 NULL
33036 +oz_ep_alloc_5587 oz_ep_alloc 1 5587 NULL
33037 -+ldm_frag_add_5611 ldm_frag_add 2 5611 NULL
33038 -+compat_copy_entries_5617 compat_copy_entries 0 5617 NULL
33039 -+SYSC_init_module_5626 SYSC_init_module 2 5626 NULL
33040 -+iterate_extent_inodes_5631 iterate_extent_inodes 0 5631 NULL
33041 +SYSC_fsetxattr_5639 SYSC_fsetxattr 4 5639 NULL
33042 +ext4_xattr_get_5661 ext4_xattr_get 0 5661 NULL
33043 +posix_clock_register_5662 posix_clock_register 2 5662 NULL
33044 -+kgdb_arch_pc_5673 kgdb_arch_pc 0 5673 NULL
33045 -+wb_clear_dirty_5684 wb_clear_dirty 2 5684 NULL
33046 +get_arg_5694 get_arg 3 5694 NULL
33047 +subbuf_read_actor_5708 subbuf_read_actor 3 5708 NULL
33048 -+ntfs_attr_record_resize_5720 ntfs_attr_record_resize 0 5720 NULL
33049 +vmw_kms_readback_5727 vmw_kms_readback 6 5727 NULL
33050 +rts51x_transfer_data_partial_5735 rts51x_transfer_data_partial 6 5735 NULL
33051 -+ubi_calc_fm_size_5749 ubi_calc_fm_size 0 5749 NULL
33052 +sctp_setsockopt_autoclose_5775 sctp_setsockopt_autoclose 3 5775 NULL
33053 +__vxge_hw_blockpool_malloc_5786 __vxge_hw_blockpool_malloc 2 5786 NULL
33054 +nvme_trans_bdev_char_page_5797 nvme_trans_bdev_char_page 3 5797 NULL
33055 @@ -104786,13 +107121,11 @@ index 0000000..3d6cc0f
33056 +nv50_disp_pioc_create__5812 nv50_disp_pioc_create_ 5 5812 NULL
33057 +ceph_x_encrypt_buflen_5829 ceph_x_encrypt_buflen 0-1 5829 NULL
33058 +ceph_msg_new_5846 ceph_msg_new 2 5846 NULL
33059 -+setup_req_5848 setup_req 3 5848 NULL
33060 ++setup_req_5848 setup_req 3-0 5848 NULL
33061 +ria_page_count_5849 ria_page_count 0 5849 NULL
33062 +rx_filter_max_arp_queue_dep_read_5851 rx_filter_max_arp_queue_dep_read 3 5851 NULL
33063 +config_buf_5862 config_buf 0 5862 NULL
33064 -+ext4_ext_correct_indexes_5865 ext4_ext_correct_indexes 0 5865 NULL
33065 -+paging64_walk_addr_5887 paging64_walk_addr 3 5887 NULL
33066 -+scan_bitmap_5888 scan_bitmap 3 5888 NULL
33067 ++iwl_dbgfs_scan_ant_rxchain_write_5877 iwl_dbgfs_scan_ant_rxchain_write 3 5877 NULL
33068 +lprocfs_fid_width_seq_write_5889 lprocfs_fid_width_seq_write 3 5889 NULL
33069 +port_show_regs_5904 port_show_regs 3 5904 NULL
33070 +rbd_segment_length_5907 rbd_segment_length 0-3-2 5907 NULL
33071 @@ -104800,135 +107133,93 @@ index 0000000..3d6cc0f
33072 +lbs_highsnr_read_5931 lbs_highsnr_read 3 5931 NULL
33073 +ps_poll_ps_poll_timeouts_read_5934 ps_poll_ps_poll_timeouts_read 3 5934 NULL
33074 +edac_device_alloc_ctl_info_5941 edac_device_alloc_ctl_info 1 5941 NULL
33075 -+find_parent_nodes_5948 find_parent_nodes 0 5948 NULL
33076 +ll_statahead_one_5962 ll_statahead_one 3 5962 NULL
33077 +__apu_get_register_5967 __apu_get_register 0 5967 NULL
33078 +ieee80211_if_fmt_rc_rateidx_mask_5ghz_5971 ieee80211_if_fmt_rc_rateidx_mask_5ghz 3 5971 NULL
33079 -+native_pte_val_5978 native_pte_val 0 5978 NULL
33080 -+jbd2_journal_stop_5979 jbd2_journal_stop 0 5979 NULL
33081 -+ntfs_rl_append_6037 ntfs_rl_append 4-2 6037 NULL
33082 -+da9052_request_irq_6058 da9052_request_irq 2 6058 NULL nohasharray
33083 -+device_add_attributes_6058 device_add_attributes 0 6058 &da9052_request_irq_6058
33084 ++SyS_semop_5980 SyS_semop 3 5980 NULL
33085 +alloc_msg_6072 alloc_msg 1 6072 NULL
33086 +sctp_setsockopt_connectx_6073 sctp_setsockopt_connectx 3 6073 NULL
33087 +rts51x_ms_rw_multi_sector_6076 rts51x_ms_rw_multi_sector 3-4 6076 NULL
33088 -+md_trim_bio_6078 md_trim_bio 2 6078 NULL
33089 -+finish_inode_if_needed_6098 finish_inode_if_needed 0 6098 NULL
33090 +ipmi_addr_length_6110 ipmi_addr_length 0 6110 NULL
33091 +dfs_global_file_write_6112 dfs_global_file_write 3 6112 NULL
33092 +nouveau_parent_create__6131 nouveau_parent_create_ 7 6131 NULL
33093 -+__btrfs_commit_inode_delayed_items_6150 __btrfs_commit_inode_delayed_items 0 6150 NULL
33094 +ieee80211_if_fmt_beacon_timeout_6153 ieee80211_if_fmt_beacon_timeout 3 6153 NULL
33095 +ivtv_copy_buf_to_user_6159 ivtv_copy_buf_to_user 4 6159 NULL
33096 -+vdma_mem_alloc_6171 vdma_mem_alloc 1 6171 NULL
33097 +wl1251_cmd_template_set_6172 wl1251_cmd_template_set 4 6172 NULL
33098 -+paging64_walk_addr_generic_6180 paging64_walk_addr_generic 4 6180 NULL
33099 +SyS_setgroups_6182 SyS_setgroups 1 6182 NULL
33100 -+__add_pin_to_irq_node_6188 __add_pin_to_irq_node 2 6188 NULL
33101 -+qp_host_get_user_memory_6189 qp_host_get_user_memory 1-2 6189 NULL
33102 -+cl_sync_io_wait_6196 cl_sync_io_wait 0 6196 NULL
33103 -+i915_gem_execbuffer_move_to_gpu_6197 i915_gem_execbuffer_move_to_gpu 0 6197 NULL
33104 +mxt_show_instance_6207 mxt_show_instance 2-0 6207 NULL
33105 +v4l2_ctrl_new_std_menu_6221 v4l2_ctrl_new_std_menu 4 6221 NULL
33106 +mqueue_read_file_6228 mqueue_read_file 3 6228 NULL
33107 +f_hidg_read_6238 f_hidg_read 3 6238 NULL
33108 -+changed_ref_6242 changed_ref 0 6242 NULL
33109 +fbcon_prepare_logo_6246 fbcon_prepare_logo 5 6246 NULL
33110 -+ext4_ext_split_6249 ext4_ext_split 0 6249 NULL
33111 -+pcpu_next_pop_6277 pcpu_next_pop 4 6277 NULL
33112 +tx_tx_start_null_frame_read_6281 tx_tx_start_null_frame_read 3 6281 NULL
33113 +snd_hda_override_conn_list_6282 snd_hda_override_conn_list 3-0 6282 NULL nohasharray
33114 +xenbus_file_write_6282 xenbus_file_write 3 6282 &snd_hda_override_conn_list_6282
33115 +posix_acl_fix_xattr_to_user_6283 posix_acl_fix_xattr_to_user 2 6283 NULL
33116 -+paging64_gva_to_gpa_nested_6287 paging64_gva_to_gpa_nested 2 6287 NULL
33117 ++serial_port_in_6291 serial_port_in 0 6291 NULL
33118 +qlcnic_sriov_alloc_bc_msg_6309 qlcnic_sriov_alloc_bc_msg 2 6309 NULL
33119 -+exclude_super_stripes_6326 exclude_super_stripes 0 6326 NULL
33120 -+SyS_mincore_6329 SyS_mincore 2-1 6329 NULL nohasharray
33121 -+hfa384x_inw_6329 hfa384x_inw 0 6329 &SyS_mincore_6329
33122 ++hfa384x_inw_6329 hfa384x_inw 0 6329 NULL nohasharray
33123 ++SyS_mincore_6329 SyS_mincore 2-1 6329 &hfa384x_inw_6329
33124 +fuse_get_req_for_background_6337 fuse_get_req_for_background 2 6337 NULL
33125 +ucs2_strnlen_6342 ucs2_strnlen 0 6342 NULL
33126 -+utc2ntfs_6347 utc2ntfs 0 6347 NULL
33127 +regcache_sync_block_raw_6350 regcache_sync_block_raw 5-4 6350 NULL
33128 +mei_dbgfs_read_devstate_6352 mei_dbgfs_read_devstate 3 6352 NULL
33129 +_proc_do_string_6376 _proc_do_string 2 6376 NULL
33130 +osd_req_read_sg_kern_6378 osd_req_read_sg_kern 5 6378 NULL
33131 -+msb_write_block_6379 msb_write_block 3 6379 NULL
33132 -+BcmFlash2xBulkRead_6395 BcmFlash2xBulkRead 0 6395 NULL
33133 +posix_acl_fix_xattr_userns_6420 posix_acl_fix_xattr_userns 4 6420 NULL
33134 +add_transaction_credits_6422 add_transaction_credits 2-3 6422 NULL
33135 +ipr_change_queue_depth_6431 ipr_change_queue_depth 2 6431 NULL
33136 +__alloc_bootmem_node_nopanic_6432 __alloc_bootmem_node_nopanic 2 6432 NULL
33137 -+add_to_list_6433 add_to_list 0 6433 NULL
33138 -+paging32_gva_to_gpa_nested_6442 paging32_gva_to_gpa_nested 2 6442 NULL
33139 -+i915_gem_object_wait_rendering_6446 i915_gem_object_wait_rendering 0 6446 NULL
33140 -+mlx4_ib_reg_user_mr_6471 mlx4_ib_reg_user_mr 2-3 6471 NULL
33141 +ieee80211_if_fmt_dot11MeshMaxRetries_6476 ieee80211_if_fmt_dot11MeshMaxRetries 3 6476 NULL
33142 +qp_memcpy_from_queue_6479 qp_memcpy_from_queue 5-4 6479 NULL
33143 +cipso_v4_map_lvl_hton_6490 cipso_v4_map_lvl_hton 0 6490 NULL
33144 -+ntfs_cluster_free_6497 ntfs_cluster_free 0 6497 NULL
33145 +dbg_intr_buf_6501 dbg_intr_buf 2 6501 NULL
33146 +mei_read_6507 mei_read 3 6507 NULL
33147 -+__start_delalloc_inodes_6528 __start_delalloc_inodes 0 6528 NULL
33148 +rndis_set_oid_6547 rndis_set_oid 4 6547 NULL
33149 +wdm_read_6549 wdm_read 3 6549 NULL
33150 +dm_stats_create_6551 dm_stats_create 4-2-3 6551 NULL
33151 +fb_alloc_cmap_6554 fb_alloc_cmap 2 6554 NULL
33152 +SyS_semtimedop_6563 SyS_semtimedop 3 6563 NULL
33153 -+SyS_fcntl64_6582 SyS_fcntl64 3 6582 NULL
33154 -+snd_pcm_hw_refine_old_user_6586 snd_pcm_hw_refine_old_user 0 6586 NULL
33155 -+btrfs_start_all_delalloc_inodes_6596 btrfs_start_all_delalloc_inodes 0 6596 NULL
33156 -+snmp_mib_init_6604 snmp_mib_init 2-3 6604 NULL
33157 +ecryptfs_filldir_6622 ecryptfs_filldir 3 6622 NULL
33158 +xfs_do_div_6649 xfs_do_div 0-2 6649 NULL
33159 -+journal_dirty_metadata_6658 journal_dirty_metadata 0 6658 NULL
33160 +process_rcvd_data_6679 process_rcvd_data 3 6679 NULL
33161 -+btrfs_lookup_csums_range_6696 btrfs_lookup_csums_range 2-3-0 6696 NULL
33162 ++btrfs_lookup_csums_range_6696 btrfs_lookup_csums_range 2-3 6696 NULL
33163 +ps_pspoll_max_apturn_read_6699 ps_pspoll_max_apturn_read 3 6699 NULL
33164 +bnad_debugfs_write_regrd_6706 bnad_debugfs_write_regrd 3 6706 NULL
33165 +mpeg_read_6708 mpeg_read 3 6708 NULL
33166 +ibmpex_query_sensor_count_6709 ibmpex_query_sensor_count 0 6709 NULL
33167 -+set_orig_insn_6712 set_orig_insn 3 6712 NULL
33168 +video_proc_write_6724 video_proc_write 3 6724 NULL
33169 +posix_acl_xattr_count_6725 posix_acl_xattr_count 0-1 6725 NULL
33170 -+ocfs2_insert_extent_6737 ocfs2_insert_extent 0 6737 NULL
33171 -+btrfs_inode_delayed_dir_index_count_6759 btrfs_inode_delayed_dir_index_count 0 6759 NULL
33172 +kobject_add_varg_6781 kobject_add_varg 0 6781 NULL
33173 +iwl_dbgfs_channels_read_6784 iwl_dbgfs_channels_read 3 6784 NULL
33174 +ieee80211_if_read_6785 ieee80211_if_read 3 6785 NULL
33175 +zone_spanned_pages_in_node_6787 zone_spanned_pages_in_node 0-3-4 6787 NULL
33176 +hdlcdrv_register_6792 hdlcdrv_register 2 6792 NULL
33177 +tx_tx_done_data_read_6799 tx_tx_done_data_read 3 6799 NULL
33178 -+ocfs2_calc_refcount_meta_credits_6802 ocfs2_calc_refcount_meta_credits 0 6802 NULL
33179 +lbs_rdrf_write_6826 lbs_rdrf_write 3 6826 NULL
33180 -+make_8259A_irq_6828 make_8259A_irq 1 6828 NULL
33181 +calc_pages_for_6838 calc_pages_for 0-1-2 6838 NULL
33182 +mon_bin_read_6841 mon_bin_read 3 6841 NULL
33183 +snd_cs4281_BA0_read_6847 snd_cs4281_BA0_read 5 6847 NULL
33184 -+ecryptfs_write_lower_6870 ecryptfs_write_lower 4 6870 NULL
33185 ++perf_output_sample_ustack_6868 perf_output_sample_ustack 2 6868 NULL
33186 +dio_complete_6879 dio_complete 0-2-3 6879 NULL
33187 -+ieee80211_if_fmt_path_refresh_time_6888 ieee80211_if_fmt_path_refresh_time 3 6888 NULL nohasharray
33188 -+raw_seticmpfilter_6888 raw_seticmpfilter 3 6888 &ieee80211_if_fmt_path_refresh_time_6888
33189 ++raw_seticmpfilter_6888 raw_seticmpfilter 3 6888 NULL nohasharray
33190 ++ieee80211_if_fmt_path_refresh_time_6888 ieee80211_if_fmt_path_refresh_time 3 6888 &raw_seticmpfilter_6888
33191 +dlmfs_file_write_6892 dlmfs_file_write 3 6892 NULL
33192 -+ext4_inode_bitmap_6902 ext4_inode_bitmap 0 6902 NULL
33193 -+spi_show_regs_6911 spi_show_regs 3 6911 NULL nohasharray
33194 -+proc_sessionid_read_6911 proc_sessionid_read 3 6911 &spi_show_regs_6911 nohasharray
33195 -+acm_alloc_minor_6911 acm_alloc_minor 0 6911 &proc_sessionid_read_6911
33196 ++proc_sessionid_read_6911 proc_sessionid_read 3 6911 NULL nohasharray
33197 ++spi_show_regs_6911 spi_show_regs 3 6911 &proc_sessionid_read_6911 nohasharray
33198 ++acm_alloc_minor_6911 acm_alloc_minor 0 6911 &spi_show_regs_6911
33199 +__kfifo_dma_in_finish_r_6913 __kfifo_dma_in_finish_r 2-3 6913 NULL
33200 +do_msgrcv_6921 do_msgrcv 3 6921 NULL
33201 -+__vxge_hw_mempool_create_6923 __vxge_hw_mempool_create 3-2-6 6923 NULL
33202 +cache_do_downcall_6926 cache_do_downcall 3 6926 NULL
33203 +ipath_verbs_send_dma_6929 ipath_verbs_send_dma 6 6929 NULL
33204 +qsfp_cks_6945 qsfp_cks 2-0 6945 NULL
33205 +tg3_nvram_write_block_unbuffered_6955 tg3_nvram_write_block_unbuffered 3 6955 NULL
33206 +pch_uart_hal_read_6961 pch_uart_hal_read 0 6961 NULL
33207 -+videobuf_dma_init_kernel_6963 videobuf_dma_init_kernel 3 6963 NULL
33208 -+i40e_dbg_dump_write_6973 i40e_dbg_dump_write 3 6973 NULL nohasharray
33209 -+rsa_extract_mpi_6973 rsa_extract_mpi 5 6973 &i40e_dbg_dump_write_6973
33210 -+crypto_authenc_esn_setkey_6985 crypto_authenc_esn_setkey 3 6985 NULL
33211 ++rsa_extract_mpi_6973 rsa_extract_mpi 5 6973 NULL nohasharray
33212 ++i40e_dbg_dump_write_6973 i40e_dbg_dump_write 3 6973 &rsa_extract_mpi_6973
33213 +request_key_async_6990 request_key_async 4 6990 NULL
33214 +tpl_write_6998 tpl_write 3 6998 NULL
33215 +r871x_set_wpa_ie_7000 r871x_set_wpa_ie 3 7000 NULL
33216 -+log_wait_commit_7005 log_wait_commit 0 7005 NULL
33217 +cipso_v4_gentag_enum_7006 cipso_v4_gentag_enum 0 7006 NULL
33218 +tracing_cpumask_read_7010 tracing_cpumask_read 3 7010 NULL
33219 +ld_usb_write_7022 ld_usb_write 3 7022 NULL
33220 @@ -104937,169 +107228,114 @@ index 0000000..3d6cc0f
33221 +snd_pcm_oss_bytes_7051 snd_pcm_oss_bytes 2 7051 NULL
33222 +hci_sock_recvmsg_7072 hci_sock_recvmsg 4 7072 NULL
33223 +event_enable_read_7074 event_enable_read 3 7074 NULL
33224 -+ip_vs_sync_conn_7075 ip_vs_sync_conn 3 7075 NULL
33225 +beacon_interval_read_7091 beacon_interval_read 3 7091 NULL
33226 +pipeline_enc_rx_stat_fifo_int_read_7107 pipeline_enc_rx_stat_fifo_int_read 3 7107 NULL
33227 -+check_header_7108 check_header 0 7108 NULL
33228 +osc_resend_count_seq_write_7120 osc_resend_count_seq_write 3 7120 NULL
33229 +qib_format_hwerrors_7133 qib_format_hwerrors 5 7133 NULL
33230 +kvm_mmu_notifier_test_young_7139 kvm_mmu_notifier_test_young 3 7139 NULL
33231 -+ipv6_recv_rxpmtu_7142 ipv6_recv_rxpmtu 3 7142 NULL
33232 -+qlcnic_enable_msix_7144 qlcnic_enable_msix 2 7144 NULL
33233 -+ocfs2_get_left_path_7159 ocfs2_get_left_path 0 7159 NULL
33234 -+core_alua_write_tpg_metadata_7168 core_alua_write_tpg_metadata 3 7168 NULL
33235 -+ext3_xattr_ibody_list_7201 ext3_xattr_ibody_list 3-0 7201 NULL
33236 +__alloc_objio_seg_7203 __alloc_objio_seg 1 7203 NULL
33237 -+get_param_h_7247 get_param_h 0 7247 NULL
33238 -+af_alg_make_sg_7254 af_alg_make_sg 3-0 7254 NULL
33239 +hdlc_loop_7255 hdlc_loop 0 7255 NULL
33240 -+vm_mmap_pgoff_7259 vm_mmap_pgoff 0 7259 NULL
33241 -+snd_mask_refine_7267 snd_mask_refine 0 7267 NULL
33242 +f_midi_start_ep_7270 f_midi_start_ep 0 7270 NULL
33243 -+dma_ops_alloc_addresses_7272 dma_ops_alloc_addresses 3-4-5-0 7272 NULL
33244 +rx_rate_rx_frames_per_rates_read_7282 rx_rate_rx_frames_per_rates_read 3 7282 NULL
33245 +get_string_7302 get_string 0 7302 NULL
33246 -+wb_remove_mapping_7307 wb_remove_mapping 2 7307 NULL
33247 -+wait_on_sync_kiocb_7327 wait_on_sync_kiocb 0 7327 NULL
33248 +mgmt_control_7349 mgmt_control 3 7349 NULL
33249 -+max8998_irq_domain_map_7359 max8998_irq_domain_map 2 7359 NULL
33250 -+i915_gem_do_execbuffer_7362 i915_gem_do_execbuffer 0 7362 NULL nohasharray
33251 -+ext3_free_blocks_7362 ext3_free_blocks 3-4 7362 &i915_gem_do_execbuffer_7362
33252 +at_est2timeout_7365 at_est2timeout 0-1 7365 NULL
33253 +ieee80211_if_read_dot11MeshHWMPactivePathTimeout_7368 ieee80211_if_read_dot11MeshHWMPactivePathTimeout 3 7368 NULL
33254 -+schedule_timeout_7371 schedule_timeout 0 7371 NULL
33255 +ath10k_read_fw_stats_7387 ath10k_read_fw_stats 3 7387 NULL
33256 +hweight_long_7388 hweight_long 1-0 7388 NULL
33257 +sl_change_mtu_7396 sl_change_mtu 2 7396 NULL
33258 +_ore_add_stripe_unit_7399 _ore_add_stripe_unit 6-3 7399 NULL
33259 +readb_7401 readb 0 7401 NULL
33260 +drm_property_create_blob_7414 drm_property_create_blob 2 7414 NULL
33261 ++__copy_to_user_nocheck_7443 __copy_to_user_nocheck 0-3 7443 NULL
33262 +ip_options_get_alloc_7448 ip_options_get_alloc 1 7448 NULL
33263 +SYSC_setgroups_7454 SYSC_setgroups 1 7454 NULL
33264 +rt2x00debug_read_queue_stats_7455 rt2x00debug_read_queue_stats 3 7455 NULL
33265 +l2tp_ip6_sendmsg_7461 l2tp_ip6_sendmsg 4 7461 NULL
33266 -+ReadHSCX_7471 ReadHSCX 0 7471 NULL nohasharray
33267 -+garp_request_join_7471 garp_request_join 4 7471 &ReadHSCX_7471
33268 ++garp_request_join_7471 garp_request_join 4 7471 NULL nohasharray
33269 ++ReadHSCX_7471 ReadHSCX 0 7471 &garp_request_join_7471
33270 +snd_pcm_lib_read1_7491 snd_pcm_lib_read1 0-3 7491 NULL
33271 +iwl_mvm_power_dbgfs_read_7502 iwl_mvm_power_dbgfs_read 0 7502 NULL
33272 -+sdhci_alloc_host_7509 sdhci_alloc_host 2 7509 NULL nohasharray
33273 -+ahash_instance_headroom_7509 ahash_instance_headroom 0 7509 &sdhci_alloc_host_7509
33274 -+array_zalloc_7519 array_zalloc 2-1 7519 NULL
33275 -+btrfs_insert_xattr_item_7545 btrfs_insert_xattr_item 0 7545 NULL
33276 -+goal_in_my_reservation_7553 goal_in_my_reservation 3 7553 NULL
33277 ++ahash_instance_headroom_7509 ahash_instance_headroom 0 7509 NULL nohasharray
33278 ++sdhci_alloc_host_7509 sdhci_alloc_host 2 7509 &ahash_instance_headroom_7509
33279 ++array_zalloc_7519 array_zalloc 1-2 7519 NULL
33280 ++ath10k_read_htt_stats_mask_7557 ath10k_read_htt_stats_mask 3 7557 NULL
33281 +smk_read_mapped_7562 smk_read_mapped 3 7562 NULL
33282 +cfs_cpt_num_estimate_7571 cfs_cpt_num_estimate 0 7571 NULL
33283 -+ext4_ext_insert_extent_7576 ext4_ext_insert_extent 0 7576 NULL
33284 -+btrfs_block_rsv_add_7579 btrfs_block_rsv_add 3-0 7579 NULL
33285 -+ext3_try_to_allocate_7590 ext3_try_to_allocate 5-3-0 7590 NULL
33286 +ocfs2_lock_create_7612 ocfs2_lock_create 0 7612 NULL
33287 -+create_dir_7614 create_dir 0 7614 NULL nohasharray
33288 -+groups_alloc_7614 groups_alloc 1 7614 &create_dir_7614
33289 ++groups_alloc_7614 groups_alloc 1 7614 NULL nohasharray
33290 ++create_dir_7614 create_dir 0 7614 &groups_alloc_7614
33291 +_rtw_zmalloc_7636 _rtw_zmalloc 1 7636 NULL
33292 +fault_inject_write_7662 fault_inject_write 3 7662 NULL
33293 -+acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 1-2 7685 NULL
33294 ++acpi_ex_allocate_name_string_7685 acpi_ex_allocate_name_string 2-1 7685 NULL
33295 +acpi_ns_get_pathname_length_7699 acpi_ns_get_pathname_length 0 7699 NULL
33296 +dev_write_7708 dev_write 3 7708 NULL
33297 -+unmap_region_7709 unmap_region 1 7709 NULL
33298 -+dbg_check_cats_7713 dbg_check_cats 0 7713 NULL
33299 +pci_raw_set_power_state_7729 pci_raw_set_power_state 0 7729 NULL
33300 +vxge_device_register_7752 vxge_device_register 4 7752 NULL
33301 -+ubi_io_read_vid_hdr_7766 ubi_io_read_vid_hdr 0 7766 NULL
33302 -+paths_from_inode_7774 paths_from_inode 0 7774 NULL
33303 ++iwl_dbgfs_bt_cmd_read_7770 iwl_dbgfs_bt_cmd_read 3 7770 NULL
33304 +alloc_candev_7776 alloc_candev 1-2 7776 NULL
33305 +dfs_global_file_read_7787 dfs_global_file_read 3 7787 NULL
33306 -+bnx2_nvram_write_7790 bnx2_nvram_write 2-4 7790 NULL
33307 ++bnx2_nvram_write_7790 bnx2_nvram_write 4-2 7790 NULL
33308 +diva_os_copy_from_user_7792 diva_os_copy_from_user 4 7792 NULL nohasharray
33309 +lustre_packed_msg_size_7792 lustre_packed_msg_size 0 7792 &diva_os_copy_from_user_7792
33310 -+ubifs_leb_read_7828 ubifs_leb_read 0 7828 NULL
33311 +cfs_trace_dump_debug_buffer_usrstr_7861 cfs_trace_dump_debug_buffer_usrstr 2 7861 NULL
33312 +tipc_alloc_entry_7875 tipc_alloc_entry 2 7875 NULL
33313 -+btrfs_find_space_for_alloc_7876 btrfs_find_space_for_alloc 2 7876 NULL
33314 +config_desc_7878 config_desc 0 7878 NULL
33315 +dvb_dmxdev_read_sec_7892 dvb_dmxdev_read_sec 4 7892 NULL
33316 +xfs_trans_get_efi_7898 xfs_trans_get_efi 2 7898 NULL
33317 -+ext3_group_extend_7911 ext3_group_extend 3 7911 NULL
33318 +libfc_host_alloc_7917 libfc_host_alloc 2 7917 NULL
33319 +f_hidg_write_7932 f_hidg_write 3 7932 NULL
33320 -+io_apic_setup_irq_pin_once_7934 io_apic_setup_irq_pin_once 1-2 7934 NULL
33321 -+compare_refs_7938 compare_refs 0 7938 NULL
33322 -+fsnotify_7943 fsnotify 0 7943 NULL
33323 -+hash_netiface6_expire_7944 hash_netiface6_expire 3 7944 NULL
33324 -+integrity_digsig_verify_7956 integrity_digsig_verify 3 7956 NULL
33325 ++integrity_digsig_verify_7956 integrity_digsig_verify 3-0 7956 NULL
33326 +smk_write_load_self_7958 smk_write_load_self 3 7958 NULL
33327 -+bch_btree_to_text_7960 bch_btree_to_text 2 7960 NULL
33328 -+fixup_inode_link_count_8002 fixup_inode_link_count 0 8002 NULL
33329 -+extend_or_restart_transaction_8008 extend_or_restart_transaction 0 8008 NULL
33330 +tt3650_ci_msg_locked_8013 tt3650_ci_msg_locked 4 8013 NULL
33331 +vcs_read_8017 vcs_read 3 8017 NULL
33332 +vhost_add_used_and_signal_n_8038 vhost_add_used_and_signal_n 4 8038 NULL
33333 +ms_read_multiple_pages_8052 ms_read_multiple_pages 5-4 8052 NULL
33334 +dgrp_mon_read_8065 dgrp_mon_read 3 8065 NULL
33335 -+leb_read_lock_8070 leb_read_lock 0 8070 NULL
33336 +spi_write_then_read_8073 spi_write_then_read 5-3 8073 NULL
33337 -+alloc_targets_8074 alloc_targets 2 8074 NULL nohasharray
33338 -+qla4xxx_post_ping_evt_work_8074 qla4xxx_post_ping_evt_work 4 8074 &alloc_targets_8074
33339 -+ext4_ext_map_blocks_8078 ext4_ext_map_blocks 0 8078 NULL
33340 ++qla4xxx_post_ping_evt_work_8074 qla4xxx_post_ping_evt_work 4 8074 NULL
33341 +venus_lookup_8121 venus_lookup 4 8121 NULL
33342 +ieee80211_if_fmt_num_buffered_multicast_8127 ieee80211_if_fmt_num_buffered_multicast 3 8127 NULL
33343 -+xfs_iomap_prealloc_size_8141 xfs_iomap_prealloc_size 3 8141 NULL
33344 -+dma_map_area_8178 dma_map_area 3-2-5-0 8178 NULL
33345 -+ore_truncate_8181 ore_truncate 3 8181 NULL
33346 ++xfs_file_fallocate_8150 xfs_file_fallocate 3-4 8150 NULL
33347 +__sk_mem_schedule_8185 __sk_mem_schedule 2 8185 NULL
33348 +ieee80211_if_fmt_dot11MeshHoldingTimeout_8187 ieee80211_if_fmt_dot11MeshHoldingTimeout 3 8187 NULL
33349 -+update_cowonly_root_8200 update_cowonly_root 0 8200 NULL
33350 +recent_mt_proc_write_8206 recent_mt_proc_write 3 8206 NULL
33351 +__ocfs2_lock_refcount_tree_8207 __ocfs2_lock_refcount_tree 0 8207 NULL
33352 +rt2x00debug_write_bbp_8212 rt2x00debug_write_bbp 3 8212 NULL
33353 +ad7879_spi_multi_read_8218 ad7879_spi_multi_read 3 8218 NULL
33354 +play_iframe_8219 play_iframe 3 8219 NULL
33355 -+create_log_8225 create_log 2 8225 NULL nohasharray
33356 -+kvm_mmu_page_set_gfn_8225 kvm_mmu_page_set_gfn 2 8225 &create_log_8225
33357 ++kvm_mmu_page_set_gfn_8225 kvm_mmu_page_set_gfn 2 8225 NULL
33358 +sctp_ssnmap_size_8228 sctp_ssnmap_size 0-1-2 8228 NULL
33359 +ceph_sync_write_8233 ceph_sync_write 4 8233 NULL
33360 -+bnx2x_iov_get_max_queue_count_8235 bnx2x_iov_get_max_queue_count 0 8235 NULL
33361 +check_xattr_ref_inode_8244 check_xattr_ref_inode 0 8244 NULL
33362 +t3_init_l2t_8261 t3_init_l2t 1 8261 NULL
33363 +init_cdev_8274 init_cdev 1 8274 NULL
33364 +rproc_recovery_write_8281 rproc_recovery_write 3 8281 NULL
33365 +qib_decode_7220_err_8315 qib_decode_7220_err 3 8315 NULL
33366 -+snd_pcm_update_state_8320 snd_pcm_update_state 0 8320 NULL
33367 -+construct_key_and_link_8321 construct_key_and_link 4 8321 NULL
33368 +ipwireless_send_packet_8328 ipwireless_send_packet 4 8328 NULL
33369 -+cfs_cpt_spread_node_8338 cfs_cpt_spread_node 0 8338 NULL
33370 +tracing_entries_read_8345 tracing_entries_read 3 8345 NULL
33371 +ieee80211_if_fmt_ht_opmode_8347 ieee80211_if_fmt_ht_opmode 3 8347 NULL
33372 +generic_write_sync_8358 generic_write_sync 0 8358 NULL
33373 +ping_getfrag_8360 ping_getfrag 4-3 8360 NULL
33374 +ath6kl_lrssi_roam_write_8362 ath6kl_lrssi_roam_write 3 8362 NULL
33375 -+ocfs2_decrease_refcount_rec_8385 ocfs2_decrease_refcount_rec 0 8385 NULL
33376 +xdi_copy_from_user_8395 xdi_copy_from_user 4 8395 NULL
33377 +zd_rf_scnprint_id_8406 zd_rf_scnprint_id 0-3 8406 NULL
33378 +smk_write_change_rule_8411 smk_write_change_rule 3 8411 NULL nohasharray
33379 +uvc_v4l2_ioctl_8411 uvc_v4l2_ioctl 2 8411 &smk_write_change_rule_8411
33380 -+pca953x_gpio_to_irq_8424 pca953x_gpio_to_irq 2 8424 NULL
33381 -+irq_create_mapping_8437 irq_create_mapping 2-0 8437 NULL
33382 -+generic_bin_search_8440 generic_bin_search 0 8440 NULL
33383 -+ring_wait_for_space_8457 ring_wait_for_space 0 8457 NULL
33384 -+dir_changed_8471 dir_changed 0 8471 NULL
33385 ++roccat_common2_sysfs_read_8431 roccat_common2_sysfs_read 6 8431 NULL
33386 +afs_cell_lookup_8482 afs_cell_lookup 2 8482 NULL
33387 +fore200e_chunk_alloc_8501 fore200e_chunk_alloc 4-3 8501 NULL
33388 +batadv_tt_len_8502 batadv_tt_len 0-1 8502 NULL
33389 +dev_config_8506 dev_config 3 8506 NULL
33390 +ACL_to_cifs_posix_8509 ACL_to_cifs_posix 3 8509 NULL
33391 +opticon_process_data_packet_8524 opticon_process_data_packet 3 8524 NULL
33392 -+alloc_pg_vec_8533 alloc_pg_vec 2 8533 NULL
33393 -+ocfs2_read_virt_blocks_8538 ocfs2_read_virt_blocks 2-3 8538 NULL
33394 +user_on_off_8552 user_on_off 2 8552 NULL
33395 +profile_remove_8556 profile_remove 3 8556 NULL
33396 -+remove_extent_backref_8559 remove_extent_backref 0 8559 NULL
33397 +cache_slow_downcall_8570 cache_slow_downcall 2 8570 NULL
33398 +isr_dma0_done_read_8574 isr_dma0_done_read 3 8574 NULL
33399 +tower_write_8580 tower_write 3 8580 NULL
33400 -+ocfs2_reserve_local_alloc_bits_8581 ocfs2_reserve_local_alloc_bits 0 8581 NULL
33401 +cfs_cpt_number_8618 cfs_cpt_number 0 8618 NULL
33402 +shash_setkey_unaligned_8620 shash_setkey_unaligned 3 8620 NULL
33403 -+iommu_unmap_8624 iommu_unmap 2-0 8624 NULL
33404 +it821x_firmware_command_8628 it821x_firmware_command 3 8628 NULL
33405 +scsi_dma_map_8632 scsi_dma_map 0 8632 NULL
33406 +fuse_send_write_pages_8636 fuse_send_write_pages 0-5 8636 NULL
33407 @@ -105107,150 +107343,114 @@ index 0000000..3d6cc0f
33408 +mlx5_vzalloc_8663 mlx5_vzalloc 1 8663 NULL
33409 +dio_bio_alloc_8677 dio_bio_alloc 5 8677 NULL
33410 +lbs_bcnmiss_read_8678 lbs_bcnmiss_read 3 8678 NULL
33411 -+tc3589x_gpio_irq_unmap_8680 tc3589x_gpio_irq_unmap 2 8680 NULL
33412 +rproc_trace_read_8686 rproc_trace_read 3 8686 NULL
33413 +skb_frag_size_8695 skb_frag_size 0 8695 NULL
33414 +arcfb_write_8702 arcfb_write 3 8702 NULL
33415 +i_size_read_8703 i_size_read 0 8703 NULL nohasharray
33416 +init_header_8703 init_header 0 8703 &i_size_read_8703
33417 +HDLC_irq_8709 HDLC_irq 2 8709 NULL
33418 -+ctrl_out_8712 ctrl_out 5-3 8712 NULL
33419 -+__create_free_space_inode_8724 __create_free_space_inode 0 8724 NULL
33420 ++ctrl_out_8712 ctrl_out 3-5 8712 NULL
33421 +tracing_max_lat_write_8728 tracing_max_lat_write 3 8728 NULL
33422 +jffs2_acl_count_8729 jffs2_acl_count 0-1 8729 NULL
33423 -+f_dupfd_8730 f_dupfd 1 8730 NULL
33424 -+__create_irqs_8733 __create_irqs 2-1-0-3 8733 NULL
33425 -+pca953x_gpio_irq_map_8737 pca953x_gpio_irq_map 2 8737 NULL
33426 ++__create_irqs_8733 __create_irqs 2 8733 NULL
33427 +tx_tx_exch_expiry_read_8749 tx_tx_exch_expiry_read 3 8749 NULL
33428 +compound_order_8750 compound_order 0 8750 NULL
33429 +ocfs2_find_path_8754 ocfs2_find_path 0 8754 NULL
33430 +yurex_write_8761 yurex_write 3 8761 NULL
33431 +joydev_compat_ioctl_8765 joydev_compat_ioctl 2 8765 NULL
33432 -+x32_arch_ptrace_8767 x32_arch_ptrace 3 8767 NULL
33433 +kstrtoint_from_user_8778 kstrtoint_from_user 2 8778 NULL
33434 +paging32_prefetch_gpte_8783 paging32_prefetch_gpte 4 8783 NULL
33435 +ext4_try_to_write_inline_data_8785 ext4_try_to_write_inline_data 3-4 8785 NULL
33436 -+aligned_nrpages_8791 aligned_nrpages 0-1-2 8791 NULL
33437 +__bitmap_weight_8796 __bitmap_weight 0-2 8796 NULL
33438 +cpuset_common_file_read_8800 cpuset_common_file_read 5 8800 NULL
33439 -+intel_ring_begin_8808 intel_ring_begin 0 8808 NULL
33440 -+ntfs_commit_pages_after_write_8809 ntfs_commit_pages_after_write 4-3 8809 NULL
33441 +metronomefb_write_8823 metronomefb_write 3 8823 NULL
33442 +SyS_llistxattr_8824 SyS_llistxattr 3 8824 NULL
33443 +get_queue_depth_8833 get_queue_depth 0 8833 NULL
33444 +dvb_ringbuffer_pkt_next_8834 dvb_ringbuffer_pkt_next 0-2 8834 NULL
33445 +usb_ep_queue_8839 usb_ep_queue 0 8839 NULL
33446 -+clear_bitset_8840 clear_bitset 2 8840 NULL
33447 +debug_debug1_read_8856 debug_debug1_read 3 8856 NULL
33448 +wa_nep_queue_8858 wa_nep_queue 2 8858 NULL
33449 -+sk_memory_allocated_8882 sk_memory_allocated 0 8882 NULL
33450 ++radeon_drm_ioctl_8875 radeon_drm_ioctl 2 8875 NULL
33451 +compressed_bio_size_8887 compressed_bio_size 0-2 8887 NULL
33452 +ab3100_get_set_reg_8890 ab3100_get_set_reg 3 8890 NULL nohasharray
33453 +tracing_max_lat_read_8890 tracing_max_lat_read 3 8890 &ab3100_get_set_reg_8890
33454 -+xfs_contig_bits_8904 xfs_contig_bits 3-0 8904 NULL
33455 +sdio_max_byte_size_8907 sdio_max_byte_size 0 8907 NULL
33456 +sysfs_merge_group_8917 sysfs_merge_group 0 8917 NULL
33457 +write_file_ani_8918 write_file_ani 3 8918 NULL
33458 +layout_commit_8926 layout_commit 3 8926 NULL
33459 +adjust_priv_size_8935 adjust_priv_size 0-1 8935 NULL
33460 +driver_stats_read_8944 driver_stats_read 3 8944 NULL
33461 -+lookup_zone_8956 lookup_zone 2 8956 NULL
33462 +read_file_tgt_stats_8959 read_file_tgt_stats 3 8959 NULL
33463 -+seq_bitmap_list_8963 seq_bitmap_list 3 8963 NULL
33464 +usb_allocate_stream_buffers_8964 usb_allocate_stream_buffers 3 8964 NULL
33465 +qib_qsfp_dump_8966 qib_qsfp_dump 0-3 8966 NULL
33466 +venus_mkdir_8967 venus_mkdir 4 8967 NULL
33467 -+vol_cdev_read_8968 vol_cdev_read 3 8968 NULL nohasharray
33468 -+seq_open_net_8968 seq_open_net 4 8968 &vol_cdev_read_8968
33469 ++seq_open_net_8968 seq_open_net 4 8968 NULL nohasharray
33470 ++vol_cdev_read_8968 vol_cdev_read 3 8968 &seq_open_net_8968
33471 +bio_integrity_get_tag_8974 bio_integrity_get_tag 3 8974 NULL
33472 -+btrfs_alloc_free_block_8986 btrfs_alloc_free_block 3-8 8986 NULL
33473 +jbd2_journal_blocks_per_page_9004 jbd2_journal_blocks_per_page 0 9004 NULL
33474 +il_dbgfs_clear_ucode_stats_write_9016 il_dbgfs_clear_ucode_stats_write 3 9016 NULL
33475 -+sparse_index_alloc_9021 sparse_index_alloc 1 9021 NULL
33476 +snd_emu10k1_ptr_read_9026 snd_emu10k1_ptr_read 0-2 9026 NULL
33477 +fd_ioctl_9028 fd_ioctl 3 9028 NULL
33478 +nla_put_9042 nla_put 3 9042 NULL
33479 -+offset_il_node_9059 offset_il_node 0 9059 NULL
33480 -+snd_emu10k1_synth_copy_from_user_9061 snd_emu10k1_synth_copy_from_user 5-3 9061 NULL
33481 ++snd_emu10k1_synth_copy_from_user_9061 snd_emu10k1_synth_copy_from_user 3-5 9061 NULL
33482 +snd_gus_dram_peek_9062 snd_gus_dram_peek 4 9062 NULL
33483 +fib_info_hash_alloc_9075 fib_info_hash_alloc 1 9075 NULL
33484 -+create_queues_9088 create_queues 3-2 9088 NULL
33485 ++create_queues_9088 create_queues 2-3 9088 NULL
33486 +ftdi_prepare_write_buffer_9093 ftdi_prepare_write_buffer 3 9093 NULL
33487 +adxl34x_spi_read_block_9108 adxl34x_spi_read_block 3 9108 NULL
33488 -+alloc_slabmgmt_9109 alloc_slabmgmt 5 9109 NULL
33489 +caif_stream_sendmsg_9110 caif_stream_sendmsg 4 9110 NULL nohasharray
33490 +gfn_to_rmap_9110 gfn_to_rmap 3-2 9110 &caif_stream_sendmsg_9110
33491 +udf_direct_IO_9111 udf_direct_IO 4 9111 NULL
33492 +pmcraid_change_queue_depth_9116 pmcraid_change_queue_depth 2 9116 NULL
33493 -+mq_remove_mapping_9124 mq_remove_mapping 2 9124 NULL
33494 -+mlx4_alloc_resize_umem_9132 mlx4_alloc_resize_umem 3 9132 NULL
33495 -+ext4_list_backups_9138 ext4_list_backups 0 9138 NULL
33496 +apei_resources_merge_9149 apei_resources_merge 0 9149 NULL
33497 +vb2_dma_sg_alloc_9157 vb2_dma_sg_alloc 2 9157 NULL
33498 +dbg_command_buf_9165 dbg_command_buf 2 9165 NULL
33499 -+__btrfs_add_delayed_deletion_item_9177 __btrfs_add_delayed_deletion_item 0 9177 NULL
33500 +isr_irqs_read_9181 isr_irqs_read 3 9181 NULL
33501 +count_leading_zeros_9183 count_leading_zeros 0 9183 NULL
33502 +altera_swap_ir_9194 altera_swap_ir 2 9194 NULL
33503 +snd_m3_get_pointer_9206 snd_m3_get_pointer 0 9206 NULL
33504 -+get_pfn_9207 get_pfn 1 9207 NULL
33505 +virtqueue_add_9217 virtqueue_add 4-5 9217 NULL
33506 +tx_tx_prepared_descs_read_9221 tx_tx_prepared_descs_read 3 9221 NULL
33507 +sctp_getsockopt_delayed_ack_9232 sctp_getsockopt_delayed_ack 2 9232 NULL
33508 -+ext4_mark_iloc_dirty_9239 ext4_mark_iloc_dirty 0 9239 NULL
33509 -+ocfs2_clear_ext_refcount_9256 ocfs2_clear_ext_refcount 4-0 9256 NULL
33510 +hfsplus_bnode_read_u16_9262 hfsplus_bnode_read_u16 0 9262 NULL
33511 -+btrfs_search_slot_9264 btrfs_search_slot 0 9264 NULL
33512 -+ocfs2_merge_rec_right_9267 ocfs2_merge_rec_right 0 9267 NULL
33513 -+sparse_early_usemaps_alloc_node_9269 sparse_early_usemaps_alloc_node 4 9269 NULL
33514 +hdpvr_read_9273 hdpvr_read 3 9273 NULL
33515 +flakey_status_9274 flakey_status 5 9274 NULL
33516 -+migrate_misplaced_transhuge_page_9298 migrate_misplaced_transhuge_page 7 9298 NULL
33517 +iwl_dbgfs_stations_read_9309 iwl_dbgfs_stations_read 3 9309 NULL
33518 +ceph_sync_setxattr_9310 ceph_sync_setxattr 4 9310 NULL
33519 +ieee80211_if_fmt_txpower_9334 ieee80211_if_fmt_txpower 3 9334 NULL
33520 +nvme_trans_fmt_get_parm_header_9340 nvme_trans_fmt_get_parm_header 2 9340 NULL
33521 +ocfs2_orphan_for_truncate_9342 ocfs2_orphan_for_truncate 4 9342 NULL
33522 -+__ksm_enter_9347 __ksm_enter 0 9347 NULL
33523 +ll_direct_rw_pages_9361 ll_direct_rw_pages 0 9361 NULL
33524 -+of_node_to_nid_9367 of_node_to_nid 0 9367 NULL
33525 +sta_beacon_loss_count_read_9370 sta_beacon_loss_count_read 3 9370 NULL
33526 +get_request_type_9393 get_request_type 0 9393 NULL nohasharray
33527 +mlx4_bitmap_init_9393 mlx4_bitmap_init 5-2 9393 &get_request_type_9393
33528 +virtqueue_add_outbuf_9395 virtqueue_add_outbuf 3 9395 NULL
33529 +read_9397 read 3 9397 NULL
33530 -+btrfs_drop_extents_9423 btrfs_drop_extents 4-0 9423 NULL
33531 ++hash_ipportip4_expire_9415 hash_ipportip4_expire 4 9415 NULL
33532 ++btrfs_drop_extents_9423 btrfs_drop_extents 4 9423 NULL
33533 +bm_realloc_pages_9431 bm_realloc_pages 2 9431 NULL
33534 +ffs_ep0_write_9438 ffs_ep0_write 3 9438 NULL
33535 +ieee80211_if_fmt_fwded_unicast_9454 ieee80211_if_fmt_fwded_unicast 3 9454 NULL
33536 +ext3_xattr_set_acl_9467 ext3_xattr_set_acl 4 9467 NULL
33537 +agp_generic_alloc_user_9470 agp_generic_alloc_user 1 9470 NULL nohasharray
33538 +get_registers_9470 get_registers 4 9470 &agp_generic_alloc_user_9470
33539 -+btrfs_csum_file_blocks_9491 btrfs_csum_file_blocks 0 9491 NULL
33540 +crypt_status_9492 crypt_status 5 9492 NULL
33541 +lbs_threshold_write_9502 lbs_threshold_write 5 9502 NULL
33542 -+btrfs_add_delayed_data_ref_9508 btrfs_add_delayed_data_ref 0 9508 NULL
33543 +lp_write_9511 lp_write 3 9511 NULL
33544 +mext_calc_swap_extents_9517 mext_calc_swap_extents 4 9517 NULL
33545 +scsi_tgt_kspace_exec_9522 scsi_tgt_kspace_exec 8 9522 NULL
33546 +ll_max_read_ahead_whole_mb_seq_write_9528 ll_max_read_ahead_whole_mb_seq_write 3 9528 NULL
33547 +read_file_dma_9530 read_file_dma 3 9530 NULL
33548 -+ext3_alloc_branch_9534 ext3_alloc_branch 5 9534 NULL
33549 +iwl_dbgfs_bf_params_read_9542 iwl_dbgfs_bf_params_read 3 9542 NULL
33550 -+unmerge_ksm_pages_9546 unmerge_ksm_pages 0 9546 NULL nohasharray
33551 -+il_dbgfs_missed_beacon_write_9546 il_dbgfs_missed_beacon_write 3 9546 &unmerge_ksm_pages_9546
33552 ++il_dbgfs_missed_beacon_write_9546 il_dbgfs_missed_beacon_write 3 9546 NULL
33553 +compat_SyS_pwritev64_9548 compat_SyS_pwritev64 3 9548 NULL
33554 -+readl_9557 readl 0 9557 NULL
33555 +fw_node_create_9559 fw_node_create 2 9559 NULL
33556 -+ipath_get_user_pages_9561 ipath_get_user_pages 1-2 9561 NULL
33557 -+kobj_map_9566 kobj_map 3-2 9566 NULL
33558 ++kobj_map_9566 kobj_map 2-3 9566 NULL
33559 +f2fs_read_data_pages_9574 f2fs_read_data_pages 4 9574 NULL
33560 -+use_block_rsv_9597 use_block_rsv 3 9597 NULL
33561 +snd_emu10k1_fx8010_read_9605 snd_emu10k1_fx8010_read 5-6 9605 NULL
33562 -+ocfs2_claim_suballoc_bits_9615 ocfs2_claim_suballoc_bits 0 9615 NULL
33563 +lov_ost_pool_add_9626 lov_ost_pool_add 3 9626 NULL
33564 +saa7164_buffer_alloc_user_9627 saa7164_buffer_alloc_user 2 9627 NULL
33565 -+ceph_copy_user_to_page_vector_9635 ceph_copy_user_to_page_vector 3-4 9635 NULL
33566 ++ceph_copy_user_to_page_vector_9635 ceph_copy_user_to_page_vector 4-3 9635 NULL
33567 +acpi_ex_insert_into_field_9638 acpi_ex_insert_into_field 3 9638 NULL
33568 +compat_sys_keyctl_9639 compat_sys_keyctl 4 9639 NULL
33569 +ll_checksum_seq_write_9648 ll_checksum_seq_write 3 9648 NULL
33570 @@ -105261,7 +107461,6 @@ index 0000000..3d6cc0f
33571 +qib_7322_handle_hwerrors_9678 qib_7322_handle_hwerrors 3 9678 NULL
33572 +__erst_read_from_storage_9690 __erst_read_from_storage 0 9690 NULL
33573 +vx_transfer_end_9701 vx_transfer_end 0 9701 NULL
33574 -+fnb_9703 fnb 2-3-0 9703 NULL
33575 +fuse_iter_npages_9705 fuse_iter_npages 0 9705 NULL nohasharray
33576 +ieee80211_if_read_aid_9705 ieee80211_if_read_aid 3 9705 &fuse_iter_npages_9705
33577 +cfg80211_tx_mlme_mgmt_9715 cfg80211_tx_mlme_mgmt 3 9715 NULL
33578 @@ -105269,217 +107468,158 @@ index 0000000..3d6cc0f
33579 +SYSC_ppoll_9721 SYSC_ppoll 2 9721 NULL
33580 +nla_get_u8_9736 nla_get_u8 0 9736 NULL
33581 +ieee80211_if_fmt_num_mcast_sta_9738 ieee80211_if_fmt_num_mcast_sta 3 9738 NULL
33582 -+shmem_replace_page_9740 shmem_replace_page 0 9740 NULL
33583 +ddb_input_read_9743 ddb_input_read 3-0 9743 NULL
33584 +sta_last_ack_signal_read_9751 sta_last_ack_signal_read 3 9751 NULL
33585 -+ni_calculate_power_boost_limit_9757 ni_calculate_power_boost_limit 3 9757 NULL
33586 +btrfs_super_root_9763 btrfs_super_root 0 9763 NULL
33587 -+__alloc_percpu_9764 __alloc_percpu 2-1 9764 NULL
33588 -+btrfs_write_and_wait_transaction_9768 btrfs_write_and_wait_transaction 0 9768 NULL
33589 +__blk_queue_init_tags_9778 __blk_queue_init_tags 2 9778 NULL
33590 +snd_mem_proc_write_9786 snd_mem_proc_write 3 9786 NULL
33591 +kvm_age_hva_9795 kvm_age_hva 2 9795 NULL
33592 +parse_uac2_sample_rate_range_9801 parse_uac2_sample_rate_range 0 9801 NULL
33593 +tpm_data_in_9802 tpm_data_in 0 9802 NULL
33594 -+ttm_bo_fbdev_io_9805 ttm_bo_fbdev_io 4 9805 NULL
33595 +udpv6_recvmsg_9813 udpv6_recvmsg 4 9813 NULL nohasharray
33596 +ieee80211_if_read_state_9813 ieee80211_if_read_state 3 9813 &udpv6_recvmsg_9813
33597 -+svc_pool_map_get_node_9817 svc_pool_map_get_node 0 9817 NULL
33598 -+dvb_dvr_set_buffer_size_9840 dvb_dvr_set_buffer_size 2 9840 NULL
33599 +pmcraid_alloc_sglist_9864 pmcraid_alloc_sglist 1 9864 NULL
33600 +btrfs_free_reserved_extent_9867 btrfs_free_reserved_extent 2 9867 NULL
33601 +f1x_translate_sysaddr_to_cs_9868 f1x_translate_sysaddr_to_cs 2 9868 NULL
33602 -+mlx4_bitmap_alloc_range_9876 mlx4_bitmap_alloc_range 2-3 9876 NULL
33603 +wil_read_file_ioblob_9878 wil_read_file_ioblob 3 9878 NULL
33604 -+bm_register_write_9893 bm_register_write 3 9893 NULL nohasharray
33605 -+snd_midi_event_new_9893 snd_midi_event_new 1 9893 &bm_register_write_9893
33606 ++snd_midi_event_new_9893 snd_midi_event_new 1 9893 NULL nohasharray
33607 ++bm_register_write_9893 bm_register_write 3 9893 &snd_midi_event_new_9893
33608 +snd_gf1_pcm_playback_copy_9895 snd_gf1_pcm_playback_copy 5-3 9895 NULL
33609 +nonpaging_page_fault_9908 nonpaging_page_fault 2 9908 NULL
33610 -+ext4_map_blocks_9916 ext4_map_blocks 0 9916 NULL
33611 +root_nfs_parse_options_9937 root_nfs_parse_options 3 9937 NULL
33612 -+tc3589x_reg_read_9940 tc3589x_reg_read 0 9940 NULL
33613 +pstore_ftrace_knob_read_9947 pstore_ftrace_knob_read 3 9947 NULL
33614 +read_file_misc_9948 read_file_misc 3 9948 NULL
33615 -+ext2_new_blocks_9954 ext2_new_blocks 2-0 9954 NULL
33616 -+csum_partial_copy_fromiovecend_9957 csum_partial_copy_fromiovecend 4-3 9957 NULL
33617 ++csum_partial_copy_fromiovecend_9957 csum_partial_copy_fromiovecend 3-4 9957 NULL
33618 +SyS_gethostname_9964 SyS_gethostname 2 9964 NULL
33619 +get_free_serial_index_9969 get_free_serial_index 0 9969 NULL
33620 -+btrfs_add_link_9973 btrfs_add_link 5-0 9973 NULL
33621 ++btrfs_add_link_9973 btrfs_add_link 5 9973 NULL
33622 ++gameport_read_9983 gameport_read 0 9983 NULL
33623 +SYSC_move_pages_9986 SYSC_move_pages 2 9986 NULL
33624 +aat2870_dump_reg_10019 aat2870_dump_reg 0 10019 NULL
33625 -+batadv_orig_hash_add_if_10033 batadv_orig_hash_add_if 2 10033 NULL
33626 -+iterate_inodes_from_logical_10037 iterate_inodes_from_logical 0 10037 NULL
33627 -+vm_iomap_memory_10038 vm_iomap_memory 2 10038 NULL
33628 +ieee80211_set_probe_resp_10077 ieee80211_set_probe_resp 3 10077 NULL
33629 -+ufs_bitmap_search_10105 ufs_bitmap_search 0-3 10105 NULL
33630 +get_elem_size_10110 get_elem_size 0-2 10110 NULL nohasharray
33631 +dynamic_ps_timeout_read_10110 dynamic_ps_timeout_read 3 10110 &get_elem_size_10110
33632 +gfs2_meta_read_10112 gfs2_meta_read 0 10112 NULL
33633 -+SyS_migrate_pages_10134 SyS_migrate_pages 2 10134 NULL nohasharray
33634 -+offset_to_bit_10134 offset_to_bit 0-2-1-3 10134 &SyS_migrate_pages_10134
33635 ++SyS_migrate_pages_10134 SyS_migrate_pages 2 10134 NULL
33636 +aes_decrypt_packets_read_10155 aes_decrypt_packets_read 3 10155 NULL
33637 +rx_out_of_mem_read_10157 rx_out_of_mem_read 3 10157 NULL
33638 -+hidg_alloc_ep_req_10159 hidg_alloc_ep_req 2 10159 NULL nohasharray
33639 -+ol_chunk_entries_10159 ol_chunk_entries 0 10159 &hidg_alloc_ep_req_10159
33640 -+stmpe_irq_unmap_10164 stmpe_irq_unmap 2 10164 NULL
33641 ++hidg_alloc_ep_req_10159 hidg_alloc_ep_req 2 10159 NULL
33642 +asd_store_update_bios_10165 asd_store_update_bios 4 10165 NULL
33643 +kstrtol_from_user_10168 kstrtol_from_user 2 10168 NULL
33644 +proc_pid_attr_read_10173 proc_pid_attr_read 3 10173 NULL
33645 +jffs2_user_setxattr_10182 jffs2_user_setxattr 4 10182 NULL
33646 -+register_ftrace_function_10218 register_ftrace_function 0 10218 NULL
33647 +hdlc_rpr_irq_10240 hdlc_rpr_irq 2 10240 NULL
33648 -+mutex_lock_killable_10244 mutex_lock_killable 0 10244 NULL
33649 -+insert_orphan_item_10249 insert_orphan_item 0 10249 NULL
33650 +cciss_proc_write_10259 cciss_proc_write 3 10259 NULL
33651 -+gpiochip_add_to_list_10262 gpiochip_add_to_list 0 10262 NULL
33652 +__qlcnic_pci_sriov_enable_10281 __qlcnic_pci_sriov_enable 2 10281 NULL
33653 +snd_rme9652_capture_copy_10287 snd_rme9652_capture_copy 5 10287 NULL
33654 -+ubi_leb_change_10289 ubi_leb_change 0-4 10289 NULL
33655 +read_emulate_10310 read_emulate 2-4 10310 NULL
33656 +read_file_spectral_count_10320 read_file_spectral_count 3 10320 NULL
33657 -+ttm_object_device_init_10321 ttm_object_device_init 2 10321 NULL
33658 +compat_SyS_writev_10327 compat_SyS_writev 3 10327 NULL
33659 -+ubi_leb_read_10328 ubi_leb_read 0 10328 NULL
33660 +tun_sendmsg_10337 tun_sendmsg 4 10337 NULL
33661 -+get_dump_page_10338 get_dump_page 1 10338 NULL
33662 +ufx_alloc_urb_list_10349 ufx_alloc_urb_list 3 10349 NULL
33663 +whci_add_cap_10350 whci_add_cap 0 10350 NULL
33664 +dbAllocAny_10354 dbAllocAny 0 10354 NULL
33665 +ath6kl_listen_int_read_10355 ath6kl_listen_int_read 3 10355 NULL
33666 -+__ntfs_cluster_free_10360 __ntfs_cluster_free 0 10360 NULL
33667 +ms_write_multiple_pages_10362 ms_write_multiple_pages 6-5 10362 NULL
33668 +sta_ht_capa_read_10366 sta_ht_capa_read 3 10366 NULL
33669 +ecryptfs_decode_and_decrypt_filename_10379 ecryptfs_decode_and_decrypt_filename 5 10379 NULL
33670 +do_compat_pselect_10398 do_compat_pselect 1 10398 NULL
33671 +fwtty_rx_10434 fwtty_rx 3 10434 NULL
33672 +event_phy_transmit_error_read_10471 event_phy_transmit_error_read 3 10471 NULL
33673 ++hash_ipportip6_expire_10478 hash_ipportip6_expire 4 10478 NULL
33674 ++nouveau_pwr_create__10483 nouveau_pwr_create_ 4 10483 NULL
33675 +ext4_itable_unused_count_10501 ext4_itable_unused_count 0 10501 NULL
33676 +qib_alloc_fast_reg_page_list_10507 qib_alloc_fast_reg_page_list 2 10507 NULL
33677 +sel_write_disable_10511 sel_write_disable 3 10511 NULL
33678 +osd_req_write_sg_kern_10514 osd_req_write_sg_kern 5 10514 NULL
33679 +rds_message_alloc_10517 rds_message_alloc 1 10517 NULL
33680 -+qlcnic_pci_sriov_enable_10519 qlcnic_pci_sriov_enable 2 10519 NULL nohasharray
33681 -+hash_netiface4_expire_10519 hash_netiface4_expire 3 10519 &qlcnic_pci_sriov_enable_10519
33682 -+snd_pcm_hw_params_user_10520 snd_pcm_hw_params_user 0 10520 NULL
33683 -+ocfs2_add_refcounted_extent_10526 ocfs2_add_refcounted_extent 6 10526 NULL
33684 -+snd_pcm_lib_read_10536 snd_pcm_lib_read 0-3 10536 NULL nohasharray
33685 -+kstrtouint_from_user_10536 kstrtouint_from_user 2 10536 &snd_pcm_lib_read_10536
33686 -+SYSC_read_10545 SYSC_read 3 10545 NULL
33687 ++qlcnic_pci_sriov_enable_10519 qlcnic_pci_sriov_enable 2 10519 NULL
33688 ++kstrtouint_from_user_10536 kstrtouint_from_user 2 10536 NULL nohasharray
33689 ++snd_pcm_lib_read_10536 snd_pcm_lib_read 0-3 10536 &kstrtouint_from_user_10536
33690 +ext4_write_begin_10576 ext4_write_begin 3-4 10576 NULL
33691 +scrub_remap_extent_10588 scrub_remap_extent 2 10588 NULL
33692 -+otp_read_10594 otp_read 5-4-2 10594 NULL
33693 ++otp_read_10594 otp_read 2-4-5 10594 NULL
33694 +supply_map_read_file_10608 supply_map_read_file 3 10608 NULL
33695 +ima_show_htable_violations_10619 ima_show_htable_violations 3 10619 NULL
33696 -+alloc_coherent_10632 alloc_coherent 2 10632 NULL
33697 -+ubi_io_write_vid_hdr_10660 ubi_io_write_vid_hdr 0 10660 NULL nohasharray
33698 -+nfs_idmap_lookup_id_10660 nfs_idmap_lookup_id 2 10660 &ubi_io_write_vid_hdr_10660
33699 ++nfs_idmap_lookup_id_10660 nfs_idmap_lookup_id 2 10660 NULL
33700 +efx_max_tx_len_10662 efx_max_tx_len 0-2 10662 NULL
33701 -+dtf_read_device_10663 dtf_read_device 3 10663 NULL
33702 +parport_write_10669 parport_write 0 10669 NULL
33703 -+alloc_vmap_area_10682 alloc_vmap_area 5 10682 NULL
33704 +edge_write_10692 edge_write 4 10692 NULL
33705 -+ubi_wl_get_peb_10699 ubi_wl_get_peb 0 10699 NULL
33706 -+inl_10708 inl 0 10708 NULL nohasharray
33707 -+selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 &inl_10708
33708 -+pvr2_ioread_read_10720 pvr2_ioread_read 3 10720 NULL nohasharray
33709 -+shash_async_setkey_10720 shash_async_setkey 3 10720 &pvr2_ioread_read_10720
33710 ++selinux_inode_setxattr_10708 selinux_inode_setxattr 4 10708 NULL nohasharray
33711 ++inl_10708 inl 0 10708 &selinux_inode_setxattr_10708
33712 ++shash_async_setkey_10720 shash_async_setkey 3 10720 NULL nohasharray
33713 ++pvr2_ioread_read_10720 pvr2_ioread_read 3 10720 &shash_async_setkey_10720
33714 +spi_sync_10731 spi_sync 0 10731 NULL
33715 -+sctp_getsockopt_maxseg_10737 sctp_getsockopt_maxseg 2 10737 NULL nohasharray
33716 -+apu_get_register_10737 apu_get_register 0 10737 &sctp_getsockopt_maxseg_10737
33717 -+alloc_one_pg_vec_page_10747 alloc_one_pg_vec_page 1 10747 NULL
33718 -+ttm_ref_object_add_10748 ttm_ref_object_add 0 10748 NULL
33719 ++apu_get_register_10737 apu_get_register 0 10737 NULL nohasharray
33720 ++sctp_getsockopt_maxseg_10737 sctp_getsockopt_maxseg 2 10737 &apu_get_register_10737
33721 +SyS_io_getevents_10756 SyS_io_getevents 3 10756 NULL
33722 +vhost_add_used_n_10760 vhost_add_used_n 3 10760 NULL
33723 -+kvm_read_guest_atomic_10765 kvm_read_guest_atomic 2-4 10765 NULL
33724 -+wb_set_dirty_10778 wb_set_dirty 2 10778 NULL
33725 ++kvm_read_guest_atomic_10765 kvm_read_guest_atomic 4 10765 NULL
33726 +__qp_memcpy_to_queue_10779 __qp_memcpy_to_queue 2-4 10779 NULL
33727 -+i915_gem_wait_for_error_10791 i915_gem_wait_for_error 0 10791 NULL
33728 -+snd_mask_value_10794 snd_mask_value 0 10794 NULL
33729 +diva_set_trace_filter_10820 diva_set_trace_filter 0-1 10820 NULL
33730 +lbs_sleepparams_read_10840 lbs_sleepparams_read 3 10840 NULL
33731 -+ida_get_new_above_10853 ida_get_new_above 2-0 10853 NULL
33732 ++ida_get_new_above_10853 ida_get_new_above 0 10853 NULL
33733 +fuse_conn_max_background_read_10855 fuse_conn_max_background_read 3 10855 NULL
33734 -+ol_chunk_blocks_10864 ol_chunk_blocks 0 10864 NULL
33735 +snd_pcm_oss_write1_10872 snd_pcm_oss_write1 3 10872 NULL
33736 -+drm_ht_insert_item_10877 drm_ht_insert_item 0 10877 NULL
33737 +wiidebug_drm_write_10879 wiidebug_drm_write 3 10879 NULL
33738 +get_scq_10897 get_scq 2 10897 NULL
33739 +cgroup_write_string_10900 cgroup_write_string 5 10900 NULL
33740 +tifm_alloc_adapter_10903 tifm_alloc_adapter 1 10903 NULL
33741 +lprocfs_wr_atomic_10912 lprocfs_wr_atomic 3 10912 NULL
33742 -+__copy_from_user_10918 __copy_from_user 3-0 10918 NULL
33743 ++__copy_from_user_10918 __copy_from_user 0-3 10918 NULL
33744 +kobject_add_10919 kobject_add 0 10919 NULL
33745 -+da9052_map_irq_10952 da9052_map_irq 2 10952 NULL
33746 ++ar9003_dump_modal_eeprom_10959 ar9003_dump_modal_eeprom 3-2-0 10959 NULL
33747 +ci_port_test_write_10962 ci_port_test_write 3 10962 NULL
33748 +bm_entry_read_10976 bm_entry_read 3 10976 NULL
33749 +sched_autogroup_write_10984 sched_autogroup_write 3 10984 NULL
33750 -+__hci_num_ctrl_10985 __hci_num_ctrl 0 10985 NULL
33751 -+lz4_compress_10986 lz4_compress 2 10986 NULL
33752 -+do_switch_10994 do_switch 0 10994 NULL
33753 +xfrm_hash_alloc_10997 xfrm_hash_alloc 1 10997 NULL
33754 -+btrfs_add_delayed_extent_op_11000 btrfs_add_delayed_extent_op 0 11000 NULL
33755 +rx_filter_accum_arp_pend_requests_read_11003 rx_filter_accum_arp_pend_requests_read 3 11003 NULL
33756 +SetLineNumber_11023 SetLineNumber 0 11023 NULL
33757 -+btrfs_find_space_for_alloc_11028 btrfs_find_space_for_alloc 2 11028 NULL
33758 -+mb_find_next_bit_11037 mb_find_next_bit 0-2-3 11037 NULL
33759 +tda10048_writeregbulk_11050 tda10048_writeregbulk 4 11050 NULL
33760 -+insert_inline_extent_backref_11063 insert_inline_extent_backref 8-0 11063 NULL
33761 ++insert_inline_extent_backref_11063 insert_inline_extent_backref 8 11063 NULL
33762 +tcp_send_mss_11079 tcp_send_mss 0 11079 NULL
33763 -+snd_pcm_delay_11081 snd_pcm_delay 0 11081 NULL
33764 +count_argc_11083 count_argc 0 11083 NULL
33765 ++ocfs2_blocks_per_xattr_bucket_11099 ocfs2_blocks_per_xattr_bucket 0 11099 NULL
33766 +kvm_write_guest_cached_11106 kvm_write_guest_cached 4 11106 NULL
33767 -+stmpe_gpio_to_irq_11110 stmpe_gpio_to_irq 2 11110 NULL
33768 +tw_change_queue_depth_11116 tw_change_queue_depth 2 11116 NULL
33769 +page_offset_11120 page_offset 0 11120 NULL
33770 -+tracing_buffers_read_11124 tracing_buffers_read 3 11124 NULL nohasharray
33771 -+cea_db_payload_len_11124 cea_db_payload_len 0 11124 &tracing_buffers_read_11124
33772 -+alloc_alien_cache_11127 alloc_alien_cache 2-1 11127 NULL
33773 -+eb_lookup_objects_11163 eb_lookup_objects 0 11163 NULL
33774 ++cea_db_payload_len_11124 cea_db_payload_len 0 11124 NULL nohasharray
33775 ++tracing_buffers_read_11124 tracing_buffers_read 3 11124 &cea_db_payload_len_11124
33776 ++alloc_alien_cache_11127 alloc_alien_cache 2 11127 NULL
33777 +snd_gf1_pcm_playback_silence_11172 snd_gf1_pcm_playback_silence 4-3 11172 NULL
33778 +il_dbgfs_rx_queue_read_11221 il_dbgfs_rx_queue_read 3 11221 NULL
33779 +comedi_alloc_spriv_11234 comedi_alloc_spriv 2 11234 NULL
33780 -+mmap_region_11247 mmap_region 0-2 11247 NULL
33781 -+ubifs_write_node_11258 ubifs_write_node 5-3 11258 NULL
33782 -+dm_cache_discard_bitset_resize_11262 dm_cache_discard_bitset_resize 3 11262 NULL
33783 +hugetlbfs_read_11268 hugetlbfs_read 3 11268 NULL
33784 +ath6kl_power_params_write_11274 ath6kl_power_params_write 3 11274 NULL
33785 +__proc_daemon_file_11305 __proc_daemon_file 5 11305 NULL
33786 -+split_vma_11312 split_vma 0 11312 NULL
33787 -+btrfs_update_inode_fallback_11313 btrfs_update_inode_fallback 0 11313 NULL
33788 +ext4_xattr_check_names_11314 ext4_xattr_check_names 0 11314 NULL
33789 ++bcache_dev_sectors_dirty_add_11315 bcache_dev_sectors_dirty_add 3-4 11315 NULL
33790 +sk_filter_size_11316 sk_filter_size 0 11316 NULL nohasharray
33791 +tcp_send_rcvq_11316 tcp_send_rcvq 3 11316 &sk_filter_size_11316
33792 -+shmem_radix_tree_replace_11325 shmem_radix_tree_replace 0 11325 NULL
33793 +construct_key_11329 construct_key 3 11329 NULL nohasharray
33794 +__kfifo_out_peek_11329 __kfifo_out_peek 0-3 11329 &construct_key_11329
33795 +next_segment_11330 next_segment 0-2-1 11330 NULL
33796 +persistent_ram_buffer_map_11332 persistent_ram_buffer_map 2-1 11332 NULL
33797 +ext4_get_inline_size_11349 ext4_get_inline_size 0 11349 NULL
33798 -+nl80211_send_mgmt_11353 nl80211_send_mgmt 7 11353 NULL nohasharray
33799 -+sel_write_create_11353 sel_write_create 3 11353 &nl80211_send_mgmt_11353
33800 -+drm_vblank_init_11362 drm_vblank_init 2 11362 NULL
33801 ++sel_write_create_11353 sel_write_create 3 11353 NULL nohasharray
33802 ++nl80211_send_mgmt_11353 nl80211_send_mgmt 7 11353 &sel_write_create_11353
33803 +qib_get_base_info_11369 qib_get_base_info 3 11369 NULL
33804 ++nft_value_dump_11381 nft_value_dump 3 11381 NULL
33805 +isku_sysfs_read_keys_capslock_11392 isku_sysfs_read_keys_capslock 6 11392 NULL
33806 +dev_irnet_write_11398 dev_irnet_write 3 11398 NULL
33807 -+__btrfs_add_delayed_insertion_item_11400 __btrfs_add_delayed_insertion_item 0 11400 NULL
33808 +lprocfs_wr_evict_client_11402 lprocfs_wr_evict_client 3 11402 NULL
33809 +___alloc_bootmem_11410 ___alloc_bootmem 1 11410 NULL
33810 +str_to_user_11411 str_to_user 2 11411 NULL
33811 +mem_fw_gen_free_mem_blks_read_11413 mem_fw_gen_free_mem_blks_read 3 11413 NULL
33812 +ath6kl_wmi_test_rx_11414 ath6kl_wmi_test_rx 3 11414 NULL
33813 -+relocate_entry_gtt_11416 relocate_entry_gtt 0 11416 NULL
33814 -+adis16480_show_firmware_revision_11417 adis16480_show_firmware_revision 3 11417 NULL
33815 ++adis16480_show_firmware_revision_11417 adis16480_show_firmware_revision 3 11417 NULL nohasharray
33816 ++import_sec_validate_get_11417 import_sec_validate_get 0 11417 &adis16480_show_firmware_revision_11417
33817 +trace_options_read_11419 trace_options_read 3 11419 NULL
33818 +i40e_dbg_command_write_11421 i40e_dbg_command_write 3 11421 NULL
33819 -+__irq_set_trigger_11422 __irq_set_trigger 0 11422 NULL nohasharray
33820 -+xd_read_multiple_pages_11422 xd_read_multiple_pages 5-4 11422 &__irq_set_trigger_11422
33821 -+prepare_image_11424 prepare_image 0 11424 NULL
33822 -+ext3_xattr_block_list_11428 ext3_xattr_block_list 3 11428 NULL
33823 ++xd_read_multiple_pages_11422 xd_read_multiple_pages 5-4 11422 NULL
33824 +bttv_read_11432 bttv_read 3 11432 NULL
33825 +create_zero_mask_11453 create_zero_mask 0-1 11453 NULL
33826 +do_blockdev_direct_IO_11455 do_blockdev_direct_IO 0-6 11455 NULL
33827 -+swp_offset_11475 swp_offset 0 11475 NULL
33828 -+st_sensors_write_data_with_mask_11476 st_sensors_write_data_with_mask 3 11476 NULL
33829 +pci_set_power_state_11479 pci_set_power_state 0 11479 NULL nohasharray
33830 +sca3000_read_first_n_hw_rb_11479 sca3000_read_first_n_hw_rb 2 11479 &pci_set_power_state_11479
33831 +xfs_file_buffered_aio_write_11492 xfs_file_buffered_aio_write 4 11492 NULL
33832 @@ -105487,39 +107627,28 @@ index 0000000..3d6cc0f
33833 +kmem_zalloc_11510 kmem_zalloc 1 11510 NULL
33834 +ll_direct_IO_26_seg_11518 ll_direct_IO_26_seg 0 11518 NULL
33835 +twl_direction_in_11527 twl_direction_in 2 11527 NULL
33836 -+setup_IO_APIC_irq_extra_11537 setup_IO_APIC_irq_extra 1 11537 NULL
33837 -+radix_tree_extend_11555 radix_tree_extend 0 11555 NULL
33838 +skb_cow_data_11565 skb_cow_data 0 11565 NULL
33839 -+posix_acl_create_masq_11567 posix_acl_create_masq 0 11567 NULL
33840 -+qgroup_account_ref_step2_11575 qgroup_account_ref_step2 0 11575 NULL
33841 +lpfc_idiag_ctlacc_write_11576 lpfc_idiag_ctlacc_write 3 11576 NULL
33842 +oprofilefs_ulong_to_user_11582 oprofilefs_ulong_to_user 3 11582 NULL
33843 ++batadv_iv_ogm_orig_add_if_11586 batadv_iv_ogm_orig_add_if 2 11586 NULL
33844 +snd_pcm_action_11589 snd_pcm_action 0 11589 NULL
33845 +fw_device_op_ioctl_11595 fw_device_op_ioctl 2 11595 NULL
33846 -+btrfs_uuid_tree_add_11598 btrfs_uuid_tree_add 0 11598 NULL
33847 ++batadv_iv_ogm_orig_del_if_11604 batadv_iv_ogm_orig_del_if 2 11604 NULL
33848 +SYSC_mq_timedsend_11607 SYSC_mq_timedsend 3 11607 NULL
33849 -+i915_gem_object_pin_11630 i915_gem_object_pin 0 11630 NULL
33850 -+add_new_bitmap_11644 add_new_bitmap 3 11644 NULL
33851 +sisusb_send_bridge_packet_11649 sisusb_send_bridge_packet 2 11649 NULL
33852 -+nla_total_size_11658 nla_total_size 0-1 11658 NULL
33853 ++nla_total_size_11658 nla_total_size 1-0 11658 NULL
33854 +slab_ksize_11664 slab_ksize 0 11664 NULL
33855 -+__btrfs_run_delayed_items_11671 __btrfs_run_delayed_items 0 11671 NULL
33856 +ide_queue_pc_tail_11673 ide_queue_pc_tail 5 11673 NULL
33857 +compat_SyS_msgsnd_11675 compat_SyS_msgsnd 3 11675 NULL
33858 +btrfs_alloc_delayed_item_11678 btrfs_alloc_delayed_item 1 11678 NULL
33859 -+dsp_buffer_alloc_11684 dsp_buffer_alloc 2 11684 NULL
33860 +sctp_setsockopt_hmac_ident_11687 sctp_setsockopt_hmac_ident 3 11687 NULL
33861 +split_11691 split 2 11691 NULL
33862 +snd_ctl_elem_user_tlv_11695 snd_ctl_elem_user_tlv 3 11695 NULL
33863 +blk_rq_cur_bytes_11723 blk_rq_cur_bytes 0 11723 NULL
33864 +dm_bio_prison_create_11749 dm_bio_prison_create 1 11749 NULL
33865 +iwl_dbgfs_qos_read_11753 iwl_dbgfs_qos_read 3 11753 NULL
33866 -+intel_map_page_11762 intel_map_page 4-3 11762 NULL
33867 -+ocfs2_relink_block_group_11769 ocfs2_relink_block_group 0 11769 NULL
33868 +ps_pspoll_timeouts_read_11776 ps_pspoll_timeouts_read 3 11776 NULL
33869 -+ebt_buf_add_11779 ebt_buf_add 0 11779 NULL
33870 +btrfs_key_blockptr_11786 btrfs_key_blockptr 0 11786 NULL
33871 -+rtw_alloc_etherdev_11792 rtw_alloc_etherdev 1 11792 NULL
33872 +pcpu_fc_alloc_11818 pcpu_fc_alloc 2 11818 NULL
33873 +umc_device_register_11824 umc_device_register 0 11824 NULL
33874 +zerocopy_sg_from_iovec_11828 zerocopy_sg_from_iovec 3 11828 NULL
33875 @@ -105529,7 +107658,6 @@ index 0000000..3d6cc0f
33876 +ecryptfs_copy_filename_11868 ecryptfs_copy_filename 4 11868 NULL
33877 +ieee80211_rx_bss_info_11887 ieee80211_rx_bss_info 3 11887 NULL
33878 +mdc_rename_11899 mdc_rename 4-6 11899 NULL
33879 -+perf_mmap_alloc_page_11904 perf_mmap_alloc_page 1 11904 NULL
33880 +xstateregs_get_11906 xstateregs_get 4 11906 NULL
33881 +ti_write_11916 ti_write 4 11916 NULL
33882 +fs_devrw_entry_11924 fs_devrw_entry 3 11924 NULL
33883 @@ -105537,213 +107665,158 @@ index 0000000..3d6cc0f
33884 +atomic_sub_return_11939 atomic_sub_return 0-1 11939 NULL
33885 +r1_sync_page_io_11963 r1_sync_page_io 3 11963 NULL
33886 +f1x_swap_interleaved_region_11970 f1x_swap_interleaved_region 0-2 11970 NULL
33887 -+usc_InReg_11976 usc_InReg 0 11976 NULL nohasharray
33888 -+split_node_11976 split_node 0 11976 &usc_InReg_11976
33889 -+BeceemFlashBulkRead_11979 BeceemFlashBulkRead 0 11979 NULL
33890 +read_and_add_raw_conns_11987 read_and_add_raw_conns 0 11987 NULL
33891 +i40e_pci_sriov_configure_12011 i40e_pci_sriov_configure 2 12011 NULL
33892 -+intel_init_ring_buffer_12016 intel_init_ring_buffer 0 12016 NULL
33893 +ftdi_elan_total_command_size_12045 ftdi_elan_total_command_size 0 12045 NULL
33894 -+did_overwrite_ref_12046 did_overwrite_ref 0 12046 NULL
33895 +ieee80211_if_read_user_power_level_12050 ieee80211_if_read_user_power_level 3 12050 NULL
33896 +il4965_ucode_tx_stats_read_12064 il4965_ucode_tx_stats_read 3 12064 NULL
33897 +ptc_proc_write_12076 ptc_proc_write 3 12076 NULL
33898 -+ubifs_recover_log_leb_12079 ubifs_recover_log_leb 3 12079 NULL
33899 -+pse36_gfn_delta_12087 pse36_gfn_delta 0-1 12087 NULL
33900 ++batadv_tt_global_size_mod_12085 batadv_tt_global_size_mod 3 12085 NULL
33901 +rtw_malloc2d_12102 rtw_malloc2d 1-2-3 12102 NULL
33902 -+twl6030_irq_map_12105 twl6030_irq_map 2 12105 NULL
33903 -+i915_gem_evict_something_12118 i915_gem_evict_something 0 12118 NULL
33904 +alloc_bulk_urbs_generic_12127 alloc_bulk_urbs_generic 5 12127 NULL
33905 +set_powered_12129 set_powered 4 12129 NULL
33906 +ramoops_init_prz_12134 ramoops_init_prz 5 12134 NULL
33907 +xfs_handle_to_dentry_12135 xfs_handle_to_dentry 3 12135 NULL
33908 +rawv6_seticmpfilter_12137 rawv6_seticmpfilter 5 12137 NULL
33909 -+vmw_fifo_reserve_12141 vmw_fifo_reserve 2 12141 NULL
33910 +rawsock_recvmsg_12144 rawsock_recvmsg 4 12144 NULL
33911 -+get_idx_gc_leb_12148 get_idx_gc_leb 0 12148 NULL
33912 +btmrvl_sdio_host_to_card_12152 btmrvl_sdio_host_to_card 3 12152 NULL
33913 -+ocfs2_local_alloc_new_window_12153 ocfs2_local_alloc_new_window 0 12153 NULL
33914 +vmbus_open_12154 vmbus_open 2-3 12154 NULL
33915 -+dma_memcpy_to_iovec_12173 dma_memcpy_to_iovec 5 12173 NULL
33916 ++fnic_reset_stats_write_12177 fnic_reset_stats_write 3 12177 NULL
33917 +LNetEQAlloc_12178 LNetEQAlloc 1 12178 NULL
33918 +ddp_make_gl_12179 ddp_make_gl 1 12179 NULL
33919 +compat_do_arpt_set_ctl_12184 compat_do_arpt_set_ctl 4 12184 NULL
33920 +ip_generic_getfrag_12187 ip_generic_getfrag 3-4 12187 NULL
33921 -+scaled_div_12201 scaled_div 2-1-0 12201 NULL
33922 +snd_pcm_kernel_ioctl_12219 snd_pcm_kernel_ioctl 0 12219 NULL
33923 +fuse_get_req_12221 fuse_get_req 2 12221 NULL nohasharray
33924 +aat2870_reg_read_file_12221 aat2870_reg_read_file 3 12221 &fuse_get_req_12221
33925 +__alloc_bootmem_low_nopanic_12235 __alloc_bootmem_low_nopanic 1 12235 NULL
33926 -+kvirt_to_pa_12247 kvirt_to_pa 0 12247 NULL
33927 +ib_uverbs_unmarshall_recv_12251 ib_uverbs_unmarshall_recv 5 12251 NULL
33928 +shash_compat_setkey_12267 shash_compat_setkey 3 12267 NULL
33929 +add_sctp_bind_addr_12269 add_sctp_bind_addr 3 12269 NULL
33930 +note_last_dentry_12285 note_last_dentry 3 12285 NULL
33931 +roundup_to_multiple_of_64_12288 roundup_to_multiple_of_64 0-1 12288 NULL nohasharray
33932 +il_dbgfs_nvm_read_12288 il_dbgfs_nvm_read 3 12288 &roundup_to_multiple_of_64_12288
33933 -+wrap_min_12303 wrap_min 0-1-2 12303 NULL
33934 +bt_sock_recvmsg_12316 bt_sock_recvmsg 4 12316 NULL
33935 +pcbit_writecmd_12332 pcbit_writecmd 2 12332 NULL
33936 -+btrfs_lookup_file_extent_12341 btrfs_lookup_file_extent 0 12341 NULL
33937 +mptctl_ioctl_12355 mptctl_ioctl 2 12355 NULL
33938 -+paging32_walk_addr_12359 paging32_walk_addr 3 12359 NULL
33939 +__nf_ct_ext_add_length_12364 __nf_ct_ext_add_length 3 12364 NULL
33940 +xfs_iext_inline_to_direct_12384 xfs_iext_inline_to_direct 2 12384 NULL
33941 +btrfs_file_extent_ram_bytes_12391 btrfs_file_extent_ram_bytes 0 12391 NULL nohasharray
33942 -+populate_dir_12391 populate_dir 0 12391 &btrfs_file_extent_ram_bytes_12391
33943 -+ntfs_get_size_for_mapping_pairs_12413 ntfs_get_size_for_mapping_pairs 0 12413 NULL nohasharray
33944 -+ext4_bg_num_gdb_nometa_12413 ext4_bg_num_gdb_nometa 0 12413 &ntfs_get_size_for_mapping_pairs_12413
33945 ++populate_dir_12391 populate_dir 0 12391 &btrfs_file_extent_ram_bytes_12391 nohasharray
33946 ++write_file_dump_12391 write_file_dump 3 12391 &populate_dir_12391
33947 +hbucket_elem_add_12416 hbucket_elem_add 3 12416 NULL
33948 +ieee80211_if_read_num_mcast_sta_12419 ieee80211_if_read_num_mcast_sta 3 12419 NULL
33949 ++ptlrpc_set_wait_12426 ptlrpc_set_wait 0 12426 NULL
33950 +cfs_array_alloc_12441 cfs_array_alloc 2 12441 NULL
33951 +skb_do_copy_data_nocache_12465 skb_do_copy_data_nocache 5 12465 NULL
33952 +x25_sendmsg_12487 x25_sendmsg 4 12487 NULL
33953 +fnic_trace_ctrl_read_12497 fnic_trace_ctrl_read 3 12497 NULL
33954 +qib_alloc_fast_reg_mr_12526 qib_alloc_fast_reg_mr 2 12526 NULL
33955 +xfs_get_extsz_hint_12531 xfs_get_extsz_hint 0 12531 NULL
33956 -+kvm_setup_async_pf_12555 kvm_setup_async_pf 3 12555 NULL
33957 -+ib_umem_get_12557 ib_umem_get 2-3 12557 NULL
33958 -+ceph_osdc_wait_request_12572 ceph_osdc_wait_request 0 12572 NULL
33959 +hvc_alloc_12579 hvc_alloc 4 12579 NULL
33960 -+snd_pcm_plugin_alloc_12580 snd_pcm_plugin_alloc 2 12580 NULL
33961 +pcpu_extend_area_map_12589 pcpu_extend_area_map 2 12589 NULL
33962 +tlbflush_write_file_12598 tlbflush_write_file 3 12598 NULL
33963 +vhci_put_user_12604 vhci_put_user 4 12604 NULL
33964 -+ipath_mmap_mem_12625 ipath_mmap_mem 3 12625 NULL
33965 +sdhci_pltfm_init_12627 sdhci_pltfm_init 3 12627 NULL
33966 +pwr_rcvd_awake_bcns_cnt_read_12632 pwr_rcvd_awake_bcns_cnt_read 3 12632 NULL
33967 +pn_sendmsg_12640 pn_sendmsg 4 12640 NULL
33968 +dwc3_link_state_write_12641 dwc3_link_state_write 3 12641 NULL
33969 +nr_recvmsg_12649 nr_recvmsg 4 12649 NULL
33970 -+wb_create_12651 wb_create 1 12651 NULL
33971 +rtw_android_get_link_speed_12655 rtw_android_get_link_speed 0 12655 NULL
33972 +ocfs2_read_block_12659 ocfs2_read_block 0 12659 NULL
33973 ++lustre_pack_request_v2_12665 lustre_pack_request_v2 0 12665 NULL
33974 +sel_read_class_12669 sel_read_class 3 12669 NULL nohasharray
33975 -+sparse_mem_maps_populate_node_12669 sparse_mem_maps_populate_node 4-5 12669 &sel_read_class_12669
33976 -+ext4_writepage_trans_blocks_12674 ext4_writepage_trans_blocks 0 12674 NULL
33977 -+ext4_bg_num_gdb_meta_12702 ext4_bg_num_gdb_meta 0 12702 NULL
33978 ++sparse_mem_maps_populate_node_12669 sparse_mem_maps_populate_node 4 12669 &sel_read_class_12669
33979 +iwl_dbgfs_calib_disabled_write_12707 iwl_dbgfs_calib_disabled_write 3 12707 NULL
33980 +ieee80211_if_read_num_buffered_multicast_12716 ieee80211_if_read_num_buffered_multicast 3 12716 NULL
33981 +ivtv_write_12721 ivtv_write 3 12721 NULL
33982 +key_rx_spec_read_12736 key_rx_spec_read 3 12736 NULL
33983 +__mei_cl_async_send_12737 __mei_cl_async_send 3 12737 NULL
33984 -+run_delayed_data_ref_12749 run_delayed_data_ref 0 12749 NULL
33985 +ieee80211_if_read_dot11MeshMaxRetries_12756 ieee80211_if_read_dot11MeshMaxRetries 3 12756 NULL
33986 +listxattr_12769 listxattr 3 12769 NULL
33987 +sctp_ssnmap_init_12772 sctp_ssnmap_init 2-3 12772 NULL
33988 -+btrfs_remove_free_space_12793 btrfs_remove_free_space 2-0 12793 NULL
33989 +scsi_adjust_queue_depth_12802 scsi_adjust_queue_depth 3 12802 NULL
33990 +xfs_inumbers_fmt_12817 xfs_inumbers_fmt 3 12817 NULL
33991 -+tlv_put_uuid_12824 tlv_put_uuid 0 12824 NULL
33992 +readq_12825 readq 0 12825 NULL
33993 +SyS_add_key_12834 SyS_add_key 4 12834 NULL
33994 +TSS_authhmac_12839 TSS_authhmac 3 12839 NULL
33995 +spidev_sync_12842 spidev_sync 0 12842 NULL
33996 +spidev_ioctl_12846 spidev_ioctl 2 12846 NULL
33997 ++ath9k_dump_4k_modal_eeprom_12883 ath9k_dump_4k_modal_eeprom 3-2 12883 NULL
33998 +get_leb_cnt_12892 get_leb_cnt 0-2 12892 NULL
33999 -+ocfs2_hamming_encode_block_12904 ocfs2_hamming_encode_block 2 12904 NULL
34000 +get_virtual_node_size_12908 get_virtual_node_size 0 12908 NULL
34001 +rds_pages_in_vec_12922 rds_pages_in_vec 0 12922 NULL
34002 -+free_tind_blocks_12926 free_tind_blocks 0 12926 NULL
34003 -+ci_ll_init_12930 ci_ll_init 3 12930 NULL
34004 -+SYSC_sendfile_12936 SYSC_sendfile 4 12936 NULL
34005 +do_inode_permission_12946 do_inode_permission 0 12946 NULL
34006 +bm_status_write_12964 bm_status_write 3 12964 NULL
34007 +raid56_parity_recover_12987 raid56_parity_recover 5 12987 NULL
34008 +TransmitTcb_12989 TransmitTcb 4 12989 NULL
34009 +sk_peek_offset_12991 sk_peek_offset 0 12991 NULL
34010 +subsystem_filter_write_13022 subsystem_filter_write 3 13022 NULL
34011 -+btrfs_write_dirty_block_groups_13030 btrfs_write_dirty_block_groups 0 13030 NULL
34012 +generic_segment_checks_13041 generic_segment_checks 0 13041 NULL
34013 -+SyS_sendfile64_13043 SyS_sendfile64 4 13043 NULL
34014 +ocfs2_write_begin_13045 ocfs2_write_begin 3-4 13045 NULL
34015 -+ptlrpc_lprocfs_threads_min_seq_write_13060 ptlrpc_lprocfs_threads_min_seq_write 3 13060 NULL nohasharray
34016 -+__dn_setsockopt_13060 __dn_setsockopt 5 13060 &ptlrpc_lprocfs_threads_min_seq_write_13060
34017 ++__dn_setsockopt_13060 __dn_setsockopt 5 13060 NULL nohasharray
34018 ++ptlrpc_lprocfs_threads_min_seq_write_13060 ptlrpc_lprocfs_threads_min_seq_write 3 13060 &__dn_setsockopt_13060
34019 +biovec_create_pool_13079 biovec_create_pool 2 13079 NULL
34020 -+_ocfs2_free_suballoc_bits_13085 _ocfs2_free_suballoc_bits 0 13085 NULL
34021 -+irq_set_chip_and_handler_13088 irq_set_chip_and_handler 1 13088 NULL
34022 +xattr_getsecurity_13090 xattr_getsecurity 0 13090 NULL
34023 -+mb_find_next_zero_bit_13100 mb_find_next_zero_bit 2-3-0 13100 NULL
34024 +ttm_dma_pool_alloc_new_pages_13105 ttm_dma_pool_alloc_new_pages 3 13105 NULL
34025 +SyS_msgrcv_13109 SyS_msgrcv 3 13109 NULL
34026 +snd_rme96_playback_copy_13111 snd_rme96_playback_copy 5 13111 NULL
34027 -+xen_allocate_irq_dynamic_13116 xen_allocate_irq_dynamic 0 13116 NULL
34028 +bfad_debugfs_read_13119 bfad_debugfs_read 3 13119 NULL
34029 +blk_update_request_13146 blk_update_request 3 13146 NULL
34030 ++ocfs2_quota_trans_credits_13150 ocfs2_quota_trans_credits 0 13150 NULL
34031 +caif_stream_recvmsg_13173 caif_stream_recvmsg 4 13173 NULL
34032 +pwr_disable_ps_read_13176 pwr_disable_ps_read 3 13176 NULL
34033 +ucs2_strlen_13178 ucs2_strlen 0 13178 NULL
34034 +dgrp_net_ioctl_13183 dgrp_net_ioctl 2 13183 NULL
34035 +create_trace_uprobe_13184 create_trace_uprobe 1 13184 NULL
34036 -+__cmpxchg64_13187 __cmpxchg64 0 13187 NULL
34037 +comedi_read_13199 comedi_read 3 13199 NULL
34038 ++hash_ipport4_expire_13201 hash_ipport4_expire 4 13201 NULL
34039 +mmc_ext_csd_read_13205 mmc_ext_csd_read 3 13205 NULL
34040 -+__nodes_fold_13215 __nodes_fold 4 13215 NULL
34041 -+get_unaligned_le64_13219 get_unaligned_le64 0 13219 NULL
34042 +svm_msrpm_offset_13220 svm_msrpm_offset 0-1 13220 NULL
34043 +fnic_trace_ctrl_write_13229 fnic_trace_ctrl_write 3 13229 NULL
34044 +asix_read_cmd_13245 asix_read_cmd 5 13245 NULL
34045 -+kvm_lapic_enable_pv_eoi_13249 kvm_lapic_enable_pv_eoi 2 13249 NULL
34046 +init_tid_tabs_13252 init_tid_tabs 2-3-4 13252 NULL
34047 +bio_integrity_trim_13259 bio_integrity_trim 3 13259 NULL
34048 +simple_attr_write_13260 simple_attr_write 3 13260 NULL
34049 -+c4iw_reg_user_mr_13269 c4iw_reg_user_mr 2-3 13269 NULL
34050 +pmcraid_notify_aen_13274 pmcraid_notify_aen 3 13274 NULL
34051 -+il4965_stats_flag_13281 il4965_stats_flag 0-3 13281 NULL
34052 ++il4965_stats_flag_13281 il4965_stats_flag 3-0 13281 NULL
34053 +lpfc_idiag_mbxacc_get_setup_13282 lpfc_idiag_mbxacc_get_setup 0 13282 NULL
34054 +sd_major_13294 sd_major 0-1 13294 NULL
34055 -+kempld_read16_13297 kempld_read16 0 13297 NULL
34056 -+reexecute_instruction_13321 reexecute_instruction 2 13321 NULL
34057 ++module_param_sysfs_setup_13296 module_param_sysfs_setup 0 13296 NULL
34058 +__clone_and_map_data_bio_13334 __clone_and_map_data_bio 4-8 13334 NULL
34059 -+kvm_read_nested_guest_page_13337 kvm_read_nested_guest_page 5-2 13337 NULL
34060 -+get_bits_13353 get_bits 0-2 13353 NULL
34061 ++kvm_read_nested_guest_page_13337 kvm_read_nested_guest_page 5 13337 NULL
34062 +hscx_empty_fifo_13360 hscx_empty_fifo 2 13360 NULL
34063 -+snd_ctl_elem_info_13363 snd_ctl_elem_info 0 13363 NULL
34064 +iso_sched_alloc_13377 iso_sched_alloc 1 13377 NULL nohasharray
34065 +wep_key_not_found_read_13377 wep_key_not_found_read 3 13377 &iso_sched_alloc_13377
34066 +ext4_meta_trans_blocks_13380 ext4_meta_trans_blocks 0-3-2 13380 NULL
34067 +lov_mds_md_size_13388 lov_mds_md_size 0-1 13388 NULL nohasharray
34068 +dis_bypass_write_13388 dis_bypass_write 3 13388 &lov_mds_md_size_13388
34069 -+BcmSetActiveSection_13389 BcmSetActiveSection 0 13389 NULL
34070 -+ocfs2_inode_lock_update_13414 ocfs2_inode_lock_update 0 13414 NULL
34071 +netxen_alloc_sds_rings_13417 netxen_alloc_sds_rings 2 13417 NULL
34072 -+compat_SyS_sendfile64_13420 compat_SyS_sendfile64 4 13420 NULL
34073 -+keyring_read_13438 keyring_read 3 13438 NULL
34074 +sctp_setsockopt_peer_primary_addr_13440 sctp_setsockopt_peer_primary_addr 3 13440 NULL
34075 +ath6kl_cfg80211_connect_event_13443 ath6kl_cfg80211_connect_event 8-9-7 13443 NULL
34076 +sb_init_dio_done_wq_13482 sb_init_dio_done_wq 0 13482 NULL
34077 +data_read_13494 data_read 3 13494 NULL
34078 -+i915_switch_context_13498 i915_switch_context 0 13498 NULL
34079 +ioat_chansts_32_13506 ioat_chansts_32 0 13506 NULL
34080 -+ocfs2_align_bytes_to_blocks_13512 ocfs2_align_bytes_to_blocks 2-0 13512 NULL
34081 ++ocfs2_align_bytes_to_blocks_13512 ocfs2_align_bytes_to_blocks 0-2 13512 NULL
34082 +core_status_13515 core_status 4 13515 NULL
34083 +smk_write_mapped_13519 smk_write_mapped 3 13519 NULL
34084 +bm_init_13529 bm_init 2 13529 NULL
34085 -+kvm_get_cr8_13538 kvm_get_cr8 0 13538 NULL
34086 -+SYSC_remap_file_pages_13540 SYSC_remap_file_pages 1-2 13540 NULL nohasharray
34087 -+non_atomic_pte_lookup_13540 non_atomic_pte_lookup 2 13540 &SYSC_remap_file_pages_13540
34088 -+__btrfs_alloc_chunk_13554 __btrfs_alloc_chunk 0 13554 NULL
34089 +llcp_sock_recvmsg_13556 llcp_sock_recvmsg 4 13556 NULL
34090 +ieee80211_if_read_ap_power_level_13558 ieee80211_if_read_ap_power_level 3 13558 NULL
34091 -+ubifs_get_idx_gc_leb_13566 ubifs_get_idx_gc_leb 0 13566 NULL
34092 ++hash_net4_expire_13559 hash_net4_expire 4 13559 NULL
34093 +read_file_antenna_13574 read_file_antenna 3 13574 NULL
34094 +cache_write_13589 cache_write 3 13589 NULL
34095 +Rd_Indx_13602 Rd_Indx 3-2 13602 NULL
34096 -+swap_cgroup_swapon_13614 swap_cgroup_swapon 2 13614 NULL
34097 +wm8994_bulk_write_13615 wm8994_bulk_write 2-3 13615 NULL
34098 +pmcraid_get_minor_13619 pmcraid_get_minor 0 13619 NULL
34099 +packet_snd_13634 packet_snd 3 13634 NULL
34100 +blk_msg_write_13655 blk_msg_write 3 13655 NULL
34101 +cache_downcall_13666 cache_downcall 3 13666 NULL
34102 -+ext3_xattr_list_entries_13682 ext3_xattr_list_entries 0-4 13682 NULL
34103 ++ext3_xattr_list_entries_13682 ext3_xattr_list_entries 0 13682 NULL
34104 +nv94_aux_13689 nv94_aux 2-5 13689 NULL
34105 +usb_get_string_13693 usb_get_string 0 13693 NULL
34106 -+atomic_cmpxchg_13700 atomic_cmpxchg 0 13700 NULL
34107 +fw_iso_buffer_alloc_13704 fw_iso_buffer_alloc 2 13704 NULL
34108 -+ocfs2_cache_block_dealloc_13731 ocfs2_cache_block_dealloc 0 13731 NULL
34109 -+netdev_queue_numa_node_read_13732 netdev_queue_numa_node_read 0 13732 NULL
34110 +audit_unpack_string_13748 audit_unpack_string 3 13748 NULL
34111 -+ufs_dtog_13750 ufs_dtog 0-2 13750 NULL
34112 +ieee802154_alloc_device_13767 ieee802154_alloc_device 1 13767 NULL
34113 +fb_sys_read_13778 fb_sys_read 3 13778 NULL
34114 +ath6kl_mgmt_powersave_ap_13791 ath6kl_mgmt_powersave_ap 6 13791 NULL
34115 @@ -105754,27 +107827,21 @@ index 0000000..3d6cc0f
34116 +enc_pools_insert_13849 enc_pools_insert 3 13849 NULL
34117 +evdev_ioctl_compat_13851 evdev_ioctl_compat 2 13851 NULL
34118 +compat_ip_setsockopt_13870 compat_ip_setsockopt 5 13870 NULL
34119 -+btrfs_insert_empty_item_13885 btrfs_insert_empty_item 0 13885 NULL
34120 -+qp_memcpy_to_queue_13886 qp_memcpy_to_queue 5-2 13886 NULL nohasharray
34121 -+__fsnotify_parent_13886 __fsnotify_parent 0 13886 &qp_memcpy_to_queue_13886
34122 -+window_alignment_13895 window_alignment 0 13895 NULL
34123 ++qp_memcpy_to_queue_13886 qp_memcpy_to_queue 5-2 13886 NULL
34124 +snd_pcm_aio_read_13900 snd_pcm_aio_read 3 13900 NULL
34125 -+is_inode_existent_13913 is_inode_existent 0 13913 NULL
34126 +cfg80211_inform_bss_width_13933 cfg80211_inform_bss_width 9 13933 NULL
34127 +ext3_xattr_block_get_13936 ext3_xattr_block_get 0 13936 NULL
34128 +ieee80211_if_read_dot11MeshForwarding_13940 ieee80211_if_read_dot11MeshForwarding 3 13940 NULL nohasharray
34129 +ocfs2_xa_value_truncate_13940 ocfs2_xa_value_truncate 2 13940 &ieee80211_if_read_dot11MeshForwarding_13940
34130 +iwl_dbgfs_protection_mode_read_13943 iwl_dbgfs_protection_mode_read 3 13943 NULL
34131 +ieee80211_if_read_min_discovery_timeout_13946 ieee80211_if_read_min_discovery_timeout 3 13946 NULL
34132 -+qib_mmap_mem_13947 qib_mmap_mem 3 13947 NULL
34133 +lpfc_idiag_queacc_read_13950 lpfc_idiag_queacc_read 3 13950 NULL
34134 +osc_grant_shrink_interval_seq_write_13952 osc_grant_shrink_interval_seq_write 3 13952 NULL
34135 +ocfs2_refresh_slot_info_13957 ocfs2_refresh_slot_info 0 13957 NULL
34136 +snd_pcm_plug_slave_size_13967 snd_pcm_plug_slave_size 0-2 13967 NULL
34137 +qcam_read_13977 qcam_read 3 13977 NULL
34138 +dsp_read_13980 dsp_read 2 13980 NULL
34139 -+bm_block_bits_13981 bm_block_bits 0 13981 NULL nohasharray
34140 -+dvb_demux_read_13981 dvb_demux_read 3 13981 &bm_block_bits_13981
34141 ++dvb_demux_read_13981 dvb_demux_read 3 13981 NULL
34142 +create_files_14003 create_files 0 14003 NULL
34143 +sddr09_write_data_14014 sddr09_write_data 3 14014 NULL
34144 +btrfs_get_blocks_direct_14016 btrfs_get_blocks_direct 2 14016 NULL
34145 @@ -105783,78 +107850,54 @@ index 0000000..3d6cc0f
34146 +dvb_usercopy_14036 dvb_usercopy 2 14036 NULL
34147 +read_def_modal_eeprom_14041 read_def_modal_eeprom 3 14041 NULL
34148 +ieee80211_if_fmt_aid_14055 ieee80211_if_fmt_aid 3 14055 NULL
34149 ++ovs_nla_alloc_flow_actions_14056 ovs_nla_alloc_flow_actions 1 14056 NULL
34150 +sta_agg_status_read_14058 sta_agg_status_read 3 14058 NULL
34151 -+ovs_flow_actions_alloc_14072 ovs_flow_actions_alloc 1 14072 NULL
34152 +lov_stripeoffset_seq_write_14078 lov_stripeoffset_seq_write 3 14078 NULL
34153 +do_proc_readlink_14096 do_proc_readlink 3 14096 NULL
34154 +compat_sys_pselect6_14105 compat_sys_pselect6 1 14105 NULL
34155 -+intel_ring_wait_seqno_14107 intel_ring_wait_seqno 0 14107 NULL
34156 +ext4_journal_blocks_per_page_14127 ext4_journal_blocks_per_page 0 14127 NULL
34157 -+ntfs_rl_replace_14136 ntfs_rl_replace 4-2 14136 NULL
34158 -+qfq_ffs_14139 qfq_ffs 2 14139 NULL
34159 +isku_sysfs_read_light_14140 isku_sysfs_read_light 6 14140 NULL
34160 +em_canid_change_14150 em_canid_change 3 14150 NULL
34161 +gsm_dlci_data_14155 gsm_dlci_data 3 14155 NULL
34162 +print_input_mask_14168 print_input_mask 3-0 14168 NULL
34163 -+ocfs2_split_and_insert_14171 ocfs2_split_and_insert 0 14171 NULL
34164 +ocfs2_xattr_value_truncate_14183 ocfs2_xattr_value_truncate 3 14183 NULL
34165 +datafab_read_data_14186 datafab_read_data 4 14186 NULL
34166 -+do_splice_14196 do_splice 5 14196 NULL
34167 +hfsplus_brec_find_14200 hfsplus_brec_find 0 14200 NULL
34168 +alloc_async_14208 alloc_async 1 14208 NULL
34169 +ath6kl_regread_write_14220 ath6kl_regread_write 3 14220 NULL
34170 +ieee80211_if_write_uapsd_max_sp_len_14233 ieee80211_if_write_uapsd_max_sp_len 3 14233 NULL
34171 +dma_declare_coherent_memory_14244 dma_declare_coherent_memory 4 14244 NULL
34172 -+snd_soc_hw_bulk_write_raw_14245 snd_soc_hw_bulk_write_raw 2-4 14245 NULL
34173 -+ext4_journal_restart_14251 ext4_journal_restart 0 14251 NULL
34174 -+will_overwrite_ref_14252 will_overwrite_ref 0 14252 NULL
34175 +ath6kl_connect_event_14267 ath6kl_connect_event 7-8-9 14267 NULL
34176 -+numa_mem_id_14279 numa_mem_id 0 14279 NULL
34177 +rr_status_14293 rr_status 5 14293 NULL
34178 +read_default_ldt_14302 read_default_ldt 2 14302 NULL
34179 -+__readl_14308 __readl 0 14308 NULL
34180 -+send_chown_14309 send_chown 0 14309 NULL
34181 -+i915_gem_object_finish_gpu_14312 i915_gem_object_finish_gpu 0 14312 NULL
34182 +oo_objects_14319 oo_objects 0 14319 NULL
34183 -+ww_mutex_deadlock_injection_14321 ww_mutex_deadlock_injection 0 14321 NULL
34184 -+ll_get_user_pages_14328 ll_get_user_pages 2-3-0 14328 NULL
34185 -+down_write_failed_14331 down_write_failed 2 14331 NULL
34186 ++ll_get_user_pages_14328 ll_get_user_pages 3-2-0 14328 NULL
34187 +p9_client_zc_rpc_14345 p9_client_zc_rpc 7 14345 NULL
34188 +alloc_tx_struct_14349 alloc_tx_struct 1 14349 NULL
34189 ++hash_ipportnet4_expire_14354 hash_ipportnet4_expire 4 14354 NULL
34190 +snd_pcm_lib_readv_14363 snd_pcm_lib_readv 0-3 14363 NULL
34191 -+btrfs_set_inode_index_14379 btrfs_set_inode_index 0 14379 NULL
34192 -+acpi_get_override_irq_14381 acpi_get_override_irq 1 14381 NULL
34193 +ath6kl_regdump_read_14393 ath6kl_regdump_read 3 14393 NULL
34194 +smk_write_onlycap_14400 smk_write_onlycap 3 14400 NULL
34195 -+first_logical_byte_14403 first_logical_byte 0 14403 NULL
34196 +mtd_concat_create_14416 mtd_concat_create 2 14416 NULL
34197 +get_kcore_size_14425 get_kcore_size 0 14425 NULL
34198 -+qib_user_sdma_page_length_14432 qib_user_sdma_page_length 0-2-1 14432 NULL
34199 -+check_lpt_crc_14442 check_lpt_crc 0 14442 NULL
34200 +block_size_14443 block_size 0 14443 NULL
34201 +lmv_user_md_size_14456 lmv_user_md_size 0-1 14456 NULL
34202 +snd_emu10k1_proc_spdif_status_14457 snd_emu10k1_proc_spdif_status 4-5 14457 NULL
34203 ++ath10k_write_htt_stats_mask_14458 ath10k_write_htt_stats_mask 3 14458 NULL
34204 +lustre_msg_size_v2_14470 lustre_msg_size_v2 0 14470 NULL
34205 +dma_transfer_size_14473 dma_transfer_size 0 14473 NULL
34206 +udplite_getfrag_14479 udplite_getfrag 3-4 14479 NULL
34207 -+efx_mdio_check_mmds_14486 efx_mdio_check_mmds 2 14486 NULL nohasharray
34208 -+ieee80211_if_read_dot11MeshGateAnnouncementProtocol_14486 ieee80211_if_read_dot11MeshGateAnnouncementProtocol 3 14486 &efx_mdio_check_mmds_14486
34209 ++ieee80211_if_read_dot11MeshGateAnnouncementProtocol_14486 ieee80211_if_read_dot11MeshGateAnnouncementProtocol 3 14486 NULL
34210 +ocfs2_debug_read_14507 ocfs2_debug_read 3 14507 NULL
34211 -+dataflash_read_user_otp_14536 dataflash_read_user_otp 3-2 14536 NULL nohasharray
34212 -+ep0_write_14536 ep0_write 3 14536 &dataflash_read_user_otp_14536
34213 -+register_trace_sched_switch_14545 register_trace_sched_switch 0 14545 NULL
34214 ++ep0_write_14536 ep0_write 3 14536 NULL nohasharray
34215 ++dataflash_read_user_otp_14536 dataflash_read_user_otp 3-2 14536 &ep0_write_14536
34216 +picolcd_debug_eeprom_read_14549 picolcd_debug_eeprom_read 3 14549 NULL
34217 -+drm_vmalloc_dma_14550 drm_vmalloc_dma 1 14550 NULL
34218 +qp_host_alloc_queue_14566 qp_host_alloc_queue 1 14566 NULL
34219 +SyS_setdomainname_14569 SyS_setdomainname 2 14569 NULL
34220 -+remap_to_origin_then_cache_14583 remap_to_origin_then_cache 3 14583 NULL
34221 +idmap_pipe_downcall_14591 idmap_pipe_downcall 3 14591 NULL
34222 +ceph_osdc_alloc_request_14597 ceph_osdc_alloc_request 3 14597 NULL
34223 -+ocfs2_steal_meta_14602 ocfs2_steal_meta 0 14602 NULL
34224 -+ocfs2_trim_group_14641 ocfs2_trim_group 4-3 14641 NULL
34225 +dbJoin_14644 dbJoin 0 14644 NULL
34226 +profile_replace_14652 profile_replace 3 14652 NULL
34227 -+add_to_page_cache_locked_14668 add_to_page_cache_locked 0 14668 NULL
34228 +min_bytes_needed_14675 min_bytes_needed 0 14675 NULL
34229 +nvme_trans_log_info_exceptions_14677 nvme_trans_log_info_exceptions 3 14677 NULL
34230 +pipeline_enc_tx_stat_fifo_int_read_14680 pipeline_enc_tx_stat_fifo_int_read 3 14680 NULL
34231 @@ -105864,9 +107907,7 @@ index 0000000..3d6cc0f
34232 +u_audio_playback_14709 u_audio_playback 3 14709 NULL
34233 +rtw_cbuf_alloc_14710 rtw_cbuf_alloc 1 14710 NULL
34234 +cgroup_path_14713 cgroup_path 3 14713 NULL
34235 -+get_bio_block_14714 get_bio_block 0 14714 NULL
34236 +vfd_write_14717 vfd_write 3 14717 NULL
34237 -+SyS_sendfile_14718 SyS_sendfile 4 14718 NULL
34238 +__blk_end_request_14729 __blk_end_request 3 14729 NULL
34239 +raid1_resize_14740 raid1_resize 2 14740 NULL
34240 +i915_error_state_buf_init_14742 i915_error_state_buf_init 2 14742 NULL
34241 @@ -105877,9 +107918,8 @@ index 0000000..3d6cc0f
34242 +keys_proc_write_14792 keys_proc_write 3 14792 NULL
34243 +ext4_kvmalloc_14796 ext4_kvmalloc 1 14796 NULL
34244 +__kfifo_in_14797 __kfifo_in 3-0 14797 NULL
34245 -+snd_als300_gcr_read_14801 snd_als300_gcr_read 0 14801 NULL nohasharray
34246 -+hpet_readl_14801 hpet_readl 0 14801 &snd_als300_gcr_read_14801
34247 -+changed_cb_14819 changed_cb 0 14819 NULL
34248 ++hpet_readl_14801 hpet_readl 0 14801 NULL nohasharray
34249 ++snd_als300_gcr_read_14801 snd_als300_gcr_read 0 14801 &hpet_readl_14801
34250 +do_tune_cpucache_14828 do_tune_cpucache 2 14828 NULL
34251 +mrp_attr_create_14853 mrp_attr_create 3 14853 NULL
34252 +lcd_write_14857 lcd_write 3 14857 NULL
34253 @@ -105887,213 +107927,155 @@ index 0000000..3d6cc0f
34254 +gmux_index_read8_14890 gmux_index_read8 0 14890 NULL
34255 +acpi_os_allocate_14892 acpi_os_allocate 1 14892 NULL
34256 +SYSC_readv_14901 SYSC_readv 3 14901 NULL
34257 -+regmap_irq_get_virq_14910 regmap_irq_get_virq 2-0 14910 NULL
34258 +__arch_hweight64_14923 __arch_hweight64 0 14923 NULL nohasharray
34259 +qp_memcpy_to_queue_iov_14923 qp_memcpy_to_queue_iov 5-2 14923 &__arch_hweight64_14923
34260 +ocfs2_expand_nonsparse_inode_14936 ocfs2_expand_nonsparse_inode 3-4 14936 NULL
34261 -+range_to_mtrr_14940 range_to_mtrr 2 14940 NULL
34262 +queue_cnt_14951 queue_cnt 0 14951 NULL
34263 +unix_dgram_recvmsg_14952 unix_dgram_recvmsg 4 14952 NULL
34264 -+i915_vma_unbind_14954 i915_vma_unbind 0 14954 NULL
34265 +videobuf_read_stream_14956 videobuf_read_stream 3 14956 NULL
34266 +mce_flush_rx_buffer_14976 mce_flush_rx_buffer 2 14976 NULL
34267 +setkey_14987 setkey 3 14987 NULL nohasharray
34268 +gpio_twl4030_write_14987 gpio_twl4030_write 1 14987 &setkey_14987
34269 +xfs_dinode_size_14996 xfs_dinode_size 0 14996 NULL
34270 +blk_integrity_tuple_size_15027 blk_integrity_tuple_size 0 15027 NULL
34271 -+irq_get_next_irq_15053 irq_get_next_irq 1-0 15053 NULL
34272 +cld_pipe_downcall_15058 cld_pipe_downcall 3 15058 NULL
34273 +ieee80211_if_read_uapsd_max_sp_len_15067 ieee80211_if_read_uapsd_max_sp_len 3 15067 NULL
34274 +nfs4_write_cached_acl_15070 nfs4_write_cached_acl 4 15070 NULL
34275 +ntfs_copy_from_user_15072 ntfs_copy_from_user 3-5-0 15072 NULL
34276 +pppoe_recvmsg_15073 pppoe_recvmsg 4 15073 NULL
34277 +ceph_calc_ceph_pg_15075 ceph_calc_ceph_pg 0 15075 NULL
34278 -+perf_trace_sched_stat_runtime_15115 perf_trace_sched_stat_runtime 3 15115 NULL
34279 ++smscore_load_firmware_family2_15086 smscore_load_firmware_family2 3 15086 NULL
34280 ++compat_SyS_pwritev_15118 compat_SyS_pwritev 3 15118 NULL
34281 +hex_dump_to_buffer_15121 hex_dump_to_buffer 6 15121 NULL
34282 +start_port_15124 start_port 0 15124 NULL
34283 +ipwireless_ppp_mru_15153 ipwireless_ppp_mru 0 15153 NULL
34284 +iwl_dbgfs_sta_drain_write_15167 iwl_dbgfs_sta_drain_write 3 15167 NULL
34285 -+self_check_not_bad_15175 self_check_not_bad 0 15175 NULL
34286 +SYSC_setdomainname_15180 SYSC_setdomainname 2 15180 NULL
34287 +iscsi_create_endpoint_15193 iscsi_create_endpoint 1 15193 NULL
34288 -+reserve_resources_15194 reserve_resources 3 15194 NULL
34289 +mtt_alloc_res_15211 mtt_alloc_res 5 15211 NULL
34290 +bfad_debugfs_write_regrd_15218 bfad_debugfs_write_regrd 3 15218 NULL
34291 +iwl_dbgfs_sram_write_15239 iwl_dbgfs_sram_write 3 15239 NULL
34292 +il_dbgfs_rx_stats_read_15243 il_dbgfs_rx_stats_read 3 15243 NULL
34293 -+div64_u64_15263 div64_u64 0-1-2 15263 NULL
34294 +simple_strtol_15273 simple_strtol 0 15273 NULL
34295 +fw_realloc_buffer_15280 fw_realloc_buffer 2 15280 NULL
34296 -+arch_enable_uv_irq_15294 arch_enable_uv_irq 2 15294 NULL
34297 -+acpi_ev_create_gpe_block_15297 acpi_ev_create_gpe_block 5 15297 NULL
34298 +ocfs2_read_refcount_block_15305 ocfs2_read_refcount_block 0 15305 NULL
34299 -+__ocfs2_remove_xattr_range_15330 __ocfs2_remove_xattr_range 4-3-5 15330 NULL
34300 -+bfloat_mantissa_15334 bfloat_mantissa 0 15334 NULL
34301 +xlog_ticket_alloc_15335 xlog_ticket_alloc 2 15335 NULL
34302 +kovaplus_sysfs_read_15337 kovaplus_sysfs_read 6 15337 NULL
34303 +ioread16_15342 ioread16 0 15342 NULL
34304 +ept_prefetch_gpte_15348 ept_prefetch_gpte 4 15348 NULL
34305 +acpi_ut_create_string_object_15360 acpi_ut_create_string_object 1 15360 NULL
34306 -+count_inode_extrefs_15366 count_inode_extrefs 0 15366 NULL
34307 +ext4_direct_IO_15369 ext4_direct_IO 4 15369 NULL
34308 +graph_depth_read_15371 graph_depth_read 3 15371 NULL
34309 +compat_sys_process_vm_readv_15374 compat_sys_process_vm_readv 3-5 15374 NULL
34310 +fq_codel_zalloc_15378 fq_codel_zalloc 1 15378 NULL
34311 -+domain_flush_pages_15379 domain_flush_pages 2-3 15379 NULL
34312 +alloc_fddidev_15382 alloc_fddidev 1 15382 NULL
34313 -+btrfs_level_size_15392 btrfs_level_size 0 15392 NULL
34314 +pipeline_csum_to_rx_xfer_swi_read_15403 pipeline_csum_to_rx_xfer_swi_read 3 15403 NULL
34315 +get_modalias_15406 get_modalias 2 15406 NULL
34316 -+blockdev_direct_IO_15408 blockdev_direct_IO 0-5 15408 NULL
34317 -+dm_cache_resize_15422 dm_cache_resize 2 15422 NULL
34318 ++blockdev_direct_IO_15408 blockdev_direct_IO 5 15408 NULL
34319 +__videobuf_copy_to_user_15423 __videobuf_copy_to_user 4-0 15423 NULL
34320 +tcp_mtu_to_mss_15438 tcp_mtu_to_mss 2-0 15438 NULL
34321 +hpsa_change_queue_depth_15449 hpsa_change_queue_depth 2 15449 NULL
34322 +memweight_15450 memweight 2 15450 NULL
34323 -+vmalloc_15464 vmalloc 1 15464 NULL
34324 -+__mutex_lock_killable_slowpath_15472 __mutex_lock_killable_slowpath 0 15472 NULL
34325 -+insert_old_idx_znode_15500 insert_old_idx_znode 0 15500 NULL
34326 +zd_chip_is_zd1211b_15518 zd_chip_is_zd1211b 0 15518 NULL
34327 +ifx_spi_write_15531 ifx_spi_write 3 15531 NULL
34328 -+da9052_bat_irq_15533 da9052_bat_irq 1 15533 NULL
34329 +p9_check_zc_errors_15534 p9_check_zc_errors 4 15534 NULL
34330 +xfrm_state_mtu_15548 xfrm_state_mtu 0-2 15548 NULL
34331 -+snd_pcm_channel_info_15572 snd_pcm_channel_info 0 15572 NULL
34332 +persistent_status_15574 persistent_status 4 15574 NULL
34333 +bnx2fc_process_unsol_compl_15576 bnx2fc_process_unsol_compl 2 15576 NULL
34334 -+cl_io_submit_sync_15579 cl_io_submit_sync 0 15579 NULL
34335 +vme_user_write_15587 vme_user_write 3 15587 NULL
34336 -+ocfs2_truncate_rec_15595 ocfs2_truncate_rec 7-0 15595 NULL
34337 -+sx150x_install_irq_chip_15609 sx150x_install_irq_chip 3 15609 NULL
34338 -+iommu_device_max_index_15620 iommu_device_max_index 0-3-2-1 15620 NULL nohasharray
34339 -+compat_fillonedir_15620 compat_fillonedir 3 15620 &iommu_device_max_index_15620
34340 ++compat_fillonedir_15620 compat_fillonedir 3 15620 NULL
34341 +proc_loginuid_read_15631 proc_loginuid_read 3 15631 NULL
34342 -+tomoyo_scan_bprm_15642 tomoyo_scan_bprm 4-2 15642 NULL nohasharray
34343 ++tomoyo_scan_bprm_15642 tomoyo_scan_bprm 2-4 15642 NULL nohasharray
34344 +sk_memory_allocated_add_15642 sk_memory_allocated_add 2 15642 &tomoyo_scan_bprm_15642 nohasharray
34345 +pipeline_hs_tx_stat_fifo_int_read_15642 pipeline_hs_tx_stat_fifo_int_read 3 15642 &sk_memory_allocated_add_15642
34346 +joydev_handle_JSIOCSBTNMAP_15643 joydev_handle_JSIOCSBTNMAP 3 15643 NULL
34347 -+fs_path_add_15648 fs_path_add 3-0 15648 NULL
34348 ++fs_path_add_15648 fs_path_add 3 15648 NULL
34349 +xsd_read_15653 xsd_read 3 15653 NULL
34350 +unix_bind_15668 unix_bind 3 15668 NULL
34351 -+SyS_connect_15674 SyS_connect 3 15674 NULL nohasharray
34352 -+dm_read_15674 dm_read 3 15674 &SyS_connect_15674
34353 -+pstore_mkfile_15675 pstore_mkfile 6 15675 NULL
34354 -+i915_gem_object_set_to_cpu_domain_15705 i915_gem_object_set_to_cpu_domain 0 15705 NULL nohasharray
34355 -+uncore_alloc_box_15705 uncore_alloc_box 2 15705 &i915_gem_object_set_to_cpu_domain_15705
34356 -+ocfs2_split_tree_15716 ocfs2_split_tree 5-0 15716 NULL
34357 ++dm_read_15674 dm_read 3 15674 NULL nohasharray
34358 ++SyS_connect_15674 SyS_connect 3 15674 &dm_read_15674
34359 +tracing_snapshot_write_15719 tracing_snapshot_write 3 15719 NULL
34360 +HiSax_readstatus_15752 HiSax_readstatus 2 15752 NULL
34361 -+ftrace_profile_init_cpu_15761 ftrace_profile_init_cpu 0 15761 NULL
34362 -+bitmap_search_next_usable_block_15762 bitmap_search_next_usable_block 3-1-0 15762 NULL
34363 -+i915_gem_init_seqno_15793 i915_gem_init_seqno 0 15793 NULL
34364 +smk_read_direct_15803 smk_read_direct 3 15803 NULL
34365 +nameseq_list_15817 nameseq_list 3-0 15817 NULL nohasharray
34366 +gnttab_expand_15817 gnttab_expand 1 15817 &nameseq_list_15817
34367 +afs_proc_rootcell_write_15822 afs_proc_rootcell_write 3 15822 NULL
34368 +brcmf_sdbrcm_died_dump_15841 brcmf_sdbrcm_died_dump 3 15841 NULL
34369 +table_size_15851 table_size 0-1-2 15851 NULL
34370 -+ubi_io_write_15870 ubi_io_write 0-5-4 15870 NULL nohasharray
34371 -+media_entity_init_15870 media_entity_init 2-4 15870 &ubi_io_write_15870
34372 ++write_file_tx99_15856 write_file_tx99 3 15856 NULL
34373 ++media_entity_init_15870 media_entity_init 2-4 15870 NULL
34374 +__mptctl_ioctl_15875 __mptctl_ioctl 2 15875 NULL
34375 -+profile_pc_15887 profile_pc 0 15887 NULL
34376 +nfs_map_group_to_gid_15892 nfs_map_group_to_gid 3 15892 NULL
34377 +native_read_msr_15905 native_read_msr 0 15905 NULL
34378 +parse_audio_stream_data_15937 parse_audio_stream_data 3 15937 NULL
34379 +power_read_15939 power_read 3 15939 NULL
34380 +lpfc_idiag_drbacc_read_15948 lpfc_idiag_drbacc_read 3 15948 NULL
34381 +snd_pcm_lib_read_transfer_15952 snd_pcm_lib_read_transfer 5-2-4 15952 NULL
34382 -+tfrc_calc_x_15975 tfrc_calc_x 2-1 15975 NULL
34383 -+frame_alloc_15981 frame_alloc 4 15981 NULL
34384 -+hdpvr_register_videodev_16010 hdpvr_register_videodev 3 16010 NULL
34385 +viafb_vt1636_proc_write_16018 viafb_vt1636_proc_write 3 16018 NULL
34386 -+i915_gem_object_pin_16032 i915_gem_object_pin 0 16032 NULL
34387 +dccp_recvmsg_16056 dccp_recvmsg 4 16056 NULL
34388 +read_file_spectral_period_16057 read_file_spectral_period 3 16057 NULL
34389 +si5351_msynth_params_address_16062 si5351_msynth_params_address 0-1 16062 NULL
34390 -+ocfs2_sync_local_to_main_16076 ocfs2_sync_local_to_main 0 16076 NULL
34391 +isr_tx_exch_complete_read_16103 isr_tx_exch_complete_read 3 16103 NULL
34392 -+dma_tx_requested_read_16110 dma_tx_requested_read 3 16110 NULL nohasharray
34393 -+isr_hw_pm_mode_changes_read_16110 isr_hw_pm_mode_changes_read 3 16110 &dma_tx_requested_read_16110
34394 -+irq_set_chip_and_handler_name_16111 irq_set_chip_and_handler_name 1 16111 NULL
34395 ++isr_hw_pm_mode_changes_read_16110 isr_hw_pm_mode_changes_read 3 16110 NULL nohasharray
34396 ++dma_tx_requested_read_16110 dma_tx_requested_read 3 16110 &isr_hw_pm_mode_changes_read_16110
34397 +snd_dma_pointer_16126 snd_dma_pointer 0-2 16126 NULL
34398 +compat_sys_select_16131 compat_sys_select 1 16131 NULL
34399 +fsm_init_16134 fsm_init 2 16134 NULL
34400 +ext4_xattr_block_get_16148 ext4_xattr_block_get 0 16148 NULL
34401 -+update_block_group_16155 update_block_group 0 16155 NULL
34402 +optimal_reclaimed_pages_16172 optimal_reclaimed_pages 0 16172 NULL
34403 +mapping_level_16188 mapping_level 2-0 16188 NULL
34404 +i40e_allocate_virt_mem_d_16191 i40e_allocate_virt_mem_d 3 16191 NULL
34405 -+tcp_syn_options_16197 tcp_syn_options 0 16197 NULL
34406 +ath10k_htt_rx_ring_size_16201 ath10k_htt_rx_ring_size 0 16201 NULL
34407 +cipso_v4_map_cat_rng_hton_16203 cipso_v4_map_cat_rng_hton 0 16203 NULL
34408 +SyS_pselect6_16210 SyS_pselect6 1 16210 NULL
34409 +create_table_16213 create_table 2 16213 NULL
34410 ++ath9k_hw_ar9287_dump_eeprom_16224 ath9k_hw_ar9287_dump_eeprom 5-4 16224 NULL
34411 +atomic_read_file_16227 atomic_read_file 3 16227 NULL
34412 +BcmGetSectionValStartOffset_16235 BcmGetSectionValStartOffset 0 16235 NULL
34413 +lov_prep_brw_set_16246 lov_prep_brw_set 3 16246 NULL
34414 -+i40e_dbg_dump_read_16247 i40e_dbg_dump_read 3 16247 NULL nohasharray
34415 -+btrfs_dev_extent_chunk_offset_16247 btrfs_dev_extent_chunk_offset 0 16247 &i40e_dbg_dump_read_16247
34416 ++btrfs_dev_extent_chunk_offset_16247 btrfs_dev_extent_chunk_offset 0 16247 NULL nohasharray
34417 ++i40e_dbg_dump_read_16247 i40e_dbg_dump_read 3 16247 &btrfs_dev_extent_chunk_offset_16247
34418 +il_dbgfs_disable_ht40_write_16249 il_dbgfs_disable_ht40_write 3 16249 NULL
34419 +SyS_fgetxattr_16254 SyS_fgetxattr 4 16254 NULL
34420 +reiserfs_acl_count_16265 reiserfs_acl_count 0-1 16265 NULL
34421 -+mq_force_mapping_16277 mq_force_mapping 2 16277 NULL
34422 +ocfs2_xattr_bucket_value_truncate_16279 ocfs2_xattr_bucket_value_truncate 4 16279 NULL
34423 -+drbd_setsockopt_16280 drbd_setsockopt 5 16280 NULL nohasharray
34424 -+nand_bch_init_16280 nand_bch_init 2-3 16280 &drbd_setsockopt_16280
34425 ++nand_bch_init_16280 nand_bch_init 3-2 16280 NULL nohasharray
34426 ++drbd_setsockopt_16280 drbd_setsockopt 5 16280 &nand_bch_init_16280
34427 +account_16283 account 0-4-2 16283 NULL nohasharray
34428 +mirror_status_16283 mirror_status 5 16283 &account_16283
34429 -+retry_instruction_16285 retry_instruction 2 16285 NULL
34430 +jumpshot_read_data_16287 jumpshot_read_data 4 16287 NULL
34431 +mo_xattr_get_16288 mo_xattr_get 0 16288 NULL
34432 +stk_allocate_buffers_16291 stk_allocate_buffers 2 16291 NULL
34433 +rbd_segment_offset_16293 rbd_segment_offset 0-2 16293 NULL
34434 -+tfrc_invert_loss_event_rate_16295 tfrc_invert_loss_event_rate 1 16295 NULL
34435 +rsc_mgr_init_16299 rsc_mgr_init 3 16299 NULL
34436 -+wb_map_16301 wb_map 2 16301 NULL
34437 +kvm_handle_hva_range_16312 kvm_handle_hva_range 3-2 16312 NULL
34438 -+ext4_blocks_count_16320 ext4_blocks_count 0 16320 NULL
34439 -+vmw_cursor_update_image_16332 vmw_cursor_update_image 3-4 16332 NULL
34440 -+btrfs_insert_item_16357 btrfs_insert_item 0 16357 NULL
34441 +sysfs_create_groups_16360 sysfs_create_groups 0 16360 NULL
34442 +total_ps_buffered_read_16365 total_ps_buffered_read 3 16365 NULL
34443 +iscsi_tcp_conn_setup_16376 iscsi_tcp_conn_setup 2 16376 NULL
34444 -+diva_os_malloc_16406 diva_os_malloc 2 16406 NULL
34445 +ieee80211_if_read_tsf_16420 ieee80211_if_read_tsf 3 16420 NULL
34446 +rxrpc_server_keyring_16431 rxrpc_server_keyring 3 16431 NULL
34447 +__bio_add_page_16435 __bio_add_page 0-4 16435 NULL
34448 -+btrfs_truncate_inode_items_16452 btrfs_truncate_inode_items 0-4 16452 NULL
34449 -+ocfs2_expand_refcount_tree_16455 ocfs2_expand_refcount_tree 0 16455 NULL
34450 ++cmdline_store_16442 cmdline_store 4 16442 NULL
34451 ++btrfs_truncate_inode_items_16452 btrfs_truncate_inode_items 4 16452 NULL
34452 +netlink_change_ngroups_16457 netlink_change_ngroups 2 16457 NULL
34453 -+alloc_disk_node_16458 alloc_disk_node 2 16458 NULL
34454 +req_capsule_get_size_16467 req_capsule_get_size 0 16467 NULL
34455 -+ocfs2_block_group_set_bits_16488 ocfs2_block_group_set_bits 0 16488 NULL
34456 -+add_qgroup_item_16492 add_qgroup_item 0 16492 NULL
34457 +tracing_readme_read_16493 tracing_readme_read 3 16493 NULL
34458 -+filemap_write_and_wait_16506 filemap_write_and_wait 0 16506 NULL
34459 -+start_this_handle_16519 start_this_handle 0 16519 NULL
34460 ++KEY_OFFSET_16504 KEY_OFFSET 0 16504 NULL
34461 +snd_interval_max_16529 snd_interval_max 0 16529 NULL
34462 +raid10_resize_16537 raid10_resize 2 16537 NULL
34463 +lpfc_debugfs_read_16566 lpfc_debugfs_read 3 16566 NULL
34464 -+perf_event_set_period_16574 perf_event_set_period 2-3 16574 NULL
34465 +agp_allocate_memory_wrap_16576 agp_allocate_memory_wrap 1 16576 NULL
34466 +lustre_msg_hdr_size_v2_16589 lustre_msg_hdr_size_v2 0 16589 NULL
34467 -+btrfs_insert_orphan_item_16602 btrfs_insert_orphan_item 0 16602 NULL
34468 +gmux_index_read32_16604 gmux_index_read32 0 16604 NULL
34469 -+btrfs_end_transaction_16610 btrfs_end_transaction 0 16610 NULL
34470 -+palmas_irq_get_virq_16613 palmas_irq_get_virq 2 16613 NULL
34471 -+btrfs_wait_marked_extents_16615 btrfs_wait_marked_extents 0 16615 NULL
34472 +rtw_set_wpa_ie_16633 rtw_set_wpa_ie 3 16633 NULL
34473 +btrfs_get_token_32_16651 btrfs_get_token_32 0 16651 NULL
34474 -+packet_recv_error_16669 packet_recv_error 3 16669 NULL
34475 ++__wa_populate_dto_urb_16699 __wa_populate_dto_urb 3-4 16699 NULL
34476 +__proc_lnet_buffers_16717 __proc_lnet_buffers 5 16717 NULL
34477 +__copy_to_user_swizzled_16748 __copy_to_user_swizzled 3-4 16748 NULL
34478 +arcmsr_adjust_disk_queue_depth_16756 arcmsr_adjust_disk_queue_depth 2 16756 NULL
34479 +blk_rq_map_user_iov_16772 blk_rq_map_user_iov 5 16772 NULL
34480 +i2o_parm_issue_16790 i2o_parm_issue 0 16790 NULL
34481 +get_server_iovec_16804 get_server_iovec 2 16804 NULL
34482 -+tipc_send2name_16809 tipc_send2name 6 16809 NULL
34483 -+dm_vcalloc_16814 dm_vcalloc 1-2 16814 NULL
34484 -+cache_grow_16818 cache_grow 3 16818 NULL
34485 +drm_malloc_ab_16831 drm_malloc_ab 1-2 16831 NULL
34486 +scsi_mode_sense_16835 scsi_mode_sense 5 16835 NULL
34487 +hfsplus_min_io_size_16859 hfsplus_min_io_size 0 16859 NULL
34488 @@ -106102,150 +108084,111 @@ index 0000000..3d6cc0f
34489 +st_write_16874 st_write 3 16874 NULL
34490 +__kfifo_peek_n_16877 __kfifo_peek_n 0 16877 NULL
34491 +transport_init_session_tags_16878 transport_init_session_tags 1-2 16878 NULL
34492 -+ext4_ext_zeroout_16895 ext4_ext_zeroout 0 16895 NULL
34493 -+psb_unlocked_ioctl_16926 psb_unlocked_ioctl 2 16926 NULL nohasharray
34494 -+snd_gf1_mem_proc_dump_16926 snd_gf1_mem_proc_dump 5 16926 &psb_unlocked_ioctl_16926
34495 -+_sp2d_alloc_16944 _sp2d_alloc 3-2-1 16944 NULL
34496 ++snd_gf1_mem_proc_dump_16926 snd_gf1_mem_proc_dump 5 16926 NULL nohasharray
34497 ++psb_unlocked_ioctl_16926 psb_unlocked_ioctl 2 16926 &snd_gf1_mem_proc_dump_16926
34498 ++_sp2d_alloc_16944 _sp2d_alloc 1-2-3 16944 NULL
34499 +squashfs_read_table_16945 squashfs_read_table 3 16945 NULL
34500 -+wrm_16966 wrm 0 16966 NULL
34501 +keyctl_instantiate_key_iov_16969 keyctl_instantiate_key_iov 3 16969 NULL
34502 +ocfs2_read_quota_phys_block_16990 ocfs2_read_quota_phys_block 0 16990 NULL
34503 +ceph_read_dir_17005 ceph_read_dir 3 17005 NULL
34504 -+snd_mask_refine_first_17026 snd_mask_refine_first 0 17026 NULL
34505 +copy_counters_to_user_17027 copy_counters_to_user 5 17027 NULL
34506 -+btrfs_unlink_inode_17043 btrfs_unlink_inode 0 17043 NULL
34507 +jffs2_trusted_setxattr_17048 jffs2_trusted_setxattr 4 17048 NULL
34508 +__arch_hweight32_17060 __arch_hweight32 0 17060 NULL
34509 -+__copy_user_nocache_17065 __copy_user_nocache 0 17065 NULL
34510 +sddr55_read_data_17072 sddr55_read_data 4 17072 NULL
34511 +dvb_dvr_read_17073 dvb_dvr_read 3 17073 NULL
34512 +simple_transaction_read_17076 simple_transaction_read 3 17076 NULL
34513 -+__kmalloc_reserve_17080 __kmalloc_reserve 3 17080 NULL
34514 +carl9170_debugfs_mem_usage_read_17084 carl9170_debugfs_mem_usage_read 3 17084 NULL
34515 +entry_length_17093 entry_length 0 17093 NULL
34516 +ocfs2_get_refcount_cpos_end_17113 ocfs2_get_refcount_cpos_end 0 17113 NULL
34517 +write_mem_17114 write_mem 3 17114 NULL
34518 +pvr2_hdw_state_report_17121 pvr2_hdw_state_report 3 17121 NULL
34519 -+wrmaltWithLock_17139 wrmaltWithLock 0 17139 NULL
34520 +nouveau_instobj_create__17144 nouveau_instobj_create_ 4 17144 NULL
34521 +jumpshot_write_data_17151 jumpshot_write_data 4 17151 NULL
34522 +sep_read_17161 sep_read 3 17161 NULL
34523 +befs_nls2utf_17163 befs_nls2utf 3 17163 NULL
34524 +tx_tx_start_templates_read_17164 tx_tx_start_templates_read 3 17164 NULL
34525 +UniStrnlen_17169 UniStrnlen 0 17169 NULL
34526 -+ocfs2_flock_handle_signal_17189 ocfs2_flock_handle_signal 0 17189 NULL nohasharray
34527 -+access_remote_vm_17189 access_remote_vm 0-4-2 17189 &ocfs2_flock_handle_signal_17189 nohasharray
34528 -+iwl_dbgfs_txfifo_flush_write_17189 iwl_dbgfs_txfifo_flush_write 3 17189 &access_remote_vm_17189
34529 -+driver_state_read_17194 driver_state_read 3 17194 NULL nohasharray
34530 -+iscsit_find_cmd_from_itt_or_dump_17194 iscsit_find_cmd_from_itt_or_dump 3 17194 &driver_state_read_17194
34531 ++access_remote_vm_17189 access_remote_vm 0 17189 NULL nohasharray
34532 ++iwl_dbgfs_txfifo_flush_write_17189 iwl_dbgfs_txfifo_flush_write 3 17189 &access_remote_vm_17189 nohasharray
34533 ++ocfs2_flock_handle_signal_17189 ocfs2_flock_handle_signal 0 17189 &iwl_dbgfs_txfifo_flush_write_17189
34534 ++iscsit_find_cmd_from_itt_or_dump_17194 iscsit_find_cmd_from_itt_or_dump 3 17194 NULL nohasharray
34535 ++driver_state_read_17194 driver_state_read 3 17194 &iscsit_find_cmd_from_itt_or_dump_17194
34536 +sync_request_17208 sync_request 2 17208 NULL
34537 +dn_recvmsg_17213 dn_recvmsg 4 17213 NULL
34538 -+send_write_or_clone_17241 send_write_or_clone 0 17241 NULL
34539 -+to_oblock_17254 to_oblock 0-1 17254 NULL
34540 -+unpack_value_17259 unpack_value 1 17259 NULL
34541 +lprocfs_read_frac_helper_17261 lprocfs_read_frac_helper 0 17261 NULL
34542 +error_error_frame_cts_nul_flid_read_17262 error_error_frame_cts_nul_flid_read 3 17262 NULL
34543 -+alloc_reserved_file_extent_17267 alloc_reserved_file_extent 0 17267 NULL
34544 +alloc_ep_17269 alloc_ep 1 17269 NULL
34545 -+hw_test_and_write_17271 hw_test_and_write 3 17271 NULL
34546 +pg_read_17276 pg_read 3 17276 NULL
34547 +raw_recvmsg_17277 raw_recvmsg 4 17277 NULL
34548 +hmac_sha256_17278 hmac_sha256 2 17278 NULL
34549 +neigh_hash_grow_17283 neigh_hash_grow 2 17283 NULL
34550 +minstrel_stats_read_17290 minstrel_stats_read 3 17290 NULL
34551 -+install_breakpoint_17292 install_breakpoint 4 17292 NULL
34552 ++__ptlrpc_request_bufs_pack_17298 __ptlrpc_request_bufs_pack 0 17298 NULL
34553 +ieee80211_if_fmt_dot11MeshForwarding_17301 ieee80211_if_fmt_dot11MeshForwarding 3 17301 NULL
34554 +mb_cache_create_17307 mb_cache_create 2 17307 NULL
34555 +gnttab_map_frames_v2_17314 gnttab_map_frames_v2 2 17314 NULL
34556 -+SYSC_pread64_17337 SYSC_pread64 3 17337 NULL
34557 +ieee80211_if_read_dot11MeshHWMPperrMinInterval_17346 ieee80211_if_read_dot11MeshHWMPperrMinInterval 3 17346 NULL
34558 +ath6kl_wmi_send_mgmt_cmd_17347 ath6kl_wmi_send_mgmt_cmd 7 17347 NULL
34559 +mdc_import_seq_write_17409 mdc_import_seq_write 3 17409 NULL
34560 +lpfc_debugfs_dif_err_write_17424 lpfc_debugfs_dif_err_write 3 17424 NULL
34561 +compat_sys_ppoll_17430 compat_sys_ppoll 2 17430 NULL
34562 +sta_connected_time_read_17435 sta_connected_time_read 3 17435 NULL
34563 -+SYSC_fcntl_17441 SYSC_fcntl 3 17441 NULL
34564 +libcfs_ipif_enumerate_17445 libcfs_ipif_enumerate 0 17445 NULL
34565 +nla_get_u32_17455 nla_get_u32 0 17455 NULL
34566 +__ref_totlen_17461 __ref_totlen 0 17461 NULL
34567 +probe_kernel_write_17481 probe_kernel_write 3 17481 NULL
34568 +TSS_rawhmac_17486 TSS_rawhmac 3 17486 NULL
34569 -+lookup_tree_block_ref_17494 lookup_tree_block_ref 0 17494 NULL
34570 -+bitmap_pos_to_ord_17503 bitmap_pos_to_ord 3 17503 NULL
34571 +lbs_highrssi_write_17515 lbs_highrssi_write 3 17515 NULL
34572 +qp_free_res_17541 qp_free_res 5 17541 NULL
34573 -+xlog_do_log_recovery_17550 xlog_do_log_recovery 3 17550 NULL
34574 +__copy_to_user_17551 __copy_to_user 3-0 17551 NULL
34575 -+copy_from_user_17559 copy_from_user 3-0 17559 NULL
34576 -+snd_pcm_action_lock_irq_17569 snd_pcm_action_lock_irq 0 17569 NULL
34577 ++copy_from_user_17559 copy_from_user 0-3 17559 NULL
34578 ++hash_netport4_expire_17573 hash_netport4_expire 4 17573 NULL
34579 +acpi_ut_create_package_object_17594 acpi_ut_create_package_object 1 17594 NULL
34580 +neigh_hash_alloc_17595 neigh_hash_alloc 1 17595 NULL
34581 -+__inode_info_17603 __inode_info 0 17603 NULL
34582 -+wm8994_gpio_to_irq_17604 wm8994_gpio_to_irq 2 17604 NULL
34583 +osst_execute_17607 osst_execute 7-6 17607 NULL
34584 -+ocfs2_mark_extent_written_17615 ocfs2_mark_extent_written 6 17615 NULL
34585 +ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_17618 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout 3 17618 NULL
34586 +dma_map_page_17628 dma_map_page 0 17628 NULL
34587 -+ocfs2_rotate_subtree_left_17634 ocfs2_rotate_subtree_left 0 17634 NULL
34588 ++ocfs2_rotate_subtree_left_17634 ocfs2_rotate_subtree_left 5 17634 NULL
34589 +twl4030_set_gpio_direction_17645 twl4030_set_gpio_direction 1 17645 NULL
34590 +SYSC_migrate_pages_17657 SYSC_migrate_pages 2 17657 NULL
34591 -+packet_setsockopt_17662 packet_setsockopt 5 17662 NULL nohasharray
34592 -+ubi_io_read_data_17662 ubi_io_read_data 0 17662 &packet_setsockopt_17662
34593 -+kernel_write_17665 kernel_write 3 17665 NULL
34594 ++packet_setsockopt_17662 packet_setsockopt 5 17662 NULL
34595 +pwr_enable_ps_read_17686 pwr_enable_ps_read 3 17686 NULL
34596 -+filemap_fdatawait_17688 filemap_fdatawait 0 17688 NULL
34597 -+gfn_to_pfn_memslot_17693 gfn_to_pfn_memslot 2-0 17693 NULL
34598 -+__einj_error_trigger_17707 __einj_error_trigger 0 17707 NULL nohasharray
34599 -+venus_rename_17707 venus_rename 4-5 17707 &__einj_error_trigger_17707
34600 ++venus_rename_17707 venus_rename 4-5 17707 NULL nohasharray
34601 ++__einj_error_trigger_17707 __einj_error_trigger 0 17707 &venus_rename_17707
34602 +exofs_read_lookup_dev_table_17733 exofs_read_lookup_dev_table 3 17733 NULL
34603 +sctpprobe_read_17741 sctpprobe_read 3 17741 NULL
34604 -+mark_unsafe_pages_17759 mark_unsafe_pages 0 17759 NULL
34605 +dgap_do_fep_load_17765 dgap_do_fep_load 3 17765 NULL
34606 -+dtf_read_run_17768 dtf_read_run 3 17768 NULL
34607 +brcmf_sdio_chip_verifynvram_17776 brcmf_sdio_chip_verifynvram 4 17776 NULL
34608 -+hash_ipport6_expire_17784 hash_ipport6_expire 3 17784 NULL
34609 -+perf_clock_17787 perf_clock 0 17787 NULL
34610 -+ubifs_leb_change_17789 ubifs_leb_change 0-4 17789 NULL
34611 -+get_unaligned_be64_17794 get_unaligned_be64 0 17794 NULL nohasharray
34612 -+shrink_slab_node_17794 shrink_slab_node 3-4 17794 &get_unaligned_be64_17794
34613 -+bkey_to_cacheline_17811 bkey_to_cacheline 0 17811 NULL
34614 -+_snd_pcm_lib_alloc_vmalloc_buffer_17820 _snd_pcm_lib_alloc_vmalloc_buffer 2 17820 NULL
34615 ++shrink_slab_node_17794 shrink_slab_node 3 17794 NULL
34616 +gnet_stats_copy_app_17821 gnet_stats_copy_app 3 17821 NULL
34617 +cipso_v4_gentag_rbm_17836 cipso_v4_gentag_rbm 0 17836 NULL
34618 +dm_stats_message_17863 dm_stats_message 5 17863 NULL
34619 +sisusb_send_bulk_msg_17864 sisusb_send_bulk_msg 3 17864 NULL
34620 +alloc_sja1000dev_17868 alloc_sja1000dev 1 17868 NULL
34621 ++virtio_cread32_17873 virtio_cread32 0 17873 NULL
34622 +ray_cs_essid_proc_write_17875 ray_cs_essid_proc_write 3 17875 NULL
34623 -+orinoco_set_key_17878 orinoco_set_key 7-5 17878 NULL nohasharray
34624 ++orinoco_set_key_17878 orinoco_set_key 5-7 17878 NULL nohasharray
34625 +i40e_align_l2obj_base_17878 i40e_align_l2obj_base 0-1 17878 &orinoco_set_key_17878
34626 +init_per_cpu_17880 init_per_cpu 1 17880 NULL
34627 +ieee80211_if_fmt_dot11MeshMaxPeerLinks_17883 ieee80211_if_fmt_dot11MeshMaxPeerLinks 3 17883 NULL
34628 +ieee80211_if_fmt_dot11MeshHWMPRootMode_17890 ieee80211_if_fmt_dot11MeshHWMPRootMode 3 17890 NULL
34629 -+ocfs2_clusters_to_blocks_17896 ocfs2_clusters_to_blocks 0-2 17896 NULL
34630 -+recover_head_17904 recover_head 3 17904 NULL
34631 +xfs_buf_associate_memory_17915 xfs_buf_associate_memory 3 17915 NULL
34632 +scsi_bufflen_17933 scsi_bufflen 0 17933 NULL
34633 +__mutex_lock_check_stamp_17947 __mutex_lock_check_stamp 0 17947 NULL
34634 +beacon_interval_write_17952 beacon_interval_write 3 17952 NULL
34635 -+ufs_free_blocks_17963 ufs_free_blocks 3-2 17963 NULL nohasharray
34636 -+tlv_put_u64_17963 tlv_put_u64 0 17963 &ufs_free_blocks_17963
34637 +calc_nr_buckets_17976 calc_nr_buckets 0 17976 NULL
34638 +ext4_ext_calc_credits_for_single_extent_17983 ext4_ext_calc_credits_for_single_extent 0-2 17983 NULL
34639 +smk_write_cipso_17989 smk_write_cipso 3 17989 NULL
34640 +gnttab_max_grant_frames_17993 gnttab_max_grant_frames 0 17993 NULL
34641 -+ext4_num_overhead_clusters_18001 ext4_num_overhead_clusters 2 18001 NULL
34642 +pvr2_v4l2_read_18006 pvr2_v4l2_read 3 18006 NULL
34643 +alloc_rx_desc_ring_18016 alloc_rx_desc_ring 2 18016 NULL
34644 -+fill_read_18019 fill_read 0 18019 NULL
34645 -+o2hb_highest_node_18034 o2hb_highest_node 2-0 18034 NULL
34646 -+__posix_lock_file_18035 __posix_lock_file 0 18035 NULL
34647 -+ocfs2_cache_cluster_dealloc_18043 ocfs2_cache_cluster_dealloc 0 18043 NULL
34648 -+cryptd_alloc_instance_18048 cryptd_alloc_instance 3-2 18048 NULL
34649 -+find_next_inuse_18051 find_next_inuse 2-3-0 18051 NULL
34650 ++cpufreq_add_dev_symlink_18028 cpufreq_add_dev_symlink 0 18028 NULL
34651 ++o2hb_highest_node_18034 o2hb_highest_node 0 18034 NULL
34652 ++cryptd_alloc_instance_18048 cryptd_alloc_instance 2-3 18048 NULL
34653 +ddebug_proc_write_18055 ddebug_proc_write 3 18055 NULL
34654 +lua_sysfs_read_18062 lua_sysfs_read 6 18062 NULL
34655 +fpregs_get_18066 fpregs_get 4 18066 NULL
34656 -+kvm_read_guest_page_18074 kvm_read_guest_page 5-2 18074 NULL
34657 ++kvm_read_guest_page_18074 kvm_read_guest_page 5 18074 NULL
34658 +SYSC_pselect6_18076 SYSC_pselect6 1 18076 NULL
34659 +SYSC_semtimedop_18091 SYSC_semtimedop 3 18091 NULL
34660 +mpi_alloc_18094 mpi_alloc 1 18094 NULL
34661 @@ -106253,25 +108196,19 @@ index 0000000..3d6cc0f
34662 +dfs_file_read_18116 dfs_file_read 3 18116 NULL
34663 +svc_getnl_18120 svc_getnl 0 18120 NULL
34664 +paging32_gpte_to_gfn_lvl_18131 paging32_gpte_to_gfn_lvl 0-2-1 18131 NULL
34665 -+vmw_surface_dma_size_18132 vmw_surface_dma_size 0 18132 NULL
34666 +selinux_inode_setsecurity_18148 selinux_inode_setsecurity 4 18148 NULL
34667 -+is_idx_node_in_use_18165 is_idx_node_in_use 0 18165 NULL
34668 +pccard_store_cis_18176 pccard_store_cis 6 18176 NULL
34669 -+snd_pcm_hw_refine_user_18204 snd_pcm_hw_refine_user 0 18204 NULL
34670 +orinoco_add_extscan_result_18207 orinoco_add_extscan_result 3 18207 NULL
34671 +gsm_control_message_18209 gsm_control_message 4 18209 NULL
34672 -+ocfs2_divide_leaf_refcount_block_18214 ocfs2_divide_leaf_refcount_block 0 18214 NULL
34673 +do_ipv6_setsockopt_18215 do_ipv6_setsockopt 5 18215 NULL
34674 +gnttab_alloc_grant_references_18240 gnttab_alloc_grant_references 1 18240 NULL
34675 +alloc_trace_uprobe_18247 alloc_trace_uprobe 3 18247 NULL
34676 +rfcomm_sock_setsockopt_18254 rfcomm_sock_setsockopt 5 18254 NULL
34677 -+__sysfs_add_one_18258 __sysfs_add_one 0 18258 NULL
34678 +qdisc_class_hash_alloc_18262 qdisc_class_hash_alloc 1 18262 NULL
34679 +gfs2_alloc_sort_buffer_18275 gfs2_alloc_sort_buffer 1 18275 NULL
34680 -+alloc_ring_18278 alloc_ring 4-2-8 18278 NULL
34681 -+find_dirty_idx_leb_18280 find_dirty_idx_leb 0 18280 NULL
34682 -+nouveau_subdev_create__18281 nouveau_subdev_create_ 7 18281 NULL nohasharray
34683 -+bio_phys_segments_18281 bio_phys_segments 0 18281 &nouveau_subdev_create__18281
34684 ++alloc_ring_18278 alloc_ring 2-4 18278 NULL
34685 ++bio_phys_segments_18281 bio_phys_segments 0 18281 NULL nohasharray
34686 ++nouveau_subdev_create__18281 nouveau_subdev_create_ 7 18281 &bio_phys_segments_18281
34687 +ext4_readpages_18283 ext4_readpages 4 18283 NULL
34688 +mmc_send_bus_test_18285 mmc_send_bus_test 4 18285 NULL
34689 +um_idi_write_18293 um_idi_write 3 18293 NULL
34690 @@ -106282,69 +108219,46 @@ index 0000000..3d6cc0f
34691 +alloc_and_copy_string_18321 alloc_and_copy_string 2 18321 NULL
34692 +ecryptfs_send_message_18322 ecryptfs_send_message 2 18322 NULL
34693 +bio_integrity_advance_18324 bio_integrity_advance 2 18324 NULL
34694 -+__inorder_to_tree_18329 __inorder_to_tree 0-3-1 18329 NULL
34695 +lcd_proc_write_18351 lcd_proc_write 3 18351 NULL
34696 +pwr_power_save_off_read_18355 pwr_power_save_off_read 3 18355 NULL
34697 -+xlbd_reserve_minors_18365 xlbd_reserve_minors 1-2 18365 NULL
34698 -+SyS_process_vm_readv_18366 SyS_process_vm_readv 5-3 18366 NULL
34699 ++SyS_process_vm_readv_18366 SyS_process_vm_readv 3-5 18366 NULL
34700 +ep_io_18367 ep_io 0 18367 NULL
34701 +qib_user_sdma_num_pages_18371 qib_user_sdma_num_pages 0 18371 NULL
34702 -+ci_role_write_18388 ci_role_write 3 18388 NULL nohasharray
34703 -+irq_find_mapping_18388 irq_find_mapping 0-2 18388 &ci_role_write_18388
34704 -+btrfs_update_inode_18394 btrfs_update_inode 0 18394 NULL
34705 ++ci_role_write_18388 ci_role_write 3 18388 NULL
34706 +hdlc_empty_fifo_18397 hdlc_empty_fifo 2 18397 NULL
34707 -+__video_register_device_18399 __video_register_device 3 18399 NULL
34708 -+hash_ip4_expire_18402 hash_ip4_expire 3 18402 NULL nohasharray
34709 -+adis16136_show_serial_18402 adis16136_show_serial 3 18402 &hash_ip4_expire_18402
34710 -+btrfs_rmap_block_18403 btrfs_rmap_block 0 18403 NULL
34711 ++adis16136_show_serial_18402 adis16136_show_serial 3 18402 NULL
34712 +crystalhd_user_data_18407 crystalhd_user_data 3 18407 NULL
34713 -+batadv_orig_node_add_if_18433 batadv_orig_node_add_if 2 18433 NULL nohasharray
34714 -+iscsi_create_flashnode_sess_18433 iscsi_create_flashnode_sess 4 18433 &batadv_orig_node_add_if_18433
34715 ++iscsi_create_flashnode_sess_18433 iscsi_create_flashnode_sess 4 18433 NULL
34716 +snd_hda_get_connections_18437 snd_hda_get_connections 0 18437 NULL
34717 -+btrfs_uuid_tree_lookup_18451 btrfs_uuid_tree_lookup 0 18451 NULL
34718 +flash_dev_cache_miss_18454 flash_dev_cache_miss 4 18454 NULL
34719 +fuse_perform_write_18457 fuse_perform_write 4 18457 NULL
34720 +regset_tls_set_18459 regset_tls_set 4 18459 NULL
34721 -+pcibios_window_alignment_18460 pcibios_window_alignment 0 18460 NULL
34722 -+dma_alloc_from_contiguous_18466 dma_alloc_from_contiguous 3-2 18466 NULL
34723 +pci_vpd_lrdt_size_18479 pci_vpd_lrdt_size 0 18479 NULL nohasharray
34724 +mite_bytes_in_transit_18479 mite_bytes_in_transit 0 18479 &pci_vpd_lrdt_size_18479
34725 -+r600_texture_size_18487 r600_texture_size 4-5-6 18487 NULL nohasharray
34726 -+udpv6_setsockopt_18487 udpv6_setsockopt 5 18487 &r600_texture_size_18487
34727 -+btrfs_fiemap_18501 btrfs_fiemap 3 18501 NULL nohasharray
34728 -+remap_pmd_range_18501 remap_pmd_range 3-4-5 18501 &btrfs_fiemap_18501
34729 -+i915_gem_object_wait_fence_18508 i915_gem_object_wait_fence 0 18508 NULL
34730 ++udpv6_setsockopt_18487 udpv6_setsockopt 5 18487 NULL
34731 ++btrfs_fiemap_18501 btrfs_fiemap 3 18501 NULL
34732 +__copy_user_zeroing_intel_18510 __copy_user_zeroing_intel 0-3 18510 NULL
34733 +snd_vx_inb_18514 snd_vx_inb 0 18514 NULL
34734 +snd_gus_dram_poke_18525 snd_gus_dram_poke 4 18525 NULL
34735 +nouveau_fifo_channel_create__18530 nouveau_fifo_channel_create_ 9 18530 NULL
34736 +seq_copy_in_user_18543 seq_copy_in_user 3 18543 NULL
34737 -+acpi_register_gsi_ioapic_18550 acpi_register_gsi_ioapic 2 18550 NULL
34738 +sas_change_queue_depth_18555 sas_change_queue_depth 2 18555 NULL
34739 -+vb2_streamon_18562 vb2_streamon 0 18562 NULL
34740 +smk_write_rules_list_18565 smk_write_rules_list 3 18565 NULL
34741 +debug_output_18575 debug_output 3 18575 NULL
34742 -+is_extent_unchanged_18576 is_extent_unchanged 0 18576 NULL
34743 -+check_lpt_type_18577 check_lpt_type 0 18577 NULL
34744 -+numa_node_id_18596 numa_node_id 0 18596 NULL
34745 +filemap_fdatawait_range_18600 filemap_fdatawait_range 0 18600 NULL nohasharray
34746 +slabinfo_write_18600 slabinfo_write 3 18600 &filemap_fdatawait_range_18600
34747 +iowarrior_write_18604 iowarrior_write 3 18604 NULL
34748 -+audio_get_endpoint_req_18624 audio_get_endpoint_req 0 18624 NULL
34749 ++nvc0_ram_create__18624 nvc0_ram_create_ 4 18624 NULL nohasharray
34750 ++audio_get_endpoint_req_18624 audio_get_endpoint_req 0 18624 &nvc0_ram_create__18624
34751 +from_buffer_18625 from_buffer 3 18625 NULL
34752 +snd_pcm_oss_write3_18657 snd_pcm_oss_write3 0-3 18657 NULL
34753 +ieee80211_if_fmt_rssi_threshold_18664 ieee80211_if_fmt_rssi_threshold 3 18664 NULL
34754 -+unmap_page_18665 unmap_page 2-3 18665 NULL
34755 +xfs_iext_insert_18667 xfs_iext_insert 3 18667 NULL
34756 -+__alloc_skb_head_18683 __alloc_skb_head 2 18683 NULL
34757 ++fnic_stats_debugfs_read_18688 fnic_stats_debugfs_read 3 18688 NULL
34758 +echo_client_prep_commit_18693 echo_client_prep_commit 8 18693 NULL
34759 -+replay_log_leb_18704 replay_log_leb 3 18704 NULL
34760 +iwl_dbgfs_rx_handlers_read_18708 iwl_dbgfs_rx_handlers_read 3 18708 NULL
34761 +ceph_alloc_page_vector_18710 ceph_alloc_page_vector 1 18710 NULL
34762 -+ocfs2_trim_extent_18711 ocfs2_trim_extent 3-4 18711 NULL
34763 +blk_rq_bytes_18715 blk_rq_bytes 0 18715 NULL
34764 -+byt_gpio_to_irq_18721 byt_gpio_to_irq 2 18721 NULL
34765 -+ext4_es_insert_extent_18729 ext4_es_insert_extent 0 18729 NULL
34766 +snd_als4k_gcr_read_addr_18741 snd_als4k_gcr_read_addr 0 18741 NULL
34767 +o2hb_debug_create_18744 o2hb_debug_create 4 18744 NULL
34768 +__erst_read_to_erange_from_nvram_18748 __erst_read_to_erange_from_nvram 0 18748 NULL
34769 @@ -106354,137 +108268,99 @@ index 0000000..3d6cc0f
34770 +SyS_lsetxattr_18776 SyS_lsetxattr 4 18776 NULL
34771 +alloc_fcdev_18780 alloc_fcdev 1 18780 NULL
34772 +prealloc_18800 prealloc 0 18800 NULL
34773 -+alloc_pages_node_18809 alloc_pages_node 1 18809 NULL
34774 -+madvise_hwpoison_18812 madvise_hwpoison 2 18812 NULL
34775 -+setup_ioapic_irq_18813 setup_ioapic_irq 1 18813 NULL
34776 +dm_stats_print_18815 dm_stats_print 7 18815 NULL
34777 +sys_modify_ldt_18824 sys_modify_ldt 3 18824 NULL
34778 +mtf_test_write_18844 mtf_test_write 3 18844 NULL
34779 -+iterate_inode_refs_18846 iterate_inode_refs 0 18846 NULL
34780 -+drm_ht_create_18853 drm_ht_create 2 18853 NULL
34781 +sctp_setsockopt_events_18862 sctp_setsockopt_events 3 18862 NULL
34782 -+ieee80211_if_read_element_ttl_18869 ieee80211_if_read_element_ttl 3 18869 NULL nohasharray
34783 -+heads_to_leaves_18869 heads_to_leaves 2-0 18869 &ieee80211_if_read_element_ttl_18869
34784 ++ieee80211_if_read_element_ttl_18869 ieee80211_if_read_element_ttl 3 18869 NULL
34785 +xlog_find_verify_log_record_18870 xlog_find_verify_log_record 2 18870 NULL
34786 -+width_to_agaw_18883 width_to_agaw 0-1 18883 NULL
34787 -+overwrite_item_18896 overwrite_item 0 18896 NULL
34788 -+kmem_cache_alloc_node_18899 kmem_cache_alloc_node 3 18899 NULL
34789 +ceph_setxattr_18913 ceph_setxattr 4 18913 NULL
34790 -+ext4_block_in_group_18922 ext4_block_in_group 2 18922 NULL
34791 +ieee80211_rx_mgmt_disassoc_18927 ieee80211_rx_mgmt_disassoc 3 18927 NULL
34792 -+create_pending_snapshot_18936 create_pending_snapshot 0 18936 NULL
34793 +snapshot_write_next_18937 snapshot_write_next 0 18937 NULL
34794 -+regcache_sync_block_18963 regcache_sync_block 4-3 18963 NULL
34795 +__nla_reserve_18974 __nla_reserve 3 18974 NULL
34796 +__blockdev_direct_IO_18977 __blockdev_direct_IO 0-6 18977 NULL
34797 -+gfn_to_pfn_atomic_18981 gfn_to_pfn_atomic 2 18981 NULL
34798 -+get_inode_path_18988 get_inode_path 0 18988 NULL
34799 -+find_dirtiest_idx_leb_19001 find_dirtiest_idx_leb 0 19001 NULL nohasharray
34800 -+test_check_exists_19001 test_check_exists 2 19001 &find_dirtiest_idx_leb_19001
34801 +layout_in_gaps_19006 layout_in_gaps 2 19006 NULL
34802 +huge_page_size_19008 huge_page_size 0 19008 NULL
34803 -+push_leaf_right_19017 push_leaf_right 0 19017 NULL
34804 -+prepare_highmem_image_19028 prepare_highmem_image 0 19028 NULL
34805 -+ocfs2_steal_resource_19036 ocfs2_steal_resource 0 19036 NULL
34806 ++hash_netport6_expire_19013 hash_netport6_expire 4 19013 NULL
34807 ++sysfs_create_dir_ns_19033 sysfs_create_dir_ns 0 19033 NULL
34808 +revalidate_19043 revalidate 2 19043 NULL
34809 +afs_vnode_store_data_19048 afs_vnode_store_data 2-3-4-5 19048 NULL
34810 +osc_pinger_recov_seq_write_19056 osc_pinger_recov_seq_write 3 19056 NULL
34811 +create_gpadl_header_19064 create_gpadl_header 2 19064 NULL
34812 +ieee80211_key_alloc_19065 ieee80211_key_alloc 3 19065 NULL
34813 +ceph_create_snap_context_19082 ceph_create_snap_context 1 19082 NULL
34814 -+kvm_lapic_set_vapic_addr_19083 kvm_lapic_set_vapic_addr 2 19083 NULL
34815 +sta_last_seq_ctrl_read_19106 sta_last_seq_ctrl_read 3 19106 NULL
34816 +cifs_readv_from_socket_19109 cifs_readv_from_socket 3 19109 NULL
34817 +ATOMIC_SUB_RETURN_19115 ATOMIC_SUB_RETURN 2 19115 NULL
34818 -+ext4_inode_table_19125 ext4_inode_table 0 19125 NULL
34819 +snd_als4k_iobase_readl_19136 snd_als4k_iobase_readl 0 19136 NULL
34820 -+btrfs_run_delayed_refs_19137 btrfs_run_delayed_refs 0 19137 NULL
34821 +alloc_irdadev_19140 alloc_irdadev 1 19140 NULL
34822 +sleep_auth_read_19159 sleep_auth_read 3 19159 NULL
34823 -+ext3_reserve_inode_write_19163 ext3_reserve_inode_write 0 19163 NULL
34824 +smk_write_access2_19170 smk_write_access2 3 19170 NULL
34825 +iwl_dbgfs_reply_tx_error_read_19205 iwl_dbgfs_reply_tx_error_read 3 19205 NULL
34826 +vmw_unlocked_ioctl_19212 vmw_unlocked_ioctl 2 19212 NULL
34827 +__copy_to_user_inatomic_19214 __copy_to_user_inatomic 3-0 19214 NULL
34828 +dev_counters_read_19216 dev_counters_read 3 19216 NULL
34829 +wbcir_tx_19219 wbcir_tx 3 19219 NULL
34830 -+gsi_to_irq_19220 gsi_to_irq 0-1 19220 NULL
34831 +snd_mask_max_19224 snd_mask_max 0 19224 NULL
34832 -+snd_pcm_capture_rewind_19229 snd_pcm_capture_rewind 0-2 19229 NULL
34833 +bio_alloc_mddev_19238 bio_alloc_mddev 2 19238 NULL
34834 +ucma_query_19260 ucma_query 4 19260 NULL
34835 -+write_one_cache_group_19261 write_one_cache_group 0 19261 NULL
34836 +il_dbgfs_rxon_filter_flags_read_19281 il_dbgfs_rxon_filter_flags_read 3 19281 NULL
34837 -+cfg80211_rx_unprot_mlme_mgmt_19288 cfg80211_rx_unprot_mlme_mgmt 3 19288 NULL
34838 -+____cache_alloc_node_19297 ____cache_alloc_node 3 19297 NULL
34839 ++batadv_tt_save_orig_buffer_19288 batadv_tt_save_orig_buffer 4 19288 NULL nohasharray
34840 ++cfg80211_rx_unprot_mlme_mgmt_19288 cfg80211_rx_unprot_mlme_mgmt 3 19288 &batadv_tt_save_orig_buffer_19288
34841 +qc_capture_19298 qc_capture 3 19298 NULL
34842 +ocfs2_prepare_inode_for_refcount_19303 ocfs2_prepare_inode_for_refcount 4-3 19303 NULL
34843 +event_tx_stuck_read_19305 event_tx_stuck_read 3 19305 NULL
34844 -+gfn_to_gpa_19320 gfn_to_gpa 0-1 19320 NULL
34845 +debug_read_19322 debug_read 3 19322 NULL
34846 -+SYSC_sendfile64_19327 SYSC_sendfile64 4 19327 NULL
34847 -+cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 NULL nohasharray
34848 -+lbs_host_sleep_write_19332 lbs_host_sleep_write 3 19332 &cfg80211_inform_bss_19332
34849 ++lbs_host_sleep_write_19332 lbs_host_sleep_write 3 19332 NULL nohasharray
34850 ++cfg80211_inform_bss_19332 cfg80211_inform_bss 8 19332 &lbs_host_sleep_write_19332
34851 +closure_sub_19359 closure_sub 2 19359 NULL
34852 +firmware_data_write_19360 firmware_data_write 6-5 19360 NULL
34853 +read_zero_19366 read_zero 3 19366 NULL
34854 +interpret_user_input_19393 interpret_user_input 2 19393 NULL
34855 +sync_fill_pt_info_19397 sync_fill_pt_info 0 19397 NULL
34856 -+get_unaligned_be16_19400 get_unaligned_be16 0 19400 NULL
34857 -+get_n_events_by_type_19401 get_n_events_by_type 0 19401 NULL
34858 +pep_recvmsg_19402 pep_recvmsg 4 19402 NULL
34859 +dvbdmx_write_19423 dvbdmx_write 3 19423 NULL
34860 -+__phys_addr_19434 __phys_addr 0 19434 NULL
34861 +SyS_sched_getaffinity_19444 SyS_sched_getaffinity 2 19444 NULL
34862 +xfrm_alg_auth_len_19454 xfrm_alg_auth_len 0 19454 NULL
34863 +gnet_stats_copy_19458 gnet_stats_copy 4 19458 NULL
34864 ++gp2ap020a00f_get_thresh_reg_19468 gp2ap020a00f_get_thresh_reg 0 19468 NULL
34865 +sky2_read16_19475 sky2_read16 0 19475 NULL
34866 +__read_status_pciv2_19492 __read_status_pciv2 0 19492 NULL
34867 +kstrtoll_from_user_19500 kstrtoll_from_user 2 19500 NULL
34868 +ext4_add_new_descs_19509 ext4_add_new_descs 3 19509 NULL
34869 -+cfc_write_array_to_buffer_19529 cfc_write_array_to_buffer 3 19529 NULL nohasharray
34870 -+apei_exec_pre_map_gars_19529 apei_exec_pre_map_gars 0 19529 &cfc_write_array_to_buffer_19529
34871 ++batadv_tvlv_container_register_19520 batadv_tvlv_container_register 5 19520 NULL
34872 ++apei_exec_pre_map_gars_19529 apei_exec_pre_map_gars 0 19529 NULL nohasharray
34873 ++cfc_write_array_to_buffer_19529 cfc_write_array_to_buffer 3 19529 &apei_exec_pre_map_gars_19529
34874 +nfc_llcp_build_tlv_19536 nfc_llcp_build_tlv 3 19536 NULL
34875 +howmany_64_19548 howmany_64 2 19548 NULL
34876 -+btrfs_xattr_security_init_19553 btrfs_xattr_security_init 0 19553 NULL
34877 +gfn_to_index_19558 gfn_to_index 0-1-3-2 19558 NULL
34878 -+kernel_read_19559 kernel_read 4-0 19559 NULL
34879 +ocfs2_control_message_19564 ocfs2_control_message 3 19564 NULL
34880 +ieee80211_if_read_tkip_mic_test_19565 ieee80211_if_read_tkip_mic_test 3 19565 NULL
34881 +nfsd_read_19568 nfsd_read 5 19568 NULL
34882 +cgroup_read_s64_19570 cgroup_read_s64 5 19570 NULL
34883 +bm_status_read_19583 bm_status_read 3 19583 NULL
34884 -+batadv_tt_update_orig_19586 batadv_tt_update_orig 4 19586 NULL
34885 +load_xattr_datum_19594 load_xattr_datum 0 19594 NULL
34886 +__mei_cl_recv_19636 __mei_cl_recv 3 19636 NULL
34887 -+usbvision_rvmalloc_19655 usbvision_rvmalloc 1 19655 NULL
34888 +LoadBitmap_19658 LoadBitmap 2 19658 NULL
34889 -+i915_gem_object_bind_to_gtt_19682 i915_gem_object_bind_to_gtt 0 19682 NULL
34890 -+bio_detain_19690 bio_detain 2 19690 NULL
34891 -+btrfs_del_inode_extref_19692 btrfs_del_inode_extref 0 19692 NULL
34892 -+mem_cgroup_swappiness_19718 mem_cgroup_swappiness 0 19718 NULL
34893 -+btrfs_write_marked_extents_19720 btrfs_write_marked_extents 0 19720 NULL
34894 ++iwl_dbgfs_pm_params_write_19660 iwl_dbgfs_pm_params_write 3 19660 NULL
34895 +read_reg_19723 read_reg 0 19723 NULL
34896 +wm8350_block_write_19727 wm8350_block_write 2-3 19727 NULL
34897 -+memcpy_toiovecend_19736 memcpy_toiovecend 3-4-0 19736 NULL
34898 ++memcpy_toiovecend_19736 memcpy_toiovecend 4-3 19736 NULL
34899 +snd_es1968_get_dma_ptr_19747 snd_es1968_get_dma_ptr 0 19747 NULL
34900 -+p9_client_read_19750 p9_client_read 0-5 19750 NULL
34901 ++p9_client_read_19750 p9_client_read 5-0 19750 NULL
34902 +pnpbios_proc_write_19758 pnpbios_proc_write 3 19758 NULL
34903 +ocfs2_readpages_19759 ocfs2_readpages 4 19759 NULL
34904 +jffs2_acl_from_medium_19762 jffs2_acl_from_medium 2 19762 NULL
34905 +readhscx_19769 readhscx 0 19769 NULL
34906 -+ocfs2_read_group_descriptor_19771 ocfs2_read_group_descriptor 0 19771 NULL
34907 +__set_print_fmt_19776 __set_print_fmt 0 19776 NULL
34908 -+saa7146_vmalloc_build_pgtable_19780 saa7146_vmalloc_build_pgtable 2 19780 NULL
34909 ++iwl_dbgfs_disable_power_off_write_19823 iwl_dbgfs_disable_power_off_write 3 19823 NULL
34910 +irda_setsockopt_19824 irda_setsockopt 5 19824 NULL
34911 -+pcpu_next_unpop_19831 pcpu_next_unpop 4 19831 NULL
34912 +vfs_getxattr_19832 vfs_getxattr 0 19832 NULL
34913 +security_context_to_sid_19839 security_context_to_sid 2 19839 NULL
34914 +crypt_alloc_buffer_19846 crypt_alloc_buffer 2 19846 NULL
34915 +cfg80211_mlme_register_mgmt_19852 cfg80211_mlme_register_mgmt 5 19852 NULL
34916 +__nla_put_19857 __nla_put 3 19857 NULL
34917 +mrp_request_join_19882 mrp_request_join 4 19882 NULL
34918 -+blk_alloc_queue_node_19887 blk_alloc_queue_node 2 19887 NULL
34919 +aes_decrypt_interrupt_read_19910 aes_decrypt_interrupt_read 3 19910 NULL
34920 +ps_upsd_max_apturn_read_19918 ps_upsd_max_apturn_read 3 19918 NULL
34921 +mangle_name_19923 mangle_name 0 19923 NULL
34922 @@ -106492,67 +108368,49 @@ index 0000000..3d6cc0f
34923 +guest_read_tsc_19931 guest_read_tsc 0 19931 NULL
34924 +iwl_dbgfs_rx_queue_read_19943 iwl_dbgfs_rx_queue_read 3 19943 NULL
34925 +cfg80211_rx_assoc_resp_19944 cfg80211_rx_assoc_resp 4 19944 NULL
34926 -+alloc_elfnotes_buf_19974 alloc_elfnotes_buf 1 19974 NULL
34927 +get_jack_mode_name_19976 get_jack_mode_name 4 19976 NULL
34928 +attach_hdlc_protocol_19986 attach_hdlc_protocol 3 19986 NULL
34929 +rtw_set_wps_probe_resp_19989 rtw_set_wps_probe_resp 3 19989 NULL
34930 ++lustre_pack_request_19992 lustre_pack_request 0 19992 NULL
34931 +diva_um_idi_read_20003 diva_um_idi_read 0 20003 NULL
34932 +lov_stripe_md_size_20009 lov_stripe_md_size 0-1 20009 NULL
34933 +SYSC_fgetxattr_20027 SYSC_fgetxattr 4 20027 NULL
34934 +split_scan_timeout_read_20029 split_scan_timeout_read 3 20029 NULL
34935 -+mlx5_ib_db_map_user_20037 mlx5_ib_db_map_user 2 20037 NULL
34936 -+btrfs_block_rsv_migrate_20050 btrfs_block_rsv_migrate 0 20050 NULL
34937 -+__be32_to_cpup_20056 __be32_to_cpup 0 20056 NULL
34938 +alloc_ieee80211_20063 alloc_ieee80211 1 20063 NULL
34939 +iwl_mvm_power_mac_dbgfs_read_20067 iwl_mvm_power_mac_dbgfs_read 4 20067 NULL
34940 -+btrfs_pin_extent_for_log_replay_20069 btrfs_pin_extent_for_log_replay 2 20069 NULL
34941 +target_message_20072 target_message 2 20072 NULL
34942 +rawv6_sendmsg_20080 rawv6_sendmsg 4 20080 NULL
34943 +fuse_conn_limit_read_20084 fuse_conn_limit_read 3 20084 NULL
34944 +aat2870_reg_write_file_20086 aat2870_reg_write_file 3 20086 NULL
34945 +team_options_register_20091 team_options_register 3 20091 NULL
34946 +qla2x00_adjust_sdev_qdepth_up_20097 qla2x00_adjust_sdev_qdepth_up 2 20097 NULL
34947 -+read_int_20098 read_int 0 20098 NULL
34948 +root_nfs_copy_20111 root_nfs_copy 3 20111 NULL
34949 +hptiop_adjust_disk_queue_depth_20122 hptiop_adjust_disk_queue_depth 2 20122 NULL
34950 -+self_check_vid_hdr_20131 self_check_vid_hdr 0 20131 NULL
34951 +tomoyo_commit_ok_20167 tomoyo_commit_ok 2 20167 NULL
34952 +read_flush_pipefs_20171 read_flush_pipefs 3 20171 NULL
34953 +wep_addr_key_count_read_20174 wep_addr_key_count_read 3 20174 NULL
34954 +create_trace_probe_20175 create_trace_probe 1 20175 NULL
34955 +crystalhd_map_dio_20181 crystalhd_map_dio 3 20181 NULL
34956 -+udf_bitmap_new_block_20214 udf_bitmap_new_block 4 20214 NULL
34957 +pvr2_ctrl_value_to_sym_20229 pvr2_ctrl_value_to_sym 5 20229 NULL
34958 +rose_sendmsg_20249 rose_sendmsg 4 20249 NULL
34959 +tm6000_i2c_send_regs_20250 tm6000_i2c_send_regs 5 20250 NULL
34960 -+pcpu_alloc_20255 pcpu_alloc 1-2 20255 NULL
34961 -+resource_size_20256 resource_size 0 20256 NULL
34962 -+uv_blade_to_memory_nid_20259 uv_blade_to_memory_nid 0 20259 NULL
34963 +r10_sync_page_io_20307 r10_sync_page_io 3 20307 NULL
34964 +dm_get_reserved_bio_based_ios_20315 dm_get_reserved_bio_based_ios 0 20315 NULL
34965 +tx_tx_burst_programmed_read_20320 tx_tx_burst_programmed_read 3 20320 NULL
34966 +vx_send_msg_nolock_20322 vx_send_msg_nolock 0 20322 NULL
34967 +snd_cs4281_BA1_read_20323 snd_cs4281_BA1_read 5 20323 NULL
34968 -+ocfs2_et_insert_check_20341 ocfs2_et_insert_check 0 20341 NULL
34969 +gfs2_glock_nq_m_20347 gfs2_glock_nq_m 1 20347 NULL
34970 +handle_arr_calc_size_20355 handle_arr_calc_size 0-1 20355 NULL
34971 -+snd_pcm_stop_20376 snd_pcm_stop 0 20376 NULL
34972 +smk_set_cipso_20379 smk_set_cipso 3 20379 NULL
34973 -+block_read_full_page_20380 block_read_full_page 0 20380 NULL
34974 +snd_nm256_readl_20394 snd_nm256_readl 0 20394 NULL nohasharray
34975 +read_7220_creg32_20394 read_7220_creg32 0 20394 &snd_nm256_readl_20394
34976 +__kfifo_from_user_20399 __kfifo_from_user 3 20399 NULL nohasharray
34977 -+SyS_get_mempolicy_20399 SyS_get_mempolicy 3-4 20399 &__kfifo_from_user_20399
34978 -+btrfs_set_acl_20440 btrfs_set_acl 0 20440 NULL
34979 ++SyS_get_mempolicy_20399 SyS_get_mempolicy 3 20399 &__kfifo_from_user_20399
34980 +nfs3_setxattr_20458 nfs3_setxattr 4 20458 NULL
34981 +compat_ipv6_setsockopt_20468 compat_ipv6_setsockopt 5 20468 NULL
34982 +read_buf_20469 read_buf 2 20469 NULL
34983 ++bio_trim_20472 bio_trim 2 20472 NULL
34984 +btrfs_get_32_20476 btrfs_get_32 0 20476 NULL
34985 -+fast_user_write_20494 fast_user_write 5 20494 NULL
34986 -+ocfs2_db_frozen_trigger_20503 ocfs2_db_frozen_trigger 4 20503 NULL
34987 -+pcpu_alloc_area_20511 pcpu_alloc_area 0-3 20511 NULL
34988 -+link_free_space_20512 link_free_space 0 20512 NULL
34989 -+pcpu_depopulate_chunk_20517 pcpu_depopulate_chunk 3-2 20517 NULL
34990 +xfs_iext_realloc_direct_20521 xfs_iext_realloc_direct 2 20521 NULL
34991 +drbd_bm_resize_20522 drbd_bm_resize 2 20522 NULL
34992 +amd_create_gatt_pages_20537 amd_create_gatt_pages 1 20537 NULL
34993 @@ -106560,55 +108418,43 @@ index 0000000..3d6cc0f
34994 +venus_create_20555 venus_create 4 20555 NULL
34995 +btrfs_super_log_root_20565 btrfs_super_log_root 0 20565 NULL
34996 +crypto_ahash_reqsize_20569 crypto_ahash_reqsize 0 20569 NULL
34997 -+batadv_tt_append_diff_20588 batadv_tt_append_diff 4 20588 NULL nohasharray
34998 -+ocfs2_cluster_lock_20588 ocfs2_cluster_lock 0 20588 &batadv_tt_append_diff_20588
34999 ++ocfs2_cluster_lock_20588 ocfs2_cluster_lock 0 20588 NULL
35000 +kvm_test_age_hva_20593 kvm_test_age_hva 2 20593 NULL
35001 +sync_timeline_create_20601 sync_timeline_create 2 20601 NULL
35002 +lirc_write_20604 lirc_write 3 20604 NULL
35003 +qib_qsfp_write_20614 qib_qsfp_write 0-2-4 20614 NULL
35004 +snd_pcm_oss_prepare_20641 snd_pcm_oss_prepare 0 20641 NULL
35005 +get_extent_skip_holes_20642 get_extent_skip_holes 2 20642 NULL
35006 -+kfifo_copy_to_user_20646 kfifo_copy_to_user 4-3 20646 NULL
35007 ++kfifo_copy_to_user_20646 kfifo_copy_to_user 3-4 20646 NULL
35008 +cpulist_scnprintf_20648 cpulist_scnprintf 2-0 20648 NULL
35009 +oz_add_farewell_20652 oz_add_farewell 5 20652 NULL
35010 +oz_cdev_read_20659 oz_cdev_read 3 20659 NULL
35011 -+btrfs_qgroup_reserve_20676 btrfs_qgroup_reserve 0 20676 NULL nohasharray
35012 -+snd_hdsp_playback_copy_20676 snd_hdsp_playback_copy 5 20676 &btrfs_qgroup_reserve_20676
35013 -+get_user_page_nowait_20682 get_user_page_nowait 3 20682 NULL nohasharray
35014 -+dvb_dmxdev_buffer_read_20682 dvb_dmxdev_buffer_read 0-4 20682 &get_user_page_nowait_20682
35015 ++snd_hdsp_playback_copy_20676 snd_hdsp_playback_copy 5 20676 NULL
35016 ++dvb_dmxdev_buffer_read_20682 dvb_dmxdev_buffer_read 0-4 20682 NULL
35017 +cpumask_size_20683 cpumask_size 0 20683 NULL
35018 +btrfs_node_blockptr_20685 btrfs_node_blockptr 0 20685 NULL
35019 -+gru_vtop_20689 gru_vtop 2 20689 NULL
35020 +read_file_tgt_int_stats_20697 read_file_tgt_int_stats 3 20697 NULL
35021 -+i915_gem_obj_ggtt_pin_20698 i915_gem_obj_ggtt_pin 0 20698 NULL
35022 +__maestro_read_20700 __maestro_read 0 20700 NULL
35023 +cipso_v4_gentag_rng_20703 cipso_v4_gentag_rng 0 20703 NULL
35024 +pcpu_page_first_chunk_20712 pcpu_page_first_chunk 1 20712 NULL
35025 +ocfs2_read_xattr_bucket_20722 ocfs2_read_xattr_bucket 0 20722 NULL
35026 +security_context_to_sid_force_20724 security_context_to_sid_force 2 20724 NULL
35027 -+io_apic_set_pci_routing_20740 io_apic_set_pci_routing 2 20740 NULL
35028 +fb_prepare_logo_20743 fb_prepare_logo 0 20743 NULL
35029 +vol_cdev_direct_write_20751 vol_cdev_direct_write 3 20751 NULL
35030 +ocfs2_align_bytes_to_clusters_20754 ocfs2_align_bytes_to_clusters 2 20754 NULL
35031 +brcmf_p2p_escan_20763 brcmf_p2p_escan 2 20763 NULL
35032 -+ubi_io_read_20767 ubi_io_read 0 20767 NULL
35033 -+ext4_r_blocks_count_20768 ext4_r_blocks_count 0 20768 NULL
35034 +fb_alloc_cmap_gfp_20792 fb_alloc_cmap_gfp 2 20792 NULL
35035 -+iommu_range_alloc_20794 iommu_range_alloc 3 20794 NULL
35036 +iwl_dbgfs_rxon_flags_read_20795 iwl_dbgfs_rxon_flags_read 3 20795 NULL
35037 -+ext4_convert_unwritten_extents_endio_20812 ext4_convert_unwritten_extents_endio 0 20812 NULL
35038 +strndup_user_20819 strndup_user 2 20819 NULL
35039 -+dtf_read_channel_20831 dtf_read_channel 3 20831 NULL
35040 ++tipc_msg_build_20825 tipc_msg_build 3 20825 NULL
35041 +wl1271_format_buffer_20834 wl1271_format_buffer 2 20834 NULL
35042 +uvc_alloc_entity_20836 uvc_alloc_entity 3-4 20836 NULL
35043 -+btrfs_orphan_add_20840 btrfs_orphan_add 0 20840 NULL
35044 +p9_tag_alloc_20845 p9_tag_alloc 3 20845 NULL
35045 +nvme_trans_supported_vpd_pages_20847 nvme_trans_supported_vpd_pages 4 20847 NULL
35046 +get_name_20855 get_name 4 20855 NULL
35047 +iwl_dbgfs_pm_params_read_20866 iwl_dbgfs_pm_params_read 3 20866 NULL
35048 +snd_pcm_capture_avail_20867 snd_pcm_capture_avail 0 20867 NULL
35049 +srq_free_res_20868 srq_free_res 5 20868 NULL
35050 -+ocfs2_bmap_20874 ocfs2_bmap 2 20874 NULL
35051 +cfs_cpt_table_create_20884 cfs_cpt_table_create 1 20884 NULL
35052 +rb_simple_write_20890 rb_simple_write 3 20890 NULL
35053 +sisusb_send_packet_20891 sisusb_send_packet 2 20891 NULL
35054 @@ -106616,7 +108462,6 @@ index 0000000..3d6cc0f
35055 +vfio_msi_enable_20906 vfio_msi_enable 2 20906 NULL
35056 +lbs_rdbbp_write_20918 lbs_rdbbp_write 3 20918 NULL
35057 +htable_bits_20933 htable_bits 0 20933 NULL
35058 -+check_eofblocks_fl_20942 check_eofblocks_fl 0 20942 NULL
35059 +altera_set_ir_post_20948 altera_set_ir_post 2 20948 NULL
35060 +rx_rx_phy_hdr_read_20950 rx_rx_phy_hdr_read 3 20950 NULL
35061 +rsxx_cram_read_20957 rsxx_cram_read 3 20957 NULL
35062 @@ -106624,51 +108469,41 @@ index 0000000..3d6cc0f
35063 +snd_rme9652_playback_copy_20970 snd_rme9652_playback_copy 5 20970 NULL
35064 +alg_setsockopt_20985 alg_setsockopt 5 20985 NULL
35065 +qib_verbs_send_20999 qib_verbs_send 5-3 20999 NULL
35066 -+ocfs2_free_clusters_21001 ocfs2_free_clusters 4-0 21001 NULL
35067 +btrfs_inode_ref_name_len_21024 btrfs_inode_ref_name_len 0 21024 NULL
35068 +rx_defrag_tkip_called_read_21031 rx_defrag_tkip_called_read 3 21031 NULL
35069 ++srp_change_queue_depth_21038 srp_change_queue_depth 2 21038 NULL
35070 +lbs_threshold_read_21046 lbs_threshold_read 5 21046 NULL
35071 +reiserfs_direct_IO_21051 reiserfs_direct_IO 4 21051 NULL
35072 +proc_fault_inject_write_21058 proc_fault_inject_write 3 21058 NULL
35073 -+btrfs_insert_root_21061 btrfs_insert_root 0 21061 NULL
35074 +qdisc_get_default_21072 qdisc_get_default 2 21072 NULL
35075 +event_calibration_read_21083 event_calibration_read 3 21083 NULL
35076 +bl_add_page_to_bio_21094 bl_add_page_to_bio 2 21094 NULL nohasharray
35077 +multipath_status_21094 multipath_status 5 21094 &bl_add_page_to_bio_21094
35078 -+ext2_valid_block_bitmap_21101 ext2_valid_block_bitmap 3 21101 NULL
35079 ++rate_control_pid_events_read_21099 rate_control_pid_events_read 3 21099 NULL
35080 ++ocfs2_extend_meta_needed_21104 ocfs2_extend_meta_needed 0 21104 NULL
35081 +ath6kl_send_go_probe_resp_21113 ath6kl_send_go_probe_resp 3 21113 NULL
35082 -+bitset_size_in_bytes_21124 bitset_size_in_bytes 0-1 21124 NULL
35083 +i2400m_rx_trace_21127 i2400m_rx_trace 3 21127 NULL
35084 -+tps6586x_irq_init_21144 tps6586x_irq_init 3 21144 NULL
35085 -+chunk_size_21146 chunk_size 0 21146 NULL
35086 -+ocfs2_block_check_validate_21149 ocfs2_block_check_validate 2 21149 NULL
35087 -+alloc_pg_vec_21159 alloc_pg_vec 3 21159 NULL
35088 -+btrfs_add_root_ref_21186 btrfs_add_root_ref 0 21186 NULL
35089 +cx18_v4l2_read_21196 cx18_v4l2_read 3 21196 NULL
35090 -+get_current_ntfs_time_21198 get_current_ntfs_time 0 21198 NULL
35091 +ipc_rcu_alloc_21208 ipc_rcu_alloc 1 21208 NULL
35092 +scsi_execute_req_flags_21215 scsi_execute_req_flags 5 21215 NULL
35093 -+_ocfs2_free_clusters_21220 _ocfs2_free_clusters 4-0 21220 NULL
35094 +get_numpages_21227 get_numpages 0-1-2 21227 NULL
35095 -+SyS_mlock_21238 SyS_mlock 1-2 21238 NULL
35096 +input_ff_create_21240 input_ff_create 2 21240 NULL
35097 +cfg80211_notify_new_peer_candidate_21242 cfg80211_notify_new_peer_candidate 4 21242 NULL
35098 ++use_debug_keys_read_21251 use_debug_keys_read 3 21251 NULL
35099 +fru_length_21257 fru_length 0 21257 NULL
35100 +rtw_set_wps_beacon_21262 rtw_set_wps_beacon 3 21262 NULL
35101 +ocfs2_blocks_for_bytes_21268 ocfs2_blocks_for_bytes 0-2 21268 NULL
35102 -+vmw_gmr2_bind_21305 vmw_gmr2_bind 3 21305 NULL
35103 +do_msg_fill_21307 do_msg_fill 3 21307 NULL
35104 +add_res_range_21310 add_res_range 4 21310 NULL
35105 +get_zeroed_page_21322 get_zeroed_page 0 21322 NULL
35106 +ftrace_profile_read_21327 ftrace_profile_read 3 21327 NULL
35107 ++read_file_bool_bmps_21344 read_file_bool_bmps 3 21344 NULL
35108 ++ocfs2_find_subtree_root_21351 ocfs2_find_subtree_root 0 21351 NULL
35109 +gfs2_ea_get_copy_21353 gfs2_ea_get_copy 0 21353 NULL
35110 -+max77693_irq_domain_map_21357 max77693_irq_domain_map 2 21357 NULL
35111 +alloc_orinocodev_21371 alloc_orinocodev 1 21371 NULL
35112 -+split_leaf_21378 split_leaf 0 21378 NULL
35113 +SYSC_rt_sigpending_21379 SYSC_rt_sigpending 2 21379 NULL
35114 +video_ioctl2_21380 video_ioctl2 2 21380 NULL
35115 +diva_get_driver_dbg_mask_21399 diva_get_driver_dbg_mask 0 21399 NULL
35116 -+sle64_to_cpu_21400 sle64_to_cpu 0-1 21400 NULL
35117 +snd_m3_inw_21406 snd_m3_inw 0 21406 NULL
35118 +snapshot_read_next_21426 snapshot_read_next 0 21426 NULL
35119 +tcp_bound_to_half_wnd_21429 tcp_bound_to_half_wnd 0-2 21429 NULL
35120 @@ -106679,7 +108514,6 @@ index 0000000..3d6cc0f
35121 +mei_nfc_send_21477 mei_nfc_send 3 21477 NULL
35122 +read_file_xmit_21487 read_file_xmit 3 21487 NULL
35123 +mmc_alloc_sg_21504 mmc_alloc_sg 1 21504 NULL
35124 -+dma_skb_copy_datagram_iovec_21516 dma_skb_copy_datagram_iovec 3-5 21516 NULL
35125 +btrfs_file_aio_write_21520 btrfs_file_aio_write 4 21520 NULL
35126 +il_dbgfs_stations_read_21532 il_dbgfs_stations_read 3 21532 NULL
35127 +cipso_v4_map_cat_enum_hton_21540 cipso_v4_map_cat_enum_hton 0 21540 NULL
35128 @@ -106689,144 +108523,92 @@ index 0000000..3d6cc0f
35129 +snd_es18xx_mixer_read_21586 snd_es18xx_mixer_read 0 21586 NULL
35130 +ocfs2_acl_from_xattr_21604 ocfs2_acl_from_xattr 2 21604 NULL
35131 +filemap_get_page_21606 filemap_get_page 2 21606 NULL
35132 -+xlog_do_recovery_pass_21618 xlog_do_recovery_pass 3 21618 NULL
35133 -+pci_cardbus_resource_alignment_21625 pci_cardbus_resource_alignment 0 21625 NULL
35134 -+add_pin_to_irq_node_21628 add_pin_to_irq_node 2 21628 NULL
35135 +ocfs2_refcount_cow_hunk_21630 ocfs2_refcount_cow_hunk 3-4 21630 NULL
35136 +__jfs_getxattr_21631 __jfs_getxattr 0 21631 NULL
35137 -+validate_nnode_21638 validate_nnode 0 21638 NULL
35138 -+__irq_alloc_descs_21639 __irq_alloc_descs 2-1-0-3-4 21639 NULL
35139 -+ocfs2_lock_refcount_allocators_21646 ocfs2_lock_refcount_allocators 0 21646 NULL
35140 +atalk_sendmsg_21677 atalk_sendmsg 4 21677 NULL
35141 +ocfs2_xattr_get_nolock_21678 ocfs2_xattr_get_nolock 0 21678 NULL
35142 +rtllib_alloc_txb_21687 rtllib_alloc_txb 1 21687 NULL
35143 +evdev_ioctl_handler_21705 evdev_ioctl_handler 2 21705 NULL
35144 -+btrfs_find_all_leafs_21712 btrfs_find_all_leafs 0 21712 NULL
35145 +unix_skb_len_21722 unix_skb_len 0 21722 NULL
35146 +lprocfs_wr_import_21728 lprocfs_wr_import 3 21728 NULL
35147 -+ocfs2_remove_rightmost_path_21729 ocfs2_remove_rightmost_path 0 21729 NULL
35148 -+reiserfs_allocate_list_bitmaps_21732 reiserfs_allocate_list_bitmaps 3 21732 NULL nohasharray
35149 -+ext4_split_extent_at_21732 ext4_split_extent_at 0 21732 &reiserfs_allocate_list_bitmaps_21732
35150 -+vm_brk_21739 vm_brk 1-2 21739 NULL
35151 +mthca_alloc_init_21754 mthca_alloc_init 2 21754 NULL
35152 +usbat_flash_read_data_21762 usbat_flash_read_data 4 21762 NULL
35153 -+gen_pool_add_21776 gen_pool_add 3-4 21776 NULL
35154 -+SyS_sendfile_21777 SyS_sendfile 4 21777 NULL
35155 -+atomic64_cmpxchg_21782 atomic64_cmpxchg 0 21782 NULL
35156 ++gen_pool_add_21776 gen_pool_add 3 21776 NULL
35157 +xfs_da_grow_inode_int_21785 xfs_da_grow_inode_int 3 21785 NULL
35158 +dvb_generic_ioctl_21810 dvb_generic_ioctl 2 21810 NULL
35159 +__ocfs2_cluster_lock_21812 __ocfs2_cluster_lock 0 21812 NULL
35160 -+wm8994_request_irq_21822 wm8994_request_irq 2 21822 NULL
35161 +oom_adj_read_21847 oom_adj_read 3 21847 NULL
35162 -+gen_unique_name_21852 gen_unique_name 0 21852 NULL
35163 +lpfc_idiag_extacc_avail_get_21865 lpfc_idiag_extacc_avail_get 0-3 21865 NULL
35164 +brcms_debugfs_hardware_read_21867 brcms_debugfs_hardware_read 3 21867 NULL
35165 +sisusbcon_bmove_21873 sisusbcon_bmove 6-5-7 21873 NULL
35166 +ldlm_lock_create_21888 ldlm_lock_create 7 21888 NULL
35167 -+__alloc_reserved_percpu_21895 __alloc_reserved_percpu 2-1 21895 NULL
35168 -+rio_destid_first_21900 rio_destid_first 0 21900 NULL
35169 +dbAllocCtl_21911 dbAllocCtl 0 21911 NULL
35170 +qsfp_1_read_21915 qsfp_1_read 3 21915 NULL
35171 -+ast_ttm_tt_create_21917 ast_ttm_tt_create 2 21917 NULL
35172 -+__ocfs2_claim_clusters_21936 __ocfs2_claim_clusters 0 21936 NULL
35173 -+alloc_ldt_21972 alloc_ldt 2 21972 NULL
35174 +SYSC_prctl_21980 SYSC_prctl 4 21980 NULL
35175 -+rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 NULL nohasharray
35176 -+compat_rw_copy_check_uvector_22001 compat_rw_copy_check_uvector 3-0 22001 &rxpipe_descr_host_int_trig_rx_data_read_22001
35177 -+ocfs2_reserve_cluster_bitmap_bits_22016 ocfs2_reserve_cluster_bitmap_bits 0 22016 NULL
35178 ++compat_rw_copy_check_uvector_22001 compat_rw_copy_check_uvector 0-3 22001 NULL nohasharray
35179 ++rxpipe_descr_host_int_trig_rx_data_read_22001 rxpipe_descr_host_int_trig_rx_data_read 3 22001 &compat_rw_copy_check_uvector_22001
35180 +regcache_sync_block_raw_flush_22021 regcache_sync_block_raw_flush 3-4 22021 NULL
35181 +btrfs_get_16_22023 btrfs_get_16 0 22023 NULL
35182 -+i915_gem_evict_something_22028 i915_gem_evict_something 0 22028 NULL
35183 +_sp2d_min_pg_22032 _sp2d_min_pg 0 22032 NULL
35184 +zd_usb_read_fw_22049 zd_usb_read_fw 4 22049 NULL
35185 -+atalk_recvmsg_22053 atalk_recvmsg 4 22053 NULL
35186 +ieee80211_if_fmt_dropped_frames_ttl_22054 ieee80211_if_fmt_dropped_frames_ttl 3 22054 NULL
35187 +btrfs_reloc_clone_csums_22077 btrfs_reloc_clone_csums 2-3 22077 NULL
35188 -+write_opcode_22082 write_opcode 2 22082 NULL
35189 +mem_rw_22085 mem_rw 3 22085 NULL
35190 -+snd_pcm_xrun_22088 snd_pcm_xrun 0 22088 NULL
35191 -+sched_clock_cpu_22098 sched_clock_cpu 0 22098 NULL
35192 ++kstrtos32_from_user_22087 kstrtos32_from_user 2 22087 NULL
35193 +rt2x00debug_read_crypto_stats_22109 rt2x00debug_read_crypto_stats 3 22109 NULL
35194 -+shmem_add_to_page_cache_22121 shmem_add_to_page_cache 0 22121 NULL
35195 +snd_hda_codec_read_22130 snd_hda_codec_read 0 22130 NULL
35196 +SyS_sched_setaffinity_22148 SyS_sched_setaffinity 2 22148 NULL
35197 +do_tcp_sendpages_22155 do_tcp_sendpages 4 22155 NULL
35198 -+remap_pud_range_22164 remap_pud_range 3-4-5 22164 NULL
35199 -+__kfifo_alloc_22173 __kfifo_alloc 3 22173 NULL nohasharray
35200 -+vmci_qp_broker_map_22173 vmci_qp_broker_map 3 22173 &__kfifo_alloc_22173
35201 -+fls_22210 fls 0 22210 NULL
35202 -+rfcomm_sock_recvmsg_22227 rfcomm_sock_recvmsg 4 22227 NULL nohasharray
35203 -+bitmap_clear_bits_22227 bitmap_clear_bits 3 22227 &rfcomm_sock_recvmsg_22227
35204 ++__kfifo_alloc_22173 __kfifo_alloc 3 22173 NULL
35205 ++rfcomm_sock_recvmsg_22227 rfcomm_sock_recvmsg 4 22227 NULL
35206 +mem_write_22232 mem_write 3 22232 NULL
35207 +p9_virtio_zc_request_22240 p9_virtio_zc_request 6-5 22240 NULL
35208 -+fsnotify_parent_22243 fsnotify_parent 0 22243 NULL
35209 ++prepare_to_wait_event_22247 prepare_to_wait_event 0 22247 NULL
35210 +compat_process_vm_rw_22254 compat_process_vm_rw 3-5 22254 NULL
35211 +ping_common_sendmsg_22261 ping_common_sendmsg 5 22261 NULL
35212 +add_res_tree_22263 add_res_tree 7 22263 NULL
35213 +__btrfs_direct_write_22273 __btrfs_direct_write 4 22273 NULL
35214 +queue_max_sectors_22280 queue_max_sectors 0 22280 NULL
35215 -+i915_gem_execbuffer_relocate_22294 i915_gem_execbuffer_relocate 0 22294 NULL
35216 -+pci_vpd_srdt_size_22300 pci_vpd_srdt_size 0 22300 NULL nohasharray
35217 -+__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 &pci_vpd_srdt_size_22300
35218 ++__tun_chr_ioctl_22300 __tun_chr_ioctl 4 22300 NULL nohasharray
35219 ++pci_vpd_srdt_size_22300 pci_vpd_srdt_size 0 22300 &__tun_chr_ioctl_22300
35220 +mesh_table_alloc_22305 mesh_table_alloc 1 22305 NULL
35221 +lov_setstripe_22307 lov_setstripe 2 22307 NULL
35222 +udpv6_sendmsg_22316 udpv6_sendmsg 4 22316 NULL
35223 +C_SYSC_msgrcv_22320 C_SYSC_msgrcv 3 22320 NULL
35224 -+radix_tree_find_next_bit_22334 radix_tree_find_next_bit 3-2-0 22334 NULL
35225 +atomic_read_22342 atomic_read 0 22342 NULL
35226 +ll_lazystatfs_seq_write_22353 ll_lazystatfs_seq_write 3 22353 NULL
35227 -+mlx4_db_alloc_22358 mlx4_db_alloc 3 22358 NULL
35228 -+irq_reserve_irq_22360 irq_reserve_irq 1 22360 NULL nohasharray
35229 -+memcg_size_22360 memcg_size 0 22360 &irq_reserve_irq_22360
35230 ++memcg_size_22360 memcg_size 0 22360 NULL
35231 +snd_pcm_alsa_frames_22363 snd_pcm_alsa_frames 2 22363 NULL
35232 -+tps6586x_gpio_to_irq_22365 tps6586x_gpio_to_irq 2 22365 NULL
35233 +evdev_ioctl_22371 evdev_ioctl 2 22371 NULL
35234 -+alloc_large_system_hash_22391 alloc_large_system_hash 2-8-9 22391 NULL
35235 -+ocfs2_assign_bh_22392 ocfs2_assign_bh 0 22392 NULL
35236 ++alloc_large_system_hash_22391 alloc_large_system_hash 2 22391 NULL
35237 +zoran_write_22404 zoran_write 3 22404 NULL
35238 +ATOMIC_ADD_RETURN_22413 ATOMIC_ADD_RETURN 2 22413 NULL
35239 +queue_reply_22416 queue_reply 3 22416 NULL
35240 +__set_enter_print_fmt_22431 __set_enter_print_fmt 0 22431 NULL
35241 +queue_max_segments_22441 queue_max_segments 0 22441 NULL
35242 -+_rtw_vmalloc_22444 _rtw_vmalloc 1 22444 NULL
35243 +handle_received_packet_22457 handle_received_packet 3 22457 NULL
35244 +mem_cgroup_read_22461 mem_cgroup_read 5 22461 NULL
35245 -+btrfs_write_out_cache_22471 btrfs_write_out_cache 0 22471 NULL nohasharray
35246 -+dtf_write_device_22471 dtf_write_device 3 22471 &btrfs_write_out_cache_22471
35247 +source_sink_start_ep_22472 source_sink_start_ep 0 22472 NULL
35248 -+alloc_desc_22487 alloc_desc 2 22487 NULL
35249 +ecryptfs_write_22488 ecryptfs_write 4-3 22488 NULL
35250 +qib_user_sdma_alloc_header_22490 qib_user_sdma_alloc_header 2 22490 NULL
35251 +cache_write_procfs_22491 cache_write_procfs 3 22491 NULL
35252 -+mp_find_ioapic_pin_22499 mp_find_ioapic_pin 0-2 22499 NULL
35253 +mutex_lock_interruptible_22505 mutex_lock_interruptible 0 22505 NULL
35254 -+__btrfs_add_delayed_item_22511 __btrfs_add_delayed_item 0 22511 NULL
35255 +trim_no_bitmap_22524 trim_no_bitmap 4-3 22524 NULL
35256 +ocfs2_read_extent_block_22550 ocfs2_read_extent_block 0 22550 NULL
35257 +agp_alloc_page_array_22554 agp_alloc_page_array 1 22554 NULL
35258 -+snd_pcm_hw_params_choose_22560 snd_pcm_hw_params_choose 0 22560 NULL
35259 +dbFindCtl_22587 dbFindCtl 0 22587 NULL
35260 +snapshot_read_22601 snapshot_read 3 22601 NULL
35261 -+ocfs2_get_refcount_block_22610 ocfs2_get_refcount_block 0 22610 NULL
35262 -+remove_breakpoint_22628 remove_breakpoint 3 22628 NULL
35263 +sctp_setsockopt_connectx_old_22631 sctp_setsockopt_connectx_old 3 22631 NULL
35264 +ide_core_cp_entry_22636 ide_core_cp_entry 3 22636 NULL
35265 +wl1271_rx_filter_get_fields_size_22638 wl1271_rx_filter_get_fields_size 0 22638 NULL
35266 +pwr_wake_on_timer_exp_read_22640 pwr_wake_on_timer_exp_read 3 22640 NULL
35267 -+sysfs_attr_ns_22645 sysfs_attr_ns 0 22645 NULL
35268 +iwl_dbgfs_calib_disabled_read_22649 iwl_dbgfs_calib_disabled_read 3 22649 NULL
35269 +compat_SyS_msgrcv_22661 compat_SyS_msgrcv 3 22661 NULL
35270 -+ubifs_leb_write_22679 ubifs_leb_write 4-5 22679 NULL nohasharray
35271 -+ext4_ext_direct_IO_22679 ext4_ext_direct_IO 4 22679 &ubifs_leb_write_22679
35272 -+fill_gap_22681 fill_gap 0 22681 NULL nohasharray
35273 -+l2tp_ip_recvmsg_22681 l2tp_ip_recvmsg 4 22681 &fill_gap_22681
35274 ++ext4_ext_direct_IO_22679 ext4_ext_direct_IO 4 22679 NULL
35275 ++l2tp_ip_recvmsg_22681 l2tp_ip_recvmsg 4 22681 NULL
35276 +bch_dump_read_22685 bch_dump_read 3 22685 NULL
35277 +reg_umr_22686 reg_umr 5 22686 NULL
35278 -+ocfs2_get_block_22687 ocfs2_get_block 2 22687 NULL
35279 -+map_22700 map 2 22700 NULL nohasharray
35280 -+btrfs_del_inode_ref_in_log_22700 btrfs_del_inode_ref_in_log 0 22700 &map_22700
35281 +alloc_libipw_22708 alloc_libipw 1 22708 NULL
35282 -+ecryptfs_write_metadata_to_contents_22721 ecryptfs_write_metadata_to_contents 3 22721 NULL
35283 +cx18_copy_buf_to_user_22735 cx18_copy_buf_to_user 4-0 22735 NULL
35284 +ceph_decode_32_22738 ceph_decode_32 0 22738 NULL nohasharray
35285 +__mei_cl_send_22738 __mei_cl_send 3 22738 &ceph_decode_32_22738
35286 @@ -106834,26 +108616,23 @@ index 0000000..3d6cc0f
35287 +qlcnic_sriov_init_22762 qlcnic_sriov_init 2 22762 NULL
35288 +print_frame_22769 print_frame 0 22769 NULL
35289 +ftrace_arch_read_dyn_info_22773 ftrace_arch_read_dyn_info 0 22773 NULL
35290 -+ocfs2_block_group_alloc_22774 ocfs2_block_group_alloc 0 22774 NULL
35291 +pla_ocp_write_22802 pla_ocp_write 4 22802 NULL
35292 +__generic_copy_to_user_intel_22806 __generic_copy_to_user_intel 0-3 22806 NULL
35293 +clone_bio_integrity_22842 clone_bio_integrity 4 22842 NULL
35294 +read_file_rcstat_22854 read_file_rcstat 3 22854 NULL
35295 +create_attr_set_22861 create_attr_set 1 22861 NULL
35296 ++hash_ip6_expire_22867 hash_ip6_expire 4 22867 NULL
35297 +vmw_execbuf_process_22885 vmw_execbuf_process 5 22885 NULL
35298 +usblp_new_writeurb_22894 usblp_new_writeurb 2 22894 NULL
35299 +mdc800_device_read_22896 mdc800_device_read 3 22896 NULL
35300 +policy_emit_config_values_22900 policy_emit_config_values 3 22900 NULL
35301 -+__btrfs_add_free_space_22917 __btrfs_add_free_space 0 22917 NULL
35302 +xstateregs_set_22932 xstateregs_set 4 22932 NULL
35303 +pcpu_mem_zalloc_22948 pcpu_mem_zalloc 1 22948 NULL
35304 -+alloc_sglist_22960 alloc_sglist 3-2 22960 NULL
35305 ++alloc_sglist_22960 alloc_sglist 2-3 22960 NULL
35306 +caif_seqpkt_sendmsg_22961 caif_seqpkt_sendmsg 4 22961 NULL
35307 +vme_get_size_22964 vme_get_size 0 22964 NULL
35308 +tx_frag_key_not_found_read_22971 tx_frag_key_not_found_read 3 22971 NULL
35309 -+cached_dev_cache_miss_22979 cached_dev_cache_miss 4 22979 NULL
35310 +usb_get_langid_22983 usb_get_langid 0 22983 NULL
35311 -+set_msr_hyperv_22985 set_msr_hyperv 3 22985 NULL
35312 +remote_settings_file_write_22987 remote_settings_file_write 3 22987 NULL
35313 +brcmf_sdio_chip_exit_download_23001 brcmf_sdio_chip_exit_download 4 23001 NULL
35314 +viafb_dvp0_proc_write_23023 viafb_dvp0_proc_write 3 23023 NULL
35315 @@ -106865,141 +108644,102 @@ index 0000000..3d6cc0f
35316 +reiserfs_add_entry_23062 reiserfs_add_entry 4 23062 NULL nohasharray
35317 +unix_seqpacket_recvmsg_23062 unix_seqpacket_recvmsg 4 23062 &reiserfs_add_entry_23062
35318 +mei_cl_send_23068 mei_cl_send 3 23068 NULL
35319 -+filp_close_23071 filp_close 0 23071 NULL
35320 +kvm_mmu_gva_to_gpa_write_23075 kvm_mmu_gva_to_gpa_write 0 23075 NULL
35321 -+vm_map_ram_23078 vm_map_ram 3 23078 NULL nohasharray
35322 -+raw_sendmsg_23078 raw_sendmsg 4 23078 &vm_map_ram_23078
35323 ++raw_sendmsg_23078 raw_sendmsg 4 23078 NULL
35324 +get_user_hdr_len_23079 get_user_hdr_len 0 23079 NULL
35325 +isr_tx_procs_read_23084 isr_tx_procs_read 3 23084 NULL
35326 -+lnw_gpio_irq_map_23087 lnw_gpio_irq_map 2 23087 NULL
35327 +rt2x00debug_write_eeprom_23091 rt2x00debug_write_eeprom 3 23091 NULL
35328 -+__add_prelim_ref_23095 __add_prelim_ref 0 23095 NULL
35329 -+fls_long_23096 fls_long 0 23096 NULL
35330 -+ntfs_ucstonls_23097 ntfs_ucstonls 5-3 23097 NULL
35331 ++ntfs_ucstonls_23097 ntfs_ucstonls 3-5 23097 NULL
35332 +pipe_iov_copy_from_user_23102 pipe_iov_copy_from_user 3 23102 NULL
35333 +dgram_recvmsg_23104 dgram_recvmsg 4 23104 NULL
35334 -+ip_recv_error_23109 ip_recv_error 3 23109 NULL
35335 +mwl8k_cmd_set_beacon_23110 mwl8k_cmd_set_beacon 4 23110 NULL
35336 +nl80211_send_rx_auth_23111 nl80211_send_rx_auth 4 23111 NULL
35337 +__clear_user_23118 __clear_user 0-2 23118 NULL
35338 +drm_mode_create_tv_properties_23122 drm_mode_create_tv_properties 2 23122 NULL
35339 +ata_scsi_change_queue_depth_23126 ata_scsi_change_queue_depth 2 23126 NULL
35340 -+ext3_listxattr_23137 ext3_listxattr 3 23137 NULL
35341 +read_file_ani_23161 read_file_ani 3 23161 NULL
35342 -+tg_get_cfs_quota_23176 tg_get_cfs_quota 0 23176 NULL
35343 +usblp_write_23178 usblp_write 3 23178 NULL
35344 -+msnd_fifo_alloc_23179 msnd_fifo_alloc 2 23179 NULL
35345 +gss_pipe_downcall_23182 gss_pipe_downcall 3 23182 NULL
35346 -+fix_unclean_leb_23188 fix_unclean_leb 3 23188 NULL
35347 +mpi_alloc_limb_space_23190 mpi_alloc_limb_space 1 23190 NULL
35348 -+convert_ip_to_linear_23198 convert_ip_to_linear 0 23198 NULL
35349 -+pm80x_free_irq_23210 pm80x_free_irq 2 23210 NULL
35350 +tty_buffer_request_room_23228 tty_buffer_request_room 2-0 23228 NULL
35351 -+__read_status_pci_23229 __read_status_pci 0 23229 NULL nohasharray
35352 -+xlog_get_bp_23229 xlog_get_bp 2 23229 &__read_status_pci_23229
35353 ++xlog_get_bp_23229 xlog_get_bp 2 23229 NULL nohasharray
35354 ++__read_status_pci_23229 __read_status_pci 0 23229 &xlog_get_bp_23229
35355 +ft1000_read_dpram_mag_32_23232 ft1000_read_dpram_mag_32 0 23232 NULL
35356 +rxrpc_client_sendmsg_23236 rxrpc_client_sendmsg 5 23236 NULL
35357 +__gfn_to_rmap_23240 __gfn_to_rmap 2-1 23240 NULL
35358 ++nv50_ram_create__23241 nv50_ram_create_ 4 23241 NULL
35359 +sctp_recvmsg_23265 sctp_recvmsg 4 23265 NULL
35360 +uwb_dev_addr_print_23282 uwb_dev_addr_print 2 23282 NULL
35361 +diva_get_trace_filter_23286 diva_get_trace_filter 0 23286 NULL
35362 -+gru_preload_tlb_23305 gru_preload_tlb 7-4 23305 NULL
35363 +i2cdev_write_23310 i2cdev_write 3 23310 NULL
35364 +__aa_kvmalloc_23320 __aa_kvmalloc 1 23320 NULL
35365 -+__es_remove_extent_23323 __es_remove_extent 0 23323 NULL
35366 +page_readlink_23346 page_readlink 3 23346 NULL
35367 +kmem_zalloc_large_23351 kmem_zalloc_large 1 23351 NULL
35368 +get_dst_timing_23358 get_dst_timing 0 23358 NULL
35369 +fd_setup_write_same_buf_23369 fd_setup_write_same_buf 3 23369 NULL
35370 +iscsi_change_queue_depth_23416 iscsi_change_queue_depth 2 23416 NULL
35371 +vga_mm_r_23419 vga_mm_r 0 23419 NULL
35372 -+vzalloc_node_23424 vzalloc_node 1-2 23424 NULL
35373 -+vmemmap_populate_basepages_23435 vmemmap_populate_basepages 3 23435 NULL
35374 -+__ctzsi2_23444 __ctzsi2 1 23444 NULL
35375 +ocfs2_zero_tail_23447 ocfs2_zero_tail 3 23447 NULL
35376 +hidraw_send_report_23449 hidraw_send_report 3 23449 NULL
35377 -+__ata_change_queue_depth_23484 __ata_change_queue_depth 3-0 23484 NULL
35378 ++__ata_change_queue_depth_23484 __ata_change_queue_depth 3 23484 NULL
35379 +linear_conf_23485 linear_conf 2 23485 NULL
35380 -+copy_module_from_user_23492 copy_module_from_user 2 23492 NULL
35381 +event_filter_read_23494 event_filter_read 3 23494 NULL
35382 -+ext4_remove_blocks_23497 ext4_remove_blocks 0 23497 NULL
35383 +lustre_acl_xattr_merge2ext_23502 lustre_acl_xattr_merge2ext 2 23502 NULL
35384 -+__gfn_to_hva_many_23508 __gfn_to_hva_many 0-2 23508 NULL
35385 +devm_iio_device_alloc_23511 devm_iio_device_alloc 2 23511 NULL
35386 +__proc_cpt_table_23516 __proc_cpt_table 5 23516 NULL
35387 +ima_show_measurements_count_23536 ima_show_measurements_count 3 23536 NULL
35388 -+__es_insert_extent_23543 __es_insert_extent 0 23543 NULL
35389 -+xen_allocate_irq_gsi_23546 xen_allocate_irq_gsi 1-0 23546 NULL
35390 +tcp_current_mss_23552 tcp_current_mss 0 23552 NULL
35391 -+dbg_leb_change_23555 dbg_leb_change 0-4 23555 NULL
35392 +btrfs_super_bytenr_23561 btrfs_super_bytenr 0 23561 NULL
35393 +venus_symlink_23570 venus_symlink 6-4 23570 NULL
35394 +iwl_dbgfs_interrupt_read_23574 iwl_dbgfs_interrupt_read 3 23574 NULL
35395 +xfpregs_get_23586 xfpregs_get 4 23586 NULL
35396 +snd_interval_min_23590 snd_interval_min 0 23590 NULL
35397 -+do_mmap_pgoff_23600 do_mmap_pgoff 0 23600 NULL
35398 +islpci_mgt_transaction_23610 islpci_mgt_transaction 5 23610 NULL
35399 +ocfs2_journal_access_23616 ocfs2_journal_access 0 23616 NULL
35400 -+alloc_pte_23642 alloc_pte 3 23642 NULL
35401 +__i2400mu_send_barker_23652 __i2400mu_send_barker 3 23652 NULL
35402 +sInW_23663 sInW 0 23663 NULL
35403 +SyS_connect_23669 SyS_connect 3 23669 NULL
35404 +cx18_read_23699 cx18_read 3 23699 NULL
35405 -+btrfs_insert_delayed_item_23705 btrfs_insert_delayed_item 0 23705 NULL
35406 +at_get_23708 at_get 0 23708 NULL
35407 -+snd_pcm_hw_refine_23721 snd_pcm_hw_refine 0 23721 NULL
35408 -+mp_config_acpi_gsi_23728 mp_config_acpi_gsi 2 23728 NULL
35409 +rx_rx_dropped_frame_read_23748 rx_rx_dropped_frame_read 3 23748 NULL
35410 +__kfifo_max_r_23768 __kfifo_max_r 0-2-1 23768 NULL
35411 -+svc_prepare_thread_23772 svc_prepare_thread 3 23772 NULL
35412 +__build_packet_message_23778 __build_packet_message 4-10 23778 NULL
35413 +security_inode_getxattr_23781 security_inode_getxattr 0 23781 NULL
35414 +cfg80211_inform_bss_width_frame_23782 cfg80211_inform_bss_width_frame 5 23782 NULL
35415 +mpt_free_res_23793 mpt_free_res 5 23793 NULL
35416 +map_write_23795 map_write 3 23795 NULL
35417 -+diva_alloc_dma_map_23798 diva_alloc_dma_map 2 23798 NULL
35418 +rx_path_reset_read_23801 rx_path_reset_read 3 23801 NULL
35419 +ocfs2_replace_cow_23803 ocfs2_replace_cow 0 23803 NULL
35420 +__earlyonly_bootmem_alloc_23824 __earlyonly_bootmem_alloc 2 23824 NULL
35421 +lustre_msg_buflen_23827 lustre_msg_buflen 0 23827 NULL
35422 -+ceph_copy_page_vector_to_user_23829 ceph_copy_page_vector_to_user 0-4-3 23829 NULL
35423 -+tfrc_binsearch_23833 tfrc_binsearch 0 23833 NULL
35424 ++ceph_copy_page_vector_to_user_23829 ceph_copy_page_vector_to_user 3-4 23829 NULL
35425 +pgdat_end_pfn_23842 pgdat_end_pfn 0 23842 NULL
35426 +iwl_dbgfs_nvm_read_23845 iwl_dbgfs_nvm_read 3 23845 NULL
35427 +p54_init_common_23850 p54_init_common 1 23850 NULL
35428 -+gart_alloc_coherent_23852 gart_alloc_coherent 2 23852 NULL
35429 +bin_to_hex_dup_23853 bin_to_hex_dup 2 23853 NULL
35430 +ocfs2_xattr_get_clusters_23857 ocfs2_xattr_get_clusters 0 23857 NULL
35431 +ieee80211_if_read_dot11MeshMaxPeerLinks_23878 ieee80211_if_read_dot11MeshMaxPeerLinks 3 23878 NULL
35432 -+nes_alloc_resource_23891 nes_alloc_resource 3 23891 NULL
35433 -+_rtw_zvmalloc_23892 _rtw_zvmalloc 1 23892 NULL
35434 ++nouveau_clock_create__23881 nouveau_clock_create_ 5 23881 NULL
35435 +tipc_snprintf_23893 tipc_snprintf 2-0 23893 NULL
35436 +usbg_prepare_w_request_23895 usbg_prepare_w_request 0 23895 NULL
35437 +add_new_gdb_meta_bg_23911 add_new_gdb_meta_bg 3 23911 NULL nohasharray
35438 +ieee80211_if_read_hw_queues_23911 ieee80211_if_read_hw_queues 3 23911 &add_new_gdb_meta_bg_23911
35439 -+device_create_bin_file_23914 device_create_bin_file 0 23914 NULL
35440 +f2fs_getxattr_23917 f2fs_getxattr 0 23917 NULL
35441 -+ipath_reg_phys_mr_23918 ipath_reg_phys_mr 3 23918 NULL nohasharray
35442 -+mpihelp_mul_karatsuba_case_23918 mpihelp_mul_karatsuba_case 5-3 23918 &ipath_reg_phys_mr_23918
35443 -+kvm_read_guest_23928 kvm_read_guest 4-2 23928 NULL nohasharray
35444 -+intel_ring_alloc_seqno_23928 intel_ring_alloc_seqno 0 23928 &kvm_read_guest_23928
35445 -+__alloc_skb_23940 __alloc_skb 4 23940 NULL
35446 ++mpihelp_mul_karatsuba_case_23918 mpihelp_mul_karatsuba_case 5-3 23918 NULL nohasharray
35447 ++ipath_reg_phys_mr_23918 ipath_reg_phys_mr 3 23918 &mpihelp_mul_karatsuba_case_23918
35448 ++kvm_read_guest_23928 kvm_read_guest 4-2 23928 NULL
35449 +uvc_endpoint_max_bpi_23944 uvc_endpoint_max_bpi 0 23944 NULL
35450 +cifs_setxattr_23957 cifs_setxattr 4 23957 NULL
35451 +size_roundup_power2_23958 size_roundup_power2 0-1 23958 NULL
35452 -+vfs_write_23971 vfs_write 0-3 23971 NULL
35453 +sddr55_write_data_23983 sddr55_write_data 4 23983 NULL
35454 +zd_usb_iowrite16v_async_23984 zd_usb_iowrite16v_async 3 23984 NULL
35455 +cxgb_alloc_mem_24007 cxgb_alloc_mem 1 24007 NULL
35456 -+intel_ring_idle_24014 intel_ring_idle 0 24014 NULL
35457 +give_pages_24021 give_pages 3 24021 NULL
35458 -+ocfs2_mark_extent_refcounted_24035 ocfs2_mark_extent_refcounted 6 24035 NULL
35459 +adis16400_show_serial_number_24037 adis16400_show_serial_number 3 24037 NULL
35460 +hmac_setkey_24043 hmac_setkey 3 24043 NULL
35461 +afs_cell_alloc_24052 afs_cell_alloc 2 24052 NULL
35462 +blkcipher_copy_iv_24075 blkcipher_copy_iv 3 24075 NULL
35463 +vb2_fop_read_24080 vb2_fop_read 3 24080 NULL
35464 -+ocfs2_cannibalize_resv_24090 ocfs2_cannibalize_resv 3 24090 NULL
35465 +pipeline_post_proc_swi_read_24108 pipeline_post_proc_swi_read 3 24108 NULL
35466 +request_key_auth_read_24109 request_key_auth_read 3 24109 NULL
35467 +lov_brw_24122 lov_brw 4 24122 NULL
35468 @@ -107008,35 +108748,25 @@ index 0000000..3d6cc0f
35469 +irnet_ctrl_write_24139 irnet_ctrl_write 3 24139 NULL
35470 +SyS_sethostname_24150 SyS_sethostname 2 24150 NULL
35471 +trim_bitmaps_24158 trim_bitmaps 3 24158 NULL
35472 -+set_discard_24162 set_discard 2 24162 NULL
35473 -+__copy_user_zeroing_intel_nocache_24163 __copy_user_zeroing_intel_nocache 0-3 24163 NULL
35474 +adu_read_24177 adu_read 3 24177 NULL
35475 +safe_prepare_write_buffer_24187 safe_prepare_write_buffer 3 24187 NULL
35476 -+shrink_tnc_24190 shrink_tnc 0 24190 NULL
35477 +irq_remapping_setup_msi_irqs_24194 irq_remapping_setup_msi_irqs 2 24194 NULL
35478 +ieee80211_if_read_dot11MeshHWMPpreqMinInterval_24208 ieee80211_if_read_dot11MeshHWMPpreqMinInterval 3 24208 NULL
35479 -+efx_vf_size_24213 efx_vf_size 0 24213 NULL
35480 -+SyS_sendfile64_24220 SyS_sendfile64 4 24220 NULL
35481 +tcpprobe_sprint_24222 tcpprobe_sprint 0-2 24222 NULL
35482 +pcpu_embed_first_chunk_24224 pcpu_embed_first_chunk 3-2-1 24224 NULL nohasharray
35483 +mei_amthif_read_24224 mei_amthif_read 4 24224 &pcpu_embed_first_chunk_24224
35484 +pci_num_vf_24235 pci_num_vf 0 24235 NULL
35485 +sel_read_bool_24236 sel_read_bool 3 24236 NULL
35486 -+dm_cache_save_hint_24257 dm_cache_save_hint 2 24257 NULL
35487 +em28xx_alloc_urbs_24260 em28xx_alloc_urbs 4-6 24260 NULL
35488 +calculate_sizes_24273 calculate_sizes 2 24273 NULL
35489 +thin_status_24278 thin_status 5 24278 NULL
35490 +msg_size_24288 msg_size 0 24288 NULL
35491 -+ext2_free_blocks_24292 ext2_free_blocks 3-2 24292 NULL
35492 -+i2c_smbus_check_pec_24297 i2c_smbus_check_pec 0 24297 NULL
35493 -+map_page_24298 map_page 3-4 24298 NULL
35494 +gserial_connect_24302 gserial_connect 0 24302 NULL
35495 +btmrvl_pscmd_read_24308 btmrvl_pscmd_read 3 24308 NULL
35496 -+reserve_metadata_bytes_24313 reserve_metadata_bytes 3-0 24313 NULL
35497 +ath6kl_add_bss_if_needed_24317 ath6kl_add_bss_if_needed 6 24317 NULL
35498 -+ocfs2_direct_IO_get_blocks_24333 ocfs2_direct_IO_get_blocks 2 24333 NULL
35499 +si476x_radio_read_acf_blob_24336 si476x_radio_read_acf_blob 3 24336 NULL
35500 -+kzalloc_node_24352 kzalloc_node 1-3 24352 NULL
35501 ++C_SYSC_pwritev_24345 C_SYSC_pwritev 3 24345 NULL
35502 ++kzalloc_node_24352 kzalloc_node 1 24352 NULL
35503 +qla2x00_handle_queue_full_24365 qla2x00_handle_queue_full 2 24365 NULL
35504 +cfi_read_pri_24366 cfi_read_pri 3 24366 NULL
35505 +btrfs_item_size_nr_24367 btrfs_item_size_nr 0 24367 NULL
35506 @@ -107044,27 +108774,22 @@ index 0000000..3d6cc0f
35507 +max_io_len_24384 max_io_len 0-1 24384 NULL
35508 +mpt_alloc_res_24387 mpt_alloc_res 5 24387 NULL
35509 +osc_cur_grant_bytes_seq_write_24396 osc_cur_grant_bytes_seq_write 3 24396 NULL
35510 -+pvr2_v4l2_ioctl_24398 pvr2_v4l2_ioctl 2 24398 NULL nohasharray
35511 -+getxattr_24398 getxattr 4 24398 &pvr2_v4l2_ioctl_24398 nohasharray
35512 -+__btrfs_write_out_cache_24398 __btrfs_write_out_cache 0 24398 &getxattr_24398
35513 ++getxattr_24398 getxattr 4 24398 NULL nohasharray
35514 ++pvr2_v4l2_ioctl_24398 pvr2_v4l2_ioctl 2 24398 &getxattr_24398
35515 +blk_update_bidi_request_24415 blk_update_bidi_request 3-4 24415 NULL
35516 +nvme_trans_log_supp_pages_24418 nvme_trans_log_supp_pages 3 24418 NULL
35517 +b43_debugfs_read_24425 b43_debugfs_read 3 24425 NULL
35518 +xenbus_file_read_24427 xenbus_file_read 3 24427 NULL
35519 +ieee80211_rx_mgmt_beacon_24430 ieee80211_rx_mgmt_beacon 3 24430 NULL
35520 +copy_and_ioctl_24434 copy_and_ioctl 4 24434 NULL
35521 -+ixgbe_alloc_q_vector_24439 ixgbe_alloc_q_vector 6-4 24439 NULL
35522 ++ixgbe_alloc_q_vector_24439 ixgbe_alloc_q_vector 4-6 24439 NULL
35523 +smk_user_access_24440 smk_user_access 3 24440 NULL nohasharray
35524 +rtw_set_wps_assoc_resp_24440 rtw_set_wps_assoc_resp 3 24440 &smk_user_access_24440
35525 -+__push_leaf_left_24456 __push_leaf_left 0 24456 NULL
35526 +evdev_do_ioctl_24459 evdev_do_ioctl 2 24459 NULL
35527 +lbs_highsnr_write_24460 lbs_highsnr_write 3 24460 NULL
35528 -+skb_copy_and_csum_datagram_iovec_24466 skb_copy_and_csum_datagram_iovec 2 24466 NULL nohasharray
35529 -+ocfs2_write_cluster_by_desc_24466 ocfs2_write_cluster_by_desc 6-5 24466 &skb_copy_and_csum_datagram_iovec_24466
35530 -+snd_pcm_hw_param_first_24487 snd_pcm_hw_param_first 0 24487 NULL
35531 ++skb_copy_and_csum_datagram_iovec_24466 skb_copy_and_csum_datagram_iovec 2 24466 NULL
35532 ++dut_mode_read_24489 dut_mode_read 3 24489 NULL
35533 +read_file_spec_scan_ctl_24491 read_file_spec_scan_ctl 3 24491 NULL
35534 -+i915_gem_obj_offset_24494 i915_gem_obj_offset 0 24494 NULL
35535 -+push_nodes_for_insert_24496 push_nodes_for_insert 0 24496 NULL
35536 +pd_video_read_24510 pd_video_read 3 24510 NULL
35537 +request_key_with_auxdata_24515 request_key_with_auxdata 4 24515 NULL
35538 +xfs_buf_get_map_24522 xfs_buf_get_map 3 24522 NULL
35539 @@ -107075,10 +108800,8 @@ index 0000000..3d6cc0f
35540 +sensor_hub_get_physical_device_count_24605 sensor_hub_get_physical_device_count 0 24605 NULL nohasharray
35541 +lov_alloc_memmd_24605 lov_alloc_memmd 2 24605 &sensor_hub_get_physical_device_count_24605
35542 +SyS_poll_24620 SyS_poll 2 24620 NULL
35543 -+kvm_pv_enable_async_pf_24637 kvm_pv_enable_async_pf 2 24637 NULL
35544 +context_alloc_24645 context_alloc 3 24645 NULL
35545 +blk_rq_err_bytes_24650 blk_rq_err_bytes 0 24650 NULL
35546 -+btrfs_check_data_free_space_24692 btrfs_check_data_free_space 0 24692 NULL
35547 +datafab_write_data_24696 datafab_write_data 4 24696 NULL
35548 +intelfbhw_get_p1p2_24703 intelfbhw_get_p1p2 2 24703 NULL
35549 +simple_attr_read_24738 simple_attr_read 3 24738 NULL
35550 @@ -107086,40 +108809,29 @@ index 0000000..3d6cc0f
35551 +get_dma_residue_24749 get_dma_residue 0 24749 NULL
35552 +ocfs2_cow_file_pos_24751 ocfs2_cow_file_pos 3 24751 NULL
35553 +kgdb_hex2mem_24755 kgdb_hex2mem 3 24755 NULL
35554 -+kempld_read8_24756 kempld_read8 0 24756 NULL
35555 +ocfs2_read_blocks_24777 ocfs2_read_blocks 0 24777 NULL
35556 +datablob_hmac_verify_24786 datablob_hmac_verify 4 24786 NULL
35557 +cache_read_24790 cache_read 3 24790 NULL
35558 -+__xfs_get_blocks_24791 __xfs_get_blocks 2 24791 NULL
35559 -+i915_gem_check_wedge_24793 i915_gem_check_wedge 0 24793 NULL
35560 +user_regset_copyout_24796 user_regset_copyout 7 24796 NULL
35561 +kvm_read_guest_virt_helper_24804 kvm_read_guest_virt_helper 3-1 24804 NULL
35562 -+__next_cpu_nr_24805 __next_cpu_nr 1 24805 NULL
35563 -+sb_set_blocksize_24807 sb_set_blocksize 0-2 24807 NULL
35564 +ath6kl_fwlog_mask_write_24810 ath6kl_fwlog_mask_write 3 24810 NULL
35565 -+comedi_buf_alloc_24822 comedi_buf_alloc 3 24822 NULL
35566 +net2272_read_24825 net2272_read 0 24825 NULL
35567 +snd_als4k_gcr_read_24840 snd_als4k_gcr_read 0 24840 NULL
35568 -+btrfs_next_old_item_24843 btrfs_next_old_item 0 24843 NULL
35569 -+xfs_free_file_space_24853 xfs_free_file_space 2-3 24853 NULL
35570 +snd_pcm_lib_buffer_bytes_24865 snd_pcm_lib_buffer_bytes 0 24865 NULL
35571 +pnp_alloc_24869 pnp_alloc 1 24869 NULL nohasharray
35572 +l2cap_create_basic_pdu_24869 l2cap_create_basic_pdu 3 24869 &pnp_alloc_24869
35573 -+setup_buffering_24872 setup_buffering 3 24872 NULL
35574 +queues_read_24877 queues_read 3 24877 NULL
35575 +__vxge_hw_vp_initialize_24885 __vxge_hw_vp_initialize 2 24885 NULL
35576 +codec_list_read_file_24910 codec_list_read_file 3 24910 NULL
35577 -+__btrfs_free_extent_24927 __btrfs_free_extent 7-0 24927 NULL nohasharray
35578 -+v4l2_ctrl_new_24927 v4l2_ctrl_new 7 24927 &__btrfs_free_extent_24927
35579 ++v4l2_ctrl_new_24927 v4l2_ctrl_new 7 24927 NULL nohasharray
35580 ++__btrfs_free_extent_24927 __btrfs_free_extent 7 24927 &v4l2_ctrl_new_24927
35581 +ocfs2_fiemap_24949 ocfs2_fiemap 4-3 24949 NULL
35582 +packet_sendmsg_24954 packet_sendmsg 4 24954 NULL
35583 -+ensure_wear_leveling_24971 ensure_wear_leveling 0 24971 NULL
35584 ++ll_layout_fetch_24961 ll_layout_fetch 0 24961 NULL
35585 +twl_i2c_write_u8_24976 twl_i2c_write_u8 3 24976 NULL
35586 +llc_ui_sendmsg_24987 llc_ui_sendmsg 4 24987 NULL
35587 -+btrfs_update_delayed_inode_24988 btrfs_update_delayed_inode 0 24988 NULL
35588 +key_conf_hw_key_idx_read_25003 key_conf_hw_key_idx_read 3 25003 NULL
35589 +il_dbgfs_channels_read_25005 il_dbgfs_channels_read 3 25005 NULL
35590 -+twl6030_irq_unmap_25014 twl6030_irq_unmap 2 25014 NULL
35591 +ni_660x_num_counters_25031 ni_660x_num_counters 0 25031 NULL
35592 +nfs_dns_resolve_name_25036 nfs_dns_resolve_name 3 25036 NULL
35593 +load_unaligned_zeropad_25050 load_unaligned_zeropad 0 25050 NULL
35594 @@ -107128,22 +108840,13 @@ index 0000000..3d6cc0f
35595 +ll_track_pid_seq_write_25068 ll_track_pid_seq_write 3 25068 NULL
35596 +SYSC_listxattr_25072 SYSC_listxattr 3 25072 NULL
35597 +iwl_dbgfs_tx_flush_write_25091 iwl_dbgfs_tx_flush_write 3 25091 NULL
35598 -+gfs2_iter_unstuffed_25099 gfs2_iter_unstuffed 0 25099 NULL nohasharray
35599 -+blkg_path_25099 blkg_path 3 25099 &gfs2_iter_unstuffed_25099
35600 ++ima_appraise_measurement_25093 ima_appraise_measurement 6 25093 NULL
35601 ++blkg_path_25099 blkg_path 3 25099 NULL
35602 +snd_rawmidi_kernel_write_25106 snd_rawmidi_kernel_write 3 25106 NULL
35603 -+fs32_to_cpu_25143 fs32_to_cpu 0 25143 NULL
35604 -+record_new_ref_25154 record_new_ref 0 25154 NULL
35605 -+ipath_init_qp_table_25167 ipath_init_qp_table 2 25167 NULL nohasharray
35606 -+btrfs_delete_delayed_items_25167 btrfs_delete_delayed_items 0 25167 &ipath_init_qp_table_25167
35607 ++ipath_init_qp_table_25167 ipath_init_qp_table 2 25167 NULL
35608 +kvm_mmu_notifier_change_pte_25169 kvm_mmu_notifier_change_pte 3 25169 NULL
35609 +sctp_getsockopt_local_addrs_25178 sctp_getsockopt_local_addrs 2 25178 NULL
35610 -+res_counter_read_u64_25180 res_counter_read_u64 0 25180 NULL
35611 -+send_create_inode_if_needed_25211 send_create_inode_if_needed 0 25211 NULL
35612 -+security_socket_post_create_25221 security_socket_post_create 0 25221 NULL
35613 -+ocfs2_block_check_compute_25223 ocfs2_block_check_compute 2 25223 NULL
35614 -+dtf_write_string_25232 dtf_write_string 5 25232 NULL
35615 +mon_stat_read_25238 mon_stat_read 3 25238 NULL
35616 -+nilfs_palloc_find_available_slot_25245 nilfs_palloc_find_available_slot 5-3 25245 NULL
35617 +stripe_status_25259 stripe_status 5 25259 NULL
35618 +snd_pcm_start_25273 snd_pcm_start 0 25273 NULL
35619 +crypto_alloc_instance2_25277 crypto_alloc_instance2 3 25277 NULL
35620 @@ -107152,60 +108855,39 @@ index 0000000..3d6cc0f
35621 +ath9k_debugfs_read_buf_25316 ath9k_debugfs_read_buf 3 25316 NULL
35622 +rng_buffer_size_25348 rng_buffer_size 0 25348 NULL
35623 +SYSC_kexec_load_25361 SYSC_kexec_load 2 25361 NULL
35624 -+rio_destid_next_25368 rio_destid_next 2-0 25368 NULL nohasharray
35625 -+unix_mkname_25368 unix_mkname 0-2 25368 &rio_destid_next_25368
35626 ++unix_mkname_25368 unix_mkname 0-2 25368 NULL
35627 +sel_read_mls_25369 sel_read_mls 3 25369 NULL
35628 -+tc3589x_gpio_to_irq_25371 tc3589x_gpio_to_irq 2 25371 NULL
35629 -+orphanize_inode_25382 orphanize_inode 0 25382 NULL
35630 -+SyS_splice_25390 SyS_splice 5 25390 NULL
35631 -+btrfs_update_reserved_bytes_25393 btrfs_update_reserved_bytes 0 25393 NULL
35632 +vsp1_entity_init_25407 vsp1_entity_init 3 25407 NULL
35633 -+ebt_buf_add_pad_25413 ebt_buf_add_pad 0 25413 NULL
35634 +dai_list_read_file_25421 dai_list_read_file 3 25421 NULL
35635 +generic_file_buffered_write_25464 generic_file_buffered_write 4 25464 NULL
35636 +ipath_decode_err_25468 ipath_decode_err 3 25468 NULL
35637 +crypto_hash_digestsize_25469 crypto_hash_digestsize 0 25469 NULL
35638 -+ocfs2_hamming_encode_25501 ocfs2_hamming_encode 3 25501 NULL
35639 +ivtv_buf_copy_from_user_25502 ivtv_buf_copy_from_user 4-0 25502 NULL
35640 -+evm_init_hmac_25504 evm_init_hmac 0 25504 NULL
35641 +snd_pcm_plugin_build_25505 snd_pcm_plugin_build 5 25505 NULL
35642 +sb_permission_25523 sb_permission 0 25523 NULL
35643 -+down_read_failed_25532 down_read_failed 2 25532 NULL
35644 +ext3_get_inode_loc_25542 ext3_get_inode_loc 0 25542 NULL
35645 +ieee80211_if_read_path_refresh_time_25545 ieee80211_if_read_path_refresh_time 3 25545 NULL
35646 +wimax_addr_scnprint_25548 wimax_addr_scnprint 2 25548 NULL
35647 -+mgag200_ttm_tt_create_25550 mgag200_ttm_tt_create 2 25550 NULL
35648 -+ht_print_chan_25556 ht_print_chan 0 25556 NULL
35649 ++ht_print_chan_25556 ht_print_chan 3-4-0 25556 NULL
35650 +skb_tailroom_25567 skb_tailroom 0 25567 NULL
35651 -+ping_recvmsg_25597 ping_recvmsg 4 25597 NULL nohasharray
35652 -+find_extend_vma_25597 find_extend_vma 2 25597 &ping_recvmsg_25597
35653 ++ping_recvmsg_25597 ping_recvmsg 4 25597 NULL
35654 +copy_user_generic_25611 copy_user_generic 0 25611 NULL
35655 +proc_coredump_filter_write_25625 proc_coredump_filter_write 3 25625 NULL
35656 -+__get_user_pages_25628 __get_user_pages 0-3-4 25628 NULL nohasharray
35657 -+befs_utf2nls_25628 befs_utf2nls 3 25628 &__get_user_pages_25628
35658 ++befs_utf2nls_25628 befs_utf2nls 3 25628 NULL nohasharray
35659 ++__get_user_pages_25628 __get_user_pages 0 25628 &befs_utf2nls_25628
35660 +__direct_map_25647 __direct_map 6-5 25647 NULL
35661 -+ext2_try_to_allocate_25667 ext2_try_to_allocate 4-2-0 25667 NULL
35662 +aircable_prepare_write_buffer_25669 aircable_prepare_write_buffer 3 25669 NULL
35663 +lpfc_idiag_cmd_get_25672 lpfc_idiag_cmd_get 2 25672 NULL
35664 +sta_inactive_ms_read_25690 sta_inactive_ms_read 3 25690 NULL
35665 -+sparse_mem_map_populate_25693 sparse_mem_map_populate 2 25693 NULL
35666 -+ebitmap_start_positive_25703 ebitmap_start_positive 0 25703 NULL
35667 -+wl1271_tx_enabled_rates_get_25712 wl1271_tx_enabled_rates_get 0 25712 NULL nohasharray
35668 -+rx_filter_mc_filter_read_25712 rx_filter_mc_filter_read 3 25712 &wl1271_tx_enabled_rates_get_25712
35669 ++rx_filter_mc_filter_read_25712 rx_filter_mc_filter_read 3 25712 NULL
35670 +ibmasm_new_command_25714 ibmasm_new_command 2 25714 NULL
35671 -+ttm_tt_init_25717 ttm_tt_init 3 25717 NULL
35672 -+sel_write_context_25726 sel_write_context 3 25726 NULL nohasharray
35673 -+__alloc_bootmem_low_node_25726 __alloc_bootmem_low_node 2 25726 &sel_write_context_25726
35674 -+ext2_find_near_25734 ext2_find_near 0 25734 NULL
35675 -+__set_clear_dirty_25744 __set_clear_dirty 2 25744 NULL
35676 ++__alloc_bootmem_low_node_25726 __alloc_bootmem_low_node 2 25726 NULL nohasharray
35677 ++sel_write_context_25726 sel_write_context 3 25726 &__alloc_bootmem_low_node_25726
35678 +cxgbi_device_portmap_create_25747 cxgbi_device_portmap_create 3 25747 NULL
35679 -+dtf_write_channel_25748 dtf_write_channel 3 25748 NULL
35680 +event_rx_pool_read_25792 event_rx_pool_read 3 25792 NULL
35681 +sg_read_25799 sg_read 3 25799 NULL
35682 +system_enable_read_25815 system_enable_read 3 25815 NULL
35683 +realloc_buffer_25816 realloc_buffer 2 25816 NULL
35684 -+ftrace_profile_init_25821 ftrace_profile_init 0 25821 NULL
35685 -+mthca_map_user_db_25823 mthca_map_user_db 5 25823 NULL
35686 +pwr_missing_bcns_read_25824 pwr_missing_bcns_read 3 25824 NULL
35687 +parport_read_25855 parport_read 0 25855 NULL
35688 +xfs_dir2_sf_hdr_size_25858 xfs_dir2_sf_hdr_size 0 25858 NULL
35689 @@ -107221,100 +108903,70 @@ index 0000000..3d6cc0f
35690 +key_flags_read_25931 key_flags_read 3 25931 NULL
35691 +copy_play_buf_25932 copy_play_buf 3 25932 NULL
35692 +flush_25957 flush 2 25957 NULL
35693 -+video_register_device_25971 video_register_device 3 25971 NULL
35694 +udp_setsockopt_25985 udp_setsockopt 5 25985 NULL
35695 +lustre_msg_buflen_v2_25997 lustre_msg_buflen_v2 0 25997 NULL
35696 -+ebt_compat_entry_padsize_26001 ebt_compat_entry_padsize 0 26001 NULL
35697 -+blk_init_queue_node_26015 blk_init_queue_node 3 26015 NULL
35698 +SyS_process_vm_readv_26019 SyS_process_vm_readv 3-5 26019 NULL
35699 -+irq_create_strict_mappings_26025 irq_create_strict_mappings 2-4 26025 NULL
35700 +xfs_xattr_acl_set_26028 xfs_xattr_acl_set 4 26028 NULL
35701 +mptscsih_change_queue_depth_26036 mptscsih_change_queue_depth 2 26036 NULL
35702 +selinux_inode_post_setxattr_26037 selinux_inode_post_setxattr 4 26037 NULL
35703 +tun_do_read_26047 tun_do_read 5 26047 NULL
35704 -+make_bfloat_26056 make_bfloat 2 26056 NULL
35705 +keyctl_update_key_26061 keyctl_update_key 3 26061 NULL
35706 +rx_rx_wa_density_dropped_frame_read_26095 rx_rx_wa_density_dropped_frame_read 3 26095 NULL
35707 -+__add_inline_refs_26096 __add_inline_refs 0 26096 NULL
35708 -+dup_ref_26100 dup_ref 0 26100 NULL
35709 -+intel_wrap_ring_buffer_26117 intel_wrap_ring_buffer 0 26117 NULL
35710 +read_sb_page_26119 read_sb_page 5 26119 NULL
35711 -+__fswab64_26155 __fswab64 0 26155 NULL
35712 ++ath9k_hw_name_26146 ath9k_hw_name 3 26146 NULL
35713 +copy_oldmem_page_26164 copy_oldmem_page 3 26164 NULL
35714 -+ath6kl_roam_table_read_26166 ath6kl_roam_table_read 3 26166 NULL nohasharray
35715 -+gfs2_xattr_acl_get_26166 gfs2_xattr_acl_get 0 26166 &ath6kl_roam_table_read_26166
35716 ++gfs2_xattr_acl_get_26166 gfs2_xattr_acl_get 0 26166 NULL nohasharray
35717 ++ath6kl_roam_table_read_26166 ath6kl_roam_table_read 3 26166 &gfs2_xattr_acl_get_26166
35718 +disk_devt_26180 disk_devt 0 26180 NULL
35719 +cgroup_setxattr_26188 cgroup_setxattr 4 26188 NULL
35720 +ieee80211_if_fmt_dot11MeshTTL_26198 ieee80211_if_fmt_dot11MeshTTL 3 26198 NULL
35721 +xfs_idata_realloc_26199 xfs_idata_realloc 2 26199 NULL
35722 +mce_write_26201 mce_write 3 26201 NULL
35723 -+SyS_splice_26206 SyS_splice 5 26206 NULL
35724 +mwifiex_regrdwr_write_26225 mwifiex_regrdwr_write 3 26225 NULL
35725 +_scsih_change_queue_depth_26230 _scsih_change_queue_depth 2 26230 NULL
35726 +rxrpc_recvmsg_26233 rxrpc_recvmsg 4 26233 NULL
35727 +bio_split_26235 bio_split 2 26235 NULL
35728 -+btrfs_delayed_inode_reserve_metadata_26236 btrfs_delayed_inode_reserve_metadata 0 26236 NULL
35729 -+ecryptfs_read_lower_page_segment_26244 ecryptfs_read_lower_page_segment 4 26244 NULL
35730 -+do_setxattr_26264 do_setxattr 0 26264 NULL
35731 +crypto_ctxsize_26278 crypto_ctxsize 0 26278 NULL
35732 +apei_resources_request_26279 apei_resources_request 0 26279 NULL
35733 +wacom_set_device_mode_26280 wacom_set_device_mode 3 26280 NULL
35734 -+ext2_find_goal_26306 ext2_find_goal 0 26306 NULL
35735 +snd_pcm_plug_client_channels_buf_26309 snd_pcm_plug_client_channels_buf 0-3 26309 NULL nohasharray
35736 +pax_get_random_long_26309 pax_get_random_long 0 26309 &snd_pcm_plug_client_channels_buf_26309
35737 +pwr_wake_on_host_read_26321 pwr_wake_on_host_read 3 26321 NULL
35738 +check_can_nocow_26336 check_can_nocow 2 26336 NULL
35739 +snd_vx_check_reg_bit_26344 snd_vx_check_reg_bit 0 26344 NULL
35740 -+ocfs2_duplicate_clusters_by_page_26357 ocfs2_duplicate_clusters_by_page 5-0-6-3 26357 NULL
35741 ++ocfs2_duplicate_clusters_by_page_26357 ocfs2_duplicate_clusters_by_page 6-3 26357 NULL
35742 +cifs_readdata_alloc_26360 cifs_readdata_alloc 1 26360 NULL
35743 +invalidate_inode_pages2_range_26403 invalidate_inode_pages2_range 0 26403 NULL
35744 +ntty_write_26404 ntty_write 3 26404 NULL
35745 ++firmware_store_26408 firmware_store 4 26408 NULL
35746 +pagemap_read_26441 pagemap_read 3 26441 NULL
35747 +tower_read_26461 tower_read 3 26461 NULL nohasharray
35748 -+enc_pools_add_pages_26461 enc_pools_add_pages 1 26461 &tower_read_26461 nohasharray
35749 -+numa_cpu_node_26461 numa_cpu_node 0 26461 &enc_pools_add_pages_26461
35750 -+memory_present_26470 memory_present 1 26470 NULL
35751 ++enc_pools_add_pages_26461 enc_pools_add_pages 1 26461 &tower_read_26461
35752 +ib_alloc_device_26483 ib_alloc_device 1 26483 NULL
35753 +ulong_write_file_26485 ulong_write_file 3 26485 NULL
35754 +dvb_ca_en50221_io_ioctl_26490 dvb_ca_en50221_io_ioctl 2 26490 NULL
35755 -+vfio_pin_pages_26494 vfio_pin_pages 1 26494 NULL
35756 +read_vmcore_26501 read_vmcore 3 26501 NULL
35757 +uhid_char_write_26502 uhid_char_write 3 26502 NULL
35758 +vfio_pci_set_msi_trigger_26507 vfio_pci_set_msi_trigger 4-3 26507 NULL
35759 +iwl_dbgfs_rf_reset_read_26512 iwl_dbgfs_rf_reset_read 3 26512 NULL
35760 +SyS_rt_sigpending_26538 SyS_rt_sigpending 2 26538 NULL
35761 -+rds_message_inc_copy_to_user_26540 rds_message_inc_copy_to_user 3 26540 NULL
35762 +__vhost_add_used_n_26554 __vhost_add_used_n 3 26554 NULL
35763 -+qgroup_account_ref_step3_26558 qgroup_account_ref_step3 0 26558 NULL
35764 +dio_new_bio_26562 dio_new_bio 0 26562 NULL
35765 -+kvm_iommu_put_pages_26571 kvm_iommu_put_pages 2 26571 NULL
35766 +rts51x_read_mem_26577 rts51x_read_mem 4 26577 NULL
35767 -+regcache_set_reg_present_26598 regcache_set_reg_present 2 26598 NULL
35768 -+__unmap_single_26604 __unmap_single 2-3 26604 NULL
35769 -+dev_to_node_26617 dev_to_node 0 26617 NULL
35770 -+iommu_alloc_26621 iommu_alloc 4 26621 NULL
35771 -+pack_value_26625 pack_value 1 26625 NULL
35772 +pwr_fix_tsf_ps_read_26627 pwr_fix_tsf_ps_read 3 26627 NULL
35773 -+drm_ht_find_item_26637 drm_ht_find_item 0 26637 NULL
35774 -+process_extent_26646 process_extent 0 26646 NULL nohasharray
35775 -+btrfs_lookup_inode_26646 btrfs_lookup_inode 0 26646 &process_extent_26646
35776 +irq_alloc_generic_chip_26650 irq_alloc_generic_chip 2 26650 NULL nohasharray
35777 +inb_p_26650 inb_p 0 26650 &irq_alloc_generic_chip_26650
35778 -+usb_reset_device_26661 usb_reset_device 0 26661 NULL
35779 ++nouveau_volt_create__26654 nouveau_volt_create_ 4 26654 NULL
35780 +cipso_v4_map_cat_rbm_hton_26680 cipso_v4_map_cat_rbm_hton 0 26680 NULL
35781 +nouveau_namedb_create__26732 nouveau_namedb_create_ 7 26732 NULL
35782 -+SyS_fcntl_26737 SyS_fcntl 3 26737 NULL
35783 +pipeline_tcp_rx_stat_fifo_int_read_26745 pipeline_tcp_rx_stat_fifo_int_read 3 26745 NULL
35784 +bos_desc_26752 bos_desc 0 26752 NULL
35785 +snd_hda_get_raw_connections_26762 snd_hda_get_raw_connections 0 26762 NULL
35786 +dma_map_single_attrs_26779 dma_map_single_attrs 0 26779 NULL
35787 -+cache_save_setup_26783 cache_save_setup 0 26783 NULL
35788 +qlcnic_alloc_sds_rings_26795 qlcnic_alloc_sds_rings 2 26795 NULL
35789 +cipso_v4_genopt_26812 cipso_v4_genopt 0 26812 NULL
35790 +iwl_trans_read_mem32_26825 iwl_trans_read_mem32 0 26825 NULL
35791 +smk_write_load_26829 smk_write_load 3 26829 NULL
35792 -+ept_get_level1_sp_gpa_26831 ept_get_level1_sp_gpa 0 26831 NULL
35793 -+__nodes_onto_26838 __nodes_onto 4 26838 NULL
35794 +scnprint_id_26842 scnprint_id 3-0 26842 NULL
35795 +ecryptfs_miscdev_write_26847 ecryptfs_miscdev_write 3 26847 NULL
35796 +tipc_conn_sendmsg_26867 tipc_conn_sendmsg 5 26867 NULL
35797 @@ -107322,78 +108974,49 @@ index 0000000..3d6cc0f
35798 +svc_print_xprts_26881 svc_print_xprts 0 26881 NULL
35799 +cfg80211_process_auth_26916 cfg80211_process_auth 3 26916 NULL
35800 +x25_asy_change_mtu_26928 x25_asy_change_mtu 2 26928 NULL
35801 -+compat_mtw_from_user_26932 compat_mtw_from_user 0 26932 NULL
35802 +scsi_tgt_copy_sense_26933 scsi_tgt_copy_sense 3 26933 NULL
35803 -+pwr_ps_enter_read_26935 pwr_ps_enter_read 3 26935 NULL nohasharray
35804 -+sctp_setsockopt_adaptation_layer_26935 sctp_setsockopt_adaptation_layer 3 26935 &pwr_ps_enter_read_26935
35805 -+remove_from_bitmap_26939 remove_from_bitmap 0 26939 NULL
35806 -+create_bm_block_list_26940 create_bm_block_list 0 26940 NULL
35807 ++sctp_setsockopt_adaptation_layer_26935 sctp_setsockopt_adaptation_layer 3 26935 NULL nohasharray
35808 ++pwr_ps_enter_read_26935 pwr_ps_enter_read 3 26935 &sctp_setsockopt_adaptation_layer_26935
35809 +hecubafb_write_26942 hecubafb_write 3 26942 NULL
35810 -+extract_entropy_user_26952 extract_entropy_user 3 26952 NULL nohasharray
35811 -+do_trimming_26952 do_trimming 3 26952 &extract_entropy_user_26952
35812 -+xlog_grant_push_ail_26972 xlog_grant_push_ail 2 26972 NULL
35813 ++do_trimming_26952 do_trimming 3 26952 NULL nohasharray
35814 ++extract_entropy_user_26952 extract_entropy_user 3 26952 &do_trimming_26952
35815 +do_direct_IO_26979 do_direct_IO 0 26979 NULL
35816 -+pcf857x_irq_domain_map_26998 pcf857x_irq_domain_map 2 26998 NULL
35817 -+i2c_smbus_xfer_27006 i2c_smbus_xfer 0 27006 NULL
35818 -+omfs_allocate_range_27034 omfs_allocate_range 3 27034 NULL
35819 -+fill_read_buf_27036 fill_read_buf 0 27036 NULL
35820 -+ufs_alloc_fragments_27059 ufs_alloc_fragments 3-0-2 27059 NULL
35821 +__videobuf_alloc_vb_27062 __videobuf_alloc_vb 1 27062 NULL
35822 +ext4_convert_unwritten_extents_27064 ext4_convert_unwritten_extents 4-3-0 27064 NULL
35823 +snd_pcm_lib_period_bytes_27071 snd_pcm_lib_period_bytes 0 27071 NULL
35824 +paravirt_read_msr_27077 paravirt_read_msr 0 27077 NULL
35825 -+snd_mixer_oss_set_recsrc_27080 snd_mixer_oss_set_recsrc 2 27080 NULL
35826 +alloc_fdmem_27083 alloc_fdmem 1 27083 NULL
35827 -+find_first_bit_27088 find_first_bit 0-2 27088 NULL
35828 -+btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL
35829 -+nes_reg_user_mr_27106 nes_reg_user_mr 2-3 27106 NULL
35830 ++btmrvl_hscmd_write_27089 btmrvl_hscmd_write 3 27089 NULL nohasharray
35831 ++ath9k_hw_4k_dump_eeprom_27089 ath9k_hw_4k_dump_eeprom 5-4 27089 &btmrvl_hscmd_write_27089
35832 +__devcgroup_inode_permission_27108 __devcgroup_inode_permission 0 27108 NULL
35833 -+i915_gem_execbuffer_relocate_slow_27116 i915_gem_execbuffer_relocate_slow 0 27116 NULL
35834 +get_kernel_page_27133 get_kernel_page 0 27133 NULL
35835 -+__ext4_handle_dirty_metadata_27137 __ext4_handle_dirty_metadata 0 27137 NULL
35836 +drbd_get_capacity_27141 drbd_get_capacity 0 27141 NULL
35837 +pms_capture_27142 pms_capture 4 27142 NULL
35838 +btmrvl_hscfgcmd_write_27143 btmrvl_hscfgcmd_write 3 27143 NULL
35839 +snd_compr_calc_avail_27165 snd_compr_calc_avail 0 27165 NULL
35840 +ieee80211_if_read_rc_rateidx_mask_5ghz_27183 ieee80211_if_read_rc_rateidx_mask_5ghz 3 27183 NULL
35841 -+get_unaligned_be32_27184 get_unaligned_be32 0 27184 NULL
35842 -+__intel_ring_begin_27197 __intel_ring_begin 0 27197 NULL
35843 +__sg_alloc_table_27198 __sg_alloc_table 0 27198 NULL
35844 -+ocfs2_read_blocks_sync_27210 ocfs2_read_blocks_sync 0 27210 NULL
35845 +write_kmem_27225 write_kmem 3 27225 NULL
35846 +dbAllocAG_27228 dbAllocAG 0 27228 NULL
35847 +rxrpc_request_key_27235 rxrpc_request_key 3 27235 NULL
35848 -+ocfs2_journal_access_path_27243 ocfs2_journal_access_path 0 27243 NULL
35849 +ll_track_gid_seq_write_27267 ll_track_gid_seq_write 3 27267 NULL
35850 -+qfq_unblock_groups_27269 qfq_unblock_groups 2 27269 NULL
35851 +comedi_alloc_devpriv_27272 comedi_alloc_devpriv 2 27272 NULL
35852 -+__dma_map_cont_27289 __dma_map_cont 5 27289 NULL
35853 -+copy_from_buf_27308 copy_from_buf 2-4 27308 NULL
35854 ++copy_from_buf_27308 copy_from_buf 4-2 27308 NULL
35855 +virtqueue_add_inbuf_27312 virtqueue_add_inbuf 3 27312 NULL
35856 -+write_buf_27316 write_buf 0-3 27316 NULL
35857 -+ocfs2_blocks_to_clusters_27327 ocfs2_blocks_to_clusters 0-2 27327 NULL
35858 +snd_pcm_oss_write2_27332 snd_pcm_oss_write2 3-0 27332 NULL
35859 +afs_cell_create_27346 afs_cell_create 2 27346 NULL
35860 +iwl_dbgfs_csr_write_27363 iwl_dbgfs_csr_write 3 27363 NULL
35861 +pcbit_stat_27364 pcbit_stat 2 27364 NULL
35862 -+lz4_compress_crypto_27387 lz4_compress_crypto 3 27387 NULL
35863 +seq_read_27411 seq_read 3 27411 NULL
35864 -+ib_dma_map_sg_27413 ib_dma_map_sg 0 27413 NULL nohasharray
35865 -+zalloc_cpumask_var_node_27413 zalloc_cpumask_var_node 3 27413 &ib_dma_map_sg_27413
35866 ++ib_dma_map_sg_27413 ib_dma_map_sg 0 27413 NULL
35867 +ieee80211_if_read_smps_27416 ieee80211_if_read_smps 3 27416 NULL
35868 -+ocfs2_refcount_cal_cow_clusters_27422 ocfs2_refcount_cal_cow_clusters 0-3-4 27422 NULL nohasharray
35869 -+evm_inode_init_security_27422 evm_inode_init_security 0 27422 &ocfs2_refcount_cal_cow_clusters_27422
35870 ++ocfs2_refcount_cal_cow_clusters_27422 ocfs2_refcount_cal_cow_clusters 0-3-4 27422 NULL
35871 +cypress_write_27423 cypress_write 4 27423 NULL
35872 -+vmemmap_populate_27442 vmemmap_populate 3 27442 NULL
35873 +sddr09_read_data_27447 sddr09_read_data 3 27447 NULL
35874 -+ktime_to_us_27455 ktime_to_us 0 27455 NULL
35875 -+sk_extract_addr_27474 sk_extract_addr 0 27474 NULL
35876 +v4l2_ctrl_new_std_menu_items_27487 v4l2_ctrl_new_std_menu_items 4 27487 NULL
35877 +hcd_buffer_alloc_27495 hcd_buffer_alloc 2 27495 NULL
35878 -+qib_create_cq_27497 qib_create_cq 2 27497 NULL
35879 +ip_set_get_h32_27498 ip_set_get_h32 0 27498 NULL
35880 +btrfs_get_64_27499 btrfs_get_64 0 27499 NULL
35881 -+ept_walk_addr_generic_27501 ept_walk_addr_generic 4 27501 NULL
35882 +garmin_read_process_27509 garmin_read_process 3 27509 NULL
35883 +oti_alloc_cookies_27510 oti_alloc_cookies 2 27510 NULL
35884 +ib_copy_to_udata_27525 ib_copy_to_udata 3 27525 NULL
35885 @@ -107401,29 +109024,23 @@ index 0000000..3d6cc0f
35886 +SyS_fgetxattr_27571 SyS_fgetxattr 4 27571 NULL
35887 +sco_sock_recvmsg_27572 sco_sock_recvmsg 4 27572 NULL
35888 +libipw_alloc_txb_27579 libipw_alloc_txb 1 27579 NULL
35889 -+read_flush_procfs_27642 read_flush_procfs 3 27642 NULL nohasharray
35890 -+nl80211_send_connect_result_27642 nl80211_send_connect_result 5-7 27642 &read_flush_procfs_27642 nohasharray
35891 -+ocfs2_direct_IO_27642 ocfs2_direct_IO 4 27642 &nl80211_send_connect_result_27642 nohasharray
35892 -+ocfs2_xattr_ibody_get_27642 ocfs2_xattr_ibody_get 0 27642 &ocfs2_direct_IO_27642
35893 ++ocfs2_xattr_ibody_get_27642 ocfs2_xattr_ibody_get 0 27642 NULL nohasharray
35894 ++nl80211_send_connect_result_27642 nl80211_send_connect_result 5-7 27642 &ocfs2_xattr_ibody_get_27642 nohasharray
35895 ++read_flush_procfs_27642 read_flush_procfs 3 27642 &nl80211_send_connect_result_27642 nohasharray
35896 ++ocfs2_direct_IO_27642 ocfs2_direct_IO 4 27642 &read_flush_procfs_27642
35897 +add_new_gdb_27643 add_new_gdb 3 27643 NULL
35898 +btrfs_fallocate_27647 btrfs_fallocate 3-4 27647 NULL
35899 +qnx6_readpages_27657 qnx6_readpages 4 27657 NULL
35900 +cdrom_read_cdda_old_27664 cdrom_read_cdda_old 4 27664 NULL
35901 -+record_changed_ref_27665 record_changed_ref 0 27665 NULL
35902 -+iommu_pgsize_27677 iommu_pgsize 2-0 27677 NULL
35903 +ocfs2_extend_dir_27695 ocfs2_extend_dir 4 27695 NULL
35904 -+fs_path_add_from_extent_buffer_27702 fs_path_add_from_extent_buffer 4-0 27702 NULL
35905 ++fs_path_add_from_extent_buffer_27702 fs_path_add_from_extent_buffer 4 27702 NULL
35906 +evm_write_key_27715 evm_write_key 3 27715 NULL
35907 +ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol_27722 ieee80211_if_fmt_dot11MeshGateAnnouncementProtocol 3 27722 NULL
35908 +xfs_dir2_block_sfsize_27727 xfs_dir2_block_sfsize 0 27727 NULL
35909 -+macvtap_skb_to_vnet_hdr_27747 macvtap_skb_to_vnet_hdr 0 27747 NULL
35910 +SyS_setsockopt_27759 SyS_setsockopt 5 27759 NULL
35911 -+gpiochip_export_27776 gpiochip_export 0 27776 NULL
35912 +__lov_setstripe_27782 __lov_setstripe 2 27782 NULL
35913 +twl4030_set_gpio_dataout_27792 twl4030_set_gpio_dataout 1 27792 NULL
35914 -+DivaSTraceGetMemotyRequirement_27797 DivaSTraceGetMemotyRequirement 0-1 27797 NULL
35915 -+ttm_object_file_init_27804 ttm_object_file_init 2 27804 NULL nohasharray
35916 -+SyS_readv_27804 SyS_readv 3 27804 &ttm_object_file_init_27804
35917 ++SyS_readv_27804 SyS_readv 3 27804 NULL
35918 +mpihelp_mul_27805 mpihelp_mul 5-3 27805 NULL
35919 +fwtty_buffer_rx_27821 fwtty_buffer_rx 3 27821 NULL
35920 +hpt374_read_freq_27828 hpt374_read_freq 0 27828 NULL
35921 @@ -107431,13 +109048,8 @@ index 0000000..3d6cc0f
35922 +read_profile_27859 read_profile 3 27859 NULL
35923 +sky2_pci_read16_27863 sky2_pci_read16 0 27863 NULL
35924 +ieee80211_if_read_dot11MeshHWMProotInterval_27873 ieee80211_if_read_dot11MeshHWMProotInterval 3 27873 NULL
35925 -+process_all_extents_27879 process_all_extents 0 27879 NULL
35926 +unix_seqpacket_sendmsg_27893 unix_seqpacket_sendmsg 4 27893 NULL
35927 -+gluebi_write_27905 gluebi_write 3-2 27905 NULL
35928 -+SyS_ptrace_27924 SyS_ptrace 3 27924 NULL
35929 -+bm_find_next_27929 bm_find_next 2 27929 NULL
35930 +check_mapped_name_27943 check_mapped_name 3 27943 NULL
35931 -+i915_gem_execbuffer_reserve_object_27956 i915_gem_execbuffer_reserve_object 0 27956 NULL
35932 +tracing_clock_write_27961 tracing_clock_write 3 27961 NULL
35933 +tipc_media_addr_printf_27971 tipc_media_addr_printf 2 27971 NULL
35934 +device_register_27972 device_register 0 27972 NULL nohasharray
35935 @@ -107446,133 +109058,96 @@ index 0000000..3d6cc0f
35936 +f2fs_bio_alloc_27983 f2fs_bio_alloc 2 27983 NULL
35937 +edt_ft5x06_debugfs_raw_data_read_28002 edt_ft5x06_debugfs_raw_data_read 3 28002 NULL
35938 +snd_rawmidi_write_28008 snd_rawmidi_write 3 28008 NULL
35939 -+remove_extent_data_ref_28023 remove_extent_data_ref 0 28023 NULL
35940 -+alloc_one_pg_vec_page_28031 alloc_one_pg_vec_page 1 28031 NULL
35941 -+record_deleted_ref_28039 record_deleted_ref 0 28039 NULL
35942 ++powercap_register_zone_28028 powercap_register_zone 6 28028 NULL
35943 +sctp_setsockopt_maxburst_28041 sctp_setsockopt_maxburst 3 28041 NULL
35944 +rts51x_xd_rw_28046 rts51x_xd_rw 3-4 28046 NULL
35945 -+p9_fd_write_28050 p9_fd_write 3 28050 NULL
35946 +cx231xx_init_vbi_isoc_28053 cx231xx_init_vbi_isoc 3-2-4 28053 NULL
35947 +pool_status_28055 pool_status 5 28055 NULL
35948 +init_rs_non_canonical_28059 init_rs_non_canonical 1 28059 NULL
35949 +lpfc_idiag_mbxacc_read_28061 lpfc_idiag_mbxacc_read 3 28061 NULL
35950 +tx_frag_bad_mblk_num_read_28064 tx_frag_bad_mblk_num_read 3 28064 NULL
35951 -+ext4_read_block_bitmap_nowait_28078 ext4_read_block_bitmap_nowait 2 28078 NULL
35952 -+platform_get_irq_28088 platform_get_irq 0 28088 NULL
35953 -+SyS_brk_28096 SyS_brk 1 28096 NULL
35954 -+mmc_test_alloc_mem_28102 mmc_test_alloc_mem 2-3 28102 NULL
35955 ++mmc_test_alloc_mem_28102 mmc_test_alloc_mem 3-2 28102 NULL
35956 +rx_defrag_need_defrag_read_28117 rx_defrag_need_defrag_read 3 28117 NULL
35957 +vgacon_adjust_height_28124 vgacon_adjust_height 2 28124 NULL
35958 -+tipc_msg_init_28128 tipc_msg_init 4-2 28128 NULL
35959 +video_read_28148 video_read 3 28148 NULL
35960 +snd_midi_channel_alloc_set_28153 snd_midi_channel_alloc_set 1 28153 NULL
35961 +stats_dot11FCSErrorCount_read_28154 stats_dot11FCSErrorCount_read 3 28154 NULL
35962 -+__add_reloc_root_28155 __add_reloc_root 0 28155 NULL
35963 +vread_28173 vread 0-3 28173 NULL
35964 +macvtap_get_user_28185 macvtap_get_user 4 28185 NULL
35965 +counter_free_res_28187 counter_free_res 5 28187 NULL
35966 +read_disk_sb_28188 read_disk_sb 2 28188 NULL
35967 +nouveau_mxm_create__28200 nouveau_mxm_create_ 4 28200 NULL
35968 -+__exclude_logged_extent_28212 __exclude_logged_extent 2-0 28212 NULL
35969 +__qp_memcpy_from_queue_28220 __qp_memcpy_from_queue 3-4 28220 NULL
35970 -+ocfs2_cow_sync_writeback_28221 ocfs2_cow_sync_writeback 0 28221 NULL
35971 +line6_alloc_sysex_buffer_28225 line6_alloc_sysex_buffer 4 28225 NULL
35972 +amd_nb_num_28228 amd_nb_num 0 28228 NULL
35973 -+ext4_validate_block_bitmap_28243 ext4_validate_block_bitmap 3 28243 NULL
35974 +fuse_direct_IO_28275 fuse_direct_IO 4 28275 NULL
35975 +usemap_size_28281 usemap_size 0 28281 NULL
35976 +inline_xattr_size_28285 inline_xattr_size 0 28285 NULL
35977 +dma_map_sg_attrs_28289 dma_map_sg_attrs 0 28289 NULL
35978 +SyS_ppoll_28290 SyS_ppoll 2 28290 NULL
35979 +kstrtos16_from_user_28300 kstrtos16_from_user 2 28300 NULL
35980 -+acpi_register_gsi_xen_28305 acpi_register_gsi_xen 2 28305 NULL nohasharray
35981 -+nouveau_compat_ioctl_28305 nouveau_compat_ioctl 2 28305 &acpi_register_gsi_xen_28305
35982 -+create_io_context_28306 create_io_context 2 28306 NULL
35983 -+__mlock_vma_pages_range_28315 __mlock_vma_pages_range 2-3-0 28315 NULL
35984 ++nouveau_compat_ioctl_28305 nouveau_compat_ioctl 2 28305 NULL
35985 +snd_pcm_oss_read_28317 snd_pcm_oss_read 3 28317 NULL
35986 +bm_entry_write_28338 bm_entry_write 3 28338 NULL
35987 +tcp_copy_to_iovec_28344 tcp_copy_to_iovec 3 28344 NULL
35988 -+cpuset_spread_node_28351 cpuset_spread_node 0 28351 NULL nohasharray
35989 -+snapshot_write_28351 snapshot_write 3 28351 &cpuset_spread_node_28351
35990 ++snapshot_write_28351 snapshot_write 3 28351 NULL
35991 +xfs_iomap_write_unwritten_28365 xfs_iomap_write_unwritten 3-2 28365 NULL
35992 ++batadv_handle_tt_response_28370 batadv_handle_tt_response 4 28370 NULL
35993 +dlmfs_file_read_28385 dlmfs_file_read 3 28385 NULL
35994 +tx_frag_cache_miss_read_28394 tx_frag_cache_miss_read 3 28394 NULL
35995 +bypass_pwup_write_28416 bypass_pwup_write 3 28416 NULL
35996 +subdev_ioctl_28417 subdev_ioctl 2 28417 NULL
35997 -+get_extent_allocation_hint_28423 get_extent_allocation_hint 0 28423 NULL
35998 +ksocknal_alloc_tx_28426 ksocknal_alloc_tx 2 28426 NULL
35999 +mpage_readpages_28436 mpage_readpages 3 28436 NULL
36000 +snd_emu10k1_efx_read_28452 snd_emu10k1_efx_read 2 28452 NULL
36001 +key_mic_failures_read_28457 key_mic_failures_read 3 28457 NULL
36002 +alloc_irq_cpu_rmap_28459 alloc_irq_cpu_rmap 1 28459 NULL
36003 -+vmw_du_crtc_cursor_set_28479 vmw_du_crtc_cursor_set 4-5 28479 NULL
36004 -+ocfs2_backup_super_blkno_28484 ocfs2_backup_super_blkno 0-2 28484 NULL
36005 -+__filemap_fdatawrite_28485 __filemap_fdatawrite 0 28485 NULL
36006 -+clear_discard_28494 clear_discard 2 28494 NULL
36007 +ps_poll_upsd_utilization_read_28519 ps_poll_upsd_utilization_read 3 28519 NULL
36008 -+__next_node_28521 __next_node 1-0 28521 NULL
36009 +i2400m_tx_stats_read_28527 i2400m_tx_stats_read 3 28527 NULL
36010 +sel_read_policycap_28544 sel_read_policycap 3 28544 NULL
36011 -+run_delalloc_range_28545 run_delalloc_range 3-4 28545 NULL nohasharray
36012 -+mptctl_getiocinfo_28545 mptctl_getiocinfo 2 28545 &run_delalloc_range_28545 nohasharray
36013 -+aio_read_events_28545 aio_read_events 3 28545 &mptctl_getiocinfo_28545
36014 ++mptctl_getiocinfo_28545 mptctl_getiocinfo 2 28545 NULL nohasharray
36015 ++run_delalloc_range_28545 run_delalloc_range 3-4 28545 &mptctl_getiocinfo_28545 nohasharray
36016 ++aio_read_events_28545 aio_read_events 3 28545 &run_delalloc_range_28545
36017 +sysfs_create_bin_file_28551 sysfs_create_bin_file 0 28551 NULL
36018 +b43legacy_debugfs_write_28556 b43legacy_debugfs_write 3 28556 NULL
36019 -+i2o_msg_post_wait_mem_28558 i2o_msg_post_wait_mem 0 28558 NULL
36020 +asymmetric_verify_28567 asymmetric_verify 3 28567 NULL
36021 +oxygen_read32_28582 oxygen_read32 0 28582 NULL
36022 -+ocfs2_read_dir_block_28587 ocfs2_read_dir_block 2 28587 NULL
36023 +extract_entropy_28604 extract_entropy 5-3 28604 NULL
36024 +kfifo_unused_28612 kfifo_unused 0 28612 NULL
36025 -+mp_override_legacy_irq_28618 mp_override_legacy_irq 4 28618 NULL
36026 +snd_nm256_capture_copy_28622 snd_nm256_capture_copy 5-3 28622 NULL
36027 +setup_usemap_28636 setup_usemap 3-4 28636 NULL
36028 +qib_handle_6120_hwerrors_28642 qib_handle_6120_hwerrors 3 28642 NULL
36029 +p9_fcall_alloc_28652 p9_fcall_alloc 1 28652 NULL
36030 +read_nic_io_byte_28654 read_nic_io_byte 0 28654 NULL
36031 -+btrfs_previous_item_28667 btrfs_previous_item 0 28667 NULL
36032 +blk_queue_resize_tags_28670 blk_queue_resize_tags 2 28670 NULL
36033 -+__perf_sw_event_28684 __perf_sw_event 2 28684 NULL
36034 +SyS_setgroups16_28686 SyS_setgroups16 1 28686 NULL
36035 +kvm_mmu_get_page_28692 kvm_mmu_get_page 2 28692 NULL
36036 -+balance_level_28707 balance_level 0 28707 NULL
36037 +drm_plane_init_28731 drm_plane_init 6 28731 NULL
36038 -+alloc_irq_cfg_28734 alloc_irq_cfg 2 28734 NULL
36039 +spi_execute_28736 spi_execute 5 28736 NULL
36040 +snd_pcm_aio_write_28738 snd_pcm_aio_write 3 28738 NULL
36041 +read_file_btcoex_28743 read_file_btcoex 3 28743 NULL
36042 +max_hw_blocks_28748 max_hw_blocks 0 28748 NULL
36043 +rpc_pipe_generic_upcall_28766 rpc_pipe_generic_upcall 4 28766 NULL
36044 -+atomic_inc_return_unchecked_28778 atomic_inc_return_unchecked 0 28778 NULL
36045 +ath6kl_get_num_reg_28780 ath6kl_get_num_reg 0 28780 NULL
36046 -+btrfs_block_rsv_refill_28800 btrfs_block_rsv_refill 3 28800 NULL nohasharray
36047 -+sel_write_member_28800 sel_write_member 3 28800 &btrfs_block_rsv_refill_28800
36048 ++sel_write_member_28800 sel_write_member 3 28800 NULL
36049 +cgroup_file_read_28804 cgroup_file_read 3 28804 NULL
36050 -+memory_bm_create_28814 memory_bm_create 0 28814 NULL
36051 +iwl_dbgfs_rxon_filter_flags_read_28832 iwl_dbgfs_rxon_filter_flags_read 3 28832 NULL
36052 +vp_request_msix_vectors_28849 vp_request_msix_vectors 2 28849 NULL
36053 +ipv6_renew_options_28867 ipv6_renew_options 5 28867 NULL
36054 +max_io_len_target_boundary_28879 max_io_len_target_boundary 0-1 28879 NULL
36055 +packet_sendmsg_spkt_28885 packet_sendmsg_spkt 4 28885 NULL
36056 -+to_cblock_28899 to_cblock 0-1 28899 NULL
36057 +da9055_group_write_28904 da9055_group_write 2-3 28904 NULL
36058 +ps_upsd_timeouts_read_28924 ps_upsd_timeouts_read 3 28924 NULL
36059 +iwl_dbgfs_sleep_level_override_write_28925 iwl_dbgfs_sleep_level_override_write 3 28925 NULL
36060 -+ocfs2_frozen_trigger_28929 ocfs2_frozen_trigger 4 28929 NULL
36061 +push_rx_28939 push_rx 3 28939 NULL
36062 -+btrfs_trim_block_group_28963 btrfs_trim_block_group 4-3 28963 NULL
36063 ++btrfs_trim_block_group_28963 btrfs_trim_block_group 3-4 28963 NULL
36064 +alloc_sched_domains_28972 alloc_sched_domains 1 28972 NULL
36065 -+remap_pfn_range_28976 remap_pfn_range 3-4-2 28976 NULL
36066 -+ext4_mb_add_groupinfo_28988 ext4_mb_add_groupinfo 2 28988 NULL
36067 ++hash_net6_expire_28979 hash_net6_expire 4 28979 NULL
36068 +hci_sock_setsockopt_28993 hci_sock_setsockopt 5 28993 NULL
36069 +bin_uuid_28999 bin_uuid 3 28999 NULL
36070 -+fd_execute_rw_29004 fd_execute_rw 3 29004 NULL nohasharray
36071 -+offset_to_bitmap_29004 offset_to_bitmap 2 29004 &fd_execute_rw_29004
36072 -+xz_dec_init_29029 xz_dec_init 2 29029 NULL
36073 -+i915_gem_object_bind_to_vm_29035 i915_gem_object_bind_to_vm 0 29035 NULL
36074 ++fd_execute_rw_29004 fd_execute_rw 3 29004 NULL
36075 +ieee80211_if_read_ht_opmode_29044 ieee80211_if_read_ht_opmode 3 29044 NULL
36076 -+rxrpc_sendmsg_29049 rxrpc_sendmsg 4 29049 NULL nohasharray
36077 -+ProcessGetHostMibs_29049 ProcessGetHostMibs 0 29049 &rxrpc_sendmsg_29049
36078 ++rxrpc_sendmsg_29049 rxrpc_sendmsg 4 29049 NULL
36079 +btrfs_root_bytenr_29058 btrfs_root_bytenr 0 29058 NULL
36080 +iso_packets_buffer_init_29061 iso_packets_buffer_init 3-4 29061 NULL
36081 +roundup_64_29066 roundup_64 2-0-1 29066 NULL
36082 @@ -107580,65 +109155,44 @@ index 0000000..3d6cc0f
36083 +sctp_getsockopt_assoc_stats_29074 sctp_getsockopt_assoc_stats 2 29074 NULL
36084 +iwl_dbgfs_log_event_write_29088 iwl_dbgfs_log_event_write 3 29088 NULL
36085 +i915_error_object_create_sized_29091 i915_error_object_create_sized 3 29091 NULL
36086 -+init_cache_node_node_29092 init_cache_node_node 1 29092 NULL
36087 +isdn_ppp_write_29109 isdn_ppp_write 4 29109 NULL
36088 +snprintf_29125 snprintf 0 29125 NULL
36089 +iov_shorten_29130 iov_shorten 0 29130 NULL
36090 +proc_scsi_write_29142 proc_scsi_write 3 29142 NULL
36091 -+alloc_irqs_from_29152 alloc_irqs_from 1-2-0-3 29152 NULL
36092 +kvm_mmu_notifier_clear_flush_young_29154 kvm_mmu_notifier_clear_flush_young 3 29154 NULL
36093 +drm_property_create_enum_29201 drm_property_create_enum 5 29201 NULL
36094 +wusb_prf_256_29203 wusb_prf_256 7 29203 NULL
36095 -+__mm_populate_29204 __mm_populate 1-2 29204 NULL
36096 -+do_shrinker_shrink_29208 do_shrinker_shrink 0 29208 NULL
36097 -+rds_iw_inc_copy_to_user_29214 rds_iw_inc_copy_to_user 3 29214 NULL
36098 +iwl_dbgfs_temperature_read_29224 iwl_dbgfs_temperature_read 3 29224 NULL
36099 +nvme_trans_copy_from_user_29227 nvme_trans_copy_from_user 3 29227 NULL
36100 +irq_domain_add_linear_29236 irq_domain_add_linear 2 29236 NULL
36101 -+recover_peb_29238 recover_peb 0-7-6 29238 NULL
36102 +evdev_handle_get_val_29242 evdev_handle_get_val 5-6 29242 NULL
36103 -+rw_verify_area_29243 rw_verify_area 0-4 29243 NULL
36104 +security_context_to_sid_core_29248 security_context_to_sid_core 2 29248 NULL
36105 -+block_div_29268 block_div 0-1-2 29268 NULL
36106 +prism2_set_genericelement_29277 prism2_set_genericelement 3 29277 NULL
36107 -+bitmap_ord_to_pos_29279 bitmap_ord_to_pos 3 29279 NULL
36108 +ext4_fiemap_29296 ext4_fiemap 4 29296 NULL
36109 +sn9c102_read_29305 sn9c102_read 3 29305 NULL
36110 -+replace_file_extents_29312 replace_file_extents 0 29312 NULL
36111 +__fuse_get_req_29315 __fuse_get_req 2 29315 NULL
36112 +lprocfs_write_helper_29323 lprocfs_write_helper 2 29323 NULL
36113 +kvm_handle_hva_29326 kvm_handle_hva 2 29326 NULL
36114 +tun_put_user_29337 tun_put_user 5 29337 NULL
36115 +__alloc_ei_netdev_29338 __alloc_ei_netdev 1 29338 NULL
36116 -+ide_read_altstatus_29343 ide_read_altstatus 0 29343 NULL
36117 +l2cap_sock_setsockopt_old_29346 l2cap_sock_setsockopt_old 4 29346 NULL
36118 -+gpiochip_find_base_29366 gpiochip_find_base 0-1 29366 NULL
36119 -+ktime_us_delta_29375 ktime_us_delta 0 29375 NULL
36120 +mwifiex_cfg80211_mgmt_tx_29387 mwifiex_cfg80211_mgmt_tx 7 29387 NULL
36121 -+pca953x_irq_setup_29407 pca953x_irq_setup 3 29407 NULL
36122 -+btrfs_run_delayed_items_29428 btrfs_run_delayed_items 0 29428 NULL
36123 ++read_file_tx99_power_29405 read_file_tx99_power 3 29405 NULL
36124 +mempool_create_29437 mempool_create 1 29437 NULL
36125 +crypto_ahash_alignmask_29445 crypto_ahash_alignmask 0 29445 NULL
36126 +p9_client_prepare_req_29448 p9_client_prepare_req 3 29448 NULL
36127 -+ept_page_fault_29450 ept_page_fault 2 29450 NULL
36128 -+__kmalloc_node_29455 __kmalloc_node 3 29455 NULL
36129 +validate_scan_freqs_29462 validate_scan_freqs 0 29462 NULL
36130 +SyS_flistxattr_29474 SyS_flistxattr 3 29474 NULL
36131 +do_register_entry_29478 do_register_entry 4 29478 NULL
36132 +simple_strtoul_29480 simple_strtoul 0 29480 NULL
36133 -+sched_clock_local_29498 sched_clock_local 0 29498 NULL
36134 +btmrvl_pscmd_write_29504 btmrvl_pscmd_write 3 29504 NULL
36135 +btrfs_file_extent_disk_bytenr_29505 btrfs_file_extent_disk_bytenr 0 29505 NULL
36136 +write_file_regidx_29517 write_file_regidx 3 29517 NULL
36137 +atk_debugfs_ggrp_read_29522 atk_debugfs_ggrp_read 3 29522 NULL
36138 -+_regmap_raw_write_29541 _regmap_raw_write 2-4 29541 NULL
36139 -+vfs_read_29543 vfs_read 0-3 29543 NULL
36140 -+set_brk_29551 set_brk 1-2 29551 NULL nohasharray
36141 -+ftrace_write_29551 ftrace_write 3 29551 &set_brk_29551
36142 ++ftrace_write_29551 ftrace_write 3 29551 NULL
36143 +idetape_queue_rw_tail_29562 idetape_queue_rw_tail 3 29562 NULL
36144 +leaf_dealloc_29566 leaf_dealloc 3 29566 NULL
36145 +kvm_read_guest_virt_system_29569 kvm_read_guest_virt_system 4-2 29569 NULL
36146 -+p9_fd_read_29570 p9_fd_read 3 29570 NULL
36147 +lbs_lowsnr_read_29571 lbs_lowsnr_read 3 29571 NULL
36148 +iwl_dbgfs_missed_beacon_write_29586 iwl_dbgfs_missed_beacon_write 3 29586 NULL
36149 +pvr2_hdw_report_unlocked_29589 pvr2_hdw_report_unlocked 4-0 29589 NULL
36150 @@ -107649,9 +109203,6 @@ index 0000000..3d6cc0f
36151 +tx_frag_cache_hit_read_29639 tx_frag_cache_hit_read 3 29639 NULL
36152 +sctp_make_abort_user_29654 sctp_make_abort_user 3 29654 NULL
36153 +sisusb_write_mem_bulk_29678 sisusb_write_mem_bulk 4 29678 NULL
36154 -+tracepoint_probe_register_29688 tracepoint_probe_register 0 29688 NULL
36155 -+__btrfs_setxattr_29689 __btrfs_setxattr 0 29689 NULL
36156 -+jbd2_journal_restart_29692 jbd2_journal_restart 0 29692 NULL
36157 +lustre_posix_acl_xattr_2ext_29693 lustre_posix_acl_xattr_2ext 2 29693 NULL
36158 +posix_acl_from_xattr_29708 posix_acl_from_xattr 3 29708 NULL
36159 +probes_write_29711 probes_write 3 29711 NULL
36160 @@ -107659,200 +109210,152 @@ index 0000000..3d6cc0f
36161 +xfs_new_eof_29737 xfs_new_eof 2 29737 NULL
36162 +std_nic_write_29752 std_nic_write 3 29752 NULL
36163 +dbAlloc_29794 dbAlloc 0 29794 NULL
36164 -+ext4_trim_all_free_29806 ext4_trim_all_free 4-3-2 29806 NULL
36165 +tcp_sendpage_29829 tcp_sendpage 4 29829 NULL
36166 -+scan_bitmap_block_29840 scan_bitmap_block 4 29840 NULL
36167 +__probe_kernel_write_29842 __probe_kernel_write 3 29842 NULL
36168 +kvm_read_hva_atomic_29848 kvm_read_hva_atomic 3 29848 NULL
36169 +count_partial_29850 count_partial 0 29850 NULL
36170 -+radeon_ttm_tt_create_29859 radeon_ttm_tt_create 2 29859 NULL
36171 -+solo_enc_alloc_29860 solo_enc_alloc 3 29860 NULL
36172 ++write_file_bool_bmps_29870 write_file_bool_bmps 3 29870 NULL
36173 +ipv6_setsockopt_29871 ipv6_setsockopt 5 29871 NULL
36174 -+tlv_put_29872 tlv_put 0 29872 NULL
36175 +scsi_end_request_29876 scsi_end_request 3 29876 NULL
36176 -+changed_extent_29881 changed_extent 0 29881 NULL
36177 +crypto_aead_alignmask_29885 crypto_aead_alignmask 0 29885 NULL
36178 +lov_ost_pool_extend_29914 lov_ost_pool_extend 2 29914 NULL
36179 +write_file_queue_29922 write_file_queue 3 29922 NULL
36180 +ext4_xattr_set_acl_29930 ext4_xattr_set_acl 4 29930 NULL
36181 +__btrfs_getxattr_29947 __btrfs_getxattr 0 29947 NULL nohasharray
36182 +ipv6_recv_error_29947 ipv6_recv_error 3 29947 &__btrfs_getxattr_29947
36183 -+diva_os_get_context_size_29983 diva_os_get_context_size 0 29983 NULL
36184 -+arch_setup_dmar_msi_29992 arch_setup_dmar_msi 1 29992 NULL
36185 -+vmci_host_setup_notify_30002 vmci_host_setup_notify 2 30002 NULL
36186 +dev_mem_write_30028 dev_mem_write 3 30028 NULL
36187 +alloc_netdev_mqs_30030 alloc_netdev_mqs 1 30030 NULL
36188 +scsi_vpd_inquiry_30040 scsi_vpd_inquiry 4 30040 NULL
36189 -+drp_wmove_30043 drp_wmove 4 30043 NULL nohasharray
36190 -+wrmalt_30043 wrmalt 0 30043 &drp_wmove_30043
36191 -+mem_cgroup_charge_common_30047 mem_cgroup_charge_common 0 30047 NULL
36192 -+SyS_write_30059 SyS_write 3 30059 NULL
36193 ++drp_wmove_30043 drp_wmove 4 30043 NULL
36194 ++__pci_request_selected_regions_30058 __pci_request_selected_regions 0 30058 NULL
36195 +cxgbi_ddp_reserve_30091 cxgbi_ddp_reserve 4 30091 NULL
36196 +snd_midi_channel_init_set_30092 snd_midi_channel_init_set 1 30092 NULL
36197 +rx_filter_data_filter_read_30098 rx_filter_data_filter_read 3 30098 NULL
36198 +defragment_dma_buffer_30113 defragment_dma_buffer 0 30113 NULL
36199 +spi_async_locked_30117 spi_async_locked 0 30117 NULL
36200 -+calgary_unmap_page_30130 calgary_unmap_page 3-2 30130 NULL
36201 +recv_stream_30138 recv_stream 4 30138 NULL
36202 +u_memcpya_30139 u_memcpya 3-2 30139 NULL
36203 +elfcorehdr_read_30159 elfcorehdr_read 2 30159 NULL
36204 +alloc_switch_ctx_30165 alloc_switch_ctx 2 30165 NULL
36205 +expand_inode_data_30169 expand_inode_data 2-3 30169 NULL
36206 -+btrfs_start_transaction_lflush_30178 btrfs_start_transaction_lflush 2 30178 NULL
36207 +mempool_create_page_pool_30189 mempool_create_page_pool 1 30189 NULL
36208 +drm_property_create_bitmask_30195 drm_property_create_bitmask 5 30195 NULL
36209 -+snd_pcm_playback_forward_30201 snd_pcm_playback_forward 0-2 30201 NULL
36210 +usblp_ioctl_30203 usblp_ioctl 2 30203 NULL
36211 +read_4k_modal_eeprom_30212 read_4k_modal_eeprom 3 30212 NULL
36212 ++SyS_semop_30227 SyS_semop 3 30227 NULL
36213 +bitmap_file_set_bit_30228 bitmap_file_set_bit 2 30228 NULL
36214 -+shmem_unuse_inode_30263 shmem_unuse_inode 0 30263 NULL
36215 ++ocfs2_calc_bg_discontig_credits_30230 ocfs2_calc_bg_discontig_credits 0 30230 NULL
36216 +rawv6_recvmsg_30265 rawv6_recvmsg 4 30265 NULL
36217 +hfsplus_trusted_setxattr_30270 hfsplus_trusted_setxattr 4 30270 NULL
36218 +isr_pci_pm_read_30271 isr_pci_pm_read 3 30271 NULL
36219 +compat_readv_30273 compat_readv 3 30273 NULL
36220 -+lapic_register_intr_30279 lapic_register_intr 1 30279 NULL
36221 +skcipher_sendmsg_30290 skcipher_sendmsg 4 30290 NULL
36222 +pipeline_sec_frag_swi_read_30294 pipeline_sec_frag_swi_read 3 30294 NULL
36223 +tcp_sendmsg_30296 tcp_sendmsg 4 30296 NULL
36224 +osc_contention_seconds_seq_write_30305 osc_contention_seconds_seq_write 3 30305 NULL
36225 -+drm_core_get_reg_ofs_30309 drm_core_get_reg_ofs 0 30309 NULL
36226 +ext4_acl_from_disk_30320 ext4_acl_from_disk 2 30320 NULL
36227 +i8254_read_30330 i8254_read 0 30330 NULL
36228 -+generic_ptrace_pokedata_30338 generic_ptrace_pokedata 2 30338 NULL
36229 +resource_from_user_30341 resource_from_user 3 30341 NULL
36230 +o2nm_this_node_30342 o2nm_this_node 0 30342 NULL
36231 -+__vmalloc_node_flags_30352 __vmalloc_node_flags 1-2 30352 NULL
36232 +kstrtou32_from_user_30361 kstrtou32_from_user 2 30361 NULL
36233 -+inet_getid_30365 inet_getid 2 30365 NULL
36234 +C_SYSC_readv_30369 C_SYSC_readv 3 30369 NULL
36235 -+blkdev_issue_zeroout_30392 blkdev_issue_zeroout 3-0 30392 NULL
36236 ++blkdev_issue_zeroout_30392 blkdev_issue_zeroout 3 30392 NULL
36237 +c4iw_init_resource_30393 c4iw_init_resource 2-3 30393 NULL
36238 +get_kernel_pages_30397 get_kernel_pages 0 30397 NULL
36239 -+_drbd_bm_find_next_zero_30415 _drbd_bm_find_next_zero 2 30415 NULL
36240 -+ext3_xattr_list_30419 ext3_xattr_list 3 30419 NULL
36241 +vb2_fop_write_30420 vb2_fop_write 3 30420 NULL
36242 +tx_tx_template_prepared_read_30424 tx_tx_template_prepared_read 3 30424 NULL
36243 -+mq_create_30425 mq_create 1 30425 NULL nohasharray
36244 -+lstcon_session_info_30425 lstcon_session_info 6 30425 &mq_create_30425
36245 -+ext4_ext_create_new_leaf_30428 ext4_ext_create_new_leaf 0 30428 NULL
36246 ++lstcon_session_info_30425 lstcon_session_info 6 30425 NULL
36247 +enable_write_30456 enable_write 3 30456 NULL
36248 -+pci_resource_alignment_30457 pci_resource_alignment 0 30457 NULL
36249 +tx_tx_template_programmed_read_30461 tx_tx_template_programmed_read 3 30461 NULL
36250 +urandom_read_30462 urandom_read 3 30462 NULL
36251 +zoran_ioctl_30465 zoran_ioctl 2 30465 NULL
36252 +i2c_ctrl_read_30467 i2c_ctrl_read 0 30467 NULL
36253 -+send_rmdir_30470 send_rmdir 0 30470 NULL
36254 -+i915_mutex_lock_interruptible_30474 i915_mutex_lock_interruptible 0 30474 NULL nohasharray
36255 -+ocrdma_reg_user_mr_30474 ocrdma_reg_user_mr 2-3 30474 &i915_mutex_lock_interruptible_30474
36256 -+write_head_30481 write_head 4 30481 NULL
36257 +adu_write_30487 adu_write 3 30487 NULL
36258 +dtim_interval_write_30489 dtim_interval_write 3 30489 NULL
36259 -+btrfs_free_extent_30515 btrfs_free_extent 0 30515 NULL
36260 ++batadv_send_tt_request_30493 batadv_send_tt_request 5 30493 NULL
36261 +dwc3_testmode_write_30516 dwc3_testmode_write 3 30516 NULL
36262 -+debug_debug2_read_30526 debug_debug2_read 3 30526 NULL nohasharray
36263 -+set_config_30526 set_config 0 30526 &debug_debug2_read_30526
36264 ++set_config_30526 set_config 0 30526 NULL nohasharray
36265 ++debug_debug2_read_30526 debug_debug2_read 3 30526 &set_config_30526
36266 ++xfs_sb_version_hasftype_30559 xfs_sb_version_hasftype 0 30559 NULL
36267 +disk_expand_part_tbl_30561 disk_expand_part_tbl 2 30561 NULL
36268 +set_le_30581 set_le 4 30581 NULL
36269 -+from_cblock_30582 from_cblock 0-1 30582 NULL
36270 +blk_init_tags_30592 blk_init_tags 1 30592 NULL
36271 +i2c_hid_get_report_length_30598 i2c_hid_get_report_length 0 30598 NULL
36272 -+sgl_map_user_pages_30610 sgl_map_user_pages 2-3-4 30610 NULL
36273 ++sgl_map_user_pages_30610 sgl_map_user_pages 2 30610 NULL nohasharray
36274 ++cpufreq_get_global_kobject_30610 cpufreq_get_global_kobject 0 30610 &sgl_map_user_pages_30610
36275 +SyS_msgrcv_30611 SyS_msgrcv 3 30611 NULL
36276 +macvtap_sendmsg_30629 macvtap_sendmsg 4 30629 NULL
36277 +ieee80211_if_read_dot11MeshAwakeWindowDuration_30631 ieee80211_if_read_dot11MeshAwakeWindowDuration 3 30631 NULL
36278 +compat_raw_setsockopt_30634 compat_raw_setsockopt 5 30634 NULL
36279 +mlx5_ib_alloc_fast_reg_page_list_30638 mlx5_ib_alloc_fast_reg_page_list 2 30638 NULL
36280 +SyS_listxattr_30647 SyS_listxattr 3 30647 NULL
36281 -+agp_remap_30665 agp_remap 2 30665 NULL
36282 +jffs2_flash_read_30667 jffs2_flash_read 0 30667 NULL
36283 +ni_ai_fifo_read_30681 ni_ai_fifo_read 3 30681 NULL
36284 +dccp_setsockopt_ccid_30701 dccp_setsockopt_ccid 4 30701 NULL
36285 +lbs_wrbbp_write_30712 lbs_wrbbp_write 3 30712 NULL
36286 -+ocfs2_find_cpos_for_left_leaf_30713 ocfs2_find_cpos_for_left_leaf 0 30713 NULL
36287 -+__mutex_lock_common_30717 __mutex_lock_common 0 30717 NULL
36288 +lbs_debugfs_read_30721 lbs_debugfs_read 3 30721 NULL
36289 +snd_nm256_playback_silence_30727 snd_nm256_playback_silence 4-3 30727 NULL
36290 +snapshot_status_30744 snapshot_status 5 30744 NULL
36291 +fuse_conn_limit_write_30777 fuse_conn_limit_write 3 30777 NULL
36292 -+SyS_pread64_30778 SyS_pread64 3 30778 NULL
36293 -+btrfs_run_ordered_operations_30793 btrfs_run_ordered_operations 0 30793 NULL
36294 +smk_read_doi_30813 smk_read_doi 3 30813 NULL
36295 -+SYSC_splice_30820 SYSC_splice 5 30820 NULL
36296 -+xlog_grant_head_wait_30829 xlog_grant_head_wait 4 30829 NULL
36297 +get_kobj_path_length_30831 get_kobj_path_length 0 30831 NULL
36298 +sctp_setsockopt_auth_chunk_30843 sctp_setsockopt_auth_chunk 3 30843 NULL
36299 -+cfg80211_rx_mgmt_30844 cfg80211_rx_mgmt 5 30844 NULL
36300 +wd_autoreset_write_30862 wd_autoreset_write 3 30862 NULL
36301 +ieee80211_if_fmt_dropped_frames_no_route_30884 ieee80211_if_fmt_dropped_frames_no_route 3 30884 NULL
36302 +pn_recvmsg_30887 pn_recvmsg 4 30887 NULL
36303 +sctp_setsockopt_rtoinfo_30941 sctp_setsockopt_rtoinfo 3 30941 NULL
36304 -+find_free_dev_extent_30963 find_free_dev_extent 0 30963 NULL
36305 +tty_insert_flip_string_flags_30969 tty_insert_flip_string_flags 4 30969 NULL
36306 +huge_page_mask_30981 huge_page_mask 0 30981 NULL
36307 +read_file_bt_ant_diversity_30983 read_file_bt_ant_diversity 3 30983 NULL
36308 +lbs_host_sleep_read_31013 lbs_host_sleep_read 3 31013 NULL
36309 ++ima_eventsig_init_31022 ima_eventsig_init 5 31022 NULL
36310 ++template_fmt_size_31033 template_fmt_size 0 31033 NULL
36311 +do_setup_msi_irqs_31043 do_setup_msi_irqs 2 31043 NULL
36312 +stride_pg_count_31053 stride_pg_count 0-2-1-4-3-5 31053 NULL
36313 +lbs_failcount_read_31063 lbs_failcount_read 3 31063 NULL
36314 -+find_next_bit_le_31064 find_next_bit_le 0-2-3 31064 NULL
36315 +sctp_setsockopt_context_31091 sctp_setsockopt_context 3 31091 NULL
36316 +proc_gid_map_write_31093 proc_gid_map_write 3 31093 NULL
36317 +compat_sys_get_mempolicy_31109 compat_sys_get_mempolicy 3 31109 NULL
36318 -+si_calculate_power_efficiency_ratio_31111 si_calculate_power_efficiency_ratio 3-2 31111 NULL
36319 +depth_read_31112 depth_read 3 31112 NULL
36320 ++hash_ipportnet6_expire_31118 hash_ipportnet6_expire 4 31118 NULL
36321 +kimage_normal_alloc_31140 kimage_normal_alloc 3 31140 NULL
36322 -+size_inside_page_31141 size_inside_page 0-1-2 31141 NULL
36323 ++size_inside_page_31141 size_inside_page 0 31141 NULL
36324 +w9966_v4l_read_31148 w9966_v4l_read 3 31148 NULL
36325 +ch_do_scsi_31171 ch_do_scsi 4 31171 NULL
36326 -+crypto_rng_seedsize_31196 crypto_rng_seedsize 0 31196 NULL
36327 +r592_read_fifo_pio_31198 r592_read_fifo_pio 3 31198 NULL
36328 +mtdchar_readoob_31200 mtdchar_readoob 4 31200 NULL
36329 +__btrfs_free_reserved_extent_31207 __btrfs_free_reserved_extent 2 31207 NULL
36330 -+kvm_mmu_page_fault_31213 kvm_mmu_page_fault 2 31213 NULL
36331 +cpumask_weight_31215 cpumask_weight 0 31215 NULL
36332 +__read_reg_31216 __read_reg 0 31216 NULL
36333 +atm_get_addr_31221 atm_get_addr 3 31221 NULL
36334 -+ulist_rbtree_insert_31235 ulist_rbtree_insert 0 31235 NULL
36335 +tcp_recvmsg_31238 tcp_recvmsg 4 31238 NULL
36336 +cyy_readb_31240 cyy_readb 0 31240 NULL
36337 +_create_sg_bios_31244 _create_sg_bios 4 31244 NULL
36338 +ieee80211_if_read_last_beacon_31257 ieee80211_if_read_last_beacon 3 31257 NULL
36339 -+sctp_tsnmap_find_gap_ack_31272 sctp_tsnmap_find_gap_ack 3-2 31272 NULL
36340 ++hash_netportnet4_expire_31290 hash_netportnet4_expire 4 31290 NULL
36341 +uvc_simplify_fraction_31303 uvc_simplify_fraction 3 31303 NULL
36342 -+push_leaf_left_31306 push_leaf_left 0 31306 NULL
36343 +sisusbcon_scroll_31315 sisusbcon_scroll 5-2-3 31315 NULL
36344 +command_file_write_31318 command_file_write 3 31318 NULL
36345 -+ext4_xattr_block_list_31325 ext4_xattr_block_list 3 31325 NULL
36346 +hwerr_crcbits_31334 hwerr_crcbits 4 31334 NULL
36347 -+radix_tree_insert_31336 radix_tree_insert 0 31336 NULL
36348 +em28xx_init_usb_xfer_31337 em28xx_init_usb_xfer 4-6 31337 NULL
36349 -+__cpu_to_node_31345 __cpu_to_node 0 31345 NULL
36350 +outlen_write_31358 outlen_write 3 31358 NULL
36351 +ieee80211_rx_mgmt_auth_31366 ieee80211_rx_mgmt_auth 3 31366 NULL
36352 +xprt_rdma_allocate_31372 xprt_rdma_allocate 2 31372 NULL
36353 -+vb2_vmalloc_get_userptr_31374 vb2_vmalloc_get_userptr 2-3 31374 NULL
36354 ++vb2_vmalloc_get_userptr_31374 vb2_vmalloc_get_userptr 3-2 31374 NULL
36355 +trace_parser_get_init_31379 trace_parser_get_init 2 31379 NULL
36356 +inb_31388 inb 0 31388 NULL
36357 +key_ifindex_read_31411 key_ifindex_read 3 31411 NULL
36358 -+i915_gem_object_put_fence_31413 i915_gem_object_put_fence 0 31413 NULL
36359 +_sp2d_max_pg_31422 _sp2d_max_pg 0 31422 NULL
36360 +TSS_checkhmac1_31429 TSS_checkhmac1 5 31429 NULL
36361 +snd_aw2_saa7146_get_hw_ptr_capture_31431 snd_aw2_saa7146_get_hw_ptr_capture 0 31431 NULL
36362 -+acpi_sci_ioapic_setup_31445 acpi_sci_ioapic_setup 4 31445 NULL
36363 +transport_alloc_session_tags_31449 transport_alloc_session_tags 2-3 31449 NULL
36364 +opera1_xilinx_rw_31453 opera1_xilinx_rw 5 31453 NULL
36365 -+register_ftrace_graph_31456 register_ftrace_graph 0 31456 NULL
36366 -+input_get_new_minor_31464 input_get_new_minor 1 31464 NULL
36367 -+do_fcntl_31468 do_fcntl 3 31468 NULL
36368 +xfs_btree_get_numrecs_31477 xfs_btree_get_numrecs 0 31477 NULL
36369 -+__ext4_journal_get_write_access_31482 __ext4_journal_get_write_access 0 31482 NULL
36370 +alg_setkey_31485 alg_setkey 3 31485 NULL
36371 +rds_message_map_pages_31487 rds_message_map_pages 2 31487 NULL
36372 +qsfp_2_read_31491 qsfp_2_read 3 31491 NULL
36373 +__alloc_bootmem_31498 __alloc_bootmem 1 31498 NULL
36374 -+nouveau_mc_create__31513 nouveau_mc_create_ 5 31513 NULL
36375 +hidraw_write_31536 hidraw_write 3 31536 NULL
36376 -+mtd_div_by_eb_31543 mtd_div_by_eb 0-1 31543 NULL
36377 +usbvision_read_31555 usbvision_read 3 31555 NULL
36378 +tx_frag_tkip_called_read_31575 tx_frag_tkip_called_read 3 31575 NULL
36379 +get_max_inline_xattr_value_size_31578 get_max_inline_xattr_value_size 0 31578 NULL
36380 @@ -107864,20 +109367,16 @@ index 0000000..3d6cc0f
36381 +videobuf_read_one_31637 videobuf_read_one 3 31637 NULL
36382 +pod_alloc_sysex_buffer_31651 pod_alloc_sysex_buffer 3 31651 NULL
36383 +xfer_secondary_pool_31661 xfer_secondary_pool 2 31661 NULL
36384 -+emulator_set_cr_31665 emulator_set_cr 3 31665 NULL
36385 +__lgread_31668 __lgread 4 31668 NULL
36386 ++copy_from_user_nmi_31672 copy_from_user_nmi 3-0 31672 NULL
36387 +forced_ps_read_31685 forced_ps_read 3 31685 NULL
36388 +fst_recover_rx_error_31687 fst_recover_rx_error 3 31687 NULL
36389 -+reiserfs_in_journal_31689 reiserfs_in_journal 3 31689 NULL
36390 -+gfn_to_hva_read_31728 gfn_to_hva_read 2 31728 NULL
36391 +utf16s_to_utf8s_31735 utf16s_to_utf8s 0 31735 NULL nohasharray
36392 +lu_buf_check_and_grow_31735 lu_buf_check_and_grow 2 31735 &utf16s_to_utf8s_31735
36393 +shmem_pwrite_slow_31741 shmem_pwrite_slow 3-2 31741 NULL
36394 -+NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 NULL nohasharray
36395 -+input_abs_get_max_31742 input_abs_get_max 0 31742 &NCR_700_change_queue_depth_31742
36396 -+muldiv64_31743 muldiv64 3-2-0 31743 NULL
36397 -+stmpe_set_altfunc_31750 stmpe_set_altfunc 2 31750 NULL nohasharray
36398 -+bcm_char_read_31750 bcm_char_read 3 31750 &stmpe_set_altfunc_31750
36399 ++input_abs_get_max_31742 input_abs_get_max 0 31742 NULL nohasharray
36400 ++NCR_700_change_queue_depth_31742 NCR_700_change_queue_depth 2 31742 &input_abs_get_max_31742
36401 ++bcm_char_read_31750 bcm_char_read 3 31750 NULL
36402 +snd_seq_device_new_31753 snd_seq_device_new 4 31753 NULL
36403 +SyS_lsetxattr_31766 SyS_lsetxattr 4 31766 NULL
36404 +usblp_cache_device_id_string_31790 usblp_cache_device_id_string 0 31790 NULL
36405 @@ -107887,7 +109386,6 @@ index 0000000..3d6cc0f
36406 +SyS_msgsnd_31814 SyS_msgsnd 3 31814 NULL
36407 +strnlen_user_31815 strnlen_user 0-2 31815 NULL
36408 +sta_last_signal_read_31818 sta_last_signal_read 3 31818 NULL
36409 -+fsnotify_perm_31843 fsnotify_perm 0 31843 NULL
36410 +SyS_ppoll_31855 SyS_ppoll 2 31855 NULL
36411 +iwl_dbgfs_disable_ht40_write_31876 iwl_dbgfs_disable_ht40_write 3 31876 NULL
36412 +drm_mode_crtc_set_gamma_size_31881 drm_mode_crtc_set_gamma_size 2 31881 NULL
36413 @@ -107896,79 +109394,51 @@ index 0000000..3d6cc0f
36414 +lu_buf_realloc_31915 lu_buf_realloc 2 31915 NULL
36415 +new_dir_31919 new_dir 3 31919 NULL
36416 +kmem_alloc_31920 kmem_alloc 1 31920 NULL
36417 -+guestwidth_to_adjustwidth_31937 guestwidth_to_adjustwidth 0-1 31937 NULL
36418 -+process_recorded_refs_if_needed_31938 process_recorded_refs_if_needed 0 31938 NULL
36419 +SYSC_sethostname_31940 SYSC_sethostname 2 31940 NULL
36420 -+iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4-0 31942 NULL nohasharray
36421 -+read_mem_31942 read_mem 3 31942 &iov_iter_copy_from_user_31942
36422 ++read_mem_31942 read_mem 3 31942 NULL nohasharray
36423 ++iov_iter_copy_from_user_31942 iov_iter_copy_from_user 4-0 31942 &read_mem_31942
36424 +vb2_write_31948 vb2_write 3 31948 NULL
36425 +pvr2_ctrl_get_valname_31951 pvr2_ctrl_get_valname 4 31951 NULL
36426 +regcache_rbtree_sync_31964 regcache_rbtree_sync 2 31964 NULL
36427 +copy_from_user_toio_31966 copy_from_user_toio 3 31966 NULL
36428 -+mtd_add_partition_31971 mtd_add_partition 3 31971 NULL
36429 -+btrfs_insert_empty_inode_31975 btrfs_insert_empty_inode 0 31975 NULL
36430 -+vx_read_status_31982 vx_read_status 0 31982 NULL nohasharray
36431 -+iblock_execute_rw_31982 iblock_execute_rw 3 31982 &vx_read_status_31982
36432 -+find_next_zero_bit_31990 find_next_zero_bit 3-2-0 31990 NULL
36433 -+default_setup_hpet_msi_31991 default_setup_hpet_msi 1 31991 NULL
36434 ++iblock_execute_rw_31982 iblock_execute_rw 3 31982 NULL nohasharray
36435 ++vx_read_status_31982 vx_read_status 0 31982 &iblock_execute_rw_31982
36436 ++find_next_zero_bit_31990 find_next_zero_bit 0 31990 NULL
36437 +lustre_acl_xattr_merge2posix_31992 lustre_acl_xattr_merge2posix 2 31992 NULL
36438 +sysfs_create_file_31996 sysfs_create_file 0 31996 NULL
36439 -+tps6586x_irq_map_32002 tps6586x_irq_map 2 32002 NULL
36440 +calc_hmac_32010 calc_hmac 3 32010 NULL
36441 -+vmcs_read64_32012 vmcs_read64 0 32012 NULL
36442 -+resource_alignment_32020 resource_alignment 0 32020 NULL
36443 +aead_len_32021 aead_len 0 32021 NULL
36444 -+ocfs2_remove_extent_32032 ocfs2_remove_extent 4-3-0 32032 NULL
36445 +posix_acl_set_32037 posix_acl_set 4 32037 NULL
36446 +stk_read_32038 stk_read 3 32038 NULL
36447 -+vmw_cursor_update_dmabuf_32045 vmw_cursor_update_dmabuf 3-4 32045 NULL
36448 -+ocfs2_update_edge_lengths_32046 ocfs2_update_edge_lengths 0 32046 NULL
36449 ++ocfs2_update_edge_lengths_32046 ocfs2_update_edge_lengths 3 32046 NULL
36450 +SYSC_llistxattr_32061 SYSC_llistxattr 3 32061 NULL
36451 +proc_scsi_devinfo_write_32064 proc_scsi_devinfo_write 3 32064 NULL
36452 +cow_file_range_inline_32091 cow_file_range_inline 3 32091 NULL
36453 +bio_alloc_32095 bio_alloc 2 32095 NULL
36454 -+alloc_pwms_32100 alloc_pwms 1-2 32100 NULL
36455 +ath6kl_fwlog_read_32101 ath6kl_fwlog_read 3 32101 NULL
36456 +disk_status_32120 disk_status 4 32120 NULL
36457 +kobject_add_internal_32133 kobject_add_internal 0 32133 NULL
36458 -+btrfs_split_item_32164 btrfs_split_item 0 32164 NULL
36459 +venus_link_32165 venus_link 5 32165 NULL
36460 -+do_writepages_32173 do_writepages 0 32173 NULL nohasharray
36461 -+ntfs_rl_realloc_nofail_32173 ntfs_rl_realloc_nofail 3 32173 &do_writepages_32173
36462 -+load_header_32183 load_header 0 32183 NULL
36463 -+ubi_wl_scrub_peb_32196 ubi_wl_scrub_peb 0 32196 NULL
36464 ++do_writepages_32173 do_writepages 0 32173 NULL
36465 +wusb_ccm_mac_32199 wusb_ccm_mac 7 32199 NULL
36466 -+__mem_cgroup_try_charge_swapin_32204 __mem_cgroup_try_charge_swapin 0 32204 NULL
36467 +riva_get_cmap_len_32218 riva_get_cmap_len 0 32218 NULL
36468 +caif_seqpkt_recvmsg_32241 caif_seqpkt_recvmsg 4 32241 NULL
36469 +lbs_lowrssi_read_32242 lbs_lowrssi_read 3 32242 NULL
36470 +ocfs2_xattr_find_entry_32260 ocfs2_xattr_find_entry 0 32260 NULL
36471 -+vmalloc_user_32308 vmalloc_user 1 32308 NULL
36472 +kvm_set_spte_hva_32312 kvm_set_spte_hva 2 32312 NULL
36473 +cas_calc_tabort_32316 cas_calc_tabort 0 32316 NULL
36474 +SyS_select_32319 SyS_select 1 32319 NULL
36475 +nouveau_bar_create__32332 nouveau_bar_create_ 4 32332 NULL
36476 +nl80211_send_mlme_event_32337 nl80211_send_mlme_event 4 32337 NULL
36477 -+apic_get_tmcct_32338 apic_get_tmcct 0 32338 NULL
36478 +t4_alloc_mem_32342 t4_alloc_mem 1 32342 NULL
36479 +dispatch_ioctl_32357 dispatch_ioctl 2 32357 NULL nohasharray
36480 +rx_streaming_always_write_32357 rx_streaming_always_write 3 32357 &dispatch_ioctl_32357
36481 -+sel_read_initcon_32362 sel_read_initcon 3 32362 NULL nohasharray
36482 -+ReadHDLCPCI_32362 ReadHDLCPCI 0 32362 &sel_read_initcon_32362
36483 -+__wait_seqno_32370 __wait_seqno 0 32370 NULL
36484 -+_drbd_bm_find_next_32372 _drbd_bm_find_next 2 32372 NULL
36485 -+cpuset_slab_spread_node_32376 cpuset_slab_spread_node 0 32376 NULL
36486 -+intel_iommu_map_32384 intel_iommu_map 4-3 32384 NULL
36487 -+local_clock_32385 local_clock 0 32385 NULL
36488 ++ReadHDLCPCI_32362 ReadHDLCPCI 0 32362 NULL nohasharray
36489 ++sel_read_initcon_32362 sel_read_initcon 3 32362 &ReadHDLCPCI_32362
36490 +ocfs2_cancel_convert_32392 ocfs2_cancel_convert 0 32392 NULL
36491 +ll_setxattr_common_32398 ll_setxattr_common 4 32398 NULL
36492 +xfs_iext_add_indirect_multi_32400 xfs_iext_add_indirect_multi 3 32400 NULL
36493 -+__add_missing_keys_32402 __add_missing_keys 0 32402 NULL
36494 +vmci_qp_alloc_32405 vmci_qp_alloc 5-3 32405 NULL
36495 -+regmap_irq_map_32429 regmap_irq_map 2 32429 NULL
36496 -+break_ksm_32439 break_ksm 0 32439 NULL
36497 -+__ext4_handle_dirty_super_32458 __ext4_handle_dirty_super 0 32458 NULL
36498 -+snd_pcm_sync_ptr_32461 snd_pcm_sync_ptr 0 32461 NULL
36499 +cache_status_32462 cache_status 5 32462 NULL
36500 +fill_readbuf_32464 fill_readbuf 3 32464 NULL
36501 +dgap_usertoboard_32490 dgap_usertoboard 4 32490 NULL
36502 @@ -107976,15 +109446,13 @@ index 0000000..3d6cc0f
36503 +bypass_pwoff_write_32499 bypass_pwoff_write 3 32499 NULL
36504 +mdc_pinger_recov_seq_write_32510 mdc_pinger_recov_seq_write 3 32510 NULL
36505 +ctrl_std_val_to_sym_32516 ctrl_std_val_to_sym 5 32516 NULL
36506 -+ocfs2_local_alloc_reserve_for_window_32518 ocfs2_local_alloc_reserve_for_window 0 32518 NULL
36507 +disconnect_32521 disconnect 4 32521 NULL
36508 +qsfp_read_32522 qsfp_read 0-2-4 32522 NULL
36509 -+audio_get_intf_req_32524 audio_get_intf_req 0 32524 NULL nohasharray
36510 -+ocfs2_refresh_qinfo_32524 ocfs2_refresh_qinfo 0 32524 &audio_get_intf_req_32524
36511 ++ocfs2_refresh_qinfo_32524 ocfs2_refresh_qinfo 0 32524 NULL nohasharray
36512 ++audio_get_intf_req_32524 audio_get_intf_req 0 32524 &ocfs2_refresh_qinfo_32524
36513 +ilo_read_32531 ilo_read 3 32531 NULL
36514 +ieee80211_if_read_estab_plinks_32533 ieee80211_if_read_estab_plinks 3 32533 NULL
36515 +format_devstat_counter_32550 format_devstat_counter 3 32550 NULL
36516 -+__first_node_32558 __first_node 0 32558 NULL
36517 +aes_encrypt_fail_read_32562 aes_encrypt_fail_read 3 32562 NULL
36518 +osc_iocontrol_32565 osc_iocontrol 3 32565 NULL
36519 +mem_swapout_entry_32586 mem_swapout_entry 3 32586 NULL
36520 @@ -107993,69 +109461,52 @@ index 0000000..3d6cc0f
36521 +ieee80211_if_read_dropped_frames_congestion_32603 ieee80211_if_read_dropped_frames_congestion 3 32603 NULL
36522 +irda_recvmsg_dgram_32631 irda_recvmsg_dgram 4 32631 NULL
36523 +cfg80211_roamed_32632 cfg80211_roamed 5-7 32632 NULL
36524 -+ite_decode_bytes_32642 ite_decode_bytes 3 32642 NULL
36525 +kvmalloc_32646 kvmalloc 1 32646 NULL
36526 +ib_sg_dma_len_32649 ib_sg_dma_len 0 32649 NULL
36527 -+generic_readlink_32654 generic_readlink 3 32654 NULL nohasharray
36528 -+ftrace_startup_32654 ftrace_startup 0 32654 &generic_readlink_32654
36529 -+get_unaligned_be24_32667 get_unaligned_be24 0 32667 NULL
36530 ++generic_readlink_32654 generic_readlink 3 32654 NULL
36531 +move_addr_to_kernel_32673 move_addr_to_kernel 2 32673 NULL
36532 +apei_res_add_32674 apei_res_add 0 32674 NULL
36533 ++compat_SyS_preadv_32679 compat_SyS_preadv 3 32679 NULL
36534 +jfs_readpages_32702 jfs_readpages 4 32702 NULL
36535 +rt2x00debug_read_queue_dump_32712 rt2x00debug_read_queue_dump 3 32712 NULL
36536 +i40e_pci_sriov_enable_32742 i40e_pci_sriov_enable 2 32742 NULL
36537 -+get_arg_page_32746 get_arg_page 2 32746 NULL
36538 +megasas_change_queue_depth_32747 megasas_change_queue_depth 2 32747 NULL
36539 +stats_read_ul_32751 stats_read_ul 3 32751 NULL
36540 -+begin_cmd_32766 begin_cmd 0 32766 NULL
36541 +vmci_transport_dgram_dequeue_32775 vmci_transport_dgram_dequeue 4 32775 NULL
36542 +sctp_tsnmap_grow_32784 sctp_tsnmap_grow 2 32784 NULL
36543 -+ocfs2_read_inode_block_full_32790 ocfs2_read_inode_block_full 0 32790 NULL
36544 +rproc_name_read_32805 rproc_name_read 3 32805 NULL
36545 +new_tape_buffer_32866 new_tape_buffer 2 32866 NULL
36546 -+io_apic_setup_irq_pin_32868 io_apic_setup_irq_pin 1-2 32868 NULL
36547 -+ath6kl_usb_submit_ctrl_in_32880 ath6kl_usb_submit_ctrl_in 6 32880 NULL nohasharray
36548 -+cifs_writedata_alloc_32880 cifs_writedata_alloc 1 32880 &ath6kl_usb_submit_ctrl_in_32880
36549 ++cifs_writedata_alloc_32880 cifs_writedata_alloc 1 32880 NULL nohasharray
36550 ++ath6kl_usb_submit_ctrl_in_32880 ath6kl_usb_submit_ctrl_in 6 32880 &cifs_writedata_alloc_32880
36551 +vp702x_usb_inout_cmd_32884 vp702x_usb_inout_cmd 6-4 32884 NULL
36552 -+ext4_get_group_number_32899 ext4_get_group_number 0-2 32899 NULL
36553 +il_dbgfs_tx_stats_read_32913 il_dbgfs_tx_stats_read 3 32913 NULL
36554 +zlib_inflate_workspacesize_32927 zlib_inflate_workspacesize 0 32927 NULL
36555 +rmap_recycle_32938 rmap_recycle 3 32938 NULL
36556 -+irq_reserve_irqs_32946 irq_reserve_irqs 1-2 32946 NULL
36557 -+ext4_valid_block_bitmap_32958 ext4_valid_block_bitmap 3 32958 NULL
36558 +xfs_log_reserve_32959 xfs_log_reserve 2 32959 NULL
36559 -+ext4_group_overhead_blocks_32971 ext4_group_overhead_blocks 0 32971 NULL
36560 -+arch_ptrace_32981 arch_ptrace 3 32981 NULL
36561 ++ocfs2_check_dir_trailer_32968 ocfs2_check_dir_trailer 0 32968 NULL
36562 +compat_filldir_32999 compat_filldir 3 32999 NULL
36563 -+btrfs_lookup_extent_info_33000 btrfs_lookup_extent_info 0 33000 NULL
36564 -+ext3_alloc_blocks_33007 ext3_alloc_blocks 3-0 33007 NULL nohasharray
36565 -+SyS_syslog_33007 SyS_syslog 3 33007 &ext3_alloc_blocks_33007
36566 ++SyS_syslog_33007 SyS_syslog 3 33007 NULL
36567 +br_multicast_set_hash_max_33012 br_multicast_set_hash_max 2 33012 NULL
36568 +write_file_bt_ant_diversity_33019 write_file_bt_ant_diversity 3 33019 NULL
36569 -+snd_pcm_prepare_33036 snd_pcm_prepare 0 33036 NULL
36570 ++mic_virtio_copy_to_user_33048 mic_virtio_copy_to_user 3 33048 NULL
36571 +SYSC_lgetxattr_33049 SYSC_lgetxattr 4 33049 NULL
36572 +pipeline_dec_packet_in_fifo_full_read_33052 pipeline_dec_packet_in_fifo_full_read 3 33052 NULL
36573 +ebt_compat_match_offset_33053 ebt_compat_match_offset 0-2 33053 NULL
36574 -+bitmap_resize_33054 bitmap_resize 2-3 33054 NULL
36575 -+intel_ring_flush_all_caches_33059 intel_ring_flush_all_caches 0 33059 NULL
36576 ++bitmap_resize_33054 bitmap_resize 2 33054 NULL
36577 +stats_dot11RTSSuccessCount_read_33065 stats_dot11RTSSuccessCount_read 3 33065 NULL
36578 +sel_read_checkreqprot_33068 sel_read_checkreqprot 3 33068 NULL
36579 +alloc_tio_33077 alloc_tio 3 33077 NULL
36580 +acl_permission_check_33083 acl_permission_check 0 33083 NULL
36581 -+write_node_33121 write_node 4 33121 NULL
36582 +fb_sys_write_33130 fb_sys_write 3 33130 NULL
36583 +__len_within_target_33132 __len_within_target 0 33132 NULL
36584 +SyS_poll_33152 SyS_poll 2 33152 NULL
36585 +debug_debug6_read_33168 debug_debug6_read 3 33168 NULL
36586 +dataflash_read_fact_otp_33204 dataflash_read_fact_otp 3-2 33204 NULL
36587 +pp_read_33210 pp_read 3 33210 NULL
36588 -+xfs_file_aio_write_33234 xfs_file_aio_write 4 33234 NULL nohasharray
36589 -+i915_gem_object_wait_rendering__tail_33234 i915_gem_object_wait_rendering__tail 0 33234 &xfs_file_aio_write_33234
36590 -+__vb2_wait_for_done_vb_33246 __vb2_wait_for_done_vb 0 33246 NULL
36591 ++xfs_file_aio_write_33234 xfs_file_aio_write 4 33234 NULL
36592 +snd_pcm_plug_client_size_33267 snd_pcm_plug_client_size 0-2 33267 NULL
36593 +cachefiles_cook_key_33274 cachefiles_cook_key 2 33274 NULL
36594 +sync_pt_create_33282 sync_pt_create 2 33282 NULL
36595 -+btrfs_delete_one_dir_name_33303 btrfs_delete_one_dir_name 0 33303 NULL
36596 +mcs7830_get_reg_33308 mcs7830_get_reg 3 33308 NULL
36597 +isku_sysfs_read_keys_easyzone_33318 isku_sysfs_read_keys_easyzone 6 33318 NULL
36598 +vx_send_irq_dsp_33329 vx_send_irq_dsp 0 33329 NULL
36599 @@ -108064,43 +109515,34 @@ index 0000000..3d6cc0f
36600 +create_xattr_datum_33356 create_xattr_datum 5 33356 NULL nohasharray
36601 +irq_pkt_threshold_read_33356 irq_pkt_threshold_read 3 33356 &create_xattr_datum_33356
36602 +read_file_regidx_33370 read_file_regidx 3 33370 NULL
36603 -+ocfs2_quota_read_33382 ocfs2_quota_read 5 33382 NULL
36604 +ieee80211_if_read_dropped_frames_no_route_33383 ieee80211_if_read_dropped_frames_no_route 3 33383 NULL
36605 +scsi_varlen_cdb_length_33385 scsi_varlen_cdb_length 0 33385 NULL
36606 -+tg_get_cfs_period_33390 tg_get_cfs_period 0 33390 NULL
36607 +ocfs2_allocate_unwritten_extents_33394 ocfs2_allocate_unwritten_extents 3-2 33394 NULL
36608 +cfs_trace_copyin_string_33396 cfs_trace_copyin_string 4 33396 NULL
36609 -+ext4_meta_bg_first_block_no_33408 ext4_meta_bg_first_block_no 2 33408 NULL nohasharray
36610 -+snd_pcm_capture_ioctl1_33408 snd_pcm_capture_ioctl1 0 33408 &ext4_meta_bg_first_block_no_33408
36611 -+ufs_getfrag_block_33409 ufs_getfrag_block 2 33409 NULL
36612 -+filemap_fdatawrite_33415 filemap_fdatawrite 0 33415 NULL
36613 ++snd_pcm_capture_ioctl1_33408 snd_pcm_capture_ioctl1 0 33408 NULL
36614 ++hash_netiface6_expire_33421 hash_netiface6_expire 4 33421 NULL
36615 +dis_tap_write_33426 dis_tap_write 3 33426 NULL
36616 -+ubh_scanc_33436 ubh_scanc 0-3-4 33436 NULL
36617 +message_stats_list_33440 message_stats_list 5 33440 NULL
36618 +ovs_vport_alloc_33475 ovs_vport_alloc 1 33475 NULL
36619 +create_entry_33479 create_entry 2 33479 NULL
36620 +ip_setsockopt_33487 ip_setsockopt 5 33487 NULL nohasharray
36621 +elf_map_33487 elf_map 0-2 33487 &ip_setsockopt_33487
36622 -+ol_dqblk_chunk_off_33489 ol_dqblk_chunk_off 2 33489 NULL
36623 +res_counter_read_33499 res_counter_read 4 33499 NULL
36624 ++hash_netnet4_expire_33500 hash_netnet4_expire 4 33500 NULL
36625 +fb_read_33506 fb_read 3 33506 NULL
36626 +musb_test_mode_write_33518 musb_test_mode_write 3 33518 NULL
36627 +ahash_setkey_unaligned_33521 ahash_setkey_unaligned 3 33521 NULL
36628 +nes_alloc_fast_reg_page_list_33523 nes_alloc_fast_reg_page_list 2 33523 NULL
36629 +aggr_size_rx_size_read_33526 aggr_size_rx_size_read 3 33526 NULL
36630 -+acpi_gsi_to_irq_33533 acpi_gsi_to_irq 1 33533 NULL
36631 -+osc_max_rpcs_in_flight_seq_write_33539 osc_max_rpcs_in_flight_seq_write 3 33539 NULL nohasharray
36632 -+tomoyo_read_self_33539 tomoyo_read_self 3 33539 &osc_max_rpcs_in_flight_seq_write_33539
36633 -+read_symlink_33572 read_symlink 0 33572 NULL
36634 ++tomoyo_read_self_33539 tomoyo_read_self 3 33539 NULL nohasharray
36635 ++osc_max_rpcs_in_flight_seq_write_33539 osc_max_rpcs_in_flight_seq_write 3 33539 &tomoyo_read_self_33539
36636 +count_subheaders_33591 count_subheaders 0 33591 NULL
36637 +scsi_execute_33596 scsi_execute 5 33596 NULL
36638 +comedi_buf_write_n_allocated_33604 comedi_buf_write_n_allocated 0 33604 NULL
36639 +xt_compat_target_offset_33608 xt_compat_target_offset 0 33608 NULL
36640 +usb_gstrings_attach_33615 usb_gstrings_attach 3 33615 NULL nohasharray
36641 +il_dbgfs_qos_read_33615 il_dbgfs_qos_read 3 33615 &usb_gstrings_attach_33615
36642 -+do_sync_write_33624 do_sync_write 0 33624 NULL
36643 +stride_page_count_33641 stride_page_count 2 33641 NULL
36644 -+slab_alloc_node_33663 slab_alloc_node 3 33663 NULL
36645 +irq_blk_threshold_read_33666 irq_blk_threshold_read 3 33666 NULL
36646 +inw_p_33668 inw_p 0 33668 NULL
36647 +arp_hdr_len_33671 arp_hdr_len 0 33671 NULL
36648 @@ -108110,127 +109552,92 @@ index 0000000..3d6cc0f
36649 +tipc_link_stats_33716 tipc_link_stats 3 33716 NULL
36650 +ext4_wb_update_i_disksize_33717 ext4_wb_update_i_disksize 2 33717 NULL
36651 +pvr2_stream_buffer_count_33719 pvr2_stream_buffer_count 2 33719 NULL
36652 -+ocfs2_extent_map_get_blocks_33720 ocfs2_extent_map_get_blocks 2 33720 NULL
36653 -+write_file_spectral_count_33723 write_file_spectral_count 3 33723 NULL nohasharray
36654 -+ocfs2_lock_allocators_move_extents_33723 ocfs2_lock_allocators_move_extents 0 33723 &write_file_spectral_count_33723
36655 ++write_file_spectral_count_33723 write_file_spectral_count 3 33723 NULL
36656 +__mutex_lock_interruptible_slowpath_33735 __mutex_lock_interruptible_slowpath 0 33735 NULL
36657 -+do_munmap_33752 do_munmap 0 33752 NULL
36658 +vifs_state_read_33762 vifs_state_read 3 33762 NULL
36659 +hashtab_create_33769 hashtab_create 3 33769 NULL
36660 -+btrfs_delayed_refs_qgroup_accounting_33775 btrfs_delayed_refs_qgroup_accounting 0 33775 NULL
36661 -+irq_map_generic_chip_33793 irq_map_generic_chip 2 33793 NULL
36662 +if_sdio_read_rx_len_33800 if_sdio_read_rx_len 0 33800 NULL
36663 -+find_next_offset_33804 find_next_offset 3-0 33804 NULL
36664 +filter_write_33819 filter_write 3 33819 NULL
36665 +sep_create_msgarea_context_33829 sep_create_msgarea_context 4 33829 NULL
36666 +scrub_setup_recheck_block_33831 scrub_setup_recheck_block 5-4 33831 NULL
36667 -+ext4_journal_extend_33835 ext4_journal_extend 2-0 33835 NULL
36668 -+snd_pcm_action_nonatomic_33844 snd_pcm_action_nonatomic 0 33844 NULL
36669 -+calgary_alloc_coherent_33851 calgary_alloc_coherent 2 33851 NULL
36670 ++ext4_journal_extend_33835 ext4_journal_extend 2 33835 NULL
36671 +oz_cdev_write_33852 oz_cdev_write 3 33852 NULL
36672 -+bin_string_33884 bin_string 3-5 33884 NULL
36673 -+get_user_pages_33908 get_user_pages 0-3-4 33908 NULL
36674 ++get_user_pages_33908 get_user_pages 0 33908 NULL
36675 +ath6kl_roam_mode_write_33912 ath6kl_roam_mode_write 3 33912 NULL
36676 +queue_logical_block_size_33918 queue_logical_block_size 0 33918 NULL
36677 +sel_read_avc_cache_threshold_33942 sel_read_avc_cache_threshold 3 33942 NULL
36678 +lpfc_idiag_ctlacc_read_33943 lpfc_idiag_ctlacc_read 3 33943 NULL
36679 -+read_file_tgt_rx_stats_33944 read_file_tgt_rx_stats 3 33944 NULL nohasharray
36680 -+btrfs_uuid_tree_rem_33944 btrfs_uuid_tree_rem 0 33944 &read_file_tgt_rx_stats_33944
36681 ++read_file_tgt_rx_stats_33944 read_file_tgt_rx_stats 3 33944 NULL
36682 +hfsplus_osx_setxattr_33952 hfsplus_osx_setxattr 4 33952 NULL
36683 +__proc_dump_kernel_33954 __proc_dump_kernel 5 33954 NULL
36684 -+ocfs2_create_new_meta_bhs_33955 ocfs2_create_new_meta_bhs 0 33955 NULL
36685 +vga_switcheroo_debugfs_write_33984 vga_switcheroo_debugfs_write 3 33984 NULL
36686 -+snd_interval_refine_33987 snd_interval_refine 0 33987 NULL
36687 -+__ntfs_malloc_34022 __ntfs_malloc 1 34022 NULL
36688 +lbs_lowrssi_write_34025 lbs_lowrssi_write 3 34025 NULL
36689 +ppp_write_34034 ppp_write 3 34034 NULL
36690 +tty_insert_flip_string_34042 tty_insert_flip_string 3-0 34042 NULL
36691 -+__domain_flush_pages_34045 __domain_flush_pages 2-3 34045 NULL
36692 -+is_trap_at_addr_34047 is_trap_at_addr 2 34047 NULL
36693 +memcg_update_all_caches_34068 memcg_update_all_caches 1 34068 NULL
36694 +pipeline_pipeline_fifo_full_read_34095 pipeline_pipeline_fifo_full_read 3 34095 NULL
36695 +__irq_domain_add_34101 __irq_domain_add 2 34101 NULL
36696 -+i915_gem_object_set_cache_level_34107 i915_gem_object_set_cache_level 0 34107 NULL nohasharray
36697 -+proc_scsi_host_write_34107 proc_scsi_host_write 3 34107 &i915_gem_object_set_cache_level_34107
36698 -+is_discarded_oblock_34120 is_discarded_oblock 2 34120 NULL
36699 ++proc_scsi_host_write_34107 proc_scsi_host_write 3 34107 NULL
36700 +islpci_mgt_transmit_34133 islpci_mgt_transmit 5 34133 NULL
36701 +ttm_dma_page_pool_free_34135 ttm_dma_page_pool_free 2-0 34135 NULL
36702 +ixgbe_dbg_netdev_ops_write_34141 ixgbe_dbg_netdev_ops_write 3 34141 NULL
36703 +shmem_pread_fast_34147 shmem_pread_fast 3 34147 NULL
36704 -+ext4_xattr_list_34162 ext4_xattr_list 3 34162 NULL
36705 +ocfs2_xattr_list_entry_34165 ocfs2_xattr_list_entry 0 34165 NULL
36706 +skb_to_sgvec_34171 skb_to_sgvec 0 34171 NULL
36707 -+dtf_write_run_34196 dtf_write_run 3 34196 NULL
36708 +ext4_da_write_begin_34215 ext4_da_write_begin 3-4 34215 NULL
36709 -+i915_gem_execbuffer_reserve_object_34224 i915_gem_execbuffer_reserve_object 0 34224 NULL
36710 -+setup_nodes_for_search_34248 setup_nodes_for_search 0 34248 NULL
36711 -+numa_migrate_prep_34256 numa_migrate_prep 0 34256 NULL
36712 -+btrfs_bitmap_cluster_34257 btrfs_bitmap_cluster 4 34257 NULL
36713 ++sysfs_bin_read_34228 sysfs_bin_read 3 34228 NULL
36714 +bl_pipe_downcall_34264 bl_pipe_downcall 3 34264 NULL
36715 +ocfs2_dlm_lock_34265 ocfs2_dlm_lock 0 34265 NULL
36716 -+pcf857x_to_irq_34273 pcf857x_to_irq 2 34273 NULL
36717 +device_private_init_34279 device_private_init 0 34279 NULL
36718 -+get_task_io_context_34316 get_task_io_context 3 34316 NULL
36719 +ext4_get_groups_count_34324 ext4_get_groups_count 0 34324 NULL
36720 -+iov_iter_single_seg_count_34326 iov_iter_single_seg_count 0 34326 NULL nohasharray
36721 -+pcpu_need_to_extend_34326 pcpu_need_to_extend 0 34326 &iov_iter_single_seg_count_34326
36722 -+SYSC_brk_34331 SYSC_brk 1 34331 NULL
36723 -+__insert_34349 __insert 2-3 34349 NULL
36724 -+sync_page_io_34363 sync_page_io 3 34363 NULL nohasharray
36725 -+crypto_ablkcipher_ivsize_34363 crypto_ablkcipher_ivsize 0 34363 &sync_page_io_34363
36726 ++pcpu_need_to_extend_34326 pcpu_need_to_extend 0 34326 NULL nohasharray
36727 ++iov_iter_single_seg_count_34326 iov_iter_single_seg_count 0 34326 &pcpu_need_to_extend_34326
36728 ++crypto_ablkcipher_ivsize_34363 crypto_ablkcipher_ivsize 0 34363 NULL nohasharray
36729 ++sync_page_io_34363 sync_page_io 3 34363 &crypto_ablkcipher_ivsize_34363
36730 +rngapi_reset_34366 rngapi_reset 3 34366 NULL
36731 -+reiserfs_resize_34377 reiserfs_resize 2 34377 NULL
36732 +ea_read_34378 ea_read 0 34378 NULL
36733 +fuse_send_read_34379 fuse_send_read 4 34379 NULL
36734 +av7110_vbi_write_34384 av7110_vbi_write 3 34384 NULL
36735 +usbvision_v4l2_read_34386 usbvision_v4l2_read 3 34386 NULL
36736 +read_rbu_image_type_34387 read_rbu_image_type 6 34387 NULL
36737 -+ivtv_read_pos_34400 ivtv_read_pos 3 34400 NULL nohasharray
36738 -+iwl_calib_set_34400 iwl_calib_set 3 34400 &ivtv_read_pos_34400
36739 ++iwl_calib_set_34400 iwl_calib_set 3 34400 NULL nohasharray
36740 ++ivtv_read_pos_34400 ivtv_read_pos 3 34400 &iwl_calib_set_34400
36741 +wd_exp_mode_write_34407 wd_exp_mode_write 3 34407 NULL
36742 +nl80211_send_disassoc_34424 nl80211_send_disassoc 4 34424 NULL
36743 -+security_socket_create_34439 security_socket_create 0 34439 NULL
36744 -+usbtest_alloc_urb_34446 usbtest_alloc_urb 5-3 34446 NULL
36745 ++usbtest_alloc_urb_34446 usbtest_alloc_urb 3-5 34446 NULL
36746 +mwifiex_regrdwr_read_34472 mwifiex_regrdwr_read 3 34472 NULL
36747 +skcipher_sndbuf_34476 skcipher_sndbuf 0 34476 NULL
36748 +i2o_parm_field_get_34477 i2o_parm_field_get 5 34477 NULL
36749 -+ocfs2_block_group_clear_bits_34484 ocfs2_block_group_clear_bits 0 34484 NULL
36750 ++ocfs2_mv_xattr_buckets_34484 ocfs2_mv_xattr_buckets 6 34484 NULL
36751 +security_inode_permission_34488 security_inode_permission 0 34488 NULL
36752 -+__ffs64_34494 __ffs64 1-0 34494 NULL nohasharray
36753 -+SyS_pwritev_34494 SyS_pwritev 3 34494 &__ffs64_34494
36754 ++SyS_pwritev_34494 SyS_pwritev 3 34494 NULL
36755 +qp_alloc_res_34496 qp_alloc_res 5 34496 NULL
36756 +lu_buf_check_and_alloc_34505 lu_buf_check_and_alloc 2 34505 NULL
36757 -+snd_pcm_hw_param_value_34525 snd_pcm_hw_param_value 0 34525 NULL
36758 -+tracing_stats_read_34537 tracing_stats_read 3 34537 NULL nohasharray
36759 -+ext4_fallocate_34537 ext4_fallocate 4-3 34537 &tracing_stats_read_34537
36760 -+hugetlbfs_read_actor_34547 hugetlbfs_read_actor 4-5-2-0 34547 NULL
36761 ++ext4_fallocate_34537 ext4_fallocate 4-3 34537 NULL nohasharray
36762 ++tracing_stats_read_34537 tracing_stats_read 3 34537 &ext4_fallocate_34537
36763 ++hugetlbfs_read_actor_34547 hugetlbfs_read_actor 2-5-4-0 34547 NULL
36764 +dbBackSplit_34561 dbBackSplit 0 34561 NULL
36765 -+alloc_ieee80211_rsl_34564 alloc_ieee80211_rsl 1 34564 NULL nohasharray
36766 -+self_check_peb_ec_hdr_34564 self_check_peb_ec_hdr 0 34564 &alloc_ieee80211_rsl_34564
36767 -+i915_gem_execbuffer_relocate_object_34575 i915_gem_execbuffer_relocate_object 0 34575 NULL
36768 ++alloc_ieee80211_rsl_34564 alloc_ieee80211_rsl 1 34564 NULL
36769 +lov_stripecount_seq_write_34582 lov_stripecount_seq_write 3 34582 NULL
36770 +init_send_hfcd_34586 init_send_hfcd 1 34586 NULL
36771 +inet6_ifla6_size_34591 inet6_ifla6_size 0 34591 NULL
36772 +ceph_msgpool_init_34599 ceph_msgpool_init 4 34599 NULL nohasharray
36773 +cw1200_queue_init_34599 cw1200_queue_init 4 34599 &ceph_msgpool_init_34599
36774 -+__add_prelim_ref_34600 __add_prelim_ref 0 34600 NULL
36775 +brcmf_cfg80211_mgmt_tx_34608 brcmf_cfg80211_mgmt_tx 7 34608 NULL
36776 -+mtd_write_34609 mtd_write 0 34609 NULL nohasharray
36777 -+__jffs2_ref_totlen_34609 __jffs2_ref_totlen 0 34609 &mtd_write_34609
36778 ++__jffs2_ref_totlen_34609 __jffs2_ref_totlen 0 34609 NULL
36779 +apei_get_nvs_resources_34616 apei_get_nvs_resources 0 34616 NULL
36780 +__cfg80211_disconnected_34622 __cfg80211_disconnected 3 34622 NULL
36781 +cnic_alloc_dma_34641 cnic_alloc_dma 3 34641 NULL
36782 -+tomoyo_dump_page_34649 tomoyo_dump_page 2 34649 NULL
36783 +kvm_set_spte_hva_34671 kvm_set_spte_hva 2 34671 NULL
36784 +sleep_auth_write_34676 sleep_auth_write 3 34676 NULL
36785 +isr_fiqs_read_34687 isr_fiqs_read 3 34687 NULL
36786 ++batadv_tvlv_realloc_packet_buff_34688 batadv_tvlv_realloc_packet_buff 3-4 34688 NULL
36787 +port_print_34704 port_print 3 34704 NULL
36788 -+alloc_irq_and_cfg_at_34706 alloc_irq_and_cfg_at 1-2 34706 NULL
36789 -+ext4_listxattr_34712 ext4_listxattr 3 34712 NULL
36790 +ieee80211_if_read_num_sta_ps_34722 ieee80211_if_read_num_sta_ps 3 34722 NULL
36791 +platform_list_read_file_34734 platform_list_read_file 3 34734 NULL
36792 +reg_w_ixbuf_34736 reg_w_ixbuf 4 34736 NULL
36793 +lsm_alloc_plain_34755 lsm_alloc_plain 1 34755 NULL
36794 ++bootmode_store_34762 bootmode_store 4 34762 NULL
36795 +device_add_34766 device_add 0 34766 NULL
36796 +qib_cdev_init_34778 qib_cdev_init 1 34778 NULL
36797 +SYSC_keyctl_34800 SYSC_keyctl 4 34800 NULL
36798 @@ -108248,29 +109655,18 @@ index 0000000..3d6cc0f
36799 +si476x_radio_read_rsq_primary_blob_34916 si476x_radio_read_rsq_primary_blob 3 34916 NULL
36800 +__inode_permission_34925 __inode_permission 0 34925 NULL nohasharray
36801 +btrfs_super_chunk_root_34925 btrfs_super_chunk_root 0 34925 &__inode_permission_34925
36802 -+ODM_AllocateMemory_34929 ODM_AllocateMemory 3 34929 NULL
36803 +ceph_aio_write_34930 ceph_aio_write 4 34930 NULL
36804 +sec_flags2str_34933 sec_flags2str 3 34933 NULL
36805 +snd_info_entry_read_34938 snd_info_entry_read 3 34938 NULL
36806 +i2c_transfer_34958 i2c_transfer 0 34958 NULL
36807 +do_add_page_to_bio_34974 do_add_page_to_bio 2-10 34974 NULL
36808 -+mq_lookup_34990 mq_lookup 2 34990 NULL
36809 -+i915_gem_gtt_prepare_object_34991 i915_gem_gtt_prepare_object 0 34991 NULL
36810 -+schedule_erase_34996 schedule_erase 0 34996 NULL
36811 +rx_rx_hdr_overflow_read_35002 rx_rx_hdr_overflow_read 3 35002 NULL
36812 +l2cap_skbuff_fromiovec_35003 l2cap_skbuff_fromiovec 4-3 35003 NULL
36813 -+dm_cache_insert_mapping_35005 dm_cache_insert_mapping 2-3 35005 NULL
36814 +sisusb_copy_memory_35016 sisusb_copy_memory 4 35016 NULL
36815 -+snd_pcm_hw_params_35020 snd_pcm_hw_params 0 35020 NULL
36816 -+process_changed_xattr_35025 process_changed_xattr 0 35025 NULL
36817 +coda_psdev_read_35029 coda_psdev_read 3 35029 NULL
36818 +brcmf_sdio_chip_writenvram_35042 brcmf_sdio_chip_writenvram 4 35042 NULL
36819 +pwr_connection_out_of_sync_read_35061 pwr_connection_out_of_sync_read 3 35061 NULL
36820 -+ext4_split_unwritten_extents_35063 ext4_split_unwritten_extents 0 35063 NULL
36821 -+ntfs_attr_extend_initialized_35084 ntfs_attr_extend_initialized 2 35084 NULL
36822 -+store_ifalias_35088 store_ifalias 4 35088 NULL
36823 +__kfifo_uint_must_check_helper_35097 __kfifo_uint_must_check_helper 0-1 35097 NULL
36824 -+alloc_thread_info_node_35101 alloc_thread_info_node 2 35101 NULL
36825 +capi_write_35104 capi_write 3 35104 NULL nohasharray
36826 +tx_tx_done_template_read_35104 tx_tx_done_template_read 3 35104 &capi_write_35104
36827 +ide_settings_proc_write_35110 ide_settings_proc_write 3 35110 NULL
36828 @@ -108278,84 +109674,58 @@ index 0000000..3d6cc0f
36829 +message_stats_print_35158 message_stats_print 6 35158 NULL
36830 +iscsi_conn_setup_35159 iscsi_conn_setup 2 35159 NULL
36831 +ieee80211_if_read_bssid_35161 ieee80211_if_read_bssid 3 35161 NULL
36832 -+relocate_entry_cpu_35176 relocate_entry_cpu 0 35176 NULL
36833 -+solo_v4l2_init_35179 solo_v4l2_init 2 35179 NULL
36834 -+SyS_init_module_35180 SyS_init_module 2 35180 NULL
36835 -+mlx4_ib_get_cq_umem_35184 mlx4_ib_get_cq_umem 5-6 35184 NULL
36836 -+uprobe_get_swbp_addr_35201 uprobe_get_swbp_addr 0 35201 NULL
36837 +unix_stream_recvmsg_35210 unix_stream_recvmsg 4 35210 NULL
36838 -+striped_read_35218 striped_read 0-3-2 35218 NULL nohasharray
36839 -+security_key_getsecurity_35218 security_key_getsecurity 0 35218 &striped_read_35218
36840 -+video_register_device_no_warn_35226 video_register_device_no_warn 3 35226 NULL nohasharray
36841 -+rx_rx_cmplt_task_read_35226 rx_rx_cmplt_task_read 3 35226 &video_register_device_no_warn_35226
36842 -+gfn_to_page_many_atomic_35234 gfn_to_page_many_atomic 2 35234 NULL nohasharray
36843 -+may_commit_transaction_35234 may_commit_transaction 0 35234 &gfn_to_page_many_atomic_35234
36844 -+SYSC_madvise_35241 SYSC_madvise 1-2 35241 NULL
36845 ++security_key_getsecurity_35218 security_key_getsecurity 0 35218 NULL nohasharray
36846 ++striped_read_35218 striped_read 0-2 35218 &security_key_getsecurity_35218
36847 ++rx_rx_cmplt_task_read_35226 rx_rx_cmplt_task_read 3 35226 NULL
36848 +set_fd_set_35249 set_fd_set 1 35249 NULL
36849 +ioapic_setup_resources_35255 ioapic_setup_resources 1 35255 NULL
36850 -+alloc_thread_groups_35256 alloc_thread_groups 2 35256 NULL
36851 +jbd2_journal_get_write_access_35263 jbd2_journal_get_write_access 0 35263 NULL
36852 +dis_disc_write_35265 dis_disc_write 3 35265 NULL
36853 +dma_show_regs_35266 dma_show_regs 3 35266 NULL
36854 +irda_recvmsg_stream_35280 irda_recvmsg_stream 4 35280 NULL
36855 +i2o_block_end_request_35282 i2o_block_end_request 3 35282 NULL
36856 +isr_rx_rdys_read_35283 isr_rx_rdys_read 3 35283 NULL
36857 -+brcmf_sdio_forensic_read_35311 brcmf_sdio_forensic_read 3 35311 NULL nohasharray
36858 -+__btrfs_buffered_write_35311 __btrfs_buffered_write 3 35311 &brcmf_sdio_forensic_read_35311
36859 ++__btrfs_buffered_write_35311 __btrfs_buffered_write 3 35311 NULL nohasharray
36860 ++brcmf_sdio_forensic_read_35311 brcmf_sdio_forensic_read 3 35311 &__btrfs_buffered_write_35311
36861 +tracing_read_pipe_35312 tracing_read_pipe 3 35312 NULL
36862 -+fallback_on_nodma_alloc_35332 fallback_on_nodma_alloc 2 35332 NULL
36863 +ieee80211_if_fmt_ap_power_level_35347 ieee80211_if_fmt_ap_power_level 3 35347 NULL
36864 +nouveau_devinit_create__35348 nouveau_devinit_create_ 4 35348 NULL
36865 +ieee80211_rx_mgmt_deauth_35351 ieee80211_rx_mgmt_deauth 3 35351 NULL
36866 +compat_filldir64_35354 compat_filldir64 3 35354 NULL
36867 -+amd_iommu_map_35355 amd_iommu_map 4 35355 NULL
36868 +read_kmem_35372 read_kmem 3 35372 NULL
36869 -+ocfs2_journal_access_di_35393 ocfs2_journal_access_di 0 35393 NULL
36870 -+create_pending_snapshots_35402 create_pending_snapshots 0 35402 NULL
36871 -+btrfs_search_old_slot_35406 btrfs_search_old_slot 0 35406 NULL
36872 +SyS_getxattr_35408 SyS_getxattr 4 35408 NULL
36873 +rawv6_send_hdrinc_35425 rawv6_send_hdrinc 3 35425 NULL
36874 -+C_SYSC_sendfile_35432 C_SYSC_sendfile 4 35432 NULL
36875 -+__set_test_and_free_35436 __set_test_and_free 2 35436 NULL
36876 +buffer_to_user_35439 buffer_to_user 3 35439 NULL
36877 -+memcg_memory_allocated_read_35469 memcg_memory_allocated_read 0 35469 NULL
36878 +fiemap_prepare_and_copy_exts_35494 fiemap_prepare_and_copy_exts 5 35494 NULL
36879 -+btrfs_prealloc_file_range_trans_35500 btrfs_prealloc_file_range_trans 4-0 35500 NULL
36880 ++btrfs_prealloc_file_range_trans_35500 btrfs_prealloc_file_range_trans 4 35500 NULL
36881 +async_setkey_35521 async_setkey 3 35521 NULL
36882 -+inet_mask_len_35527 inet_mask_len 1 35527 NULL
36883 +__filemap_fdatawrite_range_35528 __filemap_fdatawrite_range 0 35528 NULL
36884 +iwl_dbgfs_bt_traffic_read_35534 iwl_dbgfs_bt_traffic_read 3 35534 NULL
36885 +pstore_mkfile_35536 pstore_mkfile 7 35536 NULL
36886 +rxpipe_tx_xfr_host_int_trig_rx_data_read_35538 rxpipe_tx_xfr_host_int_trig_rx_data_read 3 35538 NULL
36887 +ibnl_put_attr_35541 ibnl_put_attr 3 35541 NULL
36888 +ieee80211_if_write_smps_35550 ieee80211_if_write_smps 3 35550 NULL
36889 -+send_update_extent_35556 send_update_extent 0 35556 NULL
36890 -+vb2_dqbuf_35559 vb2_dqbuf 0 35559 NULL
36891 +sysfs_create_subdir_35567 sysfs_create_subdir 0 35567 NULL
36892 +ext4_blocks_for_truncate_35579 ext4_blocks_for_truncate 0 35579 NULL
36893 +ext2_acl_from_disk_35580 ext2_acl_from_disk 2 35580 NULL
36894 +spk_msg_set_35586 spk_msg_set 3 35586 NULL
36895 +kernel_readv_35617 kernel_readv 3 35617 NULL
36896 +reiserfs_readpages_35629 reiserfs_readpages 4 35629 NULL
36897 ++pci_request_regions_35635 pci_request_regions 0 35635 NULL
36898 +ptlrpcd_steal_rqset_35637 ptlrpcd_steal_rqset 0 35637 NULL
36899 -+nv50_vm_create_35643 nv50_vm_create 2-3 35643 NULL
36900 +spi_register_board_info_35651 spi_register_board_info 2 35651 NULL
36901 +rdmaltWithLock_35669 rdmaltWithLock 0 35669 NULL
36902 -+cpu_to_sle64_35677 cpu_to_sle64 0-1 35677 NULL
36903 -+ext3_mark_iloc_dirty_35686 ext3_mark_iloc_dirty 0 35686 NULL
36904 -+dm_table_create_35687 dm_table_create 3 35687 NULL
36905 ++compat_sys_kexec_load_35674 compat_sys_kexec_load 2 35674 NULL
36906 +SYSC_pwritev_35690 SYSC_pwritev 3 35690 NULL
36907 +rds_page_copy_user_35691 rds_page_copy_user 4 35691 NULL
36908 +md_super_write_35703 md_super_write 4 35703 NULL
36909 -+btrfs_commit_transaction_35725 btrfs_commit_transaction 0 35725 NULL
36910 -+rtw_IOL_cmd_tx_pkt_buf_dump_35732 rtw_IOL_cmd_tx_pkt_buf_dump 2 35732 NULL
36911 -+ext4_truncate_restart_trans_35750 ext4_truncate_restart_trans 0 35750 NULL
36912 ++ocfs2_extent_recs_per_gd_35710 ocfs2_extent_recs_per_gd 0 35710 NULL
36913 +iwl_dbgfs_disable_ht40_read_35761 iwl_dbgfs_disable_ht40_read 3 35761 NULL
36914 +udf_alloc_i_data_35786 udf_alloc_i_data 2 35786 NULL
36915 +pvr2_hdw_cpufw_get_35824 pvr2_hdw_cpufw_get 0-4-2 35824 NULL
36916 +tx_tx_cmplt_read_35854 tx_tx_cmplt_read 3 35854 NULL
36917 +vx_query_hbuffer_size_35859 vx_query_hbuffer_size 0 35859 NULL
36918 -+changed_xattr_35860 changed_xattr 0 35860 NULL
36919 +mthca_buf_alloc_35861 mthca_buf_alloc 2 35861 NULL
36920 +fls64_35862 fls64 0 35862 NULL
36921 +kvm_dirty_bitmap_bytes_35886 kvm_dirty_bitmap_bytes 0 35886 NULL
36922 @@ -108364,7 +109734,6 @@ index 0000000..3d6cc0f
36923 +SyS_set_mempolicy_35909 SyS_set_mempolicy 3 35909 NULL
36924 +kernel_setsockopt_35913 kernel_setsockopt 5 35913 NULL
36925 +rbio_nr_pages_35916 rbio_nr_pages 0-1-2 35916 NULL
36926 -+balance_node_right_35920 balance_node_right 0 35920 NULL
36927 +sctp_tsnmap_mark_35929 sctp_tsnmap_mark 2 35929 NULL
36928 +rx_defrag_init_called_read_35935 rx_defrag_init_called_read 3 35935 NULL
36929 +put_cmsg_compat_35937 put_cmsg_compat 4 35937 NULL
36930 @@ -108376,42 +109745,28 @@ index 0000000..3d6cc0f
36931 +generic_file_aio_read_35987 generic_file_aio_read 0 35987 NULL
36932 +write_file_antenna_35998 write_file_antenna 3 35998 NULL nohasharray
36933 +kuc_alloc_35998 kuc_alloc 1 35998 &write_file_antenna_35998
36934 -+locks_mandatory_area_35999 locks_mandatory_area 0 35999 NULL
36935 +il3945_ucode_tx_stats_read_36016 il3945_ucode_tx_stats_read 3 36016 NULL
36936 -+ubi_eba_write_leb_36029 ubi_eba_write_leb 0-6-5 36029 NULL
36937 +__videobuf_alloc_36031 __videobuf_alloc 1 36031 NULL
36938 +account_shadowed_36048 account_shadowed 2 36048 NULL
36939 +gpio_power_read_36059 gpio_power_read 3 36059 NULL
36940 -+snd_pcm_playback_hw_avail_36061 snd_pcm_playback_hw_avail 0 36061 NULL
36941 -+did_create_dir_36062 did_create_dir 0 36062 NULL
36942 +write_emulate_36065 write_emulate 2-4 36065 NULL
36943 +stack_max_size_write_36068 stack_max_size_write 3 36068 NULL
36944 +radeon_vm_num_pdes_36070 radeon_vm_num_pdes 0 36070 NULL
36945 +ieee80211_if_fmt_peer_36071 ieee80211_if_fmt_peer 3 36071 NULL
36946 -+ext3_new_blocks_36073 ext3_new_blocks 3-0 36073 NULL
36947 +ieee80211_if_write_tsf_36077 ieee80211_if_write_tsf 3 36077 NULL
36948 -+vmemmap_pud_populate_36080 vmemmap_pud_populate 3 36080 NULL nohasharray
36949 -+snd_pcm_plug_read_transfer_36080 snd_pcm_plug_read_transfer 0-3 36080 &vmemmap_pud_populate_36080
36950 ++snd_pcm_plug_read_transfer_36080 snd_pcm_plug_read_transfer 0-3 36080 NULL
36951 +mtip_hw_read_device_status_36082 mtip_hw_read_device_status 3 36082 NULL
36952 +vga_arb_write_36112 vga_arb_write 3 36112 NULL
36953 +simple_xattr_alloc_36118 simple_xattr_alloc 2 36118 NULL
36954 -+compat_ptrace_request_36131 compat_ptrace_request 3 36131 NULL
36955 -+vmalloc_exec_36132 vmalloc_exec 1 36132 NULL
36956 -+max8925_irq_domain_map_36133 max8925_irq_domain_map 2 36133 NULL
36957 -+set_flexbg_block_bitmap_36136 set_flexbg_block_bitmap 0-4-5 36136 NULL
36958 +ext3_readpages_36144 ext3_readpages 4 36144 NULL
36959 +twl_set_36154 twl_set 2 36154 NULL
36960 +b1_alloc_card_36155 b1_alloc_card 1 36155 NULL
36961 +btrfs_file_extent_inline_len_36158 btrfs_file_extent_inline_len 0 36158 NULL
36962 +snd_korg1212_copy_from_36169 snd_korg1212_copy_from 6 36169 NULL
36963 -+wm8994_edge_irq_map_36170 wm8994_edge_irq_map 2 36170 NULL
36964 +SyS_kexec_load_36176 SyS_kexec_load 2 36176 NULL
36965 +ramoops_init_przs_36199 ramoops_init_przs 4 36199 NULL
36966 +SYSC_sched_getaffinity_36208 SYSC_sched_getaffinity 2 36208 NULL
36967 -+SYSC_process_vm_readv_36216 SYSC_process_vm_readv 5-3 36216 NULL
36968 -+ubifs_read_nnode_36221 ubifs_read_nnode 0 36221 NULL
36969 -+is_dirty_36223 is_dirty 2 36223 NULL
36970 -+ept_walk_addr_36226 ept_walk_addr 3 36226 NULL
36971 ++SYSC_process_vm_readv_36216 SYSC_process_vm_readv 3-5 36216 NULL
36972 +atomic_stats_read_36228 atomic_stats_read 3 36228 NULL
36973 +viafb_iga1_odev_proc_write_36241 viafb_iga1_odev_proc_write 3 36241 NULL
36974 +SYSC_getxattr_36242 SYSC_getxattr 4 36242 NULL
36975 @@ -108426,37 +109781,30 @@ index 0000000..3d6cc0f
36976 +lpfc_debugfs_dif_err_read_36303 lpfc_debugfs_dif_err_read 3 36303 NULL
36977 +cfg80211_rx_mlme_mgmt_36306 cfg80211_rx_mlme_mgmt 3 36306 NULL
36978 +ad7879_spi_xfer_36311 ad7879_spi_xfer 3 36311 NULL
36979 -+fuse_get_user_addr_36312 fuse_get_user_addr 0 36312 NULL
36980 +fat_compat_ioctl_filldir_36328 fat_compat_ioctl_filldir 3 36328 NULL
36981 +lc_create_36332 lc_create 4 36332 NULL
36982 +jbd2_journal_init_revoke_table_36336 jbd2_journal_init_revoke_table 1 36336 NULL
36983 +isku_sysfs_read_key_mask_36343 isku_sysfs_read_key_mask 6 36343 NULL
36984 +ath6kl_regwrite_write_36351 ath6kl_regwrite_write 3 36351 NULL
36985 -+v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL nohasharray
36986 -+xz_dec_lzma2_create_36353 xz_dec_lzma2_create 2 36353 &v9fs_file_readn_36353
36987 ++v9fs_file_readn_36353 v9fs_file_readn 4 36353 NULL
36988 +to_sector_36361 to_sector 0-1 36361 NULL
36989 -+irq_domain_disassociate_36367 irq_domain_disassociate 2 36367 NULL
36990 -+posix_acl_create_36383 posix_acl_create 0 36383 NULL
36991 +tunables_read_36385 tunables_read 3 36385 NULL
36992 -+afs_alloc_flat_call_36399 afs_alloc_flat_call 3-2 36399 NULL
36993 ++afs_alloc_flat_call_36399 afs_alloc_flat_call 2-3 36399 NULL
36994 +sierra_write_36402 sierra_write 4 36402 NULL
36995 -+msb_update_block_36412 msb_update_block 2 36412 NULL
36996 ++iwl_dbgfs_d3_sram_write_36403 iwl_dbgfs_d3_sram_write 3 36403 NULL
36997 +SyS_sethostname_36417 SyS_sethostname 2 36417 NULL
36998 +ReadW6692B_36445 ReadW6692B 0 36445 NULL
36999 +sctp_tsnmap_init_36446 sctp_tsnmap_init 2 36446 NULL
37000 +alloc_etherdev_mqs_36450 alloc_etherdev_mqs 1 36450 NULL
37001 -+check_extent_in_eb_36467 check_extent_in_eb 0 36467 NULL
37002 -+SyS_process_vm_writev_36476 SyS_process_vm_writev 5-3 36476 NULL
37003 ++SyS_process_vm_writev_36476 SyS_process_vm_writev 3-5 36476 NULL
37004 +b43_nphy_load_samples_36481 b43_nphy_load_samples 3 36481 NULL
37005 -+set_var_mtrr_range_36483 set_var_mtrr_range 2 36483 NULL
37006 -+ip6_append_data_36490 ip6_append_data 4 36490 NULL nohasharray
37007 -+tx_tx_checksum_result_read_36490 tx_tx_checksum_result_read 3 36490 &ip6_append_data_36490
37008 ++tx_tx_checksum_result_read_36490 tx_tx_checksum_result_read 3 36490 NULL nohasharray
37009 ++ip6_append_data_36490 ip6_append_data 4 36490 &tx_tx_checksum_result_read_36490
37010 +cmd_loop_36491 cmd_loop 0 36491 NULL
37011 +__hwahc_op_set_ptk_36510 __hwahc_op_set_ptk 5 36510 NULL
37012 +mcam_v4l_read_36513 mcam_v4l_read 3 36513 NULL
37013 +get_param_l_36518 get_param_l 0 36518 NULL
37014 +ieee80211_if_read_fwded_frames_36520 ieee80211_if_read_fwded_frames 3 36520 NULL
37015 -+lguest_setup_irq_36531 lguest_setup_irq 1 36531 NULL
37016 +crypto_aead_authsize_36537 crypto_aead_authsize 0 36537 NULL
37017 +cpu_type_read_36540 cpu_type_read 3 36540 NULL
37018 +__kfifo_to_user_36555 __kfifo_to_user 3-0 36555 NULL nohasharray
37019 @@ -108464,36 +109812,26 @@ index 0000000..3d6cc0f
37020 +btrfs_get_token_64_36572 btrfs_get_token_64 0 36572 NULL
37021 +__erst_read_36579 __erst_read 0 36579 NULL
37022 +put_cmsg_36589 put_cmsg 4 36589 NULL
37023 -+do_sendfile_36610 do_sendfile 4-5 36610 NULL
37024 +fat_ioctl_filldir_36621 fat_ioctl_filldir 3 36621 NULL
37025 -+i915_gem_execbuffer_relocate_slow_36634 i915_gem_execbuffer_relocate_slow 0 36634 NULL
37026 +vxge_config_vpaths_36636 vxge_config_vpaths 0 36636 NULL
37027 -+convert_extent_item_v0_36645 convert_extent_item_v0 4-0 36645 NULL
37028 ++convert_extent_item_v0_36645 convert_extent_item_v0 4 36645 NULL
37029 +ced_ioctl_36647 ced_ioctl 2 36647 NULL
37030 +lpfc_idiag_extacc_alloc_get_36648 lpfc_idiag_extacc_alloc_get 0-3 36648 NULL
37031 +osd_req_list_collection_objects_36664 osd_req_list_collection_objects 5 36664 NULL
37032 +iscsi_host_alloc_36671 iscsi_host_alloc 2 36671 NULL
37033 +xillybus_read_36678 xillybus_read 3 36678 NULL
37034 -+tlv_put_btrfs_timespec_36685 tlv_put_btrfs_timespec 0 36685 NULL nohasharray
37035 -+ext4_mb_discard_group_preallocations_36685 ext4_mb_discard_group_preallocations 2 36685 &tlv_put_btrfs_timespec_36685
37036 +gsmtty_write_36702 gsmtty_write 3 36702 NULL
37037 -+sched_clock_36717 sched_clock 0 36717 NULL
37038 -+ocfs2_rotate_tree_right_36723 ocfs2_rotate_tree_right 0 36723 NULL
37039 +snd_rawmidi_kernel_read1_36740 snd_rawmidi_kernel_read1 4-0 36740 NULL
37040 -+cxgbi_device_register_36746 cxgbi_device_register 2-1 36746 NULL
37041 -+fc_exch_mgr_alloc_36751 fc_exch_mgr_alloc 3-4 36751 NULL
37042 ++cxgbi_device_register_36746 cxgbi_device_register 1-2 36746 NULL
37043 +ps_poll_upsd_timeouts_read_36755 ps_poll_upsd_timeouts_read 3 36755 NULL
37044 -+ext4_ext_convert_to_initialized_36765 ext4_ext_convert_to_initialized 0 36765 NULL
37045 +ptp_filter_init_36780 ptp_filter_init 2 36780 NULL
37046 +i40e_init_lan_hmc_36796 i40e_init_lan_hmc 2-3-4-5 36796 NULL
37047 +proc_fault_inject_read_36802 proc_fault_inject_read 3 36802 NULL
37048 +hiddev_ioctl_36816 hiddev_ioctl 2 36816 NULL
37049 -+ocfs2_journal_access_rb_36823 ocfs2_journal_access_rb 0 36823 NULL
37050 +int_hardware_entry_36833 int_hardware_entry 3 36833 NULL
37051 +fc_change_queue_depth_36841 fc_change_queue_depth 2 36841 NULL
37052 +keyctl_describe_key_36853 keyctl_describe_key 3 36853 NULL
37053 +cm_write_36858 cm_write 3 36858 NULL
37054 -+range_to_mtrr_with_hole_36861 range_to_mtrr_with_hole 2 36861 NULL
37055 +tx_tx_data_programmed_read_36871 tx_tx_data_programmed_read 3 36871 NULL
37056 +svc_setsockopt_36876 svc_setsockopt 5 36876 NULL
37057 +raid56_parity_write_36877 raid56_parity_write 5 36877 NULL
37058 @@ -108502,23 +109840,16 @@ index 0000000..3d6cc0f
37059 +selinux_inode_notifysecctx_36896 selinux_inode_notifysecctx 3 36896 NULL
37060 +OS_kmalloc_36909 OS_kmalloc 1 36909 NULL
37061 +audio_set_endpoint_req_36918 audio_set_endpoint_req 0 36918 NULL
37062 -+build_key_36931 build_key 1 36931 NULL
37063 +crypto_blkcipher_ivsize_36944 crypto_blkcipher_ivsize 0 36944 NULL
37064 -+div_u64_36951 div_u64 0 36951 NULL
37065 -+write_leb_36957 write_leb 0-5 36957 NULL
37066 -+ntfs_external_attr_find_36963 ntfs_external_attr_find 0 36963 NULL
37067 -+sparse_early_mem_maps_alloc_node_36971 sparse_early_mem_maps_alloc_node 4 36971 NULL
37068 +il4965_rs_sta_dbgfs_scale_table_write_36979 il4965_rs_sta_dbgfs_scale_table_write 3 36979 NULL
37069 +drbd_new_dev_size_36998 drbd_new_dev_size 0-3 36998 NULL
37070 +auok190xfb_write_37001 auok190xfb_write 3 37001 NULL
37071 +setxattr_37006 setxattr 4 37006 NULL
37072 -+btrfs_update_root_37035 btrfs_update_root 0 37035 NULL
37073 +ocfs2_dlm_unlock_37037 ocfs2_dlm_unlock 0 37037 NULL
37074 +command_file_read_37038 command_file_read 3 37038 NULL
37075 -+__hfsplus_brec_find_37048 __hfsplus_brec_find 0 37048 NULL
37076 +figure_loop_size_37051 figure_loop_size 2-3 37051 NULL
37077 -+qp_broker_create_37053 qp_broker_create 6-5 37053 NULL nohasharray
37078 -+ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 &qp_broker_create_37053
37079 ++ieee80211_if_read_drop_unencrypted_37053 ieee80211_if_read_drop_unencrypted 3 37053 NULL nohasharray
37080 ++qp_broker_create_37053 qp_broker_create 6-5 37053 &ieee80211_if_read_drop_unencrypted_37053
37081 +SYSC_setxattr_37078 SYSC_setxattr 4 37078 NULL
37082 +parse_command_37079 parse_command 2 37079 NULL
37083 +pipeline_cs_rx_packet_in_read_37089 pipeline_cs_rx_packet_in_read 3 37089 NULL
37084 @@ -108527,62 +109858,43 @@ index 0000000..3d6cc0f
37085 +snd_hda_get_conn_list_37132 snd_hda_get_conn_list 0 37132 NULL
37086 +mtt_free_res_37144 mtt_free_res 5 37144 NULL
37087 +msg_word_37164 msg_word 0 37164 NULL
37088 -+BeceemNVMRead_37166 BeceemNVMRead 0 37166 NULL
37089 +f2fs_direct_IO_37167 f2fs_direct_IO 4 37167 NULL
37090 +can_set_xattr_37182 can_set_xattr 4 37182 NULL
37091 -+btrfs_insert_delayed_items_37191 btrfs_insert_delayed_items 0 37191 NULL
37092 +vcc_recvmsg_37198 vcc_recvmsg 4 37198 NULL
37093 +sysfs_add_file_37200 sysfs_add_file 0 37200 NULL
37094 -+mpol_misplaced_37205 mpol_misplaced 0 37205 NULL
37095 +forced_ps_write_37209 forced_ps_write 3 37209 NULL
37096 +crypto_shash_descsize_37212 crypto_shash_descsize 0 37212 NULL nohasharray
37097 +ext4_ind_direct_IO_37212 ext4_ind_direct_IO 0-4 37212 &crypto_shash_descsize_37212
37098 +bchannel_get_rxbuf_37213 bchannel_get_rxbuf 2-0 37213 NULL
37099 +regmap_access_read_file_37223 regmap_access_read_file 3 37223 NULL
37100 +__do_replace_37227 __do_replace 5 37227 NULL
37101 -+produce_free_peb_37232 produce_free_peb 0 37232 NULL
37102 +iwl_dbgfs_d3_sram_read_37237 iwl_dbgfs_d3_sram_read 3 37237 NULL
37103 +rx_filter_dup_filter_read_37238 rx_filter_dup_filter_read 3 37238 NULL
37104 -+BeceemFlashBulkWrite_37255 BeceemFlashBulkWrite 0 37255 NULL
37105 -+prot_queue_del_37258 prot_queue_del 0 37258 NULL
37106 +exofs_max_io_pages_37263 exofs_max_io_pages 0-2 37263 NULL
37107 -+__add_keyed_refs_37264 __add_keyed_refs 0 37264 NULL
37108 -+nested_svm_map_37268 nested_svm_map 2 37268 NULL
37109 -+create_cq_user_37278 create_cq_user 5 37278 NULL
37110 -+request_threaded_irq_37303 request_threaded_irq 0 37303 NULL
37111 +ieee80211_if_read_power_mode_37305 ieee80211_if_read_power_mode 3 37305 NULL
37112 +ext3_direct_IO_37308 ext3_direct_IO 4 37308 NULL
37113 ++ocfs2_calc_extend_credits_37310 ocfs2_calc_extend_credits 0 37310 NULL
37114 +jffs2_write_dirent_37311 jffs2_write_dirent 5 37311 NULL
37115 +send_msg_37323 send_msg 4 37323 NULL
37116 +l2cap_create_connless_pdu_37327 l2cap_create_connless_pdu 3 37327 NULL nohasharray
37117 +bnx2x_vf_fill_fw_str_37327 bnx2x_vf_fill_fw_str 3 37327 &l2cap_create_connless_pdu_37327
37118 +scsi_mode_select_37330 scsi_mode_select 6 37330 NULL
37119 +rxrpc_server_sendmsg_37331 rxrpc_server_sendmsg 4 37331 NULL
37120 -+lz4_compressbound_37337 lz4_compressbound 0-1 37337 NULL
37121 -+move_vma_37341 move_vma 0-5 37341 NULL
37122 +security_inode_getsecurity_37354 security_inode_getsecurity 0 37354 NULL
37123 -+cl_io_submit_rw_37374 cl_io_submit_rw 0 37374 NULL
37124 -+iterate_leaf_refs_37385 iterate_leaf_refs 0 37385 NULL
37125 -+iommu_num_pages_37391 iommu_num_pages 0-1-3-2 37391 NULL
37126 -+btrfs_find_free_objectid_37412 btrfs_find_free_objectid 0 37412 NULL
37127 +hci_sock_sendmsg_37420 hci_sock_sendmsg 4 37420 NULL
37128 -+acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL nohasharray
37129 -+find_next_bit_37422 find_next_bit 0-3-2 37422 &acpi_os_allocate_zeroed_37422
37130 -+ocfs2_insert_path_37425 ocfs2_insert_path 0 37425 NULL
37131 ++acpi_os_allocate_zeroed_37422 acpi_os_allocate_zeroed 1 37422 NULL
37132 +tty_insert_flip_string_fixed_flag_37428 tty_insert_flip_string_fixed_flag 4-0 37428 NULL
37133 -+iwl_print_last_event_logs_37433 iwl_print_last_event_logs 0-7-9 37433 NULL
37134 ++iwl_print_last_event_logs_37433 iwl_print_last_event_logs 7-9-0 37433 NULL
37135 +fru_alloc_37442 fru_alloc 1 37442 NULL
37136 -+tcp_established_options_37450 tcp_established_options 0 37450 NULL
37137 ++tcp_established_options_37450 tcp_established_options 0 37450 NULL nohasharray
37138 ++tipc_send2port_37450 tipc_send2port 4 37450 &tcp_established_options_37450
37139 +brcmf_sdio_dump_console_37455 brcmf_sdio_dump_console 4 37455 NULL
37140 -+__remove_37457 __remove 2 37457 NULL
37141 -+ufs_data_ptr_to_cpu_37475 ufs_data_ptr_to_cpu 0 37475 NULL
37142 +get_est_timing_37484 get_est_timing 0 37484 NULL
37143 +kmem_realloc_37489 kmem_realloc 2 37489 NULL
37144 +__hfsplus_setxattr_37499 __hfsplus_setxattr 4 37499 NULL
37145 +bitmap_dirty_bits_37503 bitmap_dirty_bits 2 37503 NULL
37146 +osc_active_seq_write_37514 osc_active_seq_write 3 37514 NULL
37147 -+bdev_writeseg_37519 bdev_writeseg 2-3 37519 NULL nohasharray
37148 -+vmalloc_32_user_37519 vmalloc_32_user 1 37519 &bdev_writeseg_37519
37149 ++bdev_writeseg_37519 bdev_writeseg 2-3 37519 NULL
37150 +xz_dec_test_write_37527 xz_dec_test_write 3 37527 NULL
37151 +fault_inject_read_37534 fault_inject_read 3 37534 NULL
37152 +hdr_size_37536 hdr_size 0 37536 NULL
37153 @@ -108590,71 +109902,53 @@ index 0000000..3d6cc0f
37154 +sep_create_dcb_dmatables_context_37551 sep_create_dcb_dmatables_context 6 37551 NULL
37155 +ioat_chansts_37558 ioat_chansts 0 37558 NULL
37156 +xhci_alloc_streams_37586 xhci_alloc_streams 5 37586 NULL
37157 -+ocfs2_add_branch_37588 ocfs2_add_branch 0 37588 NULL
37158 -+alloc_descs_37593 alloc_descs 0-1-3 37593 NULL
37159 +qla2x00_debounce_register_37597 qla2x00_debounce_register 0 37597 NULL
37160 -+find_extent_clone_37603 find_extent_clone 0 37603 NULL
37161 -+btrfs_write_and_wait_marked_extents_37604 btrfs_write_and_wait_marked_extents 0 37604 NULL
37162 -+kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6-3 37611 NULL
37163 -+SYSC_mbind_37622 SYSC_mbind 5 37622 NULL nohasharray
37164 -+ocfs2_split_refcount_rec_37622 ocfs2_split_refcount_rec 0 37622 &SYSC_mbind_37622
37165 -+btrfs_calc_trans_metadata_size_37629 btrfs_calc_trans_metadata_size 0-2 37629 NULL nohasharray
37166 -+policy_residency_37629 policy_residency 0 37629 &btrfs_calc_trans_metadata_size_37629
37167 -+alloc_fd_37637 alloc_fd 1 37637 NULL
37168 ++kvm_read_guest_page_mmu_37611 kvm_read_guest_page_mmu 6 37611 NULL
37169 ++SYSC_mbind_37622 SYSC_mbind 5 37622 NULL
37170 +SyS_mbind_37638 SyS_mbind 5 37638 NULL
37171 +bio_copy_user_iov_37660 bio_copy_user_iov 4 37660 NULL
37172 +rfcomm_sock_sendmsg_37661 rfcomm_sock_sendmsg 4 37661 NULL nohasharray
37173 +vmw_framebuffer_dmabuf_dirty_37661 vmw_framebuffer_dmabuf_dirty 6 37661 &rfcomm_sock_sendmsg_37661
37174 -+SYSC_get_mempolicy_37664 SYSC_get_mempolicy 4-3 37664 NULL
37175 -+lnw_gpio_to_irq_37665 lnw_gpio_to_irq 2 37665 NULL
37176 ++SYSC_get_mempolicy_37664 SYSC_get_mempolicy 3 37664 NULL
37177 ++__wa_seg_calculate_isoc_frame_count_37672 __wa_seg_calculate_isoc_frame_count 0 37672 NULL
37178 +ieee80211_if_read_rc_rateidx_mcs_mask_2ghz_37675 ieee80211_if_read_rc_rateidx_mcs_mask_2ghz 3 37675 NULL
37179 +regmap_map_read_file_37685 regmap_map_read_file 3 37685 NULL
37180 +page_chain_free_37697 page_chain_free 0 37697 NULL
37181 +nametbl_header_37698 nametbl_header 2-0 37698 NULL
37182 +__le32_to_cpup_37702 __le32_to_cpup 0 37702 NULL
37183 +dynamic_ps_timeout_write_37713 dynamic_ps_timeout_write 3 37713 NULL
37184 -+dm_thin_remove_block_37724 dm_thin_remove_block 2 37724 NULL
37185 -+find_active_uprobe_37733 find_active_uprobe 1 37733 NULL
37186 +read_enabled_file_bool_37744 read_enabled_file_bool 3 37744 NULL
37187 -+ocfs2_duplicate_clusters_by_jbd_37749 ocfs2_duplicate_clusters_by_jbd 5-4-6 37749 NULL
37188 +ocfs2_control_cfu_37750 ocfs2_control_cfu 2 37750 NULL
37189 +ipath_cdev_init_37752 ipath_cdev_init 1 37752 NULL
37190 +dccp_setsockopt_cscov_37766 dccp_setsockopt_cscov 2 37766 NULL
37191 +il4965_rs_sta_dbgfs_rate_scale_data_read_37792 il4965_rs_sta_dbgfs_rate_scale_data_read 3 37792 NULL
37192 +smk_read_logging_37804 smk_read_logging 3 37804 NULL
37193 -+deny_write_access_37813 deny_write_access 0 37813 NULL
37194 +ocrdma_alloc_frmr_page_list_37815 ocrdma_alloc_frmr_page_list 2 37815 NULL
37195 +rx_decrypt_key_not_found_read_37820 rx_decrypt_key_not_found_read 3 37820 NULL
37196 -+bitmap_find_next_zero_area_37827 bitmap_find_next_zero_area 2-3-0-5-4 37827 NULL
37197 +android_get_p2p_addr_37832 android_get_p2p_addr 0 37832 NULL
37198 +jbd2_journal_get_undo_access_37837 jbd2_journal_get_undo_access 0 37837 NULL
37199 +o2hb_debug_read_37851 o2hb_debug_read 3 37851 NULL
37200 -+SYSC_pwrite64_37862 SYSC_pwrite64 3 37862 NULL
37201 +xfs_dir2_block_to_sf_37868 xfs_dir2_block_to_sf 3 37868 NULL
37202 +set_registers_37883 set_registers 4 37883 NULL
37203 +btrfs_stack_file_extent_disk_bytenr_37888 btrfs_stack_file_extent_disk_bytenr 0 37888 NULL
37204 -+max77686_irq_domain_map_37897 max77686_irq_domain_map 2 37897 NULL
37205 -+tipc_link_send_sections_fast_37920 tipc_link_send_sections_fast 4 37920 NULL
37206 -+_rtw_malloc_37928 _rtw_malloc 1 37928 NULL nohasharray
37207 -+pkt_alloc_packet_data_37928 pkt_alloc_packet_data 1 37928 &_rtw_malloc_37928
37208 ++pkt_alloc_packet_data_37928 pkt_alloc_packet_data 1 37928 NULL nohasharray
37209 ++_rtw_malloc_37928 _rtw_malloc 1 37928 &pkt_alloc_packet_data_37928
37210 +read_rbu_packet_size_37939 read_rbu_packet_size 6 37939 NULL
37211 +write_file_bool_37957 write_file_bool 3 37957 NULL
37212 +fifo_alloc_37961 fifo_alloc 1 37961 NULL
37213 -+ext3_free_blocks_sb_37967 ext3_free_blocks_sb 4-3 37967 NULL
37214 +rds_rdma_extra_size_37990 rds_rdma_extra_size 0 37990 NULL
37215 +persistent_ram_old_size_37997 persistent_ram_old_size 0 37997 NULL
37216 +vfs_readv_38011 vfs_readv 3 38011 NULL
37217 +aggr_recv_addba_req_evt_38037 aggr_recv_addba_req_evt 4 38037 NULL
37218 -+SyS_pwrite64_38041 SyS_pwrite64 3 38041 NULL
37219 -+klsi_105_prepare_write_buffer_38044 klsi_105_prepare_write_buffer 3 38044 NULL nohasharray
37220 -+il_dbgfs_chain_noise_read_38044 il_dbgfs_chain_noise_read 3 38044 &klsi_105_prepare_write_buffer_38044
37221 ++il_dbgfs_chain_noise_read_38044 il_dbgfs_chain_noise_read 3 38044 NULL nohasharray
37222 ++klsi_105_prepare_write_buffer_38044 klsi_105_prepare_write_buffer 3 38044 &il_dbgfs_chain_noise_read_38044
37223 +SyS_llistxattr_38048 SyS_llistxattr 3 38048 NULL
37224 +sysfs_do_create_link_38051 sysfs_do_create_link 0 38051 NULL
37225 -+_xfs_buf_alloc_38058 _xfs_buf_alloc 3 38058 NULL nohasharray
37226 -+is_discarded_38058 is_discarded 2 38058 &_xfs_buf_alloc_38058
37227 ++_xfs_buf_alloc_38058 _xfs_buf_alloc 3 38058 NULL
37228 +nsm_create_handle_38060 nsm_create_handle 4 38060 NULL
37229 +alloc_ltalkdev_38071 alloc_ltalkdev 1 38071 NULL
37230 -+xfs_buf_readahead_map_38081 xfs_buf_readahead_map 3 38081 NULL
37231 ++xfs_buf_readahead_map_38081 xfs_buf_readahead_map 3 38081 NULL nohasharray
37232 ++wcn36xx_smd_rsp_process_38081 wcn36xx_smd_rsp_process 3 38081 &xfs_buf_readahead_map_38081
37233 +uwb_mac_addr_print_38085 uwb_mac_addr_print 2 38085 NULL
37234 +request_key_auth_new_38092 request_key_auth_new 3 38092 NULL
37235 +proc_self_readlink_38094 proc_self_readlink 3 38094 NULL
37236 @@ -108663,81 +109957,54 @@ index 0000000..3d6cc0f
37237 +osc_checksum_seq_write_38096 osc_checksum_seq_write 3 38096 &sk_wmem_schedule_38096
37238 +o2hb_read_slots_38105 o2hb_read_slots 2 38105 NULL
37239 +snd_pcm_oss_write_38108 snd_pcm_oss_write 3 38108 NULL
37240 -+_get_val_38115 _get_val 2 38115 NULL
37241 +vmw_kms_present_38130 vmw_kms_present 9 38130 NULL
37242 +__ntfs_copy_from_user_iovec_inatomic_38153 __ntfs_copy_from_user_iovec_inatomic 0-4-3 38153 NULL
37243 +btrfs_extent_same_38163 btrfs_extent_same 3-2 38163 NULL
37244 +kvm_clear_guest_38164 kvm_clear_guest 3-2 38164 NULL
37245 -+cirrus_ttm_tt_create_38167 cirrus_ttm_tt_create 2 38167 NULL
37246 -+send_rename_38170 send_rename 0 38170 NULL
37247 +cdev_add_38176 cdev_add 2-3 38176 NULL
37248 -+create_srq_user_38191 create_srq_user 5 38191 NULL
37249 +rt2x00debug_write_rf_38195 rt2x00debug_write_rf 3 38195 NULL
37250 -+do_chunk_alloc_38200 do_chunk_alloc 0 38200 NULL
37251 +get_ucode_user_38202 get_ucode_user 3 38202 NULL
37252 -+ext3_new_block_38208 ext3_new_block 3-0 38208 NULL
37253 -+stmpe_gpio_irq_map_38222 stmpe_gpio_irq_map 3 38222 NULL
37254 +osd_req_list_partition_collections_38223 osd_req_list_partition_collections 5 38223 NULL
37255 -+palmas_gpio_to_irq_38235 palmas_gpio_to_irq 2 38235 NULL
37256 +ceph_decode_16_38239 ceph_decode_16 0 38239 NULL
37257 +_ipw_read_reg32_38245 _ipw_read_reg32 0 38245 NULL
37258 -+snd_pcm_playback_rewind_38249 snd_pcm_playback_rewind 0-2 38249 NULL
37259 -+from_dblock_38256 from_dblock 0-1 38256 NULL
37260 -+vmci_qp_broker_set_page_store_38260 vmci_qp_broker_set_page_store 3-2 38260 NULL
37261 -+ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 NULL nohasharray
37262 -+SYSC_msgrcv_38268 SYSC_msgrcv 3 38268 &ieee80211_if_read_auto_open_plinks_38268 nohasharray
37263 -+mthca_alloc_icm_table_38268 mthca_alloc_icm_table 4-3 38268 &SYSC_msgrcv_38268
37264 ++mthca_alloc_icm_table_38268 mthca_alloc_icm_table 4-3 38268 NULL nohasharray
37265 ++ieee80211_if_read_auto_open_plinks_38268 ieee80211_if_read_auto_open_plinks 3 38268 &mthca_alloc_icm_table_38268 nohasharray
37266 ++SYSC_msgrcv_38268 SYSC_msgrcv 3 38268 &ieee80211_if_read_auto_open_plinks_38268
37267 +xfs_bmbt_to_bmdr_38275 xfs_bmbt_to_bmdr 3 38275 NULL nohasharray
37268 +xfs_bmdr_to_bmbt_38275 xfs_bmdr_to_bmbt 5 38275 &xfs_bmbt_to_bmdr_38275
37269 +ftdi_process_packet_38281 ftdi_process_packet 4 38281 NULL
37270 -+gpa_to_gfn_38291 gpa_to_gfn 0-1 38291 NULL
37271 +ucma_query_path_38305 ucma_query_path 3 38305 NULL
37272 +isr_rx_headers_read_38325 isr_rx_headers_read 3 38325 NULL
37273 -+ida_simple_get_38326 ida_simple_get 2-0 38326 NULL
37274 -+ocfs2_rotate_rightmost_leaf_left_38330 ocfs2_rotate_rightmost_leaf_left 0 38330 NULL
37275 ++ida_simple_get_38326 ida_simple_get 0 38326 NULL
37276 +__snd_gf1_look8_38333 __snd_gf1_look8 0 38333 NULL
37277 -+ocfs2_replace_extent_rec_38357 ocfs2_replace_extent_rec 0 38357 NULL
37278 +btrfs_file_extent_disk_num_bytes_38363 btrfs_file_extent_disk_num_bytes 0 38363 NULL
37279 ++xfs_free_file_space_38383 xfs_free_file_space 2-3 38383 NULL
37280 +dn_sendmsg_38390 dn_sendmsg 4 38390 NULL
37281 -+get_valid_node_allowed_38412 get_valid_node_allowed 1-0 38412 NULL
37282 -+ocfs2_which_cluster_group_38413 ocfs2_which_cluster_group 0-2 38413 NULL
37283 -+ht_destroy_irq_38418 ht_destroy_irq 1 38418 NULL
37284 +ieee80211_if_read_dtim_count_38419 ieee80211_if_read_dtim_count 3 38419 NULL
37285 +pmcraid_copy_sglist_38431 pmcraid_copy_sglist 3 38431 NULL
37286 +kvm_write_guest_38454 kvm_write_guest 4-2 38454 NULL
37287 -+btrfs_next_old_leaf_38465 btrfs_next_old_leaf 0 38465 NULL
37288 -+kvm_arch_setup_async_pf_38481 kvm_arch_setup_async_pf 3 38481 NULL
37289 -+blk_end_bidi_request_38482 blk_end_bidi_request 4-3 38482 NULL
37290 -+cpu_to_mem_38501 cpu_to_mem 0 38501 NULL
37291 ++blk_end_bidi_request_38482 blk_end_bidi_request 3-4 38482 NULL
37292 +dev_names_read_38509 dev_names_read 3 38509 NULL
37293 +iscsi_create_iface_38510 iscsi_create_iface 5 38510 NULL
37294 +event_rx_mismatch_read_38518 event_rx_mismatch_read 3 38518 NULL
37295 -+mlx4_ib_db_map_user_38529 mlx4_ib_db_map_user 2 38529 NULL
37296 +ubifs_idx_node_sz_38546 ubifs_idx_node_sz 0-2 38546 NULL
37297 +btrfs_discard_extent_38547 btrfs_discard_extent 2 38547 NULL
37298 +kuc_len_38557 kuc_len 0-1 38557 NULL
37299 -+cpu_to_node_38561 cpu_to_node 0 38561 NULL
37300 +irda_sendmsg_dgram_38563 irda_sendmsg_dgram 4 38563 NULL
37301 +il4965_rs_sta_dbgfs_scale_table_read_38564 il4965_rs_sta_dbgfs_scale_table_read 3 38564 NULL
37302 +_ipw_read32_38565 _ipw_read32 0 38565 NULL
37303 +snd_nm256_playback_copy_38567 snd_nm256_playback_copy 5-3 38567 NULL
37304 +copy_ctl_value_to_user_38587 copy_ctl_value_to_user 4 38587 NULL
37305 -+compat_sys_ptrace_38595 compat_sys_ptrace 3 38595 NULL
37306 -+blkg_stat_read_38612 blkg_stat_read 0 38612 NULL
37307 +icn_writecmd_38629 icn_writecmd 2 38629 NULL
37308 +write_enabled_file_bool_38630 write_enabled_file_bool 3 38630 NULL
37309 +ext2_readpages_38640 ext2_readpages 4 38640 NULL
37310 -+cma_create_area_38642 cma_create_area 2 38642 NULL
37311 +audit_init_entry_38644 audit_init_entry 1 38644 NULL
37312 +qp_broker_alloc_38646 qp_broker_alloc 6-5 38646 NULL
37313 +mmc_send_cxd_data_38655 mmc_send_cxd_data 5 38655 NULL
37314 +nouveau_instmem_create__38664 nouveau_instmem_create_ 4 38664 NULL
37315 +snd_es1371_wait_src_ready_38673 snd_es1371_wait_src_ready 0 38673 NULL
37316 +iscsit_dump_data_payload_38683 iscsit_dump_data_payload 2 38683 NULL
37317 -+ext4_wait_block_bitmap_38695 ext4_wait_block_bitmap 2 38695 NULL
37318 -+validate_vid_hdr_38699 validate_vid_hdr 0 38699 NULL
37319 +rbio_add_io_page_38700 rbio_add_io_page 6 38700 NULL
37320 -+find_next_usable_block_38716 find_next_usable_block 3-1-0 38716 NULL
37321 +alloc_trace_probe_38720 alloc_trace_probe 6 38720 NULL
37322 +w83977af_sir_interrupt_38738 w83977af_sir_interrupt 0 38738 NULL
37323 +udf_readpages_38761 udf_readpages 4 38761 NULL
37324 @@ -108747,7 +110014,6 @@ index 0000000..3d6cc0f
37325 +slab_order_38794 slab_order 0 38794 NULL
37326 +do_pci_enable_device_38802 do_pci_enable_device 0 38802 NULL
37327 +err_decode_38804 err_decode 2 38804 NULL
37328 -+btrfs_find_space_cluster_38812 btrfs_find_space_cluster 4-0 38812 NULL
37329 +ipv6_renew_option_38813 ipv6_renew_option 3 38813 NULL
37330 +direct_entry_38836 direct_entry 3 38836 NULL
37331 +compat_udp_setsockopt_38840 compat_udp_setsockopt 5 38840 NULL
37332 @@ -108756,52 +110022,38 @@ index 0000000..3d6cc0f
37333 +pci_msix_table_size_38867 pci_msix_table_size 0 38867 NULL
37334 +dbgfs_state_38894 dbgfs_state 3 38894 NULL
37335 +f2fs_xattr_set_acl_38895 f2fs_xattr_set_acl 4 38895 NULL
37336 -+traverse_38897 traverse 0 38897 NULL
37337 -+__fswab16_38898 __fswab16 0 38898 NULL
37338 -+ext3_trim_all_free_38929 ext3_trim_all_free 4-3-2 38929 NULL
37339 +il_dbgfs_sram_write_38942 il_dbgfs_sram_write 3 38942 NULL
37340 +__ath6kl_wmi_send_mgmt_cmd_38971 __ath6kl_wmi_send_mgmt_cmd 7 38971 NULL
37341 +usb_maxpacket_38977 usb_maxpacket 0 38977 NULL nohasharray
37342 +C_SYSC_preadv64_38977 C_SYSC_preadv64 3 38977 &usb_maxpacket_38977
37343 +OSDSetBlock_38986 OSDSetBlock 2-4 38986 NULL
37344 +lpfc_idiag_extacc_write_38998 lpfc_idiag_extacc_write 3 38998 NULL
37345 -+udf_new_block_38999 udf_new_block 4 38999 NULL
37346 +get_nodes_39012 get_nodes 3 39012 NULL
37347 +twl6030_interrupt_unmask_39013 twl6030_interrupt_unmask 2 39013 NULL
37348 -+__blkdev_issue_zeroout_39020 __blkdev_issue_zeroout 3-0 39020 NULL
37349 -+qgroup_account_ref_step1_39024 qgroup_account_ref_step1 0 39024 NULL
37350 -+acpi_install_gpe_block_39031 acpi_install_gpe_block 4 39031 NULL
37351 ++__blkdev_issue_zeroout_39020 __blkdev_issue_zeroout 3 39020 NULL
37352 +_zd_iowrite32v_async_locked_39034 _zd_iowrite32v_async_locked 3 39034 NULL
37353 -+do_write_kmem_39051 do_write_kmem 1-3-0 39051 NULL
37354 -+gen_pool_create_39064 gen_pool_create 2 39064 NULL
37355 -+ext4_init_block_bitmap_39071 ext4_init_block_bitmap 3 39071 NULL
37356 ++do_write_kmem_39051 do_write_kmem 0-1-3 39051 NULL
37357 +ReadHFC_39104 ReadHFC 0 39104 NULL
37358 +tomoyo_truncate_39105 tomoyo_truncate 0 39105 NULL
37359 -+leb_write_lock_39111 leb_write_lock 0 39111 NULL
37360 +__kfifo_to_user_r_39123 __kfifo_to_user_r 5-3 39123 NULL
37361 -+ttm_mem_global_alloc_zone_39125 ttm_mem_global_alloc_zone 0 39125 NULL
37362 +ea_foreach_39133 ea_foreach 0 39133 NULL
37363 +generic_permission_39150 generic_permission 0 39150 NULL
37364 +proc_coredump_filter_read_39153 proc_coredump_filter_read 3 39153 NULL
37365 ++ath9k_hw_ar9003_dump_eeprom_39156 ath9k_hw_ar9003_dump_eeprom 5-4 39156 NULL
37366 +echo_client_kbrw_39170 echo_client_kbrw 6 39170 NULL
37367 -+btrfs_start_delalloc_flush_39173 btrfs_start_delalloc_flush 0 39173 NULL
37368 +ext3_xattr_check_names_39174 ext3_xattr_check_names 0 39174 NULL
37369 -+ubi_more_update_data_39189 ubi_more_update_data 4-0 39189 NULL
37370 ++ubi_more_update_data_39189 ubi_more_update_data 4 39189 NULL
37371 +qcam_read_bytes_39205 qcam_read_bytes 0 39205 NULL
37372 +ivtv_v4l2_write_39226 ivtv_v4l2_write 3 39226 NULL
37373 +posix_acl_to_xattr_39237 posix_acl_to_xattr 0 39237 NULL
37374 -+drm_order_39244 drm_order 0 39244 NULL
37375 -+snd_pcm_capture_forward_39248 snd_pcm_capture_forward 0-2 39248 NULL
37376 ++snd_pcm_capture_forward_39248 snd_pcm_capture_forward 2 39248 NULL
37377 +r128_compat_ioctl_39250 r128_compat_ioctl 2 39250 NULL nohasharray
37378 +pwr_cont_miss_bcns_spread_read_39250 pwr_cont_miss_bcns_spread_read 3 39250 &r128_compat_ioctl_39250
37379 +i915_error_state_read_39254 i915_error_state_read 3 39254 NULL
37380 -+bitmap_set_bits_39272 bitmap_set_bits 3 39272 NULL
37381 +rx_filter_protection_filter_read_39282 rx_filter_protection_filter_read 3 39282 NULL
37382 -+__vmalloc_node_39308 __vmalloc_node 1-5 39308 NULL
37383 +__cfg80211_connect_result_39326 __cfg80211_connect_result 4-6 39326 NULL
37384 -+insert_reserved_file_extent_39327 insert_reserved_file_extent 3-0 39327 NULL
37385 ++insert_reserved_file_extent_39327 insert_reserved_file_extent 3 39327 NULL
37386 +wimax_msg_alloc_39343 wimax_msg_alloc 4 39343 NULL
37387 -+__copy_from_user_nocache_39351 __copy_from_user_nocache 3-0 39351 NULL
37388 +ide_complete_rq_39354 ide_complete_rq 3 39354 NULL
37389 +do_write_log_from_user_39362 do_write_log_from_user 3-0 39362 NULL
37390 +vortex_wtdma_getlinearpos_39371 vortex_wtdma_getlinearpos 0 39371 NULL
37391 @@ -108809,47 +110061,39 @@ index 0000000..3d6cc0f
37392 +fnic_trace_debugfs_read_39380 fnic_trace_debugfs_read 3 39380 NULL
37393 +ps_poll_ps_poll_utilization_read_39383 ps_poll_ps_poll_utilization_read 3 39383 NULL
37394 +__send_to_port_39386 __send_to_port 3 39386 NULL
37395 -+perf_trace_buf_submit_39413 perf_trace_buf_submit 5 39413 NULL
37396 +user_power_read_39414 user_power_read 3 39414 NULL
37397 +alloc_agpphysmem_i8xx_39427 alloc_agpphysmem_i8xx 1 39427 NULL
37398 -+__vb2_get_done_vb_39448 __vb2_get_done_vb 0 39448 NULL
37399 ++mic_desc_size_39464 mic_desc_size 0 39464 NULL
37400 +apei_resources_add_39470 apei_resources_add 0 39470 NULL
37401 +setkey_unaligned_39474 setkey_unaligned 3 39474 NULL
37402 -+do_get_mempolicy_39485 do_get_mempolicy 3 39485 NULL
37403 +ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries_39499 ieee80211_if_fmt_dot11MeshHWMPmaxPREQretries 3 39499 NULL
37404 +cl_req_alloc_39523 cl_req_alloc 4 39523 NULL
37405 +int_proc_write_39542 int_proc_write 3 39542 NULL
37406 ++mdc_unpack_capa_39553 mdc_unpack_capa 0 39553 NULL
37407 +pp_write_39554 pp_write 3 39554 NULL
37408 -+ol_dqblk_block_39558 ol_dqblk_block 2-0-3 39558 NULL
37409 +datablob_format_39571 datablob_format 2 39571 NULL nohasharray
37410 +ieee80211_if_read_fwded_mcast_39571 ieee80211_if_read_fwded_mcast 3 39571 &datablob_format_39571
37411 +ext_depth_39607 ext_depth 0 39607 NULL
37412 ++batadv_tt_tvlv_generate_39615 batadv_tt_tvlv_generate 4 39615 NULL
37413 +nfs_idmap_get_key_39616 nfs_idmap_get_key 2 39616 NULL
37414 +sdio_readb_39618 sdio_readb 0 39618 NULL
37415 -+dm_exception_table_init_39645 dm_exception_table_init 2 39645 NULL nohasharray
37416 -+set_dev_class_39645 set_dev_class 4 39645 &dm_exception_table_init_39645
37417 ++set_dev_class_39645 set_dev_class 4 39645 NULL
37418 +snd_rme32_capture_copy_39653 snd_rme32_capture_copy 5 39653 NULL
37419 +tcp_try_rmem_schedule_39657 tcp_try_rmem_schedule 3 39657 NULL
37420 +kvm_read_guest_cached_39666 kvm_read_guest_cached 4 39666 NULL
37421 +v4l_stk_read_39672 v4l_stk_read 3 39672 NULL
37422 +hsc_msg_len_get_39673 hsc_msg_len_get 0 39673 NULL
37423 +do_surface_dirty_sou_39678 do_surface_dirty_sou 7 39678 NULL
37424 -+vmx_set_cr3_39688 vmx_set_cr3 2 39688 NULL
37425 +sd_completed_bytes_39705 sd_completed_bytes 0 39705 NULL
37426 +ftrace_pid_write_39710 ftrace_pid_write 3 39710 NULL
37427 -+test_add_free_space_entry_39754 test_add_free_space_entry 2-3 39754 NULL
37428 +adt7316_spi_multi_read_39765 adt7316_spi_multi_read 3 39765 NULL
37429 -+remap_to_origin_clear_discard_39767 remap_to_origin_clear_discard 3 39767 NULL
37430 -+crypto_ablkcipher_blocksize_39811 crypto_ablkcipher_blocksize 0 39811 NULL
37431 +security_inode_listsecurity_39812 security_inode_listsecurity 0 39812 NULL
37432 +snd_pcm_oss_writev3_39818 snd_pcm_oss_writev3 3 39818 NULL
37433 +get_priv_size_39828 get_priv_size 0-1 39828 NULL
37434 -+can_rmdir_39890 can_rmdir 0 39890 NULL
37435 +pkt_add_39897 pkt_add 3 39897 NULL
37436 +read_file_modal_eeprom_39909 read_file_modal_eeprom 3 39909 NULL
37437 -+gen_pool_add_virt_39913 gen_pool_add_virt 4-5 39913 NULL
37438 ++gen_pool_add_virt_39913 gen_pool_add_virt 4 39913 NULL
37439 +dw210x_op_rw_39915 dw210x_op_rw 6 39915 NULL
37440 -+dma_to_mm_pfn_39916 dma_to_mm_pfn 0-1 39916 NULL
37441 +aes_encrypt_interrupt_read_39919 aes_encrypt_interrupt_read 3 39919 NULL
37442 +exofs_read_kern_39921 exofs_read_kern 6 39921 NULL nohasharray
37443 +oom_score_adj_read_39921 oom_score_adj_read 3 39921 &exofs_read_kern_39921
37444 @@ -108868,221 +110112,161 @@ index 0000000..3d6cc0f
37445 +disc_pwup_write_40027 disc_pwup_write 3 40027 NULL
37446 +ea_foreach_i_40028 ea_foreach_i 0 40028 NULL
37447 +datablob_hmac_append_40038 datablob_hmac_append 3 40038 NULL
37448 -+regmap_add_irq_chip_40042 regmap_add_irq_chip 4 40042 NULL
37449 -+ocfs2_claim_clusters_40050 ocfs2_claim_clusters 0 40050 NULL
37450 -+add_tty_40055 add_tty 1 40055 NULL nohasharray
37451 -+l2cap_create_iframe_pdu_40055 l2cap_create_iframe_pdu 3 40055 &add_tty_40055
37452 ++l2cap_create_iframe_pdu_40055 l2cap_create_iframe_pdu 3 40055 NULL nohasharray
37453 ++add_tty_40055 add_tty 1 40055 &l2cap_create_iframe_pdu_40055
37454 +atomic_xchg_40070 atomic_xchg 0 40070 NULL
37455 -+snd_pcm_sw_params_user_40095 snd_pcm_sw_params_user 0 40095 NULL
37456 -+gen_pool_first_fit_40110 gen_pool_first_fit 2-3-4 40110 NULL
37457 +sctp_setsockopt_delayed_ack_40129 sctp_setsockopt_delayed_ack 3 40129 NULL
37458 +dwc2_max_desc_num_40132 dwc2_max_desc_num 0 40132 NULL
37459 +rx_rx_frame_checksum_read_40140 rx_rx_frame_checksum_read 3 40140 NULL
37460 +ath10k_write_simulate_fw_crash_40143 ath10k_write_simulate_fw_crash 3 40143 NULL
37461 +iwch_alloc_fastreg_pbl_40153 iwch_alloc_fastreg_pbl 2 40153 NULL
37462 -+clone_backref_node_40154 clone_backref_node 0 40154 NULL
37463 +pt_write_40159 pt_write 3 40159 NULL
37464 +scsi_sg_count_40182 scsi_sg_count 0 40182 NULL
37465 -+ipr_alloc_ucode_buffer_40199 ipr_alloc_ucode_buffer 1 40199 NULL nohasharray
37466 -+devnode_find_40199 devnode_find 3-2 40199 &ipr_alloc_ucode_buffer_40199
37467 ++ipr_alloc_ucode_buffer_40199 ipr_alloc_ucode_buffer 1 40199 NULL
37468 +allocate_probes_40204 allocate_probes 1 40204 NULL
37469 -+acpi_system_write_alarm_40205 acpi_system_write_alarm 3 40205 NULL
37470 +au0828_v4l2_read_40220 au0828_v4l2_read 3 40220 NULL
37471 +compress_file_range_40225 compress_file_range 3-4 40225 NULL
37472 +osst_read_40237 osst_read 3 40237 NULL
37473 +lpage_info_slot_40243 lpage_info_slot 3-1 40243 NULL
37474 +ocfs2_zero_extend_get_range_40248 ocfs2_zero_extend_get_range 4-3 40248 NULL
37475 ++ptlrpc_queue_wait_40252 ptlrpc_queue_wait 0 40252 NULL
37476 +rs_sta_dbgfs_scale_table_read_40262 rs_sta_dbgfs_scale_table_read 3 40262 NULL
37477 +ext2_fiemap_40271 ext2_fiemap 4 40271 NULL
37478 +usbnet_read_cmd_40275 usbnet_read_cmd 7 40275 NULL
37479 +rx_xfr_hint_trig_read_40283 rx_xfr_hint_trig_read 3 40283 NULL
37480 -+vfio_unmap_unpin_40284 vfio_unmap_unpin 3 40284 NULL
37481 -+_calc_trunk_info_40291 _calc_trunk_info 2 40291 NULL
37482 +SyS_bind_40303 SyS_bind 3 40303 NULL
37483 -+ubi_io_write_data_40305 ubi_io_write_data 0-5-4 40305 NULL
37484 -+batadv_tt_changes_fill_buff_40323 batadv_tt_changes_fill_buff 4 40323 NULL
37485 +ib_get_mad_data_offset_40336 ib_get_mad_data_offset 0 40336 NULL
37486 +mmio_read_40348 mmio_read 4 40348 NULL
37487 -+ocfs2_release_clusters_40355 ocfs2_release_clusters 4-0 40355 NULL
37488 +event_rx_mem_empty_read_40363 event_rx_mem_empty_read 3 40363 NULL
37489 +ocfs2_check_range_for_refcount_40365 ocfs2_check_range_for_refcount 3-2 40365 NULL
37490 +get_chars_40373 get_chars 3 40373 NULL
37491 -+submit_page_section_40408 submit_page_section 0 40408 NULL
37492 -+ecryptfs_read_lower_40419 ecryptfs_read_lower 3 40419 NULL
37493 -+slab_node_40421 slab_node 0 40421 NULL
37494 +fb_prepare_extra_logos_40429 fb_prepare_extra_logos 0-2 40429 NULL
37495 +tomoyo_update_policy_40458 tomoyo_update_policy 2 40458 NULL
37496 +zd_usb_scnprint_id_40459 zd_usb_scnprint_id 0-3 40459 NULL
37497 ++gp2ap020a00f_write_event_threshold_40461 gp2ap020a00f_write_event_threshold 2 40461 NULL
37498 +SyS_writev_40467 SyS_writev 3 40467 NULL
37499 -+__i915_add_request_40469 __i915_add_request 0 40469 NULL
37500 +SyS_select_40473 SyS_select 1 40473 NULL
37501 +afs_fs_store_data_40484 afs_fs_store_data 3-4-5-6 40484 NULL
37502 +batadv_hash_new_40491 batadv_hash_new 1 40491 NULL
37503 +devcgroup_inode_permission_40492 devcgroup_inode_permission 0 40492 NULL
37504 -+drm_vma_node_start_40500 drm_vma_node_start 0 40500 NULL
37505 -+sg_phys_40507 sg_phys 0 40507 NULL
37506 +__ethtool_get_sset_count_40511 __ethtool_get_sset_count 0 40511 NULL
37507 -+TSS_checkhmac2_40520 TSS_checkhmac2 7-5 40520 NULL
37508 ++TSS_checkhmac2_40520 TSS_checkhmac2 5-7 40520 NULL
37509 +ixgbe_dbg_reg_ops_read_40540 ixgbe_dbg_reg_ops_read 3 40540 NULL
37510 -+i915_gem_execbuffer_relocate_object_slow_40546 i915_gem_execbuffer_relocate_object_slow 0 40546 NULL
37511 +ima_write_policy_40548 ima_write_policy 3 40548 NULL
37512 -+btrfs_flush_all_pending_stuffs_40553 btrfs_flush_all_pending_stuffs 0 40553 NULL
37513 -+esp_alloc_tmp_40558 esp_alloc_tmp 2-3 40558 NULL
37514 -+ufs_inode_getfrag_40560 ufs_inode_getfrag 2-4 40560 NULL
37515 -+bdev_sectors_40564 bdev_sectors 0 40564 NULL
37516 -+lba_to_map_index_40580 lba_to_map_index 0-1 40580 NULL
37517 ++esp_alloc_tmp_40558 esp_alloc_tmp 3-2 40558 NULL
37518 +b1_get_byte_40597 b1_get_byte 0 40597 NULL
37519 +get_priv_descr_and_size_40612 get_priv_descr_and_size 0 40612 NULL
37520 -+qla8044_rd_reg_40652 qla8044_rd_reg 0 40652 NULL
37521 -+pid_nr_ns_40654 pid_nr_ns 0 40654 NULL
37522 +twl4030_kpwrite_u8_40665 twl4030_kpwrite_u8 3 40665 NULL
37523 +__cfg80211_roamed_40668 __cfg80211_roamed 4-6 40668 NULL
37524 +pipeline_rx_complete_stat_fifo_int_read_40671 pipeline_rx_complete_stat_fifo_int_read 3 40671 NULL
37525 +fops_read_40672 fops_read 3 40672 NULL
37526 -+ext4_mark_inode_dirty_40673 ext4_mark_inode_dirty 0 40673 NULL
37527 +idr_get_empty_slot_40674 idr_get_empty_slot 0 40674 NULL
37528 +alloc_rbio_40676 alloc_rbio 4 40676 NULL
37529 -+videobuf_dma_init_user_locked_40678 videobuf_dma_init_user_locked 3-4 40678 NULL
37530 ++videobuf_dma_init_user_locked_40678 videobuf_dma_init_user_locked 4-3 40678 NULL
37531 +pci_enable_resources_40680 pci_enable_resources 0 40680 NULL
37532 +nfc_hci_set_param_40697 nfc_hci_set_param 5 40697 NULL
37533 +__seq_open_private_40715 __seq_open_private 3 40715 NULL
37534 -+btrfs_find_one_extref_40724 btrfs_find_one_extref 0 40724 NULL
37535 +fuse_readpages_40737 fuse_readpages 4 40737 NULL
37536 -+xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL nohasharray
37537 -+find_next_zero_bit_le_40744 find_next_zero_bit_le 2-3-0 40744 &xfs_iext_remove_direct_40744
37538 -+i915_gem_execbuffer_relocate_entry_40750 i915_gem_execbuffer_relocate_entry 0 40750 NULL
37539 ++xfs_iext_remove_direct_40744 xfs_iext_remove_direct 3 40744 NULL
37540 +security_inode_listxattr_40752 security_inode_listxattr 0 40752 NULL
37541 +card_send_command_40757 card_send_command 3 40757 NULL
37542 +ad1889_readl_40765 ad1889_readl 0 40765 NULL
37543 +pg_write_40766 pg_write 3 40766 NULL
37544 +show_list_40775 show_list 3-0 40775 NULL
37545 -+calcu_metadata_size_40782 calcu_metadata_size 0 40782 NULL
37546 +kfifo_out_copy_r_40784 kfifo_out_copy_r 3-0 40784 NULL
37547 +bitmap_weight_40791 bitmap_weight 0-2 40791 NULL
37548 +pyra_sysfs_read_40795 pyra_sysfs_read 6 40795 NULL
37549 +add_action_40811 add_action 4 40811 NULL
37550 +nl80211_send_roamed_40825 nl80211_send_roamed 5-7 40825 NULL
37551 +SyS_mbind_40828 SyS_mbind 5 40828 NULL
37552 -+__mlx4_qp_reserve_range_40847 __mlx4_qp_reserve_range 2-3 40847 NULL
37553 +nilfs_mdt_init_40849 nilfs_mdt_init 3 40849 NULL
37554 -+ocfs2_zero_partial_clusters_40856 ocfs2_zero_partial_clusters 2-3 40856 NULL
37555 +v9fs_file_read_40858 v9fs_file_read 3 40858 NULL
37556 +read_file_queue_40895 read_file_queue 3 40895 NULL
37557 -+btrfs_set_inode_index_count_40901 btrfs_set_inode_index_count 0 40901 NULL
37558 +waiters_read_40902 waiters_read 3 40902 NULL
37559 +isdn_add_channels_40905 isdn_add_channels 3 40905 NULL
37560 +gfs2_ea_find_40913 gfs2_ea_find 0 40913 NULL
37561 +vol_cdev_write_40915 vol_cdev_write 3 40915 NULL
37562 +snd_vx_create_40948 snd_vx_create 4 40948 NULL nohasharray
37563 +sg_alloc_table_40948 sg_alloc_table 0 40948 &snd_vx_create_40948
37564 -+wm8994_free_irq_40951 wm8994_free_irq 2 40951 NULL
37565 +rds_sendmsg_40976 rds_sendmsg 4 40976 NULL
37566 -+btrfs_find_orphan_item_40977 btrfs_find_orphan_item 0 40977 NULL
37567 -+insert_old_idx_40987 insert_old_idx 0 40987 NULL
37568 +il_dbgfs_fh_reg_read_40993 il_dbgfs_fh_reg_read 3 40993 NULL
37569 ++iwl_dbgfs_scan_ant_rxchain_read_40999 iwl_dbgfs_scan_ant_rxchain_read 3 40999 NULL
37570 +mac80211_format_buffer_41010 mac80211_format_buffer 2 41010 NULL
37571 -+mtd_block_isbad_41015 mtd_block_isbad 0 41015 NULL
37572 +__proc_dobitmasks_41029 __proc_dobitmasks 5 41029 NULL
37573 +_req_append_segment_41031 _req_append_segment 2 41031 NULL
37574 +mISDN_sock_sendmsg_41035 mISDN_sock_sendmsg 4 41035 NULL
37575 +ocfs2_xattr_index_block_find_41040 ocfs2_xattr_index_block_find 0 41040 NULL
37576 +lprocfs_write_frac_helper_41050 lprocfs_write_frac_helper 2 41050 NULL
37577 -+BcmFlash2xBulkWrite_41054 BcmFlash2xBulkWrite 0 41054 NULL
37578 +calculate_order_41061 calculate_order 0 41061 NULL
37579 +vfs_listxattr_41062 vfs_listxattr 0 41062 NULL nohasharray
37580 +beacon_filtering_write_41062 beacon_filtering_write 3 41062 &vfs_listxattr_41062
37581 +cfg80211_inform_bss_frame_41078 cfg80211_inform_bss_frame 4 41078 NULL
37582 -+roccat_read_41093 roccat_read 3 41093 NULL nohasharray
37583 -+nvme_map_user_pages_41093 nvme_map_user_pages 4-3 41093 &roccat_read_41093
37584 -+dma_attach_41094 dma_attach 6-5 41094 NULL
37585 ++nvme_map_user_pages_41093 nvme_map_user_pages 4-3 41093 NULL nohasharray
37586 ++roccat_read_41093 roccat_read 3 41093 &nvme_map_user_pages_41093
37587 ++dma_attach_41094 dma_attach 5-6 41094 NULL
37588 +provide_user_output_41105 provide_user_output 3 41105 NULL
37589 +f_audio_buffer_alloc_41110 f_audio_buffer_alloc 1 41110 NULL
37590 +ath10k_read_wmi_services_41112 ath10k_read_wmi_services 3 41112 NULL
37591 -+ocfs2_extend_trans_41116 ocfs2_extend_trans 0 41116 NULL
37592 -+btrfs_subvolume_reserve_metadata_41130 btrfs_subvolume_reserve_metadata 3 41130 NULL
37593 ++ocfs2_extend_trans_41116 ocfs2_extend_trans 2 41116 NULL
37594 +v4l2_ctrl_new_int_menu_41151 v4l2_ctrl_new_int_menu 4 41151 NULL
37595 +tx_frag_mpdu_alloc_failed_read_41167 tx_frag_mpdu_alloc_failed_read 3 41167 NULL
37596 +dvb_ca_write_41171 dvb_ca_write 3 41171 NULL
37597 -+ol_quota_chunk_block_41177 ol_quota_chunk_block 0-2 41177 NULL
37598 +dgap_driver_kzmalloc_41189 dgap_driver_kzmalloc 1 41189 NULL
37599 +compat_sys_process_vm_writev_41194 compat_sys_process_vm_writev 3-5 41194 NULL
37600 +dfs_file_write_41196 dfs_file_write 3 41196 NULL
37601 -+ocfs2_read_quota_block_41207 ocfs2_read_quota_block 2 41207 NULL
37602 +nfs_page_array_len_41219 nfs_page_array_len 0-2-1 41219 NULL
37603 +cfg80211_process_disassoc_41231 cfg80211_process_disassoc 3 41231 NULL
37604 +hiddev_compat_ioctl_41255 hiddev_compat_ioctl 2 41255 NULL
37605 -+create_dir_41256 create_dir 0 41256 NULL
37606 +erst_read_41260 erst_read 0 41260 NULL
37607 -+setup_cluster_bitmap_41270 setup_cluster_bitmap 4-0 41270 NULL
37608 +alloc_context_41283 alloc_context 1 41283 NULL
37609 -+objio_alloc_io_state_41316 objio_alloc_io_state 7-6 41316 NULL
37610 +o2hb_setup_one_bio_41341 o2hb_setup_one_bio 4 41341 NULL
37611 +twl_change_queue_depth_41342 twl_change_queue_depth 2 41342 NULL
37612 +rtw_android_set_block_41347 rtw_android_set_block 0 41347 NULL
37613 -+irq_expand_nr_irqs_41351 irq_expand_nr_irqs 0 41351 NULL
37614 +cnic_init_id_tbl_41354 cnic_init_id_tbl 2 41354 NULL
37615 -+jbd2_alloc_41359 jbd2_alloc 1 41359 NULL
37616 +kmp_init_41373 kmp_init 2 41373 NULL
37617 -+netlink_alloc_large_skb_41375 netlink_alloc_large_skb 1 41375 NULL
37618 +isr_commands_read_41398 isr_commands_read 3 41398 NULL
37619 -+is_writethrough_io_41406 is_writethrough_io 3 41406 NULL
37620 +rx_defrag_decrypt_failed_read_41411 rx_defrag_decrypt_failed_read 3 41411 NULL
37621 +xfs_iext_add_41422 xfs_iext_add 3 41422 NULL
37622 +isdn_ppp_fill_rq_41428 isdn_ppp_fill_rq 2 41428 NULL
37623 +lbs_rdrf_read_41431 lbs_rdrf_read 3 41431 NULL
37624 -+vmemmap_populate_hugepages_41434 vmemmap_populate_hugepages 3 41434 NULL
37625 +iio_device_alloc_41440 iio_device_alloc 1 41440 NULL
37626 +ntfs_file_buffered_write_41442 ntfs_file_buffered_write 6-4 41442 NULL
37627 +pcpu_build_alloc_info_41443 pcpu_build_alloc_info 1-2-3 41443 NULL
37628 ++se_io_cb_41461 se_io_cb 3 41461 NULL
37629 +layout_leb_in_gaps_41470 layout_leb_in_gaps 0 41470 NULL
37630 -+snd_pcm_status_41472 snd_pcm_status 0 41472 NULL
37631 +rt2x00debug_write_rfcsr_41473 rt2x00debug_write_rfcsr 3 41473 NULL
37632 +bl_alloc_init_bio_41478 bl_alloc_init_bio 1 41478 NULL
37633 -+split_item_41483 split_item 0 41483 NULL
37634 +kvm_unmap_hva_range_41484 kvm_unmap_hva_range 3-2 41484 NULL
37635 -+ipath_user_sdma_page_length_41490 ipath_user_sdma_page_length 0-2-1 41490 NULL
37636 +wep_interrupt_read_41492 wep_interrupt_read 3 41492 NULL
37637 -+SyS_get_mempolicy_41495 SyS_get_mempolicy 3-4 41495 NULL
37638 ++SyS_get_mempolicy_41495 SyS_get_mempolicy 3 41495 NULL
37639 +hpfs_translate_name_41497 hpfs_translate_name 3 41497 NULL
37640 +xfrm_hash_new_size_41505 xfrm_hash_new_size 0-1 41505 NULL
37641 -+perf_sw_event_41517 perf_sw_event 2 41517 NULL
37642 +SyS_preadv_41523 SyS_preadv 3 41523 NULL
37643 +dm_get_reserved_rq_based_ios_41529 dm_get_reserved_rq_based_ios 0 41529 NULL
37644 -+add_excluded_extent_41547 add_excluded_extent 0 41547 NULL
37645 +tx_tx_frame_checksum_read_41553 tx_tx_frame_checksum_read 3 41553 NULL
37646 +ath6kl_endpoint_stats_read_41554 ath6kl_endpoint_stats_read 3 41554 NULL
37647 -+si476x_radio_fops_read_41559 si476x_radio_fops_read 3 41559 NULL nohasharray
37648 -+nr_status_frames_41559 nr_status_frames 0-1 41559 &si476x_radio_fops_read_41559
37649 ++nr_status_frames_41559 nr_status_frames 0-1 41559 NULL nohasharray
37650 ++si476x_radio_fops_read_41559 si476x_radio_fops_read 3 41559 &nr_status_frames_41559
37651 +rng_dev_read_41581 rng_dev_read 3 41581 NULL
37652 ++batadv_tvlv_container_ogm_append_41588 batadv_tvlv_container_ogm_append 4 41588 NULL
37653 +vga_io_r_41609 vga_io_r 0 41609 NULL
37654 +tcp_hdrlen_41610 tcp_hdrlen 0 41610 NULL
37655 +lbs_bcnmiss_write_41613 lbs_bcnmiss_write 3 41613 NULL nohasharray
37656 +usb_endpoint_maxp_41613 usb_endpoint_maxp 0 41613 &lbs_bcnmiss_write_41613
37657 +a2mp_send_41615 a2mp_send 4 41615 NULL
37658 -+btrfs_calc_trunc_metadata_size_41626 btrfs_calc_trunc_metadata_size 0-2 41626 NULL
37659 +lstcon_batch_list_41627 lstcon_batch_list 2 41627 NULL
37660 +mempool_create_kmalloc_pool_41650 mempool_create_kmalloc_pool 1 41650 NULL
37661 +rx_rx_pre_complt_read_41653 rx_rx_pre_complt_read 3 41653 NULL
37662 +get_std_timing_41654 get_std_timing 0 41654 NULL
37663 -+start_graph_tracing_41656 start_graph_tracing 0 41656 NULL
37664 +ieee80211_if_fmt_bssid_41677 ieee80211_if_fmt_bssid 3 41677 NULL
37665 -+params_period_bytes_41683 params_period_bytes 0 41683 NULL
37666 +fill_pcm_stream_name_41685 fill_pcm_stream_name 2 41685 NULL
37667 +lov_unpackmd_41701 lov_unpackmd 4 41701 NULL
37668 -+__ext3_journal_get_write_access_41705 __ext3_journal_get_write_access 0 41705 NULL
37669 +apei_exec_for_each_entry_41717 apei_exec_for_each_entry 0 41717 NULL
37670 -+bdx_tx_db_init_41719 bdx_tx_db_init 2 41719 NULL
37671 -+ocfs2_block_group_fill_41744 ocfs2_block_group_fill 0 41744 NULL
37672 +fillonedir_41746 fillonedir 3 41746 NULL
37673 -+ocfs2_dx_dir_rebalance_41793 ocfs2_dx_dir_rebalance 7 41793 NULL
37674 +iwl_dbgfs_bt_notif_read_41794 iwl_dbgfs_bt_notif_read 3 41794 NULL
37675 -+remap_pte_range_41800 remap_pte_range 5 41800 NULL
37676 +hsi_alloc_controller_41802 hsi_alloc_controller 1 41802 NULL
37677 -+regcache_sync_block_raw_41803 regcache_sync_block_raw 4-3 41803 NULL
37678 +rtw_android_get_macaddr_41812 rtw_android_get_macaddr 0 41812 NULL
37679 -+da9052_enable_irq_41814 da9052_enable_irq 2 41814 NULL
37680 +sco_send_frame_41815 sco_send_frame 3 41815 NULL
37681 -+lp_gpio_to_irq_41822 lp_gpio_to_irq 2 41822 NULL
37682 +ixgbe_dbg_netdev_ops_read_41839 ixgbe_dbg_netdev_ops_read 3 41839 NULL
37683 +do_ip_setsockopt_41852 do_ip_setsockopt 5 41852 NULL
37684 +keyctl_instantiate_key_41855 keyctl_instantiate_key 3 41855 NULL
37685 @@ -109090,67 +110274,52 @@ index 0000000..3d6cc0f
37686 +usb_gadget_get_string_41871 usb_gadget_get_string 0 41871 NULL
37687 +v_APCI3120_InterruptDmaMoveBlock16bit_41914 v_APCI3120_InterruptDmaMoveBlock16bit 4 41914 NULL
37688 +get_fdb_entries_41916 get_fdb_entries 3 41916 NULL
37689 -+find_ge_pid_41918 find_ge_pid 1 41918 NULL
37690 -+build_inv_iotlb_pages_41922 build_inv_iotlb_pages 4-5 41922 NULL
37691 +nfsd_getxattr_41934 nfsd_getxattr 0 41934 NULL
37692 +ext4_da_write_inline_data_begin_41935 ext4_da_write_inline_data_begin 3-4 41935 NULL
37693 ++sci_rxfill_41945 sci_rxfill 0 41945 NULL
37694 +read_gssp_41947 read_gssp 3 41947 NULL
37695 +ocfs2_xattr_bucket_get_name_value_41949 ocfs2_xattr_bucket_get_name_value 0 41949 NULL
37696 +portnames_read_41958 portnames_read 3 41958 NULL
37697 -+ubi_self_check_all_ff_41959 ubi_self_check_all_ff 0-4 41959 NULL
37698 +dst_mtu_41969 dst_mtu 0 41969 NULL
37699 -+btrfs_check_trunc_cache_free_space_41973 btrfs_check_trunc_cache_free_space 0 41973 NULL
37700 +cx24116_writeregN_41975 cx24116_writeregN 4 41975 NULL
37701 -+ubi_io_is_bad_41983 ubi_io_is_bad 0 41983 NULL
37702 +pool_allocate_42012 pool_allocate 3 42012 NULL
37703 +spidev_sync_read_42014 spidev_sync_read 0 42014 NULL
37704 +rs_sta_dbgfs_scale_table_write_42017 rs_sta_dbgfs_scale_table_write 3 42017 NULL
37705 -+nouveau_ttm_tt_create_42026 nouveau_ttm_tt_create 2 42026 NULL
37706 ++create_dir_42025 create_dir 0 42025 NULL
37707 +acpi_ut_create_buffer_object_42030 acpi_ut_create_buffer_object 1 42030 NULL
37708 -+__btrfs_drop_extents_42032 __btrfs_drop_extents 5-0 42032 NULL
37709 ++__btrfs_drop_extents_42032 __btrfs_drop_extents 5 42032 NULL
37710 +__hwahc_op_set_gtk_42038 __hwahc_op_set_gtk 4 42038 NULL
37711 +irda_sendmsg_ultra_42047 irda_sendmsg_ultra 4 42047 NULL
37712 -+dma_generic_alloc_coherent_42048 dma_generic_alloc_coherent 2 42048 NULL nohasharray
37713 -+jffs2_do_link_42048 jffs2_do_link 6 42048 &dma_generic_alloc_coherent_42048
37714 ++jffs2_do_link_42048 jffs2_do_link 6 42048 NULL
37715 +ps_poll_upsd_max_ap_turn_read_42050 ps_poll_upsd_max_ap_turn_read 3 42050 NULL
37716 +InterfaceTransmitPacket_42058 InterfaceTransmitPacket 3 42058 NULL
37717 -+alloc_bitset_42085 alloc_bitset 1 42085 NULL
37718 +scsi_execute_req_42088 scsi_execute_req 5 42088 NULL
37719 +sk_chk_filter_42095 sk_chk_filter 2 42095 NULL
37720 -+send_truncate_42107 send_truncate 0 42107 NULL
37721 +submit_inquiry_42108 submit_inquiry 3 42108 NULL
37722 -+sysfs_read_file_42113 sysfs_read_file 3 42113 NULL nohasharray
37723 -+dw_dma_cyclic_prep_42113 dw_dma_cyclic_prep 3-4 42113 &sysfs_read_file_42113
37724 -+__btrfs_unlink_inode_42114 __btrfs_unlink_inode 0 42114 NULL
37725 -+ext4_do_update_inode_42127 ext4_do_update_inode 0 42127 NULL
37726 ++dw_dma_cyclic_prep_42113 dw_dma_cyclic_prep 3-4 42113 NULL
37727 ++obd_get_info_42156 obd_get_info 0 42156 NULL
37728 +blk_ioctl_zeroout_42160 blk_ioctl_zeroout 3 42160 NULL
37729 +mmc_align_data_size_42161 mmc_align_data_size 0-2 42161 NULL
37730 -+kvm_lapic_get_cr8_42166 kvm_lapic_get_cr8 0 42166 NULL
37731 +read_file_base_eeprom_42168 read_file_base_eeprom 3 42168 NULL
37732 +oprofilefs_str_to_user_42182 oprofilefs_str_to_user 3 42182 NULL
37733 +write_file_beacon_42185 write_file_beacon 3 42185 NULL
37734 +get_znodes_to_commit_42201 get_znodes_to_commit 0 42201 NULL
37735 -+ocfs2_resv_window_bits_42207 ocfs2_resv_window_bits 0 42207 NULL
37736 +pla_ocp_read_42235 pla_ocp_read 3 42235 NULL
37737 +rx_defrag_need_decrypt_read_42253 rx_defrag_need_decrypt_read 3 42253 NULL
37738 -+vfio_remove_dma_overlap_42255 vfio_remove_dma_overlap 2 42255 NULL
37739 ++find_last_bit_42260 find_last_bit 0 42260 NULL
37740 +__pcpu_size_to_slot_42271 __pcpu_size_to_slot 0 42271 NULL
37741 +snd_pcm_hw_param_value_max_42280 snd_pcm_hw_param_value_max 0 42280 NULL
37742 +__cpus_weight_42299 __cpus_weight 2-0 42299 NULL
37743 +sel_read_perm_42302 sel_read_perm 3 42302 NULL
37744 +sctp_setsockopt_del_key_42304 sctp_setsockopt_del_key 3 42304 NULL nohasharray
37745 +ulong_read_file_42304 ulong_read_file 3 42304 &sctp_setsockopt_del_key_42304
37746 -+gfn_to_hva_42305 gfn_to_hva 2-0 42305 NULL
37747 -+close_cur_inode_file_42308 close_cur_inode_file 0 42308 NULL nohasharray
37748 -+xfs_vm_readpages_42308 xfs_vm_readpages 4 42308 &close_cur_inode_file_42308
37749 -+free_cblock_42318 free_cblock 2 42318 NULL
37750 ++xfs_vm_readpages_42308 xfs_vm_readpages 4 42308 NULL
37751 +hysdn_conf_read_42324 hysdn_conf_read 3 42324 NULL
37752 +tcp_sync_mss_42330 tcp_sync_mss 2-0 42330 NULL
37753 -+snd_pcm_plug_alloc_42339 snd_pcm_plug_alloc 2 42339 NULL
37754 +ide_raw_taskfile_42355 ide_raw_taskfile 4 42355 NULL
37755 ++tipc_send_42374 tipc_send 3 42374 NULL
37756 +drbd_md_last_sector_42378 drbd_md_last_sector 0 42378 NULL
37757 +il_dbgfs_disable_ht40_read_42386 il_dbgfs_disable_ht40_read 3 42386 NULL
37758 -+hash_ipportnet4_expire_42391 hash_ipportnet4_expire 3 42391 NULL
37759 +msnd_fifo_read_42406 msnd_fifo_read 0-3 42406 NULL
37760 +krng_get_random_42420 krng_get_random 3 42420 NULL
37761 +gsm_data_alloc_42437 gsm_data_alloc 3 42437 NULL
37762 @@ -109159,43 +110328,30 @@ index 0000000..3d6cc0f
37763 +snd_pcm_action_group_42452 snd_pcm_action_group 0 42452 NULL
37764 +tcm_loop_change_queue_depth_42454 tcm_loop_change_queue_depth 2 42454 NULL
37765 +kuc_free_42455 kuc_free 2 42455 NULL
37766 -+tc3589x_gpio_irq_get_virq_42457 tc3589x_gpio_irq_get_virq 2 42457 NULL
37767 -+ext3_valid_block_bitmap_42459 ext3_valid_block_bitmap 3 42459 NULL
37768 +__simple_xattr_set_42474 __simple_xattr_set 4 42474 NULL
37769 -+follow_hugetlb_page_42486 follow_hugetlb_page 0-7 42486 NULL
37770 +omfs_readpages_42490 omfs_readpages 4 42490 NULL
37771 +bypass_write_42498 bypass_write 3 42498 NULL
37772 +SyS_mincore_42511 SyS_mincore 1-2 42511 NULL
37773 -+jbd2_log_wait_commit_42519 jbd2_log_wait_commit 0 42519 NULL
37774 +kvm_write_wall_clock_42520 kvm_write_wall_clock 2 42520 NULL
37775 +dio_bio_complete_42524 dio_bio_complete 0 42524 NULL
37776 +smk_write_netlbladdr_42525 smk_write_netlbladdr 3 42525 NULL
37777 -+self_check_ec_hdr_42528 self_check_ec_hdr 0 42528 NULL
37778 -+__register_ftrace_function_42543 __register_ftrace_function 0 42543 NULL
37779 +dbAllocNear_42546 dbAllocNear 0 42546 NULL
37780 -+inorder_next_42548 inorder_next 1-0 42548 NULL
37781 +ath6kl_wmi_proc_events_vif_42549 ath6kl_wmi_proc_events_vif 5 42549 NULL
37782 +udp_recvmsg_42558 udp_recvmsg 4 42558 NULL
37783 -+iwl_print_event_log_42566 iwl_print_event_log 0-5-7 42566 NULL
37784 -+ocfs2_reserve_suballoc_bits_42569 ocfs2_reserve_suballoc_bits 0 42569 NULL
37785 ++iwl_print_event_log_42566 iwl_print_event_log 7-5-0 42566 NULL
37786 +xfrm_new_hash_mask_42579 xfrm_new_hash_mask 0-1 42579 NULL
37787 +oom_score_adj_write_42594 oom_score_adj_write 3 42594 NULL
37788 -+map_state_42602 map_state 1 42602 NULL
37789 -+resp_write_42628 resp_write 2 42628 NULL
37790 +ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout_42635 ieee80211_if_fmt_dot11MeshHWMPactivePathTimeout 3 42635 NULL
37791 +scsi_activate_tcq_42640 scsi_activate_tcq 2 42640 NULL
37792 +br_mdb_rehash_42643 br_mdb_rehash 2 42643 NULL
37793 +parport_pc_compat_write_block_pio_42644 parport_pc_compat_write_block_pio 3 42644 NULL
37794 -+ocfs2_search_chain_42655 ocfs2_search_chain 0 42655 NULL
37795 ++_regmap_raw_write_42652 _regmap_raw_write 4-2 42652 NULL
37796 +request_key_and_link_42693 request_key_and_link 4 42693 NULL
37797 -+acpi_dev_get_irqresource_42694 acpi_dev_get_irqresource 2 42694 NULL
37798 +vb2_read_42703 vb2_read 3 42703 NULL
37799 -+__ocfs2_decrease_refcount_42717 __ocfs2_decrease_refcount 5-4-0 42717 NULL
37800 +read_status_42722 read_status 0 42722 NULL
37801 +dvb_demux_ioctl_42733 dvb_demux_ioctl 2 42733 NULL
37802 +set_aoe_iflist_42737 set_aoe_iflist 2 42737 NULL
37803 +ax25_setsockopt_42740 ax25_setsockopt 5 42740 NULL
37804 -+xen_bind_pirq_gsi_to_irq_42750 xen_bind_pirq_gsi_to_irq 1 42750 NULL
37805 +dpm_sysfs_add_42756 dpm_sysfs_add 0 42756 NULL
37806 +x25_recvmsg_42777 x25_recvmsg 4 42777 NULL
37807 +snd_midi_event_decode_42780 snd_midi_event_decode 0 42780 NULL
37808 @@ -109203,47 +110359,38 @@ index 0000000..3d6cc0f
37809 +isku_sysfs_read_info_42781 isku_sysfs_read_info 6 42781 &cryptd_hash_setkey_42781
37810 +elfcorehdr_read_notes_42786 elfcorehdr_read_notes 2 42786 NULL
37811 +koneplus_sysfs_read_42792 koneplus_sysfs_read 6 42792 NULL
37812 -+ntfs_attr_extend_allocation_42796 ntfs_attr_extend_allocation 0-2-3 42796 NULL
37813 ++ptlrpc_request_bufs_pack_42793 ptlrpc_request_bufs_pack 0 42793 NULL
37814 ++ntfs_attr_extend_allocation_42796 ntfs_attr_extend_allocation 0 42796 NULL
37815 +fw_device_op_compat_ioctl_42804 fw_device_op_compat_ioctl 2 42804 NULL
37816 +drm_ioctl_42813 drm_ioctl 2 42813 NULL
37817 +iwl_dbgfs_ucode_bt_stats_read_42820 iwl_dbgfs_ucode_bt_stats_read 3 42820 NULL
37818 -+xfs_iomap_eof_prealloc_initial_size_42822 xfs_iomap_eof_prealloc_initial_size 0-3 42822 NULL
37819 +set_arg_42824 set_arg 3 42824 NULL
37820 +si476x_radio_read_rsq_blob_42827 si476x_radio_read_rsq_blob 3 42827 NULL
37821 -+ocfs2_desc_bitmap_to_cluster_off_42831 ocfs2_desc_bitmap_to_cluster_off 2 42831 NULL
37822 -+prandom_u32_42853 prandom_u32 0 42853 NULL
37823 -+ntfs_mapping_pairs_build_42859 ntfs_mapping_pairs_build 0 42859 NULL
37824 -+nouveau_vm_create_42869 nouveau_vm_create 3-2 42869 NULL
37825 +ocfs2_clusters_for_bytes_42872 ocfs2_clusters_for_bytes 0-2 42872 NULL
37826 +nvme_trans_unit_serial_page_42879 nvme_trans_unit_serial_page 4 42879 NULL
37827 +xpc_kmalloc_cacheline_aligned_42895 xpc_kmalloc_cacheline_aligned 1 42895 NULL
37828 +hd_end_request_42904 hd_end_request 2 42904 NULL
37829 +sta_last_rx_rate_read_42909 sta_last_rx_rate_read 3 42909 NULL
37830 -+sctp_getsockopt_maxburst_42941 sctp_getsockopt_maxburst 2 42941 NULL
37831 -+get_unmapped_area_42944 get_unmapped_area 0 42944 NULL
37832 ++sctp_getsockopt_maxburst_42941 sctp_getsockopt_maxburst 2 42941 NULL nohasharray
37833 ++mdc_unpack_acl_42941 mdc_unpack_acl 0 42941 &sctp_getsockopt_maxburst_42941
37834 +vx_reset_chk_42946 vx_reset_chk 0 42946 NULL
37835 -+send_link_42948 send_link 0 42948 NULL
37836 +blkdev_direct_IO_42962 blkdev_direct_IO 4 42962 NULL
37837 +read_file_node_stat_42964 read_file_node_stat 3 42964 NULL
37838 +compat_udpv6_setsockopt_42981 compat_udpv6_setsockopt 5 42981 NULL
37839 -+nfs_idmap_get_desc_42990 nfs_idmap_get_desc 2-4 42990 NULL nohasharray
37840 ++nfs_idmap_get_desc_42990 nfs_idmap_get_desc 4-2 42990 NULL nohasharray
37841 +rtw_os_xmit_resource_alloc_42990 rtw_os_xmit_resource_alloc 3 42990 &nfs_idmap_get_desc_42990
37842 -+mlx4_qp_reserve_range_43000 mlx4_qp_reserve_range 2-3 43000 NULL
37843 +isr_rx_mem_overflow_read_43025 isr_rx_mem_overflow_read 3 43025 NULL
37844 -+add_bytes_to_bitmap_43026 add_bytes_to_bitmap 0-3-4 43026 NULL
37845 -+init_phys_status_page_43028 init_phys_status_page 0 43028 NULL
37846 +wep_default_key_count_read_43035 wep_default_key_count_read 3 43035 NULL
37847 -+send_to_group_43051 send_to_group 0 43051 NULL
37848 +nouveau_gpuobj_create__43072 nouveau_gpuobj_create_ 9 43072 NULL
37849 +nfs_map_group_to_gid_43082 nfs_map_group_to_gid 3 43082 NULL
37850 ++_xfer_secondary_pool_43089 _xfer_secondary_pool 2 43089 NULL
37851 ++sysfs_create_file_ns_43103 sysfs_create_file_ns 0 43103 NULL
37852 +ieee80211_if_fmt_drop_unencrypted_43107 ieee80211_if_fmt_drop_unencrypted 3 43107 NULL
37853 +calculate_node_totalpages_43118 calculate_node_totalpages 2-3 43118 NULL
37854 -+cow_file_range_inline_43132 cow_file_range_inline 4 43132 NULL
37855 +read_file_dfs_43145 read_file_dfs 3 43145 NULL
37856 +cfs_cpt_table_alloc_43159 cfs_cpt_table_alloc 1 43159 NULL
37857 +usb_string_sub_43164 usb_string_sub 0 43164 NULL
37858 +il_dbgfs_power_save_status_read_43165 il_dbgfs_power_save_status_read 3 43165 NULL
37859 -+send_cmd_43168 send_cmd 0 43168 NULL
37860 +ath6kl_set_assoc_req_ies_43185 ath6kl_set_assoc_req_ies 3 43185 NULL
37861 +ext4_xattr_ibody_get_43200 ext4_xattr_ibody_get 0 43200 NULL
37862 +uio_write_43202 uio_write 3 43202 NULL
37863 @@ -109251,144 +110398,98 @@ index 0000000..3d6cc0f
37864 +ath10k_p2p_calc_noa_ie_len_43209 ath10k_p2p_calc_noa_ie_len 0 43209 NULL
37865 +f2fs_acl_from_disk_43210 f2fs_acl_from_disk 2 43210 NULL
37866 +atomic_long_add_return_43217 atomic_long_add_return 1-0 43217 NULL
37867 -+vmemmap_alloc_block_43245 vmemmap_alloc_block 1-2 43245 NULL
37868 -+fixup_leb_43256 fixup_leb 3 43256 NULL
37869 ++batadv_tt_tvlv_unicast_handler_v1_43239 batadv_tt_tvlv_unicast_handler_v1 5 43239 NULL
37870 ++vmemmap_alloc_block_43245 vmemmap_alloc_block 1 43245 NULL
37871 +ide_end_rq_43269 ide_end_rq 4 43269 NULL
37872 +nilfs_direct_IO_43271 nilfs_direct_IO 4 43271 NULL
37873 -+mlx5_ib_reg_user_mr_43275 mlx5_ib_reg_user_mr 2-3 43275 NULL
37874 +parport_pc_ecp_write_block_pio_43278 parport_pc_ecp_write_block_pio 3 43278 NULL nohasharray
37875 +evtchn_write_43278 evtchn_write 3 43278 &parport_pc_ecp_write_block_pio_43278
37876 +filemap_write_and_wait_range_43279 filemap_write_and_wait_range 0 43279 NULL
37877 +mpage_alloc_43299 mpage_alloc 3 43299 NULL
37878 -+get_nr_irqs_gsi_43315 get_nr_irqs_gsi 0 43315 NULL
37879 +mmu_set_spte_43327 mmu_set_spte 7-6 43327 NULL
37880 +__ext4_get_inode_loc_43332 __ext4_get_inode_loc 0 43332 NULL
37881 -+kvm_host_page_size_43348 kvm_host_page_size 2-0 43348 NULL
37882 -+activation_descriptor_init_43358 activation_descriptor_init 1 43358 NULL
37883 -+gart_free_coherent_43362 gart_free_coherent 4-2 43362 NULL
37884 -+hash_net4_expire_43378 hash_net4_expire 3 43378 NULL
37885 +xenfb_write_43412 xenfb_write 3 43412 NULL
37886 +__alloc_bootmem_low_43423 __alloc_bootmem_low 1 43423 NULL
37887 +usb_alloc_urb_43436 usb_alloc_urb 1 43436 NULL
37888 +ath6kl_wmi_roam_tbl_event_rx_43440 ath6kl_wmi_roam_tbl_event_rx 3 43440 NULL
37889 -+ocfs2_rotate_tree_left_43442 ocfs2_rotate_tree_left 0 43442 NULL
37890 +usb_string_43443 usb_string 0 43443 NULL nohasharray
37891 +usemap_size_43443 usemap_size 0-2-1 43443 &usb_string_43443
37892 +get_vm_area_size_43444 get_vm_area_size 0 43444 NULL
37893 +nvme_trans_device_id_page_43466 nvme_trans_device_id_page 4 43466 NULL
37894 -+calculate_discard_block_size_43480 calculate_discard_block_size 0 43480 NULL nohasharray
37895 -+alloc_new_reservation_43480 alloc_new_reservation 4-0-2 43480 &calculate_discard_block_size_43480
37896 +tx_tx_data_prepared_read_43497 tx_tx_data_prepared_read 3 43497 NULL
37897 +ieee80211_if_fmt_dot11MeshHWMPnetDiameterTraversalTime_43505 ieee80211_if_fmt_dot11MeshHWMPnetDiameterTraversalTime 3 43505 NULL
37898 +do_readlink_43518 do_readlink 2 43518 NULL
37899 +dvb_ca_en50221_io_write_43533 dvb_ca_en50221_io_write 3 43533 NULL
37900 +read_events_43534 read_events 3 43534 NULL
37901 +cachefiles_daemon_write_43535 cachefiles_daemon_write 3 43535 NULL
37902 -+tx_frag_failed_read_43540 tx_frag_failed_read 3 43540 NULL nohasharray
37903 -+ufs_alloccg_block_43540 ufs_alloccg_block 3-0 43540 &tx_frag_failed_read_43540
37904 ++tx_frag_failed_read_43540 tx_frag_failed_read 3 43540 NULL
37905 +request_resource_43548 request_resource 0 43548 NULL
37906 +rpc_malloc_43573 rpc_malloc 2 43573 NULL
37907 +handle_frequent_errors_43599 handle_frequent_errors 4 43599 NULL
37908 +lpfc_idiag_drbacc_read_reg_43606 lpfc_idiag_drbacc_read_reg 0-3 43606 NULL
37909 +proc_read_43614 proc_read 3 43614 NULL
37910 -+i915_gem_execbuffer_relocate_object_slow_43618 i915_gem_execbuffer_relocate_object_slow 0 43618 NULL nohasharray
37911 -+disable_dma_on_even_43618 disable_dma_on_even 0 43618 &i915_gem_execbuffer_relocate_object_slow_43618
37912 ++disable_dma_on_even_43618 disable_dma_on_even 0 43618 NULL
37913 +alloc_thread_groups_43625 alloc_thread_groups 2 43625 NULL
37914 +random_write_43656 random_write 3 43656 NULL
37915 +bio_integrity_tag_43658 bio_integrity_tag 3 43658 NULL
37916 +ext4_acl_count_43659 ext4_acl_count 0-1 43659 NULL
37917 -+fs_path_copy_43673 fs_path_copy 0 43673 NULL
37918 ++write_file_tx99_power_43670 write_file_tx99_power 3 43670 NULL
37919 +dmam_declare_coherent_memory_43679 dmam_declare_coherent_memory 4 43679 NULL
37920 -+calgary_map_page_43686 calgary_map_page 4 43686 NULL
37921 +max77693_bulk_write_43698 max77693_bulk_write 2-3 43698 NULL
37922 -+wait_for_completion_interruptible_43723 wait_for_completion_interruptible 0 43723 NULL
37923 +drbd_md_first_sector_43729 drbd_md_first_sector 0 43729 NULL
37924 -+reset_card_proc_43731 reset_card_proc 0 43731 NULL
37925 +snd_rme32_playback_copy_43732 snd_rme32_playback_copy 5 43732 NULL
37926 -+ocfs2_replace_clusters_43733 ocfs2_replace_clusters 5-0 43733 NULL
37927 +fuse_conn_congestion_threshold_write_43736 fuse_conn_congestion_threshold_write 3 43736 NULL
37928 -+__bm_find_next_43748 __bm_find_next 2 43748 NULL
37929 +gigaset_initcs_43753 gigaset_initcs 2 43753 NULL
37930 +sctp_setsockopt_active_key_43755 sctp_setsockopt_active_key 3 43755 NULL
37931 +ocfs2_xattr_get_value_outside_43787 ocfs2_xattr_get_value_outside 0 43787 NULL nohasharray
37932 +byte_pos_43787 byte_pos 0-2 43787 &ocfs2_xattr_get_value_outside_43787
37933 +btrfs_copy_from_user_43806 btrfs_copy_from_user 0-3-1 43806 NULL
37934 -+ext4_read_block_bitmap_43814 ext4_read_block_bitmap 2 43814 NULL
37935 -+div64_u64_safe_43815 div64_u64_safe 2-1 43815 NULL
37936 -+ext4_split_extent_43818 ext4_split_extent 0 43818 NULL
37937 -+i915_gem_execbuffer_relocate_entry_43822 i915_gem_execbuffer_relocate_entry 0 43822 NULL
37938 +ieee80211_if_fmt_element_ttl_43825 ieee80211_if_fmt_element_ttl 3 43825 NULL
37939 +ieee80211_alloc_hw_43829 ieee80211_alloc_hw 1 43829 NULL
37940 +read_flush_43851 read_flush 3 43851 NULL
37941 -+ocfs2_block_group_find_clear_bits_43874 ocfs2_block_group_find_clear_bits 4 43874 NULL
37942 +pm860x_bulk_write_43875 pm860x_bulk_write 2-3 43875 NULL
37943 +SendString_43928 SendString 3 43928 NULL
37944 -+xen_register_gsi_43946 xen_register_gsi 2-1 43946 NULL
37945 +stats_dot11RTSFailureCount_read_43948 stats_dot11RTSFailureCount_read 3 43948 NULL
37946 -+perf_tp_event_43971 perf_tp_event 2 43971 NULL
37947 +__get_required_blob_size_43980 __get_required_blob_size 0-3-2 43980 NULL
37948 +nla_reserve_43984 nla_reserve 3 43984 NULL
37949 +__clkdev_alloc_43990 __clkdev_alloc 1 43990 NULL
37950 +scsi_command_size_43992 scsi_command_size 0 43992 NULL nohasharray
37951 +kvm_read_guest_virt_43992 kvm_read_guest_virt 4-2 43992 &scsi_command_size_43992 nohasharray
37952 +bcm_recvmsg_43992 bcm_recvmsg 4 43992 &kvm_read_guest_virt_43992
37953 -+ulist_add_43994 ulist_add 0 43994 NULL
37954 +emit_flags_44006 emit_flags 4-3 44006 NULL
37955 +write_flush_procfs_44011 write_flush_procfs 3 44011 NULL
37956 +fru_strlen_44046 fru_strlen 0 44046 NULL
37957 -+tree_insert_offset_44069 tree_insert_offset 0 44069 NULL
37958 ++ath9k_def_dump_modal_eeprom_44078 ath9k_def_dump_modal_eeprom 3-2-0 44078 NULL
37959 +SYSC_add_key_44079 SYSC_add_key 4 44079 NULL
37960 -+btrfs_prev_leaf_44083 btrfs_prev_leaf 0 44083 NULL nohasharray
37961 -+load_discard_44083 load_discard 3 44083 &btrfs_prev_leaf_44083
37962 +__vxge_hw_vpath_tim_configure_44093 __vxge_hw_vpath_tim_configure 2 44093 NULL
37963 +xlog_recover_add_to_cont_trans_44102 xlog_recover_add_to_cont_trans 4 44102 NULL
37964 +skb_frag_dma_map_44112 skb_frag_dma_map 0 44112 NULL
37965 +tracing_set_trace_read_44122 tracing_set_trace_read 3 44122 NULL
37966 -+hwif_to_node_44127 hwif_to_node 0 44127 NULL
37967 +SyS_process_vm_writev_44129 SyS_process_vm_writev 3-5 44129 NULL
37968 -+vmw_gmr_bind_44130 vmw_gmr_bind 3 44130 NULL
37969 -+lookup_extent_data_ref_44136 lookup_extent_data_ref 0 44136 NULL
37970 +ttm_get_pages_44142 ttm_get_pages 2 44142 NULL
37971 +scsi_get_resid_44147 scsi_get_resid 0 44147 NULL
37972 -+ubifs_find_dirty_idx_leb_44169 ubifs_find_dirty_idx_leb 0 44169 NULL
37973 +ocfs2_xattr_bucket_find_44174 ocfs2_xattr_bucket_find 0 44174 NULL
37974 +SYSC_set_mempolicy_44176 SYSC_set_mempolicy 3 44176 NULL
37975 +readreg_ipac_44186 readreg_ipac 0 44186 NULL
37976 +handle_eviocgbit_44193 handle_eviocgbit 3 44193 NULL
37977 -+IO_APIC_get_PCI_irq_vector_44198 IO_APIC_get_PCI_irq_vector 0 44198 NULL
37978 -+__set_free_44211 __set_free 2 44211 NULL
37979 -+claim_ptd_buffers_44213 claim_ptd_buffers 3 44213 NULL
37980 +srp_alloc_iu_44227 srp_alloc_iu 2 44227 NULL
37981 -+ioapic_register_intr_44238 ioapic_register_intr 1 44238 NULL
37982 +scsi_track_queue_full_44239 scsi_track_queue_full 2 44239 NULL
37983 +sigma_action_write_regmap_44240 sigma_action_write_regmap 3 44240 NULL
37984 -+tc3589x_gpio_irq_map_44245 tc3589x_gpio_irq_map 2 44245 NULL
37985 +apei_resources_sub_44252 apei_resources_sub 0 44252 NULL
37986 -+byt_gpio_irq_map_44275 byt_gpio_irq_map 2 44275 NULL
37987 +device_create_file_44285 device_create_file 0 44285 NULL
37988 -+ufs_clusteracct_44293 ufs_clusteracct 3 44293 NULL
37989 -+ocfs2_zero_range_for_truncate_44294 ocfs2_zero_range_for_truncate 3 44294 NULL
37990 +ath6kl_keepalive_read_44303 ath6kl_keepalive_read 3 44303 NULL
37991 +bitmap_scnprintf_44318 bitmap_scnprintf 0-2 44318 NULL
37992 +dispatch_proc_write_44320 dispatch_proc_write 3 44320 NULL
37993 +rs_init_44327 rs_init 1 44327 NULL
37994 -+create_free_space_inode_44332 create_free_space_inode 0 44332 NULL
37995 -+insert_into_bitmap_44340 insert_into_bitmap 0 44340 NULL
37996 -+ubi_eba_write_leb_st_44343 ubi_eba_write_leb_st 0-5 44343 NULL
37997 -+radix_tree_maybe_preload_44346 radix_tree_maybe_preload 0 44346 NULL
37998 -+nfs_fscache_get_super_cookie_44355 nfs_fscache_get_super_cookie 3 44355 NULL nohasharray
37999 -+blk_queue_init_tags_44355 blk_queue_init_tags 2 44355 &nfs_fscache_get_super_cookie_44355
38000 -+__is_discarded_44359 __is_discarded 2 44359 NULL
38001 -+ipx_recvmsg_44366 ipx_recvmsg 4 44366 NULL
38002 ++blk_queue_init_tags_44355 blk_queue_init_tags 2 44355 NULL nohasharray
38003 ++nfs_fscache_get_super_cookie_44355 nfs_fscache_get_super_cookie 3 44355 &blk_queue_init_tags_44355
38004 +alloc_requests_44372 alloc_requests 0 44372 NULL
38005 +rts_threshold_read_44384 rts_threshold_read 3 44384 NULL
38006 -+iterate_dir_item_44386 iterate_dir_item 0 44386 NULL
38007 +mtip_hw_read_flags_44396 mtip_hw_read_flags 3 44396 NULL
38008 +aoedev_flush_44398 aoedev_flush 2 44398 NULL
38009 +strlcpy_44400 strlcpy 3 44400 NULL
38010 +drm_buffer_alloc_44405 drm_buffer_alloc 2 44405 NULL
38011 +osst_do_scsi_44410 osst_do_scsi 4 44410 NULL
38012 -+check_user_page_hwpoison_44412 check_user_page_hwpoison 1 44412 NULL
38013 +ieee80211_if_read_rc_rateidx_mcs_mask_5ghz_44423 ieee80211_if_read_rc_rateidx_mcs_mask_5ghz 3 44423 NULL
38014 +iwl_dbgfs_bf_params_write_44450 iwl_dbgfs_bf_params_write 3 44450 NULL
38015 +write_file_debug_44476 write_file_debug 3 44476 NULL
38016 @@ -109404,34 +110505,20 @@ index 0000000..3d6cc0f
38017 +ieee80211_rx_mgmt_assoc_resp_44525 ieee80211_rx_mgmt_assoc_resp 3 44525 NULL
38018 +comm_write_44537 comm_write 3 44537 NULL
38019 +xfs_log_calc_unit_res_44540 xfs_log_calc_unit_res 0-2 44540 NULL
38020 -+snd_pcm_drop_44542 snd_pcm_drop 0 44542 NULL
38021 -+dbg_chk_pnode_44555 dbg_chk_pnode 0 44555 NULL
38022 -+shmem_getpage_gfp_44556 shmem_getpage_gfp 0 44556 NULL
38023 -+hash_ipport4_expire_44564 hash_ipport4_expire 3 44564 NULL
38024 +dgrp_config_proc_write_44571 dgrp_config_proc_write 3 44571 NULL
38025 -+snd_pcm_alloc_vmalloc_buffer_44595 snd_pcm_alloc_vmalloc_buffer 2 44595 NULL
38026 -+btrfs_qgroup_account_ref_44604 btrfs_qgroup_account_ref 0 44604 NULL
38027 -+huge_page_shift_44618 huge_page_shift 0 44618 NULL
38028 -+sysfs_add_one_44629 sysfs_add_one 0 44629 NULL
38029 -+msb_get_free_block_44633 msb_get_free_block 2 44633 NULL
38030 -+ext2_new_block_44645 ext2_new_block 2-0 44645 NULL
38031 ++nouveau_perfmon_create__44602 nouveau_perfmon_create_ 4 44602 NULL
38032 +alloc_ctrl_packet_44667 alloc_ctrl_packet 1 44667 NULL
38033 +mpi_resize_44674 mpi_resize 2 44674 NULL
38034 -+sysfs_create_link_44685 sysfs_create_link 0 44685 NULL nohasharray
38035 -+__copy_user_intel_nocache_44685 __copy_user_intel_nocache 0-3 44685 &sysfs_create_link_44685
38036 ++sysfs_create_link_44685 sysfs_create_link 0 44685 NULL
38037 +ts_read_44687 ts_read 3 44687 NULL
38038 -+qib_get_user_pages_44689 qib_get_user_pages 1-2 44689 NULL
38039 +lov_emerg_alloc_44698 lov_emerg_alloc 1 44698 NULL
38040 -+__ocfs2_rotate_tree_left_44705 __ocfs2_rotate_tree_left 0 44705 NULL
38041 ++__ocfs2_rotate_tree_left_44705 __ocfs2_rotate_tree_left 3 44705 NULL
38042 +xfer_to_user_44713 xfer_to_user 3 44713 NULL nohasharray
38043 +__generic_block_fiemap_44713 __generic_block_fiemap 4 44713 &xfer_to_user_44713
38044 +_zd_iowrite32v_locked_44725 _zd_iowrite32v_locked 3 44725 NULL
38045 +clusterip_proc_write_44729 clusterip_proc_write 3 44729 NULL
38046 +fib_count_nexthops_44730 fib_count_nexthops 0 44730 NULL
38047 -+SyS_read_44732 SyS_read 3 44732 NULL
38048 -+vm_insert_mixed_44738 vm_insert_mixed 3 44738 NULL
38049 +key_tx_rx_count_read_44742 key_tx_rx_count_read 3 44742 NULL
38050 -+set_brk_44749 set_brk 1-2 44749 NULL
38051 +tnode_new_44757 tnode_new 3 44757 NULL nohasharray
38052 +pty_write_44757 pty_write 3 44757 &tnode_new_44757
38053 +__videobuf_copy_stream_44769 __videobuf_copy_stream 4-0 44769 NULL
38054 @@ -109444,51 +110531,36 @@ index 0000000..3d6cc0f
38055 +rmap_write_protect_44833 rmap_write_protect 2 44833 NULL
38056 +sisusb_write_44834 sisusb_write 3 44834 NULL
38057 +kvm_read_hva_44847 kvm_read_hva 3 44847 NULL
38058 -+cubic_root_44848 cubic_root 1 44848 NULL
38059 +qib_verbs_send_dma_44850 qib_verbs_send_dma 6 44850 NULL
38060 +copydesc_user_44855 copydesc_user 3 44855 NULL
38061 -+i915_gem_execbuffer_relocate_44868 i915_gem_execbuffer_relocate 0 44868 NULL
38062 ++set_advertising_44870 set_advertising 4 44870 NULL
38063 +init_rs_44873 init_rs 1 44873 NULL
38064 +skb_availroom_44883 skb_availroom 0 44883 NULL
38065 +ocfs2_wait_for_mask_44893 ocfs2_wait_for_mask 0 44893 NULL
38066 +do_tty_write_44896 do_tty_write 5 44896 NULL
38067 +regmap_spi_read_44921 regmap_spi_read 3-5 44921 NULL
38068 -+_snd_pcm_hw_param_last_44947 _snd_pcm_hw_param_last 0 44947 NULL
38069 -+__add_delayed_refs_44977 __add_delayed_refs 0 44977 NULL
38070 +tx_queue_status_read_44978 tx_queue_status_read 3 44978 NULL
38071 -+map_index_to_lba_44993 map_index_to_lba 0-1 44993 NULL
38072 -+send_chmod_45011 send_chmod 0 45011 NULL
38073 -+i915_gem_do_execbuffer_45012 i915_gem_do_execbuffer 0 45012 NULL
38074 +bytepos_delta_45017 bytepos_delta 0-2 45017 NULL
38075 -+read_block_bitmap_45021 read_block_bitmap 2 45021 NULL nohasharray
38076 -+ptrace_writedata_45021 ptrace_writedata 4-3 45021 &read_block_bitmap_45021
38077 -+dm_kvzalloc_45025 dm_kvzalloc 1-2 45025 NULL
38078 ++ptrace_writedata_45021 ptrace_writedata 4 45021 NULL
38079 ++dm_kvzalloc_45025 dm_kvzalloc 1 45025 NULL
38080 +vhci_get_user_45039 vhci_get_user 3 45039 NULL
38081 +sysfs_do_create_link_sd_45057 sysfs_do_create_link_sd 0 45057 NULL
38082 -+remap_oldmem_pfn_range_45060 remap_oldmem_pfn_range 2-3-4 45060 NULL nohasharray
38083 -+sel_write_user_45060 sel_write_user 3 45060 &remap_oldmem_pfn_range_45060
38084 -+vmscan_swappiness_45062 vmscan_swappiness 0 45062 NULL
38085 ++sel_write_user_45060 sel_write_user 3 45060 NULL
38086 +snd_mixart_BA0_read_45069 snd_mixart_BA0_read 5 45069 NULL
38087 +kvm_mmu_page_get_gfn_45110 kvm_mmu_page_get_gfn 0-2 45110 NULL
38088 +pwr_missing_bcns_cnt_read_45113 pwr_missing_bcns_cnt_read 3 45113 NULL
38089 +usbdev_read_45114 usbdev_read 3 45114 NULL
38090 +send_to_tty_45141 send_to_tty 3 45141 NULL
38091 -+stmpe_irq_map_45146 stmpe_irq_map 2 45146 NULL
38092 +cfs_trace_daemon_command_usrstr_45147 cfs_trace_daemon_command_usrstr 2 45147 NULL
38093 +gen_bitmask_string_45149 gen_bitmask_string 6 45149 NULL
38094 -+ocfs2_remove_inode_range_45156 ocfs2_remove_inode_range 3-4 45156 NULL nohasharray
38095 -+device_write_45156 device_write 3 45156 &ocfs2_remove_inode_range_45156
38096 -+ocfs2_dq_frozen_trigger_45159 ocfs2_dq_frozen_trigger 4 45159 NULL
38097 -+SYSC_write_45160 SYSC_write 3 45160 NULL
38098 ++device_write_45156 device_write 3 45156 NULL nohasharray
38099 ++ocfs2_remove_inode_range_45156 ocfs2_remove_inode_range 3-4 45156 &device_write_45156
38100 +tomoyo_write_self_45161 tomoyo_write_self 3 45161 NULL
38101 +sta_agg_status_write_45164 sta_agg_status_write 3 45164 NULL
38102 -+sctp_pack_cookie_45190 sctp_pack_cookie 6 45190 NULL nohasharray
38103 -+snd_sb_csp_load_user_45190 snd_sb_csp_load_user 3 45190 &sctp_pack_cookie_45190
38104 -+num_clusters_in_group_45194 num_clusters_in_group 2 45194 NULL
38105 -+__radix_tree_preload_45197 __radix_tree_preload 0 45197 NULL
38106 ++snd_sb_csp_load_user_45190 snd_sb_csp_load_user 3 45190 NULL nohasharray
38107 ++sctp_pack_cookie_45190 sctp_pack_cookie 6 45190 &snd_sb_csp_load_user_45190
38108 +iso_alloc_urb_45206 iso_alloc_urb 4-5 45206 NULL
38109 +spi_alloc_master_45223 spi_alloc_master 2 45223 NULL
38110 -+__dirty_45228 __dirty 2 45228 NULL
38111 +ieee80211_if_read_peer_45233 ieee80211_if_read_peer 3 45233 NULL
38112 +event_enable_write_45238 event_enable_write 3 45238 NULL
38113 +prism2_pda_proc_read_45246 prism2_pda_proc_read 3 45246 NULL
38114 @@ -109496,54 +110568,39 @@ index 0000000..3d6cc0f
38115 +gfs2_fiemap_45282 gfs2_fiemap 4 45282 NULL
38116 +snd_pcm_oss_sync1_45298 snd_pcm_oss_sync1 2 45298 NULL
38117 +e1000_tx_map_45309 e1000_tx_map 5 45309 NULL
38118 -+pte_val_45313 pte_val 0 45313 NULL
38119 +copy_vm86_regs_from_user_45340 copy_vm86_regs_from_user 3 45340 NULL
38120 +null_alloc_repbuf_45375 null_alloc_repbuf 3 45375 NULL
38121 +sock_recv_errqueue_45412 sock_recv_errqueue 3 45412 NULL
38122 -+paging64_gva_to_gpa_45421 paging64_gva_to_gpa 2 45421 NULL nohasharray
38123 -+ieee80211_if_fmt_dot11MeshHWMProotInterval_45421 ieee80211_if_fmt_dot11MeshHWMProotInterval 3 45421 &paging64_gva_to_gpa_45421
38124 -+alloc_task_struct_node_45426 alloc_task_struct_node 1 45426 NULL
38125 ++ieee80211_if_fmt_dot11MeshHWMProotInterval_45421 ieee80211_if_fmt_dot11MeshHWMProotInterval 3 45421 NULL
38126 +ll_iocontrol_register_45430 ll_iocontrol_register 2 45430 NULL
38127 +tty_buffer_alloc_45437 tty_buffer_alloc 2 45437 NULL
38128 -+SYSC_mremap_45446 SYSC_mremap 5-1-2-3 45446 NULL
38129 +__node_remap_45458 __node_remap 4 45458 NULL
38130 +rds_ib_set_wr_signal_state_45463 rds_ib_set_wr_signal_state 0 45463 NULL
38131 +tracing_read_dyn_info_45468 tracing_read_dyn_info 3 45468 NULL
38132 -+snd_pcm_hwsync_45479 snd_pcm_hwsync 0 45479 NULL
38133 -+arizona_init_fll_45503 arizona_init_fll 5 45503 NULL
38134 +rds_message_copy_from_user_45510 rds_message_copy_from_user 3 45510 NULL
38135 +i40e_alloc_vfs_45511 i40e_alloc_vfs 2 45511 NULL
38136 -+__split_vma_45522 __split_vma 0 45522 NULL
38137 +cgroup_read_u64_45532 cgroup_read_u64 5 45532 NULL
38138 +copy_macs_45534 copy_macs 4 45534 NULL
38139 +nla_attr_size_45545 nla_attr_size 0-1 45545 NULL
38140 +v9fs_direct_read_45546 v9fs_direct_read 3 45546 NULL
38141 +cx18_copy_mdl_to_user_45549 cx18_copy_mdl_to_user 4 45549 NULL
38142 -+ext3_group_first_block_no_45555 ext3_group_first_block_no 0-2 45555 NULL
38143 +stats_dot11ACKFailureCount_read_45558 stats_dot11ACKFailureCount_read 3 45558 NULL
38144 +_regmap_bus_raw_write_45559 _regmap_bus_raw_write 2 45559 NULL
38145 +posix_acl_xattr_size_45561 posix_acl_xattr_size 0-1 45561 NULL
38146 +venus_rmdir_45564 venus_rmdir 4 45564 NULL
38147 -+btrfs_find_free_ino_45585 btrfs_find_free_ino 0 45585 NULL
38148 -+ipath_create_cq_45586 ipath_create_cq 2 45586 NULL
38149 +ath6kl_keepalive_write_45600 ath6kl_keepalive_write 3 45600 NULL
38150 +hidraw_get_report_45609 hidraw_get_report 3 45609 NULL
38151 -+commit_cowonly_roots_45640 commit_cowonly_roots 0 45640 NULL
38152 -+ebitmap_next_positive_45651 ebitmap_next_positive 3-0 45651 NULL
38153 -+ext4_reserve_inode_write_45654 ext4_reserve_inode_write 0 45654 NULL
38154 -+dma_map_cont_45668 dma_map_cont 5 45668 NULL
38155 +compat_mpctl_ioctl_45671 compat_mpctl_ioctl 2 45671 NULL
38156 +dgram_sendmsg_45679 dgram_sendmsg 4 45679 NULL
38157 +smk_write_ambient_45691 smk_write_ambient 3 45691 NULL
38158 +unix_dgram_sendmsg_45699 unix_dgram_sendmsg 4 45699 NULL nohasharray
38159 -+bscnl_emit_45699 bscnl_emit 0-2-5 45699 &unix_dgram_sendmsg_45699
38160 ++bscnl_emit_45699 bscnl_emit 2-5-0 45699 &unix_dgram_sendmsg_45699
38161 +sg_proc_write_adio_45704 sg_proc_write_adio 3 45704 NULL
38162 +snd_cs46xx_io_read_45734 snd_cs46xx_io_read 5 45734 NULL nohasharray
38163 +task_cgroup_path_45734 task_cgroup_path 3 45734 &snd_cs46xx_io_read_45734
38164 +rw_copy_check_uvector_45748 rw_copy_check_uvector 3-0 45748 NULL nohasharray
38165 +v4l2_ctrl_new_std_45748 v4l2_ctrl_new_std 5 45748 &rw_copy_check_uvector_45748
38166 +lkdtm_debugfs_read_45752 lkdtm_debugfs_read 3 45752 NULL
38167 -+btrfs_delete_delayed_dir_index_45757 btrfs_delete_delayed_dir_index 0 45757 NULL
38168 +alloc_ts_config_45775 alloc_ts_config 1 45775 NULL
38169 +osc_checksum_type_seq_write_45785 osc_checksum_type_seq_write 3 45785 NULL
38170 +raw_setsockopt_45800 raw_setsockopt 5 45800 NULL
38171 @@ -109551,48 +110608,38 @@ index 0000000..3d6cc0f
38172 +lbs_rdbbp_read_45805 lbs_rdbbp_read 3 45805 NULL
38173 +pcpu_alloc_alloc_info_45813 pcpu_alloc_alloc_info 1-2 45813 NULL
38174 +ll_max_readahead_mb_seq_write_45815 ll_max_readahead_mb_seq_write 3 45815 NULL
38175 -+fm_v4l2_init_video_device_45821 fm_v4l2_init_video_device 2 45821 NULL
38176 +memcg_update_cache_size_45828 memcg_update_cache_size 2 45828 NULL
38177 +ipv6_recv_rxpmtu_45830 ipv6_recv_rxpmtu 3 45830 NULL
38178 -+task_state_char_45839 task_state_char 1 45839 NULL
38179 -+__ip_select_ident_45851 __ip_select_ident 3 45851 NULL
38180 +x509_process_extension_45854 x509_process_extension 5 45854 NULL
38181 +efx_tx_queue_insert_45859 efx_tx_queue_insert 2 45859 NULL
38182 +isdn_write_45863 isdn_write 3 45863 NULL
38183 -+unpack_orig_pfns_45867 unpack_orig_pfns 0 45867 NULL
38184 +tpm_config_in_45880 tpm_config_in 0 45880 NULL
38185 +get_rdac_req_45882 get_rdac_req 3 45882 NULL
38186 ++ima_eventdigest_init_common_45889 ima_eventdigest_init_common 2 45889 NULL
38187 +ocfs2_xattr_block_find_45891 ocfs2_xattr_block_find 0 45891 NULL
38188 -+online_page_cgroup_45894 online_page_cgroup 3 45894 NULL
38189 +cfs_cpt_weight_45903 cfs_cpt_weight 0 45903 NULL
38190 +wm_adsp_region_to_reg_45915 wm_adsp_region_to_reg 0-2 45915 NULL
38191 +dbgfs_frame_45917 dbgfs_frame 3 45917 NULL
38192 +alloc_mr_45935 alloc_mr 1 45935 NULL
38193 -+kmem_cache_alloc_node_trace_45968 kmem_cache_alloc_node_trace 3 45968 NULL
38194 +copy_to_45969 copy_to 3 45969 NULL
38195 +rb_simple_read_45972 rb_simple_read 3 45972 NULL
38196 +ioat2_dca_count_dca_slots_45984 ioat2_dca_count_dca_slots 0 45984 NULL
38197 -+ore_calc_stripe_info_46023 ore_calc_stripe_info 2 46023 NULL
38198 ++kobject_init_and_add_46003 kobject_init_and_add 0 46003 NULL
38199 +sierra_setup_urb_46029 sierra_setup_urb 5 46029 NULL
38200 -+get_free_entries_46030 get_free_entries 1 46030 NULL
38201 -+__access_remote_vm_46031 __access_remote_vm 0-3-5 46031 NULL
38202 ++fnic_reset_stats_read_46030 fnic_reset_stats_read 3 46030 NULL nohasharray
38203 ++get_free_entries_46030 get_free_entries 1 46030 &fnic_reset_stats_read_46030
38204 ++__access_remote_vm_46031 __access_remote_vm 0 46031 NULL
38205 +snd_emu10k1x_ptr_read_46049 snd_emu10k1x_ptr_read 0 46049 NULL
38206 -+acpi_register_gsi_xen_hvm_46052 acpi_register_gsi_xen_hvm 2 46052 NULL
38207 -+__ocfs2_move_extent_46060 __ocfs2_move_extent 5-6-4-0-3 46060 NULL nohasharray
38208 ++__ocfs2_move_extent_46060 __ocfs2_move_extent 3-4 46060 NULL nohasharray
38209 +dma_tx_errors_read_46060 dma_tx_errors_read 3 46060 &__ocfs2_move_extent_46060
38210 +sel_commit_bools_write_46077 sel_commit_bools_write 3 46077 NULL
38211 -+arizona_set_irq_wake_46101 arizona_set_irq_wake 2 46101 NULL
38212 +il3945_ucode_general_stats_read_46111 il3945_ucode_general_stats_read 3 46111 NULL nohasharray
38213 +memcg_update_array_size_46111 memcg_update_array_size 1 46111 &il3945_ucode_general_stats_read_46111
38214 +C_SYSC_writev_46113 C_SYSC_writev 3 46113 NULL
38215 +mlx4_ib_alloc_fast_reg_page_list_46119 mlx4_ib_alloc_fast_reg_page_list 2 46119 NULL
38216 -+paging32_walk_addr_nested_46121 paging32_walk_addr_nested 3 46121 NULL
38217 -+replay_dir_deletes_46136 replay_dir_deletes 0 46136 NULL
38218 +rtw_buf_update_46138 rtw_buf_update 4 46138 NULL
38219 -+vb2_dma_sg_get_userptr_46146 vb2_dma_sg_get_userptr 2-3 46146 NULL
38220 ++vb2_dma_sg_get_userptr_46146 vb2_dma_sg_get_userptr 3-2 46146 NULL
38221 +__netlink_change_ngroups_46156 __netlink_change_ngroups 2 46156 NULL
38222 -+alloc_iova_46160 alloc_iova 2 46160 NULL
38223 -+kmalloc_section_memmap_46168 kmalloc_section_memmap 2 46168 NULL
38224 +twl_direction_out_46182 twl_direction_out 2 46182 NULL
38225 +vxge_os_dma_malloc_46184 vxge_os_dma_malloc 2 46184 NULL
38226 +fq_resize_46195 fq_resize 2 46195 NULL
38227 @@ -109600,83 +110647,63 @@ index 0000000..3d6cc0f
38228 +i2400m_op_msg_from_user_46213 i2400m_op_msg_from_user 4 46213 NULL
38229 +tm6000_i2c_recv_regs_46215 tm6000_i2c_recv_regs 5 46215 NULL
38230 +dsp_write_46218 dsp_write 2 46218 NULL
38231 ++hash_netiface4_expire_46226 hash_netiface4_expire 4 46226 NULL
38232 +xen_setup_msi_irqs_46245 xen_setup_msi_irqs 2 46245 NULL
38233 +mpi_read_raw_data_46248 mpi_read_raw_data 2 46248 NULL
38234 +ReadReg_46277 ReadReg 0 46277 NULL
38235 ++sptlrpc_req_get_ctx_46303 sptlrpc_req_get_ctx 0 46303 NULL
38236 +sg_proc_write_dressz_46316 sg_proc_write_dressz 3 46316 NULL
38237 -+compat_SyS_readv_46328 compat_SyS_readv 3 46328 NULL nohasharray
38238 -+__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 &compat_SyS_readv_46328
38239 ++__hwahc_dev_set_key_46328 __hwahc_dev_set_key 5 46328 NULL nohasharray
38240 ++compat_SyS_readv_46328 compat_SyS_readv 3 46328 &__hwahc_dev_set_key_46328
38241 +iwl_dbgfs_chain_noise_read_46355 iwl_dbgfs_chain_noise_read 3 46355 NULL
38242 +smk_write_direct_46363 smk_write_direct 3 46363 NULL
38243 -+__iommu_calculate_agaw_46366 __iommu_calculate_agaw 2 46366 NULL
38244 -+ubi_dump_flash_46381 ubi_dump_flash 4 46381 NULL
38245 -+mmap_ureg_46388 mmap_ureg 3 46388 NULL
38246 -+vma_adjust_46390 vma_adjust 0 46390 NULL
38247 +fuse_file_aio_write_46399 fuse_file_aio_write 4 46399 NULL
38248 +crypto_ablkcipher_reqsize_46411 crypto_ablkcipher_reqsize 0 46411 NULL
38249 +ttm_page_pool_get_pages_46431 ttm_page_pool_get_pages 0-5 46431 NULL
38250 +cfs_power2_roundup_46433 cfs_power2_roundup 0-1 46433 NULL
38251 -+hash_ipportip6_expire_46443 hash_ipportip6_expire 3 46443 NULL
38252 +cp210x_set_config_46447 cp210x_set_config 4 46447 NULL
38253 +parport_pc_fifo_write_block_46455 parport_pc_fifo_write_block 3 46455 NULL
38254 +il_dbgfs_clear_traffic_stats_write_46458 il_dbgfs_clear_traffic_stats_write 3 46458 NULL
38255 +filldir64_46469 filldir64 3 46469 NULL
38256 -+ocfs2_reserve_clusters_with_limit_46479 ocfs2_reserve_clusters_with_limit 0 46479 NULL
38257 +fill_in_write_vector_46498 fill_in_write_vector 0 46498 NULL
38258 -+p9pdu_vreadf_46500 p9pdu_vreadf 0 46500 NULL
38259 +pin_code_reply_46510 pin_code_reply 4 46510 NULL
38260 +mthca_alloc_cq_buf_46512 mthca_alloc_cq_buf 3 46512 NULL
38261 -+nouveau_drm_ioctl_46514 nouveau_drm_ioctl 2 46514 NULL nohasharray
38262 -+kmsg_read_46514 kmsg_read 3 46514 &nouveau_drm_ioctl_46514
38263 -+bdx_rxdb_create_46525 bdx_rxdb_create 1 46525 NULL
38264 ++kmsg_read_46514 kmsg_read 3 46514 NULL nohasharray
38265 ++nouveau_drm_ioctl_46514 nouveau_drm_ioctl 2 46514 &kmsg_read_46514
38266 +nl80211_send_rx_assoc_46538 nl80211_send_rx_assoc 4 46538 NULL
38267 -+pm860x_irq_domain_map_46553 pm860x_irq_domain_map 2 46553 NULL
38268 -+link_send_sections_long_46556 link_send_sections_long 4 46556 NULL
38269 -+dn_current_mss_46574 dn_current_mss 0 46574 NULL nohasharray
38270 -+blk_flush_complete_seq_46574 blk_flush_complete_seq 2 46574 &dn_current_mss_46574
38271 ++dn_current_mss_46574 dn_current_mss 0 46574 NULL
38272 +serverworks_create_gatt_pages_46582 serverworks_create_gatt_pages 1 46582 NULL
38273 +snd_compr_write_data_46592 snd_compr_write_data 3 46592 NULL
38274 -+il3945_stats_flag_46606 il3945_stats_flag 0-3 46606 NULL
38275 ++il3945_stats_flag_46606 il3945_stats_flag 3-0 46606 NULL
38276 +vscnprintf_46617 vscnprintf 0-2 46617 NULL
38277 +__kfifo_out_r_46623 __kfifo_out_r 3-0 46623 NULL
38278 +request_key_async_with_auxdata_46624 request_key_async_with_auxdata 4 46624 NULL
38279 +pci_enable_device_46642 pci_enable_device 0 46642 NULL
38280 +vfs_getxattr_alloc_46649 vfs_getxattr_alloc 0 46649 NULL
38281 -+av7110_ipack_init_46655 av7110_ipack_init 2 46655 NULL
38282 +e1000_tx_map_46672 e1000_tx_map 4 46672 NULL
38283 +alloc_data_packet_46698 alloc_data_packet 1 46698 NULL
38284 +__ilog2_u32_46706 __ilog2_u32 0 46706 NULL
38285 +erst_dbg_write_46715 erst_dbg_write 3 46715 NULL
38286 -+ide_read_status_46719 ide_read_status 0 46719 NULL
38287 +wl1271_rx_filter_alloc_field_46721 wl1271_rx_filter_alloc_field 5 46721 NULL
38288 -+irq_domain_add_simple_46734 irq_domain_add_simple 2-3 46734 NULL
38289 -+ext4_count_free_46754 ext4_count_free 2 46754 NULL nohasharray
38290 -+pte_pfn_46754 pte_pfn 0 46754 &ext4_count_free_46754
38291 -+ntfs2utc_46762 ntfs2utc 1 46762 NULL
38292 ++irq_domain_add_simple_46734 irq_domain_add_simple 2 46734 NULL
38293 ++read_file_tx99_46741 read_file_tx99 3 46741 NULL
38294 ++ext4_count_free_46754 ext4_count_free 2 46754 NULL
38295 +hest_ghes_dev_register_46766 hest_ghes_dev_register 1 46766 NULL
38296 +int_hw_irq_en_46776 int_hw_irq_en 3 46776 NULL
38297 -+regcache_lzo_sync_46777 regcache_lzo_sync 2 46777 NULL
38298 +_xfs_buf_get_pages_46811 _xfs_buf_get_pages 2 46811 NULL
38299 -+btrfs_insert_empty_items_46822 btrfs_insert_empty_items 0 46822 NULL
38300 +xfs_iroot_realloc_46826 xfs_iroot_realloc 2 46826 NULL
38301 -+shmem_pwrite_fast_46842 shmem_pwrite_fast 3 46842 NULL
38302 +readreg_46845 readreg 0 46845 NULL
38303 +spi_async_46857 spi_async 0 46857 NULL
38304 -+vsnprintf_46863 vsnprintf 0 46863 NULL nohasharray
38305 -+SyS_move_pages_46863 SyS_move_pages 2 46863 &vsnprintf_46863
38306 ++SyS_move_pages_46863 SyS_move_pages 2 46863 NULL nohasharray
38307 ++vsnprintf_46863 vsnprintf 0 46863 &SyS_move_pages_46863
38308 +nvme_alloc_queue_46865 nvme_alloc_queue 3 46865 NULL
38309 -+rvmalloc_46873 rvmalloc 1 46873 NULL
38310 +qp_memcpy_from_queue_iov_46874 qp_memcpy_from_queue_iov 5-4 46874 NULL
38311 +lov_iocontrol_46876 lov_iocontrol 3 46876 NULL
38312 -+stmpe_gpio_irq_unmap_46884 stmpe_gpio_irq_unmap 2 46884 NULL
38313 +ixgbe_dbg_reg_ops_write_46895 ixgbe_dbg_reg_ops_write 3 46895 NULL
38314 +sk_mem_pages_46896 sk_mem_pages 0-1 46896 NULL
38315 -+ol_dqblk_off_46904 ol_dqblk_off 2-3 46904 NULL
38316 +ieee80211_if_fmt_power_mode_46906 ieee80211_if_fmt_power_mode 3 46906 NULL
38317 +wlcore_alloc_hw_46917 wlcore_alloc_hw 1-3 46917 NULL
38318 +fb_write_46924 fb_write 3 46924 NULL
38319 -+i915_gem_check_olr_46925 i915_gem_check_olr 0 46925 NULL
38320 -+kvm_register_read_46948 kvm_register_read 0 46948 NULL
38321 +__sctp_setsockopt_connectx_46949 __sctp_setsockopt_connectx 3 46949 NULL
38322 +qla4xxx_post_aen_work_46953 qla4xxx_post_aen_work 3 46953 NULL
38323 +SYSC_poll_46965 SYSC_poll 2 46965 NULL
38324 @@ -109684,103 +110711,73 @@ index 0000000..3d6cc0f
38325 +mgmt_pending_add_46976 mgmt_pending_add 5 46976 NULL
38326 +strlcat_46985 strlcat 3 46985 NULL
38327 +bitmap_file_clear_bit_46990 bitmap_file_clear_bit 2 46990 NULL
38328 -+gfs2_xattr_system_set_46996 gfs2_xattr_system_set 4 46996 NULL nohasharray
38329 -+sel_write_bool_46996 sel_write_bool 3 46996 &gfs2_xattr_system_set_46996
38330 -+ttm_bo_io_47000 ttm_bo_io 5 47000 NULL
38331 ++sel_write_bool_46996 sel_write_bool 3 46996 NULL nohasharray
38332 ++gfs2_xattr_system_set_46996 gfs2_xattr_system_set 4 46996 &sel_write_bool_46996
38333 +blk_rq_map_kern_47004 blk_rq_map_kern 4 47004 NULL
38334 -+__map_single_47020 __map_single 3-4-7-0 47020 NULL
38335 +cx231xx_init_bulk_47024 cx231xx_init_bulk 3-2-4 47024 NULL
38336 +fs_path_len_47060 fs_path_len 0 47060 NULL
38337 -+ufs_new_fragments_47070 ufs_new_fragments 4-3-5 47070 NULL nohasharray
38338 -+ext4_xattr_list_entries_47070 ext4_xattr_list_entries 0-4 47070 &ufs_new_fragments_47070
38339 ++ext4_xattr_list_entries_47070 ext4_xattr_list_entries 0 47070 NULL
38340 +pipeline_dec_packet_in_read_47076 pipeline_dec_packet_in_read 3 47076 NULL
38341 +scsi_deactivate_tcq_47086 scsi_deactivate_tcq 2 47086 NULL
38342 +iwl_dump_nic_event_log_47089 iwl_dump_nic_event_log 0 47089 NULL
38343 +ptlrpc_lprocfs_threads_max_seq_write_47104 ptlrpc_lprocfs_threads_max_seq_write 3 47104 NULL
38344 -+tboot_log_read_47110 tboot_log_read 3 47110 NULL
38345 +mousedev_read_47123 mousedev_read 3 47123 NULL
38346 -+ubi_compare_lebs_47141 ubi_compare_lebs 0 47141 NULL
38347 -+ses_recv_diag_47143 ses_recv_diag 4 47143 NULL nohasharray
38348 -+acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 &ses_recv_diag_47143
38349 ++acpi_ut_initialize_buffer_47143 acpi_ut_initialize_buffer 2 47143 NULL nohasharray
38350 ++ses_recv_diag_47143 ses_recv_diag 4 47143 &acpi_ut_initialize_buffer_47143
38351 +mxms_headerlen_47161 mxms_headerlen 0 47161 NULL
38352 +rs_sta_dbgfs_rate_scale_data_read_47165 rs_sta_dbgfs_rate_scale_data_read 3 47165 NULL
38353 -+alloc_cpumask_var_node_47167 alloc_cpumask_var_node 3 47167 NULL
38354 -+bpf_alloc_binary_47170 bpf_alloc_binary 1 47170 NULL
38355 +rts51x_ms_rw_47171 rts51x_ms_rw 3-4 47171 NULL
38356 -+btrfs_del_inode_ref_47181 btrfs_del_inode_ref 0 47181 NULL
38357 +can_set_system_xattr_47182 can_set_system_xattr 4 47182 NULL
38358 +options_write_47243 options_write 3 47243 NULL
38359 +portcntrs_1_read_47253 portcntrs_1_read 3 47253 NULL
38360 -+da9052_disable_irq_nosync_47260 da9052_disable_irq_nosync 2 47260 NULL
38361 -+p9pdu_readf_47269 p9pdu_readf 0 47269 NULL
38362 -+ablkcipher_next_slow_47274 ablkcipher_next_slow 3-4 47274 NULL
38363 ++ablkcipher_next_slow_47274 ablkcipher_next_slow 4-3 47274 NULL
38364 +gfs2_readpages_47285 gfs2_readpages 4 47285 NULL
38365 +vsnprintf_47291 vsnprintf 0 47291 NULL
38366 ++SYSC_semop_47292 SYSC_semop 3 47292 NULL
38367 +tx_internal_desc_overflow_read_47300 tx_internal_desc_overflow_read 3 47300 NULL
38368 -+iterate_inode_ref_47322 iterate_inode_ref 0 47322 NULL
38369 -+SyS_madvise_47354 SyS_madvise 1-2 47354 NULL
38370 ++nouveau_fb_create__47316 nouveau_fb_create_ 4 47316 NULL
38371 +ieee80211_if_read_dot11MeshHoldingTimeout_47356 ieee80211_if_read_dot11MeshHoldingTimeout 3 47356 NULL
38372 +avc_get_hash_stats_47359 avc_get_hash_stats 0 47359 NULL
38373 -+find_first_zero_bit_le_47369 find_first_zero_bit_le 2 47369 NULL
38374 ++kvm_arch_create_memslot_47364 kvm_arch_create_memslot 3 47364 NULL nohasharray
38375 ++__output_copy_user_47364 __output_copy_user 3 47364 &kvm_arch_create_memslot_47364
38376 +__bio_map_kern_47379 __bio_map_kern 3 47379 NULL
38377 -+nv_rd32_47390 nv_rd32 0 47390 NULL nohasharray
38378 -+trace_options_core_read_47390 trace_options_core_read 3 47390 &nv_rd32_47390
38379 ++trace_options_core_read_47390 trace_options_core_read 3 47390 NULL nohasharray
38380 ++nv_rd32_47390 nv_rd32 0 47390 &trace_options_core_read_47390
38381 +nametbl_list_47391 nametbl_list 2 47391 NULL
38382 +dgrp_net_write_47392 dgrp_net_write 3 47392 NULL
38383 +pfkey_sendmsg_47394 pfkey_sendmsg 4 47394 NULL
38384 -+gfn_to_pfn_prot_47398 gfn_to_pfn_prot 2 47398 NULL
38385 +lbs_wrmac_write_47400 lbs_wrmac_write 3 47400 NULL
38386 -+ocfs2_resv_end_47408 ocfs2_resv_end 0 47408 NULL
38387 +sta_vht_capa_read_47409 sta_vht_capa_read 3 47409 NULL
38388 +crypto_ablkcipher_alignmask_47410 crypto_ablkcipher_alignmask 0 47410 NULL
38389 +lbs_wrrf_write_47418 lbs_wrrf_write 3 47418 NULL
38390 -+vzalloc_47421 vzalloc 1 47421 NULL
38391 -+hash_ipportip4_expire_47426 hash_ipportip4_expire 3 47426 NULL
38392 +posix_acl_from_disk_47445 posix_acl_from_disk 2 47445 NULL
38393 -+numaq_apicid_to_cpu_present_47449 numaq_apicid_to_cpu_present 1 47449 NULL
38394 -+environ_read_47451 environ_read 3 47451 NULL
38395 -+__load_mapping_47460 __load_mapping 2 47460 NULL
38396 -+try_lock_extent_47465 try_lock_extent 0 47465 NULL
38397 +nvme_trans_send_fw_cmd_47479 nvme_trans_send_fw_cmd 4 47479 NULL
38398 -+wb_force_mapping_47485 wb_force_mapping 2 47485 NULL nohasharray
38399 -+newpart_47485 newpart 6-4 47485 &wb_force_mapping_47485
38400 ++newpart_47485 newpart 6-4 47485 NULL
38401 +mcp23s17_read_regs_47491 mcp23s17_read_regs 4 47491 NULL
38402 +core_sys_select_47494 core_sys_select 1 47494 NULL
38403 -+read_block_for_search_47502 read_block_for_search 0 47502 NULL
38404 -+alloc_arraycache_47505 alloc_arraycache 2-1 47505 NULL nohasharray
38405 -+btrfs_init_inode_security_47505 btrfs_init_inode_security 0 47505 &alloc_arraycache_47505
38406 ++alloc_arraycache_47505 alloc_arraycache 2 47505 NULL
38407 +unlink_simple_47506 unlink_simple 3 47506 NULL
38408 +pstore_decompress_47510 pstore_decompress 0 47510 NULL
38409 -+ufs_inode_getblock_47512 ufs_inode_getblock 4 47512 NULL
38410 +__proc_lnet_portal_rotor_47529 __proc_lnet_portal_rotor 5 47529 NULL
38411 -+snd_pcm_resume_47530 snd_pcm_resume 0 47530 NULL
38412 -+vscnprintf_47533 vscnprintf 0-2 47533 NULL nohasharray
38413 -+process_vm_rw_47533 process_vm_rw 3-5 47533 &vscnprintf_47533
38414 ++process_vm_rw_47533 process_vm_rw 3-5 47533 NULL nohasharray
38415 ++vscnprintf_47533 vscnprintf 0-2 47533 &process_vm_rw_47533
38416 +einj_check_trigger_header_47534 einj_check_trigger_header 0 47534 NULL
38417 +ieee80211_if_fmt_min_discovery_timeout_47539 ieee80211_if_fmt_min_discovery_timeout 3 47539 NULL
38418 -+ocfs2_resv_find_window_47557 ocfs2_resv_find_window 3 47557 NULL
38419 +read_ldt_47570 read_ldt 2 47570 NULL
38420 +isku_sysfs_read_last_set_47572 isku_sysfs_read_last_set 6 47572 NULL
38421 -+rpipe_get_idx_47579 rpipe_get_idx 2-0 47579 NULL
38422 -+SYSC_fcntl64_47581 SYSC_fcntl64 3 47581 NULL
38423 -+vendorextnReadSection_47583 vendorextnReadSection 0 47583 NULL
38424 +btrfs_stack_header_bytenr_47589 btrfs_stack_header_bytenr 0 47589 NULL
38425 +ext4_kvzalloc_47605 ext4_kvzalloc 1 47605 NULL
38426 +sctp_ssnmap_new_47608 sctp_ssnmap_new 2-1 47608 NULL
38427 +cache_read_pipefs_47615 cache_read_pipefs 3 47615 NULL
38428 +twl4030_clear_set_47624 twl4030_clear_set 4 47624 NULL
38429 -+irq_set_chip_47638 irq_set_chip 1 47638 NULL
38430 +get_size_47644 get_size 1-2 47644 NULL
38431 -+snd_pcm_info_47699 snd_pcm_info 0 47699 NULL
38432 +packet_recvmsg_47700 packet_recvmsg 4 47700 NULL nohasharray
38433 +ipath_format_hwmsg_47700 ipath_format_hwmsg 2 47700 &packet_recvmsg_47700
38434 -+global_rt_runtime_47712 global_rt_runtime 0 47712 NULL
38435 +save_microcode_47717 save_microcode 3 47717 NULL
38436 -+bits_to_user_47733 bits_to_user 3-2 47733 NULL
38437 ++bits_to_user_47733 bits_to_user 2-3 47733 NULL
38438 +carl9170_debugfs_read_47738 carl9170_debugfs_read 3 47738 NULL
38439 +ir_prepare_write_buffer_47747 ir_prepare_write_buffer 3 47747 NULL
38440 +mvumi_alloc_mem_resource_47750 mvumi_alloc_mem_resource 3 47750 NULL
38441 -+ext3_find_near_47752 ext3_find_near 0 47752 NULL
38442 +alloc_sched_domains_47756 alloc_sched_domains 1 47756 NULL
38443 +uwb_ie_dump_hex_47774 uwb_ie_dump_hex 4 47774 NULL
38444 +SyS_setgroups16_47780 SyS_setgroups16 1 47780 NULL
38445 @@ -109790,60 +110787,45 @@ index 0000000..3d6cc0f
38446 +lov_packmd_47810 lov_packmd 0 47810 NULL
38447 +pinconf_dbg_config_write_47835 pinconf_dbg_config_write 3 47835 NULL
38448 +KEY_SIZE_47855 KEY_SIZE 0 47855 NULL
38449 -+ubifs_unpack_nnode_47866 ubifs_unpack_nnode 0 47866 NULL
38450 +vhci_read_47878 vhci_read 3 47878 NULL
38451 -+ubi_wl_put_peb_47886 ubi_wl_put_peb 0 47886 NULL
38452 +keyctl_instantiate_key_common_47889 keyctl_instantiate_key_common 4 47889 NULL
38453 -+load_mapping_47904 load_mapping 3 47904 NULL
38454 -+btrfs_duplicate_item_47910 btrfs_duplicate_item 0 47910 NULL
38455 +cfs_percpt_alloc_47918 cfs_percpt_alloc 2 47918 NULL
38456 +comedi_write_47926 comedi_write 3 47926 NULL
38457 +nvme_trans_get_blk_desc_len_47946 nvme_trans_get_blk_desc_len 0-2 47946 NULL
38458 -+lp8788_irq_map_47964 lp8788_irq_map 2 47964 NULL
38459 +gether_get_ifname_47972 gether_get_ifname 3 47972 NULL
38460 -+iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 NULL nohasharray
38461 -+mempool_resize_47983 mempool_resize 2 47983 &iwl_dbgfs_ucode_tracing_read_47983
38462 ++mempool_resize_47983 mempool_resize 2 47983 NULL nohasharray
38463 ++iwl_dbgfs_ucode_tracing_read_47983 iwl_dbgfs_ucode_tracing_read 3 47983 &mempool_resize_47983
38464 +dbg_port_buf_47990 dbg_port_buf 2 47990 NULL
38465 +ib_umad_write_47993 ib_umad_write 3 47993 NULL
38466 -+ocfs2_find_refcount_split_pos_48001 ocfs2_find_refcount_split_pos 0 48001 NULL
38467 +lustre_cfg_len_48002 lustre_cfg_len 0 48002 NULL
38468 +gdm_tty_recv_complete_48011 gdm_tty_recv_complete 2 48011 NULL
38469 +ffs_epfile_write_48014 ffs_epfile_write 3 48014 NULL
38470 +bio_integrity_set_tag_48035 bio_integrity_set_tag 3 48035 NULL
38471 +pppoe_sendmsg_48039 pppoe_sendmsg 4 48039 NULL
38472 +SYSC_writev_48040 SYSC_writev 3 48040 NULL
38473 -+btrfs_reserve_extent_48044 btrfs_reserve_extent 6 48044 NULL
38474 +wpan_phy_alloc_48056 wpan_phy_alloc 1 48056 NULL
38475 -+ocfs2_change_refcount_rec_48059 ocfs2_change_refcount_rec 0 48059 NULL
38476 +posix_acl_alloc_48063 posix_acl_alloc 1 48063 NULL
38477 +palmas_bulk_write_48068 palmas_bulk_write 2-3-5 48068 NULL
38478 +disc_write_48070 disc_write 3 48070 NULL
38479 +mmc_alloc_host_48097 mmc_alloc_host 1 48097 NULL
38480 -+skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 4-2-5-0 48102 NULL
38481 -+radio_isa_common_probe_48107 radio_isa_common_probe 3 48107 NULL
38482 ++skb_copy_datagram_const_iovec_48102 skb_copy_datagram_const_iovec 4-2-5 48102 NULL
38483 +vmw_framebuffer_surface_dirty_48132 vmw_framebuffer_surface_dirty 6 48132 NULL
38484 +set_discoverable_48141 set_discoverable 4 48141 NULL
38485 +dn_fib_count_nhs_48145 dn_fib_count_nhs 0 48145 NULL
38486 -+get_cur_inode_state_48149 get_cur_inode_state 0 48149 NULL
38487 -+bitmap_onto_48152 bitmap_onto 4 48152 NULL nohasharray
38488 -+_add_to_r4w_48152 _add_to_r4w 4 48152 &bitmap_onto_48152
38489 ++_add_to_r4w_48152 _add_to_r4w 4 48152 NULL
38490 +isr_dma1_done_read_48159 isr_dma1_done_read 3 48159 NULL
38491 +c4iw_id_table_alloc_48163 c4iw_id_table_alloc 3 48163 NULL
38492 -+ocfs2_find_next_zero_bit_unaligned_48170 ocfs2_find_next_zero_bit_unaligned 2-3 48170 NULL nohasharray
38493 -+rbd_obj_method_sync_48170 rbd_obj_method_sync 8 48170 &ocfs2_find_next_zero_bit_unaligned_48170
38494 ++rbd_obj_method_sync_48170 rbd_obj_method_sync 8 48170 NULL
38495 +alloc_cc770dev_48186 alloc_cc770dev 1 48186 NULL
38496 -+init_ipath_48187 init_ipath 1 48187 NULL
38497 +brcmf_sdio_chip_cm3_exitdl_48192 brcmf_sdio_chip_cm3_exitdl 4 48192 NULL
38498 +cfg80211_process_deauth_48200 cfg80211_process_deauth 3 48200 NULL
38499 +ext4_index_trans_blocks_48205 ext4_index_trans_blocks 0-2 48205 NULL
38500 +snd_seq_dump_var_event_48209 snd_seq_dump_var_event 0 48209 NULL
38501 +ll_direct_IO_26_48216 ll_direct_IO_26 4 48216 NULL
38502 -+is_block_in_journal_48223 is_block_in_journal 3 48223 NULL
38503 +uv_blade_nr_possible_cpus_48226 uv_blade_nr_possible_cpus 0 48226 NULL
38504 +nilfs_readpages_48229 nilfs_readpages 4 48229 NULL
38505 +read_file_recv_48232 read_file_recv 3 48232 NULL
38506 -+unaccount_shadowed_48233 unaccount_shadowed 2 48233 NULL nohasharray
38507 -+blk_rq_pos_48233 blk_rq_pos 0 48233 &unaccount_shadowed_48233
38508 ++unaccount_shadowed_48233 unaccount_shadowed 2 48233 NULL
38509 +nouveau_i2c_port_create__48240 nouveau_i2c_port_create_ 7 48240 NULL
38510 +nfsctl_transaction_read_48250 nfsctl_transaction_read 3 48250 NULL
38511 +batadv_socket_read_48257 batadv_socket_read 3 48257 NULL
38512 @@ -109855,40 +110837,31 @@ index 0000000..3d6cc0f
38513 +hash_setkey_48310 hash_setkey 3 48310 NULL
38514 +audio_set_intf_req_48319 audio_set_intf_req 0 48319 NULL
38515 +kvm_mmu_pte_write_48340 kvm_mmu_pte_write 2 48340 NULL
38516 -+__alloc_fd_48356 __alloc_fd 2 48356 NULL
38517 +skb_add_data_48363 skb_add_data 3 48363 NULL
38518 +tx_frag_init_called_read_48377 tx_frag_init_called_read 3 48377 NULL
38519 +lbs_debugfs_write_48413 lbs_debugfs_write 3 48413 NULL
38520 +uhid_event_from_user_48417 uhid_event_from_user 2 48417 NULL
38521 +div64_u64_rem_48418 div64_u64_rem 0-1-2 48418 NULL
38522 -+snd_power_wait_48422 snd_power_wait 0 48422 NULL
38523 +pwr_tx_without_ps_read_48423 pwr_tx_without_ps_read 3 48423 NULL
38524 -+hugepage_madvise_48435 hugepage_madvise 0 48435 NULL
38525 +print_filtered_48442 print_filtered 2-0 48442 NULL
38526 +tun_recvmsg_48463 tun_recvmsg 4 48463 NULL
38527 +compat_SyS_preadv64_48469 compat_SyS_preadv64 3 48469 NULL
38528 +ipath_format_hwerrors_48487 ipath_format_hwerrors 5 48487 NULL
38529 -+init_section_page_cgroup_48489 init_section_page_cgroup 2 48489 NULL nohasharray
38530 -+r8712_usbctrl_vendorreq_48489 r8712_usbctrl_vendorreq 6 48489 &init_section_page_cgroup_48489
38531 ++r8712_usbctrl_vendorreq_48489 r8712_usbctrl_vendorreq 6 48489 NULL
38532 +ocfs2_refcount_cow_48495 ocfs2_refcount_cow 3 48495 NULL
38533 +send_control_msg_48498 send_control_msg 6 48498 NULL
38534 -+mlx4_en_create_tx_ring_48501 mlx4_en_create_tx_ring 4 48501 NULL
38535 +count_masked_bytes_48507 count_masked_bytes 0-1 48507 NULL
38536 +diva_os_copy_to_user_48508 diva_os_copy_to_user 4 48508 NULL
38537 +brcmf_sdio_trap_info_48510 brcmf_sdio_trap_info 4 48510 NULL
38538 +phantom_get_free_48514 phantom_get_free 0 48514 NULL
38539 +drbd_bm_capacity_48530 drbd_bm_capacity 0 48530 NULL
38540 -+ext3_splice_branch_48531 ext3_splice_branch 6 48531 NULL
38541 +raid10_size_48571 raid10_size 0-2-3 48571 NULL
38542 +llog_data_len_48607 llog_data_len 1 48607 NULL
38543 -+ufs_dtogd_48616 ufs_dtogd 0-2 48616 NULL
38544 +do_ip_vs_set_ctl_48641 do_ip_vs_set_ctl 4 48641 NULL
38545 +ll_rw_extents_stats_pp_seq_write_48651 ll_rw_extents_stats_pp_seq_write 3 48651 NULL
38546 +mtd_read_48655 mtd_read 0 48655 NULL
38547 +aes_encrypt_packets_read_48666 aes_encrypt_packets_read 3 48666 NULL
38548 -+ore_get_rw_state_48667 ore_get_rw_state 5-4 48667 NULL
38549 -+sm501_create_subdev_48668 sm501_create_subdev 4-3 48668 NULL
38550 -+ubi_eba_unmap_leb_48671 ubi_eba_unmap_leb 0 48671 NULL
38551 ++sm501_create_subdev_48668 sm501_create_subdev 3-4 48668 NULL
38552 +hysdn_log_write_48694 hysdn_log_write 3 48694 NULL
38553 +altera_drscan_48698 altera_drscan 2 48698 NULL
38554 +kvm_set_irq_routing_48704 kvm_set_irq_routing 3 48704 NULL
38555 @@ -109897,128 +110870,95 @@ index 0000000..3d6cc0f
38556 +SyS_lgetxattr_48719 SyS_lgetxattr 4 48719 NULL
38557 +ath6kl_usb_bmi_read_48745 ath6kl_usb_bmi_read 3 48745 NULL
38558 +ath6kl_regwrite_read_48747 ath6kl_regwrite_read 3 48747 NULL
38559 -+event_buffer_read_48772 event_buffer_read 3 48772 NULL nohasharray
38560 -+l2cap_segment_sdu_48772 l2cap_segment_sdu 4 48772 &event_buffer_read_48772
38561 ++l2cap_segment_sdu_48772 l2cap_segment_sdu 4 48772 NULL
38562 +gfs2_direct_IO_48774 gfs2_direct_IO 4 48774 NULL
38563 +il3945_sta_dbgfs_stats_table_read_48802 il3945_sta_dbgfs_stats_table_read 3 48802 NULL
38564 +twa_change_queue_depth_48808 twa_change_queue_depth 2 48808 NULL
38565 -+register_ftrace_profiler_48816 register_ftrace_profiler 0 48816 NULL
38566 +atomic_counters_read_48827 atomic_counters_read 3 48827 NULL
38567 +azx_get_position_48841 azx_get_position 0 48841 NULL
38568 -+vc_do_resize_48842 vc_do_resize 4-3 48842 NULL
38569 ++vc_do_resize_48842 vc_do_resize 3-4 48842 NULL
38570 +comedi_buf_write_alloc_48846 comedi_buf_write_alloc 0-2 48846 NULL
38571 +suspend_dtim_interval_write_48854 suspend_dtim_interval_write 3 48854 NULL
38572 -+viafb_dvp1_proc_write_48864 viafb_dvp1_proc_write 3 48864 NULL nohasharray
38573 -+C_SYSC_pwritev64_48864 C_SYSC_pwritev64 3 48864 &viafb_dvp1_proc_write_48864
38574 -+ide_port_alloc_devices_48866 ide_port_alloc_devices 2 48866 NULL
38575 ++sptlrpc_cli_alloc_reqbuf_48855 sptlrpc_cli_alloc_reqbuf 0 48855 NULL
38576 ++C_SYSC_pwritev64_48864 C_SYSC_pwritev64 3 48864 NULL nohasharray
38577 ++viafb_dvp1_proc_write_48864 viafb_dvp1_proc_write 3 48864 &C_SYSC_pwritev64_48864
38578 +__ffs_ep0_read_events_48868 __ffs_ep0_read_events 3 48868 NULL
38579 -+ext2_alloc_branch_48889 ext2_alloc_branch 4 48889 NULL
38580 +crypto_cipher_ctxsize_48890 crypto_cipher_ctxsize 0 48890 NULL
38581 +joydev_handle_JSIOCSAXMAP_48898 joydev_handle_JSIOCSAXMAP 3 48898 NULL
38582 +xdi_copy_to_user_48900 xdi_copy_to_user 4 48900 NULL
38583 +msg_hdr_sz_48908 msg_hdr_sz 0 48908 NULL
38584 -+snd_pcm_update_hw_ptr_48925 snd_pcm_update_hw_ptr 0 48925 NULL
38585 +sep_crypto_dma_48937 sep_crypto_dma 0 48937 NULL
38586 +si5351_write_parameters_48940 si5351_write_parameters 2 48940 NULL
38587 +event_heart_beat_read_48961 event_heart_beat_read 3 48961 NULL
38588 +nand_ecc_test_run_48966 nand_ecc_test_run 1 48966 NULL
38589 +vmci_handle_arr_create_48971 vmci_handle_arr_create 1 48971 NULL
38590 -+batadv_orig_hash_del_if_48972 batadv_orig_hash_del_if 2 48972 NULL
38591 -+btrfs_delete_delayed_insertion_item_48981 btrfs_delete_delayed_insertion_item 0 48981 NULL
38592 +rds_rm_size_48996 rds_rm_size 0-2 48996 NULL
38593 +sel_write_enforce_48998 sel_write_enforce 3 48998 NULL
38594 +null_alloc_rs_49019 null_alloc_rs 2 49019 NULL
38595 +filemap_check_errors_49022 filemap_check_errors 0 49022 NULL
38596 +aic_inb_49023 aic_inb 0 49023 NULL
38597 +transient_status_49027 transient_status 4 49027 NULL
38598 -+iwl_mvm_power_legacy_dbgfs_read_49038 iwl_mvm_power_legacy_dbgfs_read 4 49038 NULL nohasharray
38599 -+ipath_reg_user_mr_49038 ipath_reg_user_mr 2-3 49038 &iwl_mvm_power_legacy_dbgfs_read_49038
38600 ++iwl_mvm_power_legacy_dbgfs_read_49038 iwl_mvm_power_legacy_dbgfs_read 4 49038 NULL
38601 +aic7xxx_rem_scb_from_disc_list_49041 aic7xxx_rem_scb_from_disc_list 0 49041 NULL
38602 -+setup_msi_irq_49052 setup_msi_irq 3-4 49052 NULL
38603 -+ubi_read_49061 ubi_read 0 49061 NULL
38604 -+sparse_early_nid_49094 sparse_early_nid 0 49094 NULL nohasharray
38605 -+scsi_register_49094 scsi_register 2 49094 &sparse_early_nid_49094
38606 -+paging64_walk_addr_nested_49100 paging64_walk_addr_nested 3 49100 NULL
38607 ++scsi_register_49094 scsi_register 2 49094 NULL
38608 +compat_do_readv_writev_49102 compat_do_readv_writev 4 49102 NULL
38609 +xfrm_replay_state_esn_len_49119 xfrm_replay_state_esn_len 0 49119 NULL
38610 +ll_max_cached_mb_seq_write_49122 ll_max_cached_mb_seq_write 3 49122 NULL
38611 -+qib_user_sdma_pin_pages_49136 qib_user_sdma_pin_pages 4-5-6 49136 NULL nohasharray
38612 -+pt_read_49136 pt_read 3 49136 &qib_user_sdma_pin_pages_49136
38613 -+read_file_49137 read_file 4 49137 NULL
38614 ++pt_read_49136 pt_read 3 49136 NULL
38615 +ipwireless_tty_received_49154 ipwireless_tty_received 3 49154 NULL
38616 +f2fs_acl_count_49155 f2fs_acl_count 0-1 49155 NULL
38617 +ipw_queue_tx_init_49161 ipw_queue_tx_init 3 49161 NULL
38618 -+ext4_free_clusters_after_init_49174 ext4_free_clusters_after_init 2 49174 NULL
38619 +__jfs_setxattr_49175 __jfs_setxattr 5 49175 NULL
38620 +ath6kl_bgscan_int_write_49178 ath6kl_bgscan_int_write 3 49178 NULL
38621 +dvb_dvr_ioctl_49182 dvb_dvr_ioctl 2 49182 NULL
38622 -+print_queue_49191 print_queue 0 49191 NULL
38623 ++print_queue_49191 print_queue 4-0 49191 NULL
38624 +root_nfs_cat_49192 root_nfs_cat 3 49192 NULL
38625 +iwl_dbgfs_ucode_general_stats_read_49199 iwl_dbgfs_ucode_general_stats_read 3 49199 NULL
38626 +il4965_rs_sta_dbgfs_stats_table_read_49206 il4965_rs_sta_dbgfs_stats_table_read 3 49206 NULL
38627 +do_jffs2_getxattr_49210 do_jffs2_getxattr 0 49210 NULL
38628 -+resp_write_same_49217 resp_write_same 2 49217 NULL
38629 +nouveau_therm_create__49228 nouveau_therm_create_ 4 49228 NULL
38630 +hugetlb_cgroup_read_49259 hugetlb_cgroup_read 5 49259 NULL
38631 +ieee80211_if_read_rssi_threshold_49260 ieee80211_if_read_rssi_threshold 3 49260 NULL
38632 +isku_sysfs_read_keys_media_49268 isku_sysfs_read_keys_media 6 49268 NULL
38633 +ptlrpc_check_set_49277 ptlrpc_check_set 0 49277 NULL
38634 +rx_filter_beacon_filter_read_49279 rx_filter_beacon_filter_read 3 49279 NULL
38635 -+__ext4_ext_dirty_49284 __ext4_ext_dirty 0 49284 NULL
38636 -+ext4_xattr_ibody_list_49287 ext4_xattr_ibody_list 3-0 49287 NULL
38637 +viafb_dfph_proc_write_49288 viafb_dfph_proc_write 3 49288 NULL
38638 +uio_read_49300 uio_read 3 49300 NULL
38639 -+ocfs2_resmap_find_free_bits_49301 ocfs2_resmap_find_free_bits 3 49301 NULL
38640 +isku_sysfs_read_keys_macro_49312 isku_sysfs_read_keys_macro 6 49312 NULL
38641 -+update_ref_for_cow_49313 update_ref_for_cow 0 49313 NULL
38642 +SYSC_mincore_49319 SYSC_mincore 2-1 49319 NULL
38643 +fwtty_port_handler_49327 fwtty_port_handler 9 49327 NULL
38644 +srpt_alloc_ioctx_ring_49330 srpt_alloc_ioctx_ring 2-4-3 49330 NULL
38645 -+__intel_map_single_49338 __intel_map_single 3-2 49338 NULL
38646 -+intel_ring_invalidate_all_caches_49346 intel_ring_invalidate_all_caches 0 49346 NULL
38647 +joydev_ioctl_common_49359 joydev_ioctl_common 2 49359 NULL
38648 -+ocfs2_remove_btree_range_49370 ocfs2_remove_btree_range 4-3-5 49370 NULL
38649 +iscsi_alloc_session_49390 iscsi_alloc_session 3 49390 NULL
38650 +ext4_ext_index_trans_blocks_49396 ext4_ext_index_trans_blocks 0 49396 NULL
38651 +rx_streaming_always_read_49401 rx_streaming_always_read 3 49401 NULL
38652 +tnode_alloc_49407 tnode_alloc 1 49407 NULL
38653 +samples_to_bytes_49426 samples_to_bytes 0-2 49426 NULL
38654 -+ubi_add_to_av_49432 ubi_add_to_av 0 49432 NULL nohasharray
38655 -+md_domain_init_49432 md_domain_init 2 49432 &ubi_add_to_av_49432
38656 +compat_do_msg_fill_49440 compat_do_msg_fill 3 49440 NULL
38657 -+get_lru_size_49441 get_lru_size 0 49441 NULL
38658 -+i915_gem_object_set_to_gtt_domain_49450 i915_gem_object_set_to_gtt_domain 0 49450 NULL
38659 -+ocfs2_merge_rec_left_49455 ocfs2_merge_rec_left 0 49455 NULL
38660 +__hfsplus_getxattr_49460 __hfsplus_getxattr 0 49460 NULL
38661 +agp_3_5_isochronous_node_enable_49465 agp_3_5_isochronous_node_enable 3 49465 NULL
38662 +xfs_iformat_local_49472 xfs_iformat_local 4 49472 NULL
38663 -+savu_sysfs_read_49473 savu_sysfs_read 6 49473 NULL
38664 +isr_decrypt_done_read_49490 isr_decrypt_done_read 3 49490 NULL
38665 ++iwl_dbgfs_disable_power_off_read_49517 iwl_dbgfs_disable_power_off_read 3 49517 NULL
38666 +SyS_listxattr_49519 SyS_listxattr 3 49519 NULL
38667 +emulator_write_phys_49520 emulator_write_phys 2-4 49520 NULL
38668 -+btrfs_add_free_space_49524 btrfs_add_free_space 0 49524 NULL
38669 +smk_write_access_49561 smk_write_access 3 49561 NULL
38670 -+ntfs_malloc_nofs_49572 ntfs_malloc_nofs 1 49572 NULL
38671 +alloc_chunk_49575 alloc_chunk 1 49575 NULL
38672 +sctp_setsockopt_default_send_param_49578 sctp_setsockopt_default_send_param 3 49578 NULL
38673 ++ptlrpc_request_pack_49581 ptlrpc_request_pack 0 49581 NULL
38674 +readfifo_49583 readfifo 1 49583 NULL
38675 +tap_write_49595 tap_write 3 49595 NULL
38676 -+create_task_io_context_49601 create_task_io_context 3 49601 NULL
38677 +isr_wakeups_read_49607 isr_wakeups_read 3 49607 NULL
38678 +btrfs_mksubvol_49616 btrfs_mksubvol 3 49616 NULL
38679 +heap_init_49617 heap_init 2 49617 NULL
38680 +smk_write_doi_49621 smk_write_doi 3 49621 NULL
38681 +port_fops_read_49626 port_fops_read 3 49626 NULL
38682 +btrfsic_cmp_log_and_dev_bytenr_49628 btrfsic_cmp_log_and_dev_bytenr 2 49628 NULL
38683 -+__swab32p_49657 __swab32p 0 49657 NULL
38684 -+ubi_wl_flush_49682 ubi_wl_flush 0 49682 NULL
38685 -+aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 3-4 49683 NULL
38686 ++aa_simple_write_to_buffer_49683 aa_simple_write_to_buffer 4-3 49683 NULL
38687 +SyS_pwritev_49688 SyS_pwritev 3 49688 NULL
38688 -+__setup_irq_49696 __setup_irq 0 49696 NULL
38689 ++__copy_from_user_nocheck_49699 __copy_from_user_nocheck 0-3 49699 NULL
38690 +cx2341x_ctrl_new_menu_49700 cx2341x_ctrl_new_menu 3 49700 NULL
38691 -+do_splice_to_49714 do_splice_to 4 49714 NULL
38692 +write_pool_49718 write_pool 3 49718 NULL
38693 -+dm_thin_insert_block_49720 dm_thin_insert_block 2-3 49720 NULL
38694 +kvm_mmu_notifier_invalidate_page_49723 kvm_mmu_notifier_invalidate_page 3 49723 NULL
38695 +sep_create_dcb_dmatables_context_kernel_49728 sep_create_dcb_dmatables_context_kernel 6 49728 NULL
38696 +zd_usb_iowrite16v_49744 zd_usb_iowrite16v 3 49744 NULL
38697 @@ -110031,150 +110971,98 @@ index 0000000..3d6cc0f
38698 +nfs4_acl_new_49806 nfs4_acl_new 1 49806 NULL
38699 +ntfs_copy_from_user_iovec_49829 ntfs_copy_from_user_iovec 3-6-0 49829 NULL
38700 +add_uuid_49831 add_uuid 4 49831 NULL
38701 -+ath6kl_fwlog_block_read_49836 ath6kl_fwlog_block_read 3 49836 NULL
38702 +iraw_loop_49842 iraw_loop 0-1 49842 NULL
38703 +twl4030_write_49846 twl4030_write 2 49846 NULL
38704 +scsi_dispatch_cmd_entry_49848 scsi_dispatch_cmd_entry 3 49848 NULL
38705 +timeradd_entry_49850 timeradd_entry 3 49850 NULL
38706 -+ubifs_destroy_tnc_subtree_49853 ubifs_destroy_tnc_subtree 0 49853 NULL
38707 -+btrfs_subvolume_reserve_metadata_49859 btrfs_subvolume_reserve_metadata 3 49859 NULL
38708 +fiemap_count_to_size_49869 fiemap_count_to_size 0-1 49869 NULL
38709 +sctp_setsockopt_bindx_49870 sctp_setsockopt_bindx 3 49870 NULL
38710 -+snd_mask_eq_49889 snd_mask_eq 0 49889 NULL
38711 +ceph_get_caps_49890 ceph_get_caps 0 49890 NULL
38712 +osc_brw_49896 osc_brw 4 49896 NULL
38713 -+__cow_file_range_49901 __cow_file_range 5 49901 NULL
38714 -+__copy_from_user_inatomic_nocache_49921 __copy_from_user_inatomic_nocache 3 49921 NULL
38715 +config_ep_by_speed_49939 config_ep_by_speed 0 49939 NULL
38716 -+batadv_tt_realloc_packet_buff_49960 batadv_tt_realloc_packet_buff 4 49960 NULL
38717 +ieee80211_if_fmt_dtim_count_49987 ieee80211_if_fmt_dtim_count 3 49987 NULL
38718 +drm_buffer_copy_from_user_49990 drm_buffer_copy_from_user 3 49990 NULL
38719 -+sta2x11_swiotlb_alloc_coherent_49994 sta2x11_swiotlb_alloc_coherent 2 49994 NULL
38720 +l2cap_chan_send_49995 l2cap_chan_send 3 49995 NULL
38721 -+__module_alloc_50004 __module_alloc 1 50004 NULL
38722 +dn_mss_from_pmtu_50011 dn_mss_from_pmtu 0-2 50011 NULL
38723 -+ptrace_readdata_50020 ptrace_readdata 2-4 50020 NULL
38724 +isdn_read_50021 isdn_read 3 50021 NULL
38725 +mdc_rename_pack_50023 mdc_rename_pack 4-6 50023 NULL
38726 -+qp_alloc_queue_50028 qp_alloc_queue 1 50028 NULL
38727 +ioread8_50049 ioread8 0 50049 NULL
38728 +fuse_conn_max_background_write_50061 fuse_conn_max_background_write 3 50061 NULL
38729 -+vmw_surface_destroy_size_50072 vmw_surface_destroy_size 0 50072 NULL
38730 -+arch_setup_ht_irq_50073 arch_setup_ht_irq 1 50073 NULL
38731 +__kfifo_dma_in_prepare_50081 __kfifo_dma_in_prepare 4 50081 NULL
38732 +dev_set_alias_50084 dev_set_alias 3 50084 NULL
38733 +libcfs_ioctl_popdata_50087 libcfs_ioctl_popdata 3 50087 NULL
38734 +sock_setsockopt_50088 sock_setsockopt 5 50088 NULL
38735 +altera_swap_dr_50090 altera_swap_dr 2 50090 NULL
38736 +android_set_cntry_50100 android_set_cntry 0 50100 NULL
38737 -+process_recorded_refs_50110 process_recorded_refs 0 50110 NULL
38738 +read_file_slot_50111 read_file_slot 3 50111 NULL
38739 -+xfs_dir3_sf_entsize_50112 xfs_dir3_sf_entsize 0-3 50112 NULL
38740 +rx_streaming_interval_write_50120 rx_streaming_interval_write 3 50120 NULL
38741 -+ocfs2_search_one_group_50125 ocfs2_search_one_group 0 50125 NULL nohasharray
38742 -+jfs_direct_IO_50125 jfs_direct_IO 4 50125 &ocfs2_search_one_group_50125
38743 ++jfs_direct_IO_50125 jfs_direct_IO 4 50125 NULL
38744 +SYSC_preadv_50134 SYSC_preadv 3 50134 NULL
38745 +copy_items_50140 copy_items 6 50140 NULL
38746 +tx_frag_need_fragmentation_read_50153 tx_frag_need_fragmentation_read 3 50153 NULL
38747 -+reiserfs_bmap_count_50160 reiserfs_bmap_count 0 50160 NULL
38748 -+kmalloc_node_50163 kmalloc_node 1-3 50163 NULL
38749 ++kmalloc_node_50163 kmalloc_node 1 50163 NULL
38750 +rx_filter_ibss_filter_read_50167 rx_filter_ibss_filter_read 3 50167 NULL
38751 +ahd_probe_stack_size_50168 ahd_probe_stack_size 0 50168 NULL
38752 +odev_update_50169 odev_update 2 50169 NULL
38753 -+ieee80211_if_fmt_dot11MeshHWMPRannInterval_50172 ieee80211_if_fmt_dot11MeshHWMPRannInterval 3 50172 NULL nohasharray
38754 -+xfs_get_blocks_direct_50172 xfs_get_blocks_direct 2 50172 &ieee80211_if_fmt_dot11MeshHWMPRannInterval_50172 nohasharray
38755 -+ubi_resize_volume_50172 ubi_resize_volume 2 50172 &xfs_get_blocks_direct_50172
38756 -+ext3_do_update_inode_50178 ext3_do_update_inode 0 50178 NULL
38757 -+cfg80211_roamed_bss_50198 cfg80211_roamed_bss 6-4 50198 NULL
38758 ++ubi_resize_volume_50172 ubi_resize_volume 2 50172 NULL nohasharray
38759 ++ieee80211_if_fmt_dot11MeshHWMPRannInterval_50172 ieee80211_if_fmt_dot11MeshHWMPRannInterval 3 50172 &ubi_resize_volume_50172
38760 ++cfg80211_roamed_bss_50198 cfg80211_roamed_bss 4-6 50198 NULL
38761 +cyttsp4_probe_50201 cyttsp4_probe 4 50201 NULL
38762 +rx_rx_timeout_wa_read_50204 rx_rx_timeout_wa_read 3 50204 NULL
38763 -+compat_SyS_sendfile_50206 compat_SyS_sendfile 4 50206 NULL nohasharray
38764 -+mthca_buddy_init_50206 mthca_buddy_init 2 50206 &compat_SyS_sendfile_50206
38765 ++mthca_buddy_init_50206 mthca_buddy_init 2 50206 NULL
38766 +l2cap_sock_setsockopt_50207 l2cap_sock_setsockopt 5 50207 NULL
38767 +mon_bin_compat_ioctl_50234 mon_bin_compat_ioctl 3 50234 NULL
38768 +sg_kmalloc_50240 sg_kmalloc 1 50240 NULL
38769 -+vma_dup_policy_50269 vma_dup_policy 0 50269 NULL
38770 +rxrpc_setsockopt_50286 rxrpc_setsockopt 5 50286 NULL
38771 +soc_codec_reg_show_50302 soc_codec_reg_show 0-3 50302 NULL
38772 +SYSC_flistxattr_50307 SYSC_flistxattr 3 50307 NULL
38773 +SYSC_sched_setaffinity_50310 SYSC_sched_setaffinity 2 50310 NULL
38774 -+iterate_irefs_50313 iterate_irefs 0 50313 NULL
38775 +soc_camera_read_50319 soc_camera_read 3 50319 NULL
38776 +do_launder_page_50329 do_launder_page 0 50329 NULL
38777 +nouveau_engine_create__50331 nouveau_engine_create_ 7 50331 NULL
38778 +lpfc_idiag_pcicfg_read_50334 lpfc_idiag_pcicfg_read 3 50334 NULL
38779 -+ocfs2_block_to_cluster_group_50337 ocfs2_block_to_cluster_group 2 50337 NULL nohasharray
38780 -+snd_pcm_lib_writev_50337 snd_pcm_lib_writev 0-3 50337 &ocfs2_block_to_cluster_group_50337
38781 ++snd_pcm_lib_writev_50337 snd_pcm_lib_writev 0-3 50337 NULL
38782 +tpm_read_50344 tpm_read 3 50344 NULL
38783 -+sched_clock_remote_50347 sched_clock_remote 0 50347 NULL
38784 -+efx_nic_update_stats_50352 efx_nic_update_stats 2 50352 NULL
38785 -+kvm_arch_create_memslot_50354 kvm_arch_create_memslot 2 50354 NULL
38786 +isdn_ppp_read_50356 isdn_ppp_read 4 50356 NULL
38787 -+ocfs2_figure_insert_type_50362 ocfs2_figure_insert_type 0 50362 NULL nohasharray
38788 -+iwl_dbgfs_echo_test_write_50362 iwl_dbgfs_echo_test_write 3 50362 &ocfs2_figure_insert_type_50362
38789 ++iwl_dbgfs_echo_test_write_50362 iwl_dbgfs_echo_test_write 3 50362 NULL
38790 +xfrm_send_migrate_50365 xfrm_send_migrate 5 50365 NULL
38791 +roccat_common2_receive_50369 roccat_common2_receive 4 50369 NULL
38792 +sl_alloc_bufs_50380 sl_alloc_bufs 2 50380 NULL
38793 -+hash_ip6_expire_50390 hash_ip6_expire 3 50390 NULL
38794 -+snd_mask_refine_last_50406 snd_mask_refine_last 0 50406 NULL
38795 +l2tp_ip_sendmsg_50411 l2tp_ip_sendmsg 4 50411 NULL
38796 +iscsi_create_conn_50425 iscsi_create_conn 2 50425 NULL
38797 +validate_acl_mac_addrs_50429 validate_acl_mac_addrs 0 50429 NULL
38798 -+btrfs_error_discard_extent_50444 btrfs_error_discard_extent 2 50444 NULL nohasharray
38799 -+ecryptfs_write_lower_page_segment_50444 ecryptfs_write_lower_page_segment 4 50444 &btrfs_error_discard_extent_50444
38800 -+calc_csum_metadata_size_50448 calc_csum_metadata_size 0 50448 NULL
38801 ++btrfs_error_discard_extent_50444 btrfs_error_discard_extent 2 50444 NULL
38802 +pgctrl_write_50453 pgctrl_write 3 50453 NULL
38803 +device_create_sys_dev_entry_50458 device_create_sys_dev_entry 0 50458 NULL
38804 -+force_mapping_50464 force_mapping 2 50464 NULL
38805 +cfs_size_round_50472 cfs_size_round 0-1 50472 NULL
38806 +cdrom_read_cdda_50478 cdrom_read_cdda 4 50478 NULL
38807 +mei_io_cb_alloc_req_buf_50493 mei_io_cb_alloc_req_buf 2 50493 NULL
38808 +pwr_rcvd_awake_beacons_read_50505 pwr_rcvd_awake_beacons_read 3 50505 NULL
38809 -+__ctzdi2_50536 __ctzdi2 1 50536 NULL
38810 +ath6kl_set_ap_probe_resp_ies_50539 ath6kl_set_ap_probe_resp_ies 3 50539 NULL
38811 +usbat_flash_write_data_50553 usbat_flash_write_data 4 50553 NULL
38812 -+self_check_peb_vid_hdr_50563 self_check_peb_vid_hdr 0 50563 NULL nohasharray
38813 -+ttm_agp_tt_create_50563 ttm_agp_tt_create 3 50563 &self_check_peb_vid_hdr_50563
38814 +fat_readpages_50582 fat_readpages 4 50582 NULL
38815 +iwl_dbgfs_missed_beacon_read_50584 iwl_dbgfs_missed_beacon_read 3 50584 NULL
38816 -+build_inv_iommu_pages_50589 build_inv_iommu_pages 2-3 50589 NULL
38817 +xillybus_write_50605 xillybus_write 3 50605 NULL
38818 +rx_rx_checksum_result_read_50617 rx_rx_checksum_result_read 3 50617 NULL
38819 -+ocfs2_split_extent_50618 ocfs2_split_extent 0 50618 NULL
38820 +sparse_early_usemaps_alloc_node_50623 sparse_early_usemaps_alloc_node 4 50623 NULL
38821 -+__ffs_50625 __ffs 0-1 50625 NULL
38822 -+regcache_rbtree_write_50629 regcache_rbtree_write 2 50629 NULL
38823 +simple_transaction_get_50633 simple_transaction_get 3 50633 NULL
38824 -+ocfs2_do_insert_extent_50658 ocfs2_do_insert_extent 0 50658 NULL
38825 +ath6kl_tm_rx_event_50664 ath6kl_tm_rx_event 3 50664 NULL
38826 +bnad_debugfs_read_50665 bnad_debugfs_read 3 50665 NULL
38827 -+ext2_try_to_allocate_with_rsv_50669 ext2_try_to_allocate_with_rsv 4-2-0 50669 NULL
38828 -+prism2_read_fid_reg_50689 prism2_read_fid_reg 0 50689 NULL nohasharray
38829 -+i2c_smbus_read_byte_data_50689 i2c_smbus_read_byte_data 0 50689 &prism2_read_fid_reg_50689
38830 -+paging32_gva_to_gpa_50696 paging32_gva_to_gpa 2 50696 NULL
38831 ++prism2_read_fid_reg_50689 prism2_read_fid_reg 0 50689 NULL
38832 +xfs_growfs_get_hdr_buf_50697 xfs_growfs_get_hdr_buf 3 50697 NULL
38833 +dev_mem_read_50706 dev_mem_read 3 50706 NULL
38834 +blk_check_plugged_50736 blk_check_plugged 3 50736 NULL
38835 +__ext3_get_inode_loc_50744 __ext3_get_inode_loc 0 50744 NULL
38836 -+btrfs_truncate_free_space_cache_50769 btrfs_truncate_free_space_cache 0 50769 NULL
38837 +ocfs2_xattr_block_get_50773 ocfs2_xattr_block_get 0 50773 NULL
38838 +tm6000_read_write_usb_50774 tm6000_read_write_usb 7 50774 NULL
38839 -+bio_alloc_map_data_50782 bio_alloc_map_data 2-1 50782 NULL
38840 ++bio_alloc_map_data_50782 bio_alloc_map_data 1-2 50782 NULL
38841 +tpm_write_50798 tpm_write 3 50798 NULL
38842 +write_flush_50803 write_flush 3 50803 NULL
38843 +dvb_play_50814 dvb_play 3 50814 NULL
38844 +dpcm_show_state_50827 dpcm_show_state 0 50827 NULL
38845 -+acpi_ev_install_gpe_block_50829 acpi_ev_install_gpe_block 2 50829 NULL
38846 -+SetArea_50835 SetArea 4 50835 NULL nohasharray
38847 -+mask_from_50835 mask_from 0-1-2 50835 &SetArea_50835 nohasharray
38848 -+create_mem_extents_50835 create_mem_extents 0 50835 &mask_from_50835
38849 -+videobuf_dma_init_user_50839 videobuf_dma_init_user 3-4 50839 NULL
38850 -+btrfs_search_slot_for_read_50843 btrfs_search_slot_for_read 0 50843 NULL
38851 -+self_check_write_50856 self_check_write 0-5 50856 NULL
38852 ++SetArea_50835 SetArea 4 50835 NULL
38853 ++videobuf_dma_init_user_50839 videobuf_dma_init_user 4-3 50839 NULL
38854 +carl9170_debugfs_write_50857 carl9170_debugfs_write 3 50857 NULL
38855 -+alloc_masks_50861 alloc_masks 3 50861 NULL
38856 -+__percpu_counter_init_50878 __percpu_counter_init 0 50878 NULL
38857 -+btrfs_insert_inode_ref_50884 btrfs_insert_inode_ref 0 50884 NULL
38858 +SyS_lgetxattr_50889 SyS_lgetxattr 4 50889 NULL
38859 +netlbl_secattr_catmap_walk_rng_50894 netlbl_secattr_catmap_walk_rng 0-2 50894 NULL
38860 +__bdev_writeseg_50903 __bdev_writeseg 4 50903 NULL
38861 @@ -110184,19 +111072,15 @@ index 0000000..3d6cc0f
38862 +chd_dec_fetch_cdata_50926 chd_dec_fetch_cdata 3 50926 NULL
38863 +show_device_status_50947 show_device_status 0 50947 NULL
38864 +irq_timeout_write_50950 irq_timeout_write 3 50950 NULL
38865 -+ocfs2_add_refcount_flag_50952 ocfs2_add_refcount_flag 6 50952 NULL
38866 ++virtio_cread16_50951 virtio_cread16 0 50951 NULL
38867 +sdio_uart_write_50954 sdio_uart_write 3 50954 NULL
38868 +SyS_setxattr_50957 SyS_setxattr 4 50957 NULL
38869 -+btrfs_del_csums_50969 btrfs_del_csums 0 50969 NULL
38870 -+__btrfs_mod_ref_50973 __btrfs_mod_ref 0 50973 NULL
38871 -+iwl_statistics_flag_50981 iwl_statistics_flag 0-3 50981 NULL
38872 ++iwl_statistics_flag_50981 iwl_statistics_flag 3-0 50981 NULL
38873 +timeout_write_50991 timeout_write 3 50991 NULL
38874 -+wm831x_irq_map_50995 wm831x_irq_map 2 50995 NULL
38875 +proc_write_51003 proc_write 3 51003 NULL
38876 -+jbd2_journal_extend_51012 jbd2_journal_extend 2-0 51012 NULL
38877 ++jbd2_journal_extend_51012 jbd2_journal_extend 2 51012 NULL
38878 +lbs_dev_info_51023 lbs_dev_info 3 51023 NULL
38879 -+ntfs_attr_find_51028 ntfs_attr_find 0 51028 NULL nohasharray
38880 -+fuse_conn_congestion_threshold_read_51028 fuse_conn_congestion_threshold_read 3 51028 &ntfs_attr_find_51028
38881 ++fuse_conn_congestion_threshold_read_51028 fuse_conn_congestion_threshold_read 3 51028 NULL
38882 +BcmGetSectionValEndOffset_51039 BcmGetSectionValEndOffset 0 51039 NULL
38883 +dump_midi_51040 dump_midi 3 51040 NULL
38884 +usb_get_descriptor_51041 usb_get_descriptor 0 51041 NULL
38885 @@ -110204,22 +111088,15 @@ index 0000000..3d6cc0f
38886 +do_arpt_set_ctl_51053 do_arpt_set_ctl 4 51053 NULL
38887 +wusb_prf_64_51065 wusb_prf_64 7 51065 NULL
38888 +jbd2_journal_init_revoke_51088 jbd2_journal_init_revoke 2 51088 NULL
38889 -+solo_enc_v4l2_init_51094 solo_enc_v4l2_init 2 51094 NULL
38890 +__ocfs2_find_path_51096 __ocfs2_find_path 0 51096 NULL
38891 -+btrfs_del_item_51110 btrfs_del_item 0 51110 NULL nohasharray
38892 -+ti_recv_51110 ti_recv 3 51110 &btrfs_del_item_51110
38893 ++ti_recv_51110 ti_recv 3 51110 NULL
38894 +uasp_prepare_r_request_51124 uasp_prepare_r_request 0 51124 NULL
38895 +nfs_map_name_to_uid_51132 nfs_map_name_to_uid 3 51132 NULL
38896 +alloc_rtllib_51136 alloc_rtllib 1 51136 NULL
38897 +simple_xattr_set_51140 simple_xattr_set 4 51140 NULL
38898 -+set_dirty_51144 set_dirty 3 51144 NULL
38899 +xfs_trans_get_efd_51148 xfs_trans_get_efd 3 51148 NULL
38900 -+walk_page_buffers_51170 walk_page_buffers 0 51170 NULL
38901 -+snd_pcm_unlink_51210 snd_pcm_unlink 0 51210 NULL
38902 -+uhci_frame_skel_link_51213 uhci_frame_skel_link 2 51213 NULL
38903 +nf_ct_ext_create_51232 nf_ct_ext_create 3 51232 NULL
38904 +snd_pcm_write_51235 snd_pcm_write 3 51235 NULL
38905 -+tipc_send_51238 tipc_send 4 51238 NULL
38906 +drm_property_create_51239 drm_property_create 4 51239 NULL
38907 +__mxt_read_reg_51249 __mxt_read_reg 0 51249 NULL
38908 +st_read_51251 st_read 3 51251 NULL
38909 @@ -110227,24 +111104,16 @@ index 0000000..3d6cc0f
38910 +target_alloc_sgl_51264 target_alloc_sgl 3 51264 NULL
38911 +dvb_audio_write_51275 dvb_audio_write 3 51275 NULL
38912 +ipwireless_network_packet_received_51277 ipwireless_network_packet_received 4 51277 NULL
38913 -+zone_reclaimable_pages_51283 zone_reclaimable_pages 0 51283 NULL nohasharray
38914 -+__get_cur_name_and_parent_51283 __get_cur_name_and_parent 0 51283 &zone_reclaimable_pages_51283
38915 +pvr2_std_id_to_str_51288 pvr2_std_id_to_str 2 51288 NULL
38916 +bnad_debugfs_read_regrd_51308 bnad_debugfs_read_regrd 3 51308 NULL
38917 -+get_cell_51316 get_cell 2 51316 NULL
38918 -+init_map_ipmac_51317 init_map_ipmac 4-3-5 51317 NULL
38919 -+ocfs2_read_inode_block_51319 ocfs2_read_inode_block 0 51319 NULL
38920 ++init_map_ipmac_51317 init_map_ipmac 5 51317 NULL
38921 +alloc_hippi_dev_51320 alloc_hippi_dev 1 51320 NULL
38922 +ext2_xattr_get_51327 ext2_xattr_get 0 51327 NULL
38923 -+alloc_smp_req_51337 alloc_smp_req 1 51337 NULL nohasharray
38924 -+compat_arch_ptrace_51337 compat_arch_ptrace 3 51337 &alloc_smp_req_51337
38925 ++alloc_smp_req_51337 alloc_smp_req 1 51337 NULL
38926 +ipw_get_event_log_len_51341 ipw_get_event_log_len 0 51341 NULL
38927 +ieee80211_if_fmt_estab_plinks_51370 ieee80211_if_fmt_estab_plinks 3 51370 NULL
38928 +radeon_kms_compat_ioctl_51371 radeon_kms_compat_ioctl 2 51371 NULL
38929 -+pci_sriov_resource_alignment_51406 pci_sriov_resource_alignment 0 51406 NULL
38930 +ceph_sync_read_51410 ceph_sync_read 3-0 51410 NULL
38931 -+get_first_ref_51413 get_first_ref 0 51413 NULL
38932 -+__btrfs_end_transaction_51420 __btrfs_end_transaction 0 51420 NULL
38933 +blk_register_region_51424 blk_register_region 1-2 51424 NULL
38934 +mwifiex_rdeeprom_read_51429 mwifiex_rdeeprom_read 3 51429 NULL
38935 +hfsplus_brec_read_51436 hfsplus_brec_read 0 51436 NULL
38936 @@ -110252,68 +111121,50 @@ index 0000000..3d6cc0f
38937 +print_devstats_dot11ACKFailureCount_51443 print_devstats_dot11ACKFailureCount 3 51443 NULL
38938 +____alloc_ei_netdev_51475 ____alloc_ei_netdev 1 51475 NULL
38939 +xfs_buf_get_uncached_51477 xfs_buf_get_uncached 2 51477 NULL
38940 -+btrfs_find_space_cluster_51482 btrfs_find_space_cluster 5 51482 NULL
38941 +kvm_fetch_guest_virt_51493 kvm_fetch_guest_virt 4-2 51493 NULL
38942 +ieee80211_if_write_uapsd_queues_51526 ieee80211_if_write_uapsd_queues 3 51526 NULL
38943 -+key_search_51533 key_search 0 51533 NULL
38944 -+load_pdptrs_51541 load_pdptrs 3 51541 NULL
38945 +__alloc_eip_netdev_51549 __alloc_eip_netdev 1 51549 NULL
38946 ++batadv_tt_prepare_tvlv_local_data_51568 batadv_tt_prepare_tvlv_local_data 0 51568 NULL
38947 +ixgb_get_eeprom_len_51586 ixgb_get_eeprom_len 0 51586 NULL
38948 -+snd_interval_refine_first_51589 snd_interval_refine_first 0 51589 NULL nohasharray
38949 -+get_cur_path_51589 get_cur_path 0 51589 &snd_interval_refine_first_51589
38950 +aac_convert_sgraw2_51598 aac_convert_sgraw2 4 51598 NULL
38951 +table_size_to_number_of_entries_51613 table_size_to_number_of_entries 0-1 51613 NULL
38952 +extent_fiemap_51621 extent_fiemap 3 51621 NULL
38953 +sctp_auth_create_key_51641 sctp_auth_create_key 1 51641 NULL
38954 +iscsi_create_session_51647 iscsi_create_session 3 51647 NULL
38955 -+get_new_cssid_51665 get_new_cssid 2 51665 NULL
38956 +ps_upsd_utilization_read_51669 ps_upsd_utilization_read 3 51669 NULL
38957 +sctp_setsockopt_associnfo_51684 sctp_setsockopt_associnfo 3 51684 NULL
38958 -+host_mapping_level_51696 host_mapping_level 2-0 51696 NULL
38959 ++host_mapping_level_51696 host_mapping_level 0 51696 NULL
38960 +sel_write_access_51704 sel_write_access 3 51704 NULL
38961 +tty_cdev_add_51714 tty_cdev_add 2-4 51714 NULL
38962 +v9fs_alloc_rdir_buf_51716 v9fs_alloc_rdir_buf 2 51716 NULL
38963 +drm_compat_ioctl_51717 drm_compat_ioctl 2 51717 NULL
38964 +sg_read_oxfer_51724 sg_read_oxfer 3 51724 NULL
38965 -+dbg_check_lpt_nodes_51727 dbg_check_lpt_nodes 0 51727 NULL
38966 +cm4040_read_51732 cm4040_read 3 51732 NULL
38967 -+get_user_pages_fast_51751 get_user_pages_fast 1-2-0 51751 NULL
38968 ++get_user_pages_fast_51751 get_user_pages_fast 0 51751 NULL
38969 +ifx_spi_insert_flip_string_51752 ifx_spi_insert_flip_string 3 51752 NULL
38970 +if_write_51756 if_write 3 51756 NULL
38971 -+ext4_ext_create_new_leaf_51763 ext4_ext_create_new_leaf 0 51763 NULL
38972 -+__fswab32_51781 __fswab32 0 51781 NULL
38973 -+to_ratio_51809 to_ratio 1-2 51809 NULL
38974 +qib_alloc_devdata_51819 qib_alloc_devdata 2 51819 NULL
38975 +buffer_from_user_51826 buffer_from_user 3 51826 NULL
38976 -+max732x_irq_pending_51840 max732x_irq_pending 0 51840 NULL
38977 +ioread32_51847 ioread32 0 51847 NULL nohasharray
38978 +read_file_tgt_tx_stats_51847 read_file_tgt_tx_stats 3 51847 &ioread32_51847
38979 +do_readv_writev_51849 do_readv_writev 4 51849 NULL
38980 +SYSC_sendto_51852 SYSC_sendto 6 51852 NULL
38981 +bm_page_io_async_51858 bm_page_io_async 2 51858 NULL
38982 +pointer_size_read_51863 pointer_size_read 3 51863 NULL
38983 -+mlx4_alloc_db_from_pgdir_51865 mlx4_alloc_db_from_pgdir 3 51865 NULL
38984 +get_indirect_ea_51869 get_indirect_ea 4 51869 NULL
38985 +user_read_51881 user_read 3 51881 NULL
38986 +dbAdjCtl_51888 dbAdjCtl 0 51888 NULL
38987 -+virt_to_phys_51896 virt_to_phys 0 51896 NULL nohasharray
38988 -+SyS_mq_timedsend_51896 SyS_mq_timedsend 3 51896 &virt_to_phys_51896
38989 -+commit_fs_roots_51898 commit_fs_roots 0 51898 NULL
38990 -+uvhub_to_first_node_51916 uvhub_to_first_node 0 51916 NULL
38991 ++SyS_mq_timedsend_51896 SyS_mq_timedsend 3 51896 NULL
38992 +wmi_set_ie_51919 wmi_set_ie 3 51919 NULL
38993 +dbg_status_buf_51930 dbg_status_buf 2 51930 NULL
38994 +__tcp_mtu_to_mss_51938 __tcp_mtu_to_mss 0-2 51938 NULL
38995 +xfrm_alg_len_51940 xfrm_alg_len 0 51940 NULL
38996 -+irq_dispose_mapping_51941 irq_dispose_mapping 1 51941 NULL
38997 +scsi_get_vpd_page_51951 scsi_get_vpd_page 4 51951 NULL
38998 -+arizona_free_irq_51969 arizona_free_irq 2 51969 NULL nohasharray
38999 -+snd_mask_min_51969 snd_mask_min 0 51969 &arizona_free_irq_51969
39000 -+__blkdev_get_51972 __blkdev_get 0 51972 NULL nohasharray
39001 -+read_page_51972 read_page 2 51972 &__blkdev_get_51972
39002 ++snd_mask_min_51969 snd_mask_min 0 51969 NULL
39003 ++__blkdev_get_51972 __blkdev_get 0 51972 NULL
39004 +get_zone_51981 get_zone 0-1 51981 NULL
39005 +ath6kl_sdio_alloc_prep_scat_req_51986 ath6kl_sdio_alloc_prep_scat_req 2 51986 NULL
39006 +_c4iw_write_mem_dma_51991 _c4iw_write_mem_dma 3 51991 NULL
39007 -+ntfs_attr_size_51994 ntfs_attr_size 0 51994 NULL
39008 +dwc3_mode_write_51997 dwc3_mode_write 3 51997 NULL
39009 +skb_copy_datagram_from_iovec_52014 skb_copy_datagram_from_iovec 4-2-5 52014 NULL
39010 +rdmalt_52022 rdmalt 0 52022 NULL
39011 @@ -110325,16 +111176,12 @@ index 0000000..3d6cc0f
39012 +__fuse_request_alloc_52060 __fuse_request_alloc 1 52060 NULL
39013 +isofs_readpages_52067 isofs_readpages 4 52067 NULL
39014 +nsm_get_handle_52089 nsm_get_handle 4 52089 NULL
39015 -+ulist_add_merge_52096 ulist_add_merge 0 52096 NULL
39016 +o2net_debug_read_52105 o2net_debug_read 3 52105 NULL
39017 +split_scan_timeout_write_52128 split_scan_timeout_write 3 52128 NULL
39018 +retry_count_read_52129 retry_count_read 3 52129 NULL
39019 -+snd_pcm_channel_info_user_52135 snd_pcm_channel_info_user 0 52135 NULL
39020 +gdm_usb_hci_send_52138 gdm_usb_hci_send 3 52138 NULL
39021 -+sub_alloc_52140 sub_alloc 0 52140 NULL nohasharray
39022 -+zram_meta_alloc_52140 zram_meta_alloc 1 52140 &sub_alloc_52140
39023 -+hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL nohasharray
39024 -+ext2_alloc_blocks_52145 ext2_alloc_blocks 2-0 52145 &hysdn_conf_write_52145
39025 ++sub_alloc_52140 sub_alloc 0 52140 NULL
39026 ++hysdn_conf_write_52145 hysdn_conf_write 3 52145 NULL
39027 +htable_size_52148 htable_size 0-1 52148 NULL
39028 +smk_write_load2_52155 smk_write_load2 3 52155 NULL
39029 +ieee80211_if_read_dot11MeshRetryTimeout_52168 ieee80211_if_read_dot11MeshRetryTimeout 3 52168 NULL
39030 @@ -110342,34 +111189,26 @@ index 0000000..3d6cc0f
39031 +print_prefix_52176 print_prefix 0 52176 NULL
39032 +proc_pid_readlink_52186 proc_pid_readlink 3 52186 NULL
39033 +vmci_qp_broker_alloc_52216 vmci_qp_broker_alloc 6-5 52216 NULL
39034 -+do_dmabuf_dirty_ldu_52241 do_dmabuf_dirty_ldu 6 52241 NULL
39035 +fuse_request_alloc_52243 fuse_request_alloc 1 52243 NULL nohasharray
39036 +xfs_iomap_eof_align_last_fsb_52243 xfs_iomap_eof_align_last_fsb 3 52243 &fuse_request_alloc_52243
39037 -+ocfs2_try_to_merge_extent_52244 ocfs2_try_to_merge_extent 0 52244 NULL
39038 -+pm80x_request_irq_52250 pm80x_request_irq 2 52250 NULL
39039 +mdiobus_alloc_size_52259 mdiobus_alloc_size 1 52259 NULL
39040 -+shrink_slab_52261 shrink_slab 2-3 52261 NULL
39041 -+hva_to_pfn_slow_52262 hva_to_pfn_slow 1 52262 NULL
39042 ++shrink_slab_52261 shrink_slab 2 52261 NULL
39043 +sisusbcon_do_font_op_52271 sisusbcon_do_font_op 9 52271 NULL
39044 +handle_supp_msgs_52284 handle_supp_msgs 4 52284 NULL
39045 +kobject_set_name_vargs_52309 kobject_set_name_vargs 0 52309 NULL
39046 +read_file_reset_52310 read_file_reset 3 52310 NULL
39047 -+request_asymmetric_key_52317 request_asymmetric_key 4-2 52317 NULL
39048 ++request_asymmetric_key_52317 request_asymmetric_key 2-4 52317 NULL
39049 +hwflags_read_52318 hwflags_read 3 52318 NULL
39050 -+snd_pcm_hw_free_52327 snd_pcm_hw_free 0 52327 NULL
39051 -+ntfs_rl_split_52328 ntfs_rl_split 4-2 52328 NULL
39052 +test_unaligned_bulk_52333 test_unaligned_bulk 3 52333 NULL
39053 +hur_len_52339 hur_len 0 52339 NULL
39054 +bytes_to_frames_52362 bytes_to_frames 0-2 52362 NULL
39055 +copy_entries_to_user_52367 copy_entries_to_user 1 52367 NULL
39056 +iwl_dump_fh_52371 iwl_dump_fh 0 52371 NULL
39057 +hfsplus_find_attr_52374 hfsplus_find_attr 0 52374 NULL
39058 -+ocfs2_journal_access_eb_52377 ocfs2_journal_access_eb 0 52377 NULL
39059 +mq_emit_config_values_52378 mq_emit_config_values 3 52378 NULL
39060 +isdn_writebuf_stub_52383 isdn_writebuf_stub 4 52383 NULL
39061 +jfs_setxattr_52389 jfs_setxattr 4 52389 NULL
39062 -+aer_inject_write_52399 aer_inject_write 3 52399 NULL nohasharray
39063 -+cl_page_own_52399 cl_page_own 0 52399 &aer_inject_write_52399
39064 ++aer_inject_write_52399 aer_inject_write 3 52399 NULL
39065 +cgroup_file_write_52417 cgroup_file_write 3 52417 NULL
39066 +line6_midibuf_init_52425 line6_midibuf_init 2 52425 NULL
39067 +hso_serial_common_create_52428 hso_serial_common_create 4 52428 NULL
39068 @@ -110382,55 +111221,40 @@ index 0000000..3d6cc0f
39069 +usb_tranzport_write_52479 usb_tranzport_write 3 52479 NULL
39070 +ocfs2_extend_no_holes_52483 ocfs2_extend_no_holes 3-4 52483 NULL
39071 +fd_do_rw_52495 fd_do_rw 3 52495 NULL
39072 -+qib_user_sdma_pin_pages_52498 qib_user_sdma_pin_pages 3-5-4 52498 NULL
39073 +int_tasklet_entry_52500 int_tasklet_entry 3 52500 NULL
39074 +lmv_get_easize_52504 lmv_get_easize 0 52504 NULL
39075 +pm_qos_power_write_52513 pm_qos_power_write 3 52513 NULL
39076 +bt_sock_stream_recvmsg_52518 bt_sock_stream_recvmsg 4 52518 NULL
39077 +dup_variable_bug_52525 dup_variable_bug 3 52525 NULL
39078 +raw_recvmsg_52529 raw_recvmsg 4 52529 NULL
39079 -+from_oblock_52546 from_oblock 0-1 52546 NULL
39080 +dccpprobe_read_52549 dccpprobe_read 3 52549 NULL
39081 -+ocfs2_make_right_split_rec_52562 ocfs2_make_right_split_rec 3 52562 NULL
39082 +debug_level_proc_write_52572 debug_level_proc_write 3 52572 NULL
39083 +isku_sysfs_read_macro_52587 isku_sysfs_read_macro 6 52587 NULL
39084 -+snd_pcm_sw_params_52594 snd_pcm_sw_params 0 52594 NULL
39085 +SyS_setsockopt_52610 SyS_setsockopt 5 52610 NULL
39086 +ll_sa_entry_alloc_52611 ll_sa_entry_alloc 4 52611 NULL
39087 -+affs_set_blocksize_52625 affs_set_blocksize 2 52625 NULL
39088 +tps80031_writes_52638 tps80031_writes 3-4 52638 NULL
39089 +brcmf_sdio_assert_info_52653 brcmf_sdio_assert_info 4 52653 NULL
39090 -+perf_trace_sched_stat_template_52656 perf_trace_sched_stat_template 3 52656 NULL
39091 +nvme_queue_extra_52661 nvme_queue_extra 0-1 52661 NULL
39092 -+htb_add_class_to_row_52663 htb_add_class_to_row 3 52663 NULL
39093 -+posix_acl_equiv_mode_52666 posix_acl_equiv_mode 0 52666 NULL
39094 +SYSC_gethostname_52677 SYSC_gethostname 2 52677 NULL
39095 -+ntfs_get_nr_significant_bytes_52688 ntfs_get_nr_significant_bytes 0 52688 NULL
39096 +nvd0_disp_pioc_create__52693 nvd0_disp_pioc_create_ 5 52693 NULL
39097 -+vendorextnWriteSection_52698 vendorextnWriteSection 0 52698 NULL
39098 +nouveau_client_create__52715 nouveau_client_create_ 5 52715 NULL
39099 +__dm_stat_bio_52722 __dm_stat_bio 3 52722 NULL
39100 +cx25840_ir_rx_read_52724 cx25840_ir_rx_read 3 52724 NULL
39101 -+blkcipher_next_slow_52733 blkcipher_next_slow 4-3 52733 NULL
39102 ++blkcipher_next_slow_52733 blkcipher_next_slow 3-4 52733 NULL
39103 +relay_alloc_page_array_52735 relay_alloc_page_array 1 52735 NULL
39104 +hfcsusb_rx_frame_52745 hfcsusb_rx_frame 3 52745 NULL
39105 +carl9170_debugfs_vif_dump_read_52755 carl9170_debugfs_vif_dump_read 3 52755 NULL
39106 +ieee80211_if_read_beacon_timeout_52756 ieee80211_if_read_beacon_timeout 3 52756 NULL
39107 -+radeon_get_ib_value_52757 radeon_get_ib_value 0 52757 NULL
39108 +nvme_trans_ext_inq_page_52776 nvme_trans_ext_inq_page 3 52776 NULL
39109 +pwr_rcvd_beacons_read_52836 pwr_rcvd_beacons_read 3 52836 NULL
39110 -+map_try_harder_52846 map_try_harder 2-3 52846 NULL
39111 +ext2_xattr_set_acl_52857 ext2_xattr_set_acl 4 52857 NULL
39112 -+process_deleted_xattr_52861 process_deleted_xattr 0 52861 NULL
39113 -+mon_bin_get_event_52863 mon_bin_get_event 6-4 52863 NULL
39114 ++mon_bin_get_event_52863 mon_bin_get_event 4-6 52863 NULL
39115 +twl6030_gpadc_write_52867 twl6030_gpadc_write 1 52867 NULL
39116 +qib_decode_6120_err_52876 qib_decode_6120_err 3 52876 NULL
39117 +twlreg_write_52880 twlreg_write 3 52880 NULL
39118 +pvr2_ctrl_value_to_sym_internal_52881 pvr2_ctrl_value_to_sym_internal 5 52881 NULL
39119 +cache_read_procfs_52882 cache_read_procfs 3 52882 NULL
39120 +kvm_kvzalloc_52894 kvm_kvzalloc 1 52894 NULL
39121 -+arizona_request_irq_52908 arizona_request_irq 2 52908 NULL
39122 -+create_vtbl_52909 create_vtbl 0 52909 NULL
39123 +dio_bio_reap_52913 dio_bio_reap 0 52913 NULL
39124 +__kfifo_out_peek_r_52919 __kfifo_out_peek_r 3 52919 NULL
39125 +iblock_get_bio_52936 iblock_get_bio 3 52936 NULL
39126 @@ -110439,116 +111263,89 @@ index 0000000..3d6cc0f
39127 +ieee80211_if_fmt_fwded_mcast_52961 ieee80211_if_fmt_fwded_mcast 3 52961 NULL
39128 +tx_tx_exch_read_52986 tx_tx_exch_read 3 52986 NULL
39129 +num_node_state_52989 num_node_state 0 52989 NULL
39130 -+efivarfs_file_write_53000 efivarfs_file_write 3 53000 NULL
39131 +uasp_alloc_stream_res_53015 uasp_alloc_stream_res 0 53015 NULL
39132 +btrfs_free_and_pin_reserved_extent_53016 btrfs_free_and_pin_reserved_extent 2 53016 NULL
39133 +tx_tx_exch_pending_read_53018 tx_tx_exch_pending_read 3 53018 NULL
39134 -+ext4_meta_bg_first_group_53031 ext4_meta_bg_first_group 0-2 53031 NULL
39135 -+ocfs2_new_leaf_refcount_block_53036 ocfs2_new_leaf_refcount_block 0 53036 NULL
39136 +bio_cur_bytes_53037 bio_cur_bytes 0 53037 NULL
39137 +regcache_lzo_block_count_53056 regcache_lzo_block_count 0 53056 NULL
39138 +cfi_read_query_53066 cfi_read_query 0 53066 NULL
39139 +iwl_dbgfs_interrupt_write_53069 iwl_dbgfs_interrupt_write 3 53069 NULL
39140 +mwifiex_debug_read_53074 mwifiex_debug_read 3 53074 NULL
39141 -+page_to_nid_53085 page_to_nid 0 53085 NULL
39142 -+qib_resize_cq_53090 qib_resize_cq 2 53090 NULL
39143 -+insert_new_root_53097 insert_new_root 0 53097 NULL
39144 ++mic_virtio_copy_from_user_53107 mic_virtio_copy_from_user 3 53107 NULL
39145 +verity_status_53120 verity_status 5 53120 NULL
39146 -+__copy_from_user_ll_nocache_nozero_53123 __copy_from_user_ll_nocache_nozero 0-3 53123 NULL
39147 +brcmf_usb_dl_cmd_53130 brcmf_usb_dl_cmd 4 53130 NULL
39148 -+btrfs_search_forward_53137 btrfs_search_forward 0 53137 NULL
39149 +ps_poll_ps_poll_max_ap_turn_read_53140 ps_poll_ps_poll_max_ap_turn_read 3 53140 NULL
39150 +ieee80211_bss_info_update_53170 ieee80211_bss_info_update 4 53170 NULL
39151 +btrfs_io_bio_alloc_53179 btrfs_io_bio_alloc 2 53179 NULL
39152 +clear_capture_buf_53192 clear_capture_buf 2 53192 NULL
39153 -+SyS_init_module_53202 SyS_init_module 2 53202 NULL
39154 -+mtdoops_erase_block_53206 mtdoops_erase_block 2 53206 NULL
39155 -+fixup_user_fault_53210 fixup_user_fault 3 53210 NULL
39156 +tx_tx_start_data_read_53219 tx_tx_start_data_read 3 53219 NULL
39157 +ptlrpc_lprocfs_req_history_max_seq_write_53243 ptlrpc_lprocfs_req_history_max_seq_write 3 53243 NULL
39158 +hfsplus_xattr_set_posix_acl_53249 hfsplus_xattr_set_posix_acl 4 53249 NULL
39159 +xfs_trans_read_buf_map_53258 xfs_trans_read_buf_map 5 53258 NULL
39160 +wil_write_file_ssid_53266 wil_write_file_ssid 3 53266 NULL
39161 +btrfs_file_extent_num_bytes_53269 btrfs_file_extent_num_bytes 0 53269 NULL
39162 -+tsk_fork_get_node_53271 tsk_fork_get_node 0 53271 NULL
39163 -+btrfs_find_highest_objectid_53284 btrfs_find_highest_objectid 0 53284 NULL
39164 -+setup_leaf_for_split_53312 setup_leaf_for_split 0 53312 NULL
39165 +ftrace_profile_write_53327 ftrace_profile_write 3 53327 NULL
39166 -+setup_cluster_no_bitmap_53328 setup_cluster_no_bitmap 0 53328 NULL
39167 ++find_nr_power_limit_53330 find_nr_power_limit 0 53330 NULL
39168 +gsm_control_reply_53333 gsm_control_reply 4 53333 NULL
39169 +vm_mmap_53339 vm_mmap 0 53339 NULL
39170 -+vendorextnIoctl_53350 vendorextnIoctl 0 53350 NULL nohasharray
39171 -+btrfs_find_all_roots_53350 btrfs_find_all_roots 0 53350 &vendorextnIoctl_53350
39172 +read_6120_creg32_53363 read_6120_creg32 0 53363 NULL
39173 +sock_setbindtodevice_53369 sock_setbindtodevice 3 53369 NULL
39174 +get_random_bytes_arch_53370 get_random_bytes_arch 2 53370 NULL
39175 -+isolate_lru_page_53417 isolate_lru_page 0 53417 NULL
39176 -+i915_gem_execbuffer_relocate_object_53435 i915_gem_execbuffer_relocate_object 0 53435 NULL
39177 +isr_cmd_cmplt_read_53439 isr_cmd_cmplt_read 3 53439 NULL
39178 +mwifiex_info_read_53447 mwifiex_info_read 3 53447 NULL
39179 +apei_exec_run_optional_53452 apei_exec_run_optional 0 53452 NULL
39180 +paging64_prefetch_gpte_53468 paging64_prefetch_gpte 4 53468 NULL
39181 ++ima_write_template_field_data_53475 ima_write_template_field_data 2 53475 NULL
39182 +iowarrior_read_53483 iowarrior_read 3 53483 NULL
39183 +osd_req_write_kern_53486 osd_req_write_kern 5 53486 NULL
39184 +do_verify_xattr_datum_53499 do_verify_xattr_datum 0 53499 NULL
39185 -+ext4_ext_grow_indepth_53503 ext4_ext_grow_indepth 0 53503 NULL
39186 +snd_pcm_format_physical_width_53505 snd_pcm_format_physical_width 0 53505 NULL
39187 +dbAllocNext_53506 dbAllocNext 0 53506 NULL
39188 +ocfs2_xattr_set_acl_53508 ocfs2_xattr_set_acl 4 53508 NULL
39189 +check_acl_53512 check_acl 0 53512 NULL
39190 -+alloc_pages_exact_nid_53515 alloc_pages_exact_nid 1 53515 NULL
39191 -+send_utimes_53516 send_utimes 0 53516 NULL
39192 ++nft_data_dump_53549 nft_data_dump 5 53549 NULL
39193 +SYSC_bind_53582 SYSC_bind 3 53582 NULL
39194 +cifs_utf16_bytes_53593 cifs_utf16_bytes 0 53593 NULL
39195 +proc_uid_map_write_53596 proc_uid_map_write 3 53596 NULL
39196 -+gfn_to_pfn_async_53597 gfn_to_pfn_async 2 53597 NULL
39197 +pfkey_recvmsg_53604 pfkey_recvmsg 4 53604 NULL
39198 +___alloc_bootmem_nopanic_53626 ___alloc_bootmem_nopanic 1 53626 NULL
39199 +xd_write_multiple_pages_53633 xd_write_multiple_pages 6-5 53633 NULL
39200 -+stmpe_gpio_request_53634 stmpe_gpio_request 2 53634 NULL nohasharray
39201 -+ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 &stmpe_gpio_request_53634
39202 ++ccid_getsockopt_builtin_ccids_53634 ccid_getsockopt_builtin_ccids 2 53634 NULL
39203 +nr_sendmsg_53656 nr_sendmsg 4 53656 NULL
39204 +fuse_fill_write_pages_53682 fuse_fill_write_pages 0-4 53682 NULL
39205 +v4l2_event_subscribe_53687 v4l2_event_subscribe 3 53687 NULL
39206 -+igb_alloc_q_vector_53690 igb_alloc_q_vector 6-4 53690 NULL nohasharray
39207 -+bdev_logical_block_size_53690 bdev_logical_block_size 0 53690 &igb_alloc_q_vector_53690
39208 ++bdev_logical_block_size_53690 bdev_logical_block_size 0 53690 NULL nohasharray
39209 ++igb_alloc_q_vector_53690 igb_alloc_q_vector 4-6 53690 &bdev_logical_block_size_53690
39210 +find_overflow_devnum_53711 find_overflow_devnum 0 53711 NULL
39211 +bio_integrity_split_53714 bio_integrity_split 3 53714 NULL
39212 -+__ocfs2_resv_find_window_53721 __ocfs2_resv_find_window 3 53721 NULL
39213 +__proc_debug_mb_53732 __proc_debug_mb 5 53732 NULL
39214 +wdm_write_53735 wdm_write 3 53735 NULL
39215 -+ext3_try_to_allocate_with_rsv_53737 ext3_try_to_allocate_with_rsv 5-3-0 53737 NULL
39216 -+da9052_disable_irq_53745 da9052_disable_irq 2 53745 NULL
39217 -+lpfc_idiag_queacc_read_qe_53755 lpfc_idiag_queacc_read_qe 0-2 53755 NULL nohasharray
39218 -+amdtp_out_stream_get_max_payload_53755 amdtp_out_stream_get_max_payload 0 53755 &lpfc_idiag_queacc_read_qe_53755
39219 ++amdtp_out_stream_get_max_payload_53755 amdtp_out_stream_get_max_payload 0 53755 NULL nohasharray
39220 ++lpfc_idiag_queacc_read_qe_53755 lpfc_idiag_queacc_read_qe 0-2 53755 &amdtp_out_stream_get_max_payload_53755
39221 +ext2_acl_count_53773 ext2_acl_count 0-1 53773 NULL
39222 +__kfifo_dma_in_prepare_r_53792 __kfifo_dma_in_prepare_r 4-5 53792 NULL
39223 +qp_alloc_host_work_53798 qp_alloc_host_work 5-3 53798 NULL
39224 +regmap_raw_write_53803 regmap_raw_write 2-4 53803 NULL
39225 +lpfc_idiag_ctlacc_read_reg_53809 lpfc_idiag_ctlacc_read_reg 0-3 53809 NULL
39226 +nls_nullsize_53815 nls_nullsize 0 53815 NULL
39227 -+insert_pfn_53816 insert_pfn 3-0 53816 NULL
39228 +setup_data_read_53822 setup_data_read 3 53822 NULL
39229 +pms_read_53873 pms_read 3 53873 NULL
39230 +ieee80211_if_fmt_dropped_frames_congestion_53883 ieee80211_if_fmt_dropped_frames_congestion 3 53883 NULL
39231 -+ocfs2_rm_xattr_cluster_53900 ocfs2_rm_xattr_cluster 4-5-3 53900 NULL nohasharray
39232 -+SyS_setgroups_53900 SyS_setgroups 1 53900 &ocfs2_rm_xattr_cluster_53900
39233 -+azx_via_get_position_53916 azx_via_get_position 0 53916 NULL
39234 ++SyS_setgroups_53900 SyS_setgroups 1 53900 NULL
39235 ++batadv_tt_tvlv_ogm_handler_v1_53909 batadv_tt_tvlv_ogm_handler_v1 5 53909 NULL
39236 +usb_serial_generic_write_53927 usb_serial_generic_write 4 53927 NULL
39237 -+ocfs2_make_clusters_writable_53938 ocfs2_make_clusters_writable 5-4-0 53938 NULL
39238 ++ocfs2_make_clusters_writable_53938 ocfs2_make_clusters_writable 0 53938 NULL
39239 +idetape_chrdev_write_53976 idetape_chrdev_write 3 53976 NULL
39240 -+mthca_reg_user_mr_53980 mthca_reg_user_mr 2-3 53980 NULL
39241 +__ocfs2_xattr_set_value_outside_53981 __ocfs2_xattr_set_value_outside 5 53981 NULL
39242 +ieee80211_if_fmt_dot11MeshHWMPperrMinInterval_53998 ieee80211_if_fmt_dot11MeshHWMPperrMinInterval 3 53998 NULL
39243 -+send_clone_54011 send_clone 0 54011 NULL
39244 +hfsplus_attr_build_key_54013 hfsplus_attr_build_key 0 54013 NULL
39245 +snd_pcm_lib_write_transfer_54018 snd_pcm_lib_write_transfer 5-2-4 54018 NULL
39246 +mdc_kuc_write_54019 mdc_kuc_write 3 54019 NULL
39247 +ipxrtr_route_packet_54036 ipxrtr_route_packet 4 54036 NULL
39248 ++batadv_tt_update_orig_54049 batadv_tt_update_orig 6-4 54049 NULL
39249 +pipeline_dec_packet_out_read_54052 pipeline_dec_packet_out_read 3 54052 NULL
39250 +nl80211_send_disconnected_54056 nl80211_send_disconnected 5 54056 NULL
39251 +rproc_state_read_54057 rproc_state_read 3 54057 NULL
39252 -+btrfs_start_transaction_54066 btrfs_start_transaction 2 54066 NULL
39253 +_malloc_54077 _malloc 1 54077 NULL
39254 +bitmap_bitremap_54096 bitmap_bitremap 4 54096 NULL
39255 +altera_set_ir_pre_54103 altera_set_ir_pre 2 54103 NULL nohasharray
39256 @@ -110561,26 +111358,20 @@ index 0000000..3d6cc0f
39257 +memcpy_toiovec_54166 memcpy_toiovec 3 54166 NULL
39258 +nouveau_falcon_create__54169 nouveau_falcon_create_ 8 54169 NULL
39259 +p9_client_prepare_req_54175 p9_client_prepare_req 3 54175 NULL
39260 -+devm_request_threaded_irq_54215 devm_request_threaded_irq 0 54215 NULL
39261 +do_sys_poll_54221 do_sys_poll 2 54221 NULL
39262 +__register_chrdev_54223 __register_chrdev 2-3 54223 NULL
39263 +pi_read_regr_54231 pi_read_regr 0 54231 NULL
39264 +mcp23s08_read_regs_54246 mcp23s08_read_regs 4 54246 NULL
39265 +reada_add_block_54247 reada_add_block 2 54247 NULL
39266 -+write_file_spec_scan_ctl_54248 write_file_spec_scan_ctl 3 54248 NULL
39267 -+jbd2__journal_restart_54249 jbd2__journal_restart 0 54249 NULL
39268 -+barrier_all_devices_54254 barrier_all_devices 0 54254 NULL nohasharray
39269 -+xfs_dir2_sf_addname_hard_54254 xfs_dir2_sf_addname_hard 3 54254 &barrier_all_devices_54254
39270 ++xfs_dir2_sf_addname_hard_54254 xfs_dir2_sf_addname_hard 3 54254 NULL
39271 +ceph_msgpool_get_54258 ceph_msgpool_get 2 54258 NULL
39272 -+wusb_prf_54261 wusb_prf 7 54261 NULL nohasharray
39273 -+audio_write_54261 audio_write 4 54261 &wusb_prf_54261
39274 ++audio_write_54261 audio_write 4 54261 NULL nohasharray
39275 ++wusb_prf_54261 wusb_prf 7 54261 &audio_write_54261
39276 +mwifiex_getlog_read_54269 mwifiex_getlog_read 3 54269 NULL
39277 +kstrtou16_from_user_54274 kstrtou16_from_user 2 54274 NULL
39278 -+ubi_calc_data_len_54279 ubi_calc_data_len 0-3 54279 NULL
39279 ++tipc_multicast_54285 tipc_multicast 4 54285 NULL
39280 +altera_set_dr_post_54291 altera_set_dr_post 2 54291 NULL
39281 +dlm_alloc_pagevec_54296 dlm_alloc_pagevec 1 54296 NULL
39282 -+get_iovec_page_array_54298 get_iovec_page_array 6 54298 NULL
39283 -+ttm_mem_global_alloc_54299 ttm_mem_global_alloc 0 54299 NULL
39284 +reclaim_pages_54301 reclaim_pages 3 54301 NULL
39285 +sprintf_54306 sprintf 0 54306 NULL
39286 +bio_add_pc_page_54319 bio_add_pc_page 4 54319 NULL
39287 @@ -110592,17 +111383,13 @@ index 0000000..3d6cc0f
39288 +vfs_readlink_54368 vfs_readlink 3 54368 NULL
39289 +do_dccp_setsockopt_54377 do_dccp_setsockopt 5 54377 NULL nohasharray
39290 +intel_sdvo_write_cmd_54377 intel_sdvo_write_cmd 4 54377 &do_dccp_setsockopt_54377
39291 -+ah_alloc_tmp_54378 ah_alloc_tmp 2-3 54378 NULL
39292 -+gart_unmap_page_54379 gart_unmap_page 3-2 54379 NULL
39293 ++ah_alloc_tmp_54378 ah_alloc_tmp 3-2 54378 NULL
39294 +snd_pcm_oss_read2_54387 snd_pcm_oss_read2 3-0 54387 NULL
39295 +iwl_dbgfs_power_save_status_read_54392 iwl_dbgfs_power_save_status_read 3 54392 NULL
39296 -+efx_nic_describe_stats_54407 efx_nic_describe_stats 2 54407 NULL
39297 +ll_ra_count_get_54410 ll_ra_count_get 3 54410 NULL
39298 -+copy_gadget_strings_54417 copy_gadget_strings 3-2 54417 NULL
39299 -+btrfs_inc_extent_ref_54442 btrfs_inc_extent_ref 0 54442 NULL
39300 -+sparse_early_mem_maps_alloc_node_54485 sparse_early_mem_maps_alloc_node 4-5 54485 NULL
39301 ++copy_gadget_strings_54417 copy_gadget_strings 2-3 54417 NULL
39302 ++sparse_early_mem_maps_alloc_node_54485 sparse_early_mem_maps_alloc_node 4 54485 NULL
39303 +simple_strtoull_54493 simple_strtoull 0 54493 NULL
39304 -+swiotlb_tbl_map_single_54495 swiotlb_tbl_map_single 0 54495 NULL
39305 +btrfs_ordered_sum_size_54509 btrfs_ordered_sum_size 0-2 54509 NULL
39306 +cgroup_write_X64_54514 cgroup_write_X64 5 54514 NULL
39307 +rfc4106_set_key_54519 rfc4106_set_key 3 54519 NULL
39308 @@ -110610,90 +111397,66 @@ index 0000000..3d6cc0f
39309 +viacam_read_54526 viacam_read 3 54526 NULL
39310 +unix_dgram_connect_54535 unix_dgram_connect 3 54535 NULL
39311 +setsockopt_54539 setsockopt 5 54539 NULL
39312 -+i915_reset_gen7_sol_offsets_54547 i915_reset_gen7_sol_offsets 0 54547 NULL
39313 +lbs_lowsnr_write_54549 lbs_lowsnr_write 3 54549 NULL
39314 -+ntfs_commit_pages_after_non_resident_write_54555 ntfs_commit_pages_after_non_resident_write 4-3 54555 NULL nohasharray
39315 -+i915_gem_get_seqno_54555 i915_gem_get_seqno 0 54555 &ntfs_commit_pages_after_non_resident_write_54555
39316 -+btrfs_update_inode_item_54561 btrfs_update_inode_item 0 54561 NULL nohasharray
39317 -+SYSC_setsockopt_54561 SYSC_setsockopt 5 54561 &btrfs_update_inode_item_54561
39318 ++SYSC_setsockopt_54561 SYSC_setsockopt 5 54561 NULL
39319 +nfsd_vfs_write_54577 nfsd_vfs_write 6 54577 NULL
39320 +fw_iso_buffer_init_54582 fw_iso_buffer_init 3 54582 NULL
39321 +nvme_npages_54601 nvme_npages 0-1 54601 NULL
39322 +irq_pkt_threshold_write_54605 irq_pkt_threshold_write 3 54605 NULL
39323 -+devm_gen_pool_create_54607 devm_gen_pool_create 3 54607 NULL
39324 +port_fops_write_54627 port_fops_write 3 54627 NULL
39325 +irq_timeout_read_54653 irq_timeout_read 3 54653 NULL
39326 +dns_resolver_read_54658 dns_resolver_read 3 54658 NULL
39327 +twl6030_interrupt_mask_54659 twl6030_interrupt_mask 2 54659 NULL
39328 -+kvm_read_cr3_54662 kvm_read_cr3 0 54662 NULL
39329 +tdp_page_fault_54663 tdp_page_fault 2 54663 NULL
39330 +bus_add_device_54665 bus_add_device 0 54665 NULL
39331 +cw1200_queue_stats_init_54670 cw1200_queue_stats_init 2 54670 NULL
39332 +bio_kmalloc_54672 bio_kmalloc 2 54672 NULL
39333 -+vring_new_virtqueue_54673 vring_new_virtqueue 2 54673 NULL
39334 +evm_read_key_54674 evm_read_key 3 54674 NULL
39335 -+fs_path_add_path_54680 fs_path_add_path 0 54680 NULL
39336 -+platform_get_irq_byname_54700 platform_get_irq_byname 0 54700 NULL
39337 -+__btrfs_inc_extent_ref_54706 __btrfs_inc_extent_ref 7-0 54706 NULL
39338 ++tipc_link_send_sections_fast_54689 tipc_link_send_sections_fast 3 54689 NULL
39339 ++__btrfs_inc_extent_ref_54706 __btrfs_inc_extent_ref 7 54706 NULL
39340 +rfkill_fop_read_54711 rfkill_fop_read 3 54711 NULL
39341 -+clk_divider_set_rate_54726 clk_divider_set_rate 3-2 54726 NULL
39342 +ocfs2_control_write_54737 ocfs2_control_write 3 54737 NULL
39343 +kzalloc_54740 kzalloc 1 54740 NULL
39344 +wep_iv_read_54744 wep_iv_read 3 54744 NULL
39345 +lpfc_idiag_pcicfg_write_54749 lpfc_idiag_pcicfg_write 3 54749 NULL
39346 +iio_event_chrdev_read_54757 iio_event_chrdev_read 3 54757 NULL
39347 +adis16480_show_firmware_date_54762 adis16480_show_firmware_date 3 54762 NULL
39348 -+ldsem_atomic_update_54774 ldsem_atomic_update 1-0 54774 NULL
39349 -+gpiochip_add_54781 gpiochip_add 0 54781 NULL
39350 ++ldsem_atomic_update_54774 ldsem_atomic_update 1 54774 NULL
39351 +flexcop_device_kmalloc_54793 flexcop_device_kmalloc 1 54793 NULL
39352 -+domain_init_54797 domain_init 2 54797 NULL
39353 -+ext3_find_goal_54801 ext3_find_goal 0 54801 NULL
39354 -+get_dev_size_54807 get_dev_size 0 54807 NULL
39355 +nfsd_write_54809 nfsd_write 6 54809 NULL
39356 -+aes_decrypt_fail_read_54815 aes_decrypt_fail_read 3 54815 NULL nohasharray
39357 -+kvzalloc_54815 kvzalloc 1 54815 &aes_decrypt_fail_read_54815 nohasharray
39358 -+crypto_tfm_ctx_alignment_54815 crypto_tfm_ctx_alignment 0 54815 &kvzalloc_54815
39359 ++ar9287_dump_modal_eeprom_54814 ar9287_dump_modal_eeprom 3-2 54814 NULL
39360 ++crypto_tfm_ctx_alignment_54815 crypto_tfm_ctx_alignment 0 54815 NULL nohasharray
39361 ++kvzalloc_54815 kvzalloc 1 54815 &crypto_tfm_ctx_alignment_54815 nohasharray
39362 ++aes_decrypt_fail_read_54815 aes_decrypt_fail_read 3 54815 &kvzalloc_54815
39363 +generic_perform_write_54832 generic_perform_write 3 54832 NULL
39364 +write_rio_54837 write_rio 3 54837 NULL
39365 -+nouveau_engctx_create__54839 nouveau_engctx_create_ 8 54839 NULL nohasharray
39366 -+ext3_acl_from_disk_54839 ext3_acl_from_disk 2 54839 &nouveau_engctx_create__54839
39367 ++ext3_acl_from_disk_54839 ext3_acl_from_disk 2 54839 NULL nohasharray
39368 ++nouveau_engctx_create__54839 nouveau_engctx_create_ 8 54839 &ext3_acl_from_disk_54839
39369 ++ll_layout_conf_54841 ll_layout_conf 0 54841 NULL
39370 +ufx_ops_write_54848 ufx_ops_write 3 54848 NULL
39371 +printer_read_54851 printer_read 3 54851 NULL
39372 -+qib_reg_user_mr_54858 qib_reg_user_mr 2-3 54858 NULL
39373 +alloc_ep_req_54860 alloc_ep_req 2 54860 NULL
39374 +broadsheet_spiflash_rewrite_sector_54864 broadsheet_spiflash_rewrite_sector 2 54864 NULL
39375 +prism_build_supp_rates_54865 prism_build_supp_rates 0 54865 NULL
39376 -+iscsi_pool_init_54913 iscsi_pool_init 4-2 54913 NULL nohasharray
39377 ++iscsi_pool_init_54913 iscsi_pool_init 2-4 54913 NULL nohasharray
39378 +kobject_set_name_vargs_54913 kobject_set_name_vargs 0 54913 &iscsi_pool_init_54913
39379 +btrfs_stack_chunk_num_stripes_54923 btrfs_stack_chunk_num_stripes 0 54923 NULL
39380 +bio_add_page_54933 bio_add_page 0-3 54933 NULL
39381 +mxms_structlen_54939 mxms_structlen 0 54939 NULL
39382 +add_port_54941 add_port 2 54941 NULL
39383 -+ath9k_dump_btcoex_54949 ath9k_dump_btcoex 0 54949 NULL
39384 ++ath9k_dump_btcoex_54949 ath9k_dump_btcoex 3-0 54949 NULL
39385 +alauda_write_data_54967 alauda_write_data 3 54967 NULL
39386 +c4_add_card_54968 c4_add_card 3 54968 NULL
39387 -+iwl_pcie_dump_fh_54975 iwl_pcie_dump_fh 0 54975 NULL
39388 -+ubi_change_vtbl_record_54979 ubi_change_vtbl_record 0 54979 NULL
39389 +ext3_xattr_get_54989 ext3_xattr_get 0 54989 NULL
39390 -+rds_ib_inc_copy_to_user_55007 rds_ib_inc_copy_to_user 3 55007 NULL
39391 -+mem_cgroup_get_lru_size_55008 mem_cgroup_get_lru_size 0 55008 NULL
39392 +cx231xx_v4l2_read_55014 cx231xx_v4l2_read 3 55014 NULL
39393 -+paging32_get_level1_sp_gpa_55022 paging32_get_level1_sp_gpa 0 55022 NULL
39394 +error_error_null_Frame_tx_start_read_55024 error_error_null_Frame_tx_start_read 3 55024 NULL
39395 +dgap_do_bios_load_55025 dgap_do_bios_load 3 55025 NULL
39396 -+btrfs_init_acl_55028 btrfs_init_acl 0 55028 NULL
39397 -+write_ctree_super_55039 write_ctree_super 0 55039 NULL
39398 -+ext4_ext_handle_uninitialized_extents_55059 ext4_ext_handle_uninitialized_extents 0-6 55059 NULL
39399 +apei_exec_run_55075 apei_exec_run 0 55075 NULL
39400 +bitmap_storage_alloc_55077 bitmap_storage_alloc 2 55077 NULL
39401 -+snd_pcm_capture_hw_avail_55086 snd_pcm_capture_hw_avail 0 55086 NULL nohasharray
39402 -+read_dma_55086 read_dma 3 55086 &snd_pcm_capture_hw_avail_55086
39403 ++read_dma_55086 read_dma 3 55086 NULL
39404 +rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read_55106 rxpipe_beacon_buffer_thres_host_int_trig_rx_data_read 3 55106 NULL
39405 -+corrupt_data_55120 corrupt_data 0-3 55120 NULL
39406 +crypto_ahash_setkey_55134 crypto_ahash_setkey 3 55134 NULL
39407 -+ocfs2_prepare_refcount_change_for_del_55137 ocfs2_prepare_refcount_change_for_del 3-0 55137 NULL nohasharray
39408 -+filldir_55137 filldir 3 55137 &ocfs2_prepare_refcount_change_for_del_55137
39409 -+validate_vid_hdr_55145 validate_vid_hdr 0 55145 NULL
39410 ++filldir_55137 filldir 3 55137 NULL
39411 +ocfs2_truncate_file_55148 ocfs2_truncate_file 3 55148 NULL
39412 +npages_to_npools_55149 npages_to_npools 0-1 55149 NULL
39413 +ieee80211_if_read_uapsd_queues_55150 ieee80211_if_read_uapsd_queues 3 55150 NULL
39414 @@ -110704,118 +111467,99 @@ index 0000000..3d6cc0f
39415 +__kfifo_dma_out_prepare_r_55211 __kfifo_dma_out_prepare_r 4-5 55211 NULL
39416 +do_raw_setsockopt_55215 do_raw_setsockopt 5 55215 NULL
39417 +qxl_alloc_client_monitors_config_55216 qxl_alloc_client_monitors_config 2 55216 NULL
39418 ++nouveau_mc_create__55217 nouveau_mc_create_ 4 55217 NULL
39419 +dbAllocDmap_55227 dbAllocDmap 0 55227 NULL
39420 -+hash_netport6_expire_55232 hash_netport6_expire 3 55232 NULL
39421 +memcpy_fromiovec_55247 memcpy_fromiovec 3 55247 NULL
39422 +lbs_failcount_write_55276 lbs_failcount_write 3 55276 NULL
39423 +persistent_ram_new_55286 persistent_ram_new 2-1 55286 NULL
39424 -+ptrace_request_55288 ptrace_request 3 55288 NULL
39425 +rx_streaming_interval_read_55291 rx_streaming_interval_read 3 55291 NULL
39426 +lov_get_stripecnt_55297 lov_get_stripecnt 0-3 55297 NULL
39427 +gsm_control_modem_55303 gsm_control_modem 3 55303 NULL
39428 +wimax_msg_len_55304 wimax_msg_len 0 55304 NULL
39429 -+qp_alloc_guest_work_55305 qp_alloc_guest_work 5-3 55305 NULL nohasharray
39430 -+__get_vm_area_node_55305 __get_vm_area_node 6 55305 &qp_alloc_guest_work_55305
39431 ++qp_alloc_guest_work_55305 qp_alloc_guest_work 5-3 55305 NULL
39432 +__vxge_hw_vpath_initialize_55328 __vxge_hw_vpath_initialize 2 55328 NULL
39433 -+do_shmat_55336 do_shmat 5 55336 NULL
39434 +vme_user_read_55338 vme_user_read 3 55338 NULL
39435 -+sctp_datamsg_from_user_55342 sctp_datamsg_from_user 4 55342 NULL nohasharray
39436 -+__wa_xfer_setup_sizes_55342 __wa_xfer_setup_sizes 0 55342 &sctp_datamsg_from_user_55342
39437 -+iterate_inode_extrefs_55362 iterate_inode_extrefs 0 55362 NULL nohasharray
39438 -+acpi_system_read_event_55362 acpi_system_read_event 3 55362 &iterate_inode_extrefs_55362
39439 ++__wa_xfer_setup_sizes_55342 __wa_xfer_setup_sizes 0 55342 NULL nohasharray
39440 ++sctp_datamsg_from_user_55342 sctp_datamsg_from_user 4 55342 &__wa_xfer_setup_sizes_55342
39441 ++tipc_send2name_55373 tipc_send2name 5 55373 NULL
39442 +cw1200_sdio_align_size_55391 cw1200_sdio_align_size 2 55391 NULL
39443 -+__domain_mapping_55393 __domain_mapping 5 55393 NULL
39444 +iwl_dbgfs_plcp_delta_read_55407 iwl_dbgfs_plcp_delta_read 3 55407 NULL
39445 ++sysfs_chmod_file_55408 sysfs_chmod_file 0 55408 NULL
39446 +si476x_radio_read_rds_blckcnt_blob_55427 si476x_radio_read_rds_blckcnt_blob 3 55427 NULL
39447 -+SyS_read_55449 SyS_read 3 55449 NULL
39448 -+add_relation_rb_55451 add_relation_rb 0 55451 NULL
39449 ++sysfs_sd_setattr_55437 sysfs_sd_setattr 0 55437 NULL
39450 +__vxge_hw_channel_allocate_55462 __vxge_hw_channel_allocate 3 55462 NULL
39451 +cx23888_ir_rx_read_55473 cx23888_ir_rx_read 3 55473 NULL
39452 +snd_pcm_lib_write_55483 snd_pcm_lib_write 0-3 55483 NULL
39453 +i2o_pool_alloc_55485 i2o_pool_alloc 4 55485 NULL
39454 -+ocfs2_rec_clusters_55501 ocfs2_rec_clusters 0 55501 NULL nohasharray
39455 -+ras_stride_increase_window_55501 ras_stride_increase_window 3 55501 &ocfs2_rec_clusters_55501
39456 -+ext4_flex_bg_size_55502 ext4_flex_bg_size 0 55502 NULL
39457 ++batadv_tt_entries_55487 batadv_tt_entries 0-1 55487 NULL
39458 ++ras_stride_increase_window_55501 ras_stride_increase_window 3 55501 NULL
39459 +tx_tx_done_int_template_read_55511 tx_tx_done_int_template_read 3 55511 NULL
39460 +ea_get_55522 ea_get 3-0 55522 NULL
39461 +buffer_size_55534 buffer_size 0 55534 NULL
39462 +set_msr_interception_55538 set_msr_interception 2 55538 NULL
39463 +tty_port_register_device_55543 tty_port_register_device 3 55543 NULL
39464 +dgap_do_config_load_55548 dgap_do_config_load 2 55548 NULL
39465 ++hash_ipport6_expire_55549 hash_ipport6_expire 4 55549 NULL
39466 +dm_stats_list_55551 dm_stats_list 4 55551 NULL
39467 -+gfs2_bitfit_55566 gfs2_bitfit 2-3-0 55566 NULL
39468 -+hash_netport4_expire_55584 hash_netport4_expire 3 55584 NULL
39469 +add_partition_55588 add_partition 2 55588 NULL
39470 +kstrtou8_from_user_55599 kstrtou8_from_user 2 55599 NULL
39471 -+SyS_keyctl_55602 SyS_keyctl 4 55602 NULL
39472 -+allocate_without_wrapping_disk_55607 allocate_without_wrapping_disk 4 55607 NULL
39473 ++SyS_keyctl_55602 SyS_keyctl 4 55602 NULL nohasharray
39474 ++config_buf_55602 config_buf 0 55602 &SyS_keyctl_55602
39475 +macvtap_put_user_55609 macvtap_put_user 4 55609 NULL
39476 +selinux_setprocattr_55611 selinux_setprocattr 4 55611 NULL
39477 +edge_tty_recv_55622 edge_tty_recv 3 55622 NULL
39478 -+snd_pcm_hw_param_last_55624 snd_pcm_hw_param_last 0 55624 NULL
39479 -+reiserfs_xattr_get_55628 reiserfs_xattr_get 0 55628 NULL nohasharray
39480 -+pktgen_if_write_55628 pktgen_if_write 3 55628 &reiserfs_xattr_get_55628
39481 ++pktgen_if_write_55628 pktgen_if_write 3 55628 NULL nohasharray
39482 ++reiserfs_xattr_get_55628 reiserfs_xattr_get 0 55628 &pktgen_if_write_55628
39483 +osc_obd_max_pages_per_rpc_seq_write_55636 osc_obd_max_pages_per_rpc_seq_write 3 55636 NULL
39484 -+dvb_dmxdev_set_buffer_size_55643 dvb_dmxdev_set_buffer_size 2 55643 NULL
39485 -+mlx4_buddy_alloc_55647 mlx4_buddy_alloc 2 55647 NULL
39486 +xfs_bmbt_maxrecs_55649 xfs_bmbt_maxrecs 0-2 55649 NULL
39487 +lpfc_idiag_queinfo_read_55662 lpfc_idiag_queinfo_read 3 55662 NULL
39488 +il_dbgfs_tx_queue_read_55668 il_dbgfs_tx_queue_read 3 55668 NULL
39489 -+btrfs_reloc_cow_block_55672 btrfs_reloc_cow_block 0 55672 NULL
39490 +get_info_55681 get_info 3 55681 NULL
39491 +iwl_dbgfs_plcp_delta_write_55682 iwl_dbgfs_plcp_delta_write 3 55682 NULL
39492 ++echo_big_lmm_get_55690 echo_big_lmm_get 0 55690 NULL
39493 ++genl_allocate_reserve_groups_55705 genl_allocate_reserve_groups 1 55705 NULL
39494 +pm8001_store_update_fw_55716 pm8001_store_update_fw 4 55716 NULL
39495 -+ocfs2_lock_refcount_tree_55719 ocfs2_lock_refcount_tree 0 55719 NULL nohasharray
39496 -+mtdswap_init_55719 mtdswap_init 2 55719 &ocfs2_lock_refcount_tree_55719
39497 ++ocfs2_lock_refcount_tree_55719 ocfs2_lock_refcount_tree 0 55719 NULL
39498 +tap_pwup_write_55723 tap_pwup_write 3 55723 NULL
39499 +__iio_allocate_kfifo_55738 __iio_allocate_kfifo 2 55738 NULL
39500 +set_local_name_55757 set_local_name 4 55757 NULL
39501 -+strlen_55778 strlen 0 55778 NULL nohasharray
39502 -+is_idx_node_in_tnc_55778 is_idx_node_in_tnc 0 55778 &strlen_55778
39503 ++strlen_55778 strlen 0 55778 NULL
39504 +set_spte_55783 set_spte 4-5 55783 NULL
39505 +req_bio_endio_55786 req_bio_endio 3 55786 NULL nohasharray
39506 +conf_read_55786 conf_read 3 55786 &req_bio_endio_55786
39507 +uwb_rc_neh_grok_event_55799 uwb_rc_neh_grok_event 3 55799 NULL
39508 -+sb16_copy_from_user_55836 sb16_copy_from_user 7-6-10 55836 NULL
39509 -+ept_gva_to_gpa_55848 ept_gva_to_gpa 2 55848 NULL
39510 ++sb16_copy_from_user_55836 sb16_copy_from_user 10-6-7 55836 NULL
39511 +ip_hdrlen_55849 ip_hdrlen 0 55849 NULL
39512 +hcd_alloc_coherent_55862 hcd_alloc_coherent 5 55862 NULL
39513 +shmem_setxattr_55867 shmem_setxattr 4 55867 NULL
39514 -+__check_block_validity_55869 __check_block_validity 0 55869 NULL
39515 +hsc_write_55875 hsc_write 3 55875 NULL
39516 ++ramdisk_store_55885 ramdisk_store 4 55885 NULL
39517 +pm_qos_power_read_55891 pm_qos_power_read 3 55891 NULL
39518 ++hash_ip4_expire_55911 hash_ip4_expire 4 55911 NULL
39519 +snd_pcm_hw_param_value_min_55917 snd_pcm_hw_param_value_min 0 55917 NULL
39520 +ext2_direct_IO_55932 ext2_direct_IO 4 55932 NULL
39521 -+paging64_page_fault_55942 paging64_page_fault 2 55942 NULL
39522 +kvm_write_guest_virt_system_55944 kvm_write_guest_virt_system 4-2 55944 NULL
39523 +sel_read_policy_55947 sel_read_policy 3 55947 NULL
39524 +ceph_get_direct_page_vector_55956 ceph_get_direct_page_vector 2 55956 NULL
39525 -+simple_read_from_buffer_55957 simple_read_from_buffer 5-2 55957 NULL
39526 ++simple_read_from_buffer_55957 simple_read_from_buffer 2-5 55957 NULL
39527 +tx_tx_imm_resp_read_55964 tx_tx_imm_resp_read 3 55964 NULL
39528 +btrfs_clone_55977 btrfs_clone 5-3 55977 NULL
39529 -+wa_xfer_create_subset_sg_55992 wa_xfer_create_subset_sg 2-3 55992 NULL
39530 ++wa_xfer_create_subset_sg_55992 wa_xfer_create_subset_sg 3-2 55992 NULL
39531 +nvme_alloc_iod_56027 nvme_alloc_iod 1-2 56027 NULL
39532 +dccp_sendmsg_56058 dccp_sendmsg 4 56058 NULL
39533 -+__set_discard_56081 __set_discard 2 56081 NULL
39534 +pscsi_get_bio_56103 pscsi_get_bio 1 56103 NULL
39535 ++add_sysfs_param_56108 add_sysfs_param 0 56108 NULL
39536 +usb_alloc_stream_buffers_56123 usb_alloc_stream_buffers 3 56123 NULL
39537 +sel_read_handle_status_56139 sel_read_handle_status 3 56139 NULL
39538 +write_file_frameerrors_56145 write_file_frameerrors 3 56145 NULL
39539 -+add_extent_mapping_56157 add_extent_mapping 0 56157 NULL
39540 +__i2c_transfer_56162 __i2c_transfer 0 56162 NULL
39541 +rawv6_setsockopt_56165 rawv6_setsockopt 5 56165 NULL
39542 -+create_irq_nr_56180 create_irq_nr 1-0-2 56180 NULL
39543 -+ath9k_dump_legacy_btcoex_56194 ath9k_dump_legacy_btcoex 0 56194 NULL
39544 -+ocfs2_journal_access_gd_56209 ocfs2_journal_access_gd 0 56209 NULL
39545 -+update_space_info_56213 update_space_info 0 56213 NULL
39546 -+ncp_read_bounce_size_56221 ncp_read_bounce_size 0-1 56221 NULL
39547 ++ath9k_dump_legacy_btcoex_56194 ath9k_dump_legacy_btcoex 3-0 56194 NULL
39548 +vring_add_indirect_56222 vring_add_indirect 4 56222 NULL
39549 +ocfs2_find_xe_in_bucket_56224 ocfs2_find_xe_in_bucket 0 56224 NULL
39550 +do_ipt_set_ctl_56238 do_ipt_set_ctl 4 56238 NULL
39551 +fd_copyin_56247 fd_copyin 3 56247 NULL
39552 -+svc_init_buffer_56249 svc_init_buffer 3 56249 NULL
39553 +sk_rmem_schedule_56255 sk_rmem_schedule 3 56255 NULL
39554 -+p9pdu_vreadf_56271 p9pdu_vreadf 0 56271 NULL
39555 +il4965_ucode_general_stats_read_56277 il4965_ucode_general_stats_read 3 56277 NULL
39556 +ieee80211_if_fmt_user_power_level_56283 ieee80211_if_fmt_user_power_level 3 56283 NULL
39557 +RESIZE_IF_NEEDED_56286 RESIZE_IF_NEEDED 2 56286 NULL
39558 @@ -110825,19 +111569,15 @@ index 0000000..3d6cc0f
39559 +pipeline_pre_to_defrag_swi_read_56321 pipeline_pre_to_defrag_swi_read 3 56321 NULL
39560 +journal_init_revoke_table_56331 journal_init_revoke_table 1 56331 NULL
39561 +snd_rawmidi_read_56337 snd_rawmidi_read 3 56337 NULL
39562 -+ipv6_recv_error_56347 ipv6_recv_error 3 56347 NULL
39563 +vxge_os_dma_malloc_async_56348 vxge_os_dma_malloc_async 3 56348 NULL
39564 +mite_device_bytes_transferred_56355 mite_device_bytes_transferred 0 56355 NULL
39565 -+iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 0-4 56368 NULL
39566 ++iov_iter_copy_from_user_atomic_56368 iov_iter_copy_from_user_atomic 4-0 56368 NULL
39567 +dev_read_56369 dev_read 3 56369 NULL
39568 +ath10k_read_simulate_fw_crash_56371 ath10k_read_simulate_fw_crash 3 56371 NULL
39569 -+ata_qc_complete_multiple_56376 ata_qc_complete_multiple 2 56376 NULL
39570 -+snd_pcm_common_ioctl1_56382 snd_pcm_common_ioctl1 0 56382 NULL
39571 +write_gssp_56404 write_gssp 3 56404 NULL
39572 +ocfs2_control_read_56405 ocfs2_control_read 3 56405 NULL
39573 +do_get_write_access_56410 do_get_write_access 0 56410 NULL
39574 -+i915_gem_object_sync_56417 i915_gem_object_sync 0 56417 NULL nohasharray
39575 -+store_msg_56417 store_msg 3 56417 &i915_gem_object_sync_56417
39576 ++store_msg_56417 store_msg 3 56417 NULL
39577 +pppol2tp_sendmsg_56420 pppol2tp_sendmsg 4 56420 NULL
39578 +fl_create_56435 fl_create 5 56435 NULL
39579 +gnttab_map_56439 gnttab_map 2 56439 NULL
39580 @@ -110847,61 +111587,45 @@ index 0000000..3d6cc0f
39581 +putused_user_56467 putused_user 3 56467 NULL
39582 +lbs_rdmac_write_56471 lbs_rdmac_write 3 56471 NULL
39583 +calc_linear_pos_56472 calc_linear_pos 0-3 56472 NULL
39584 -+global_rt_period_56476 global_rt_period 0 56476 NULL
39585 +crypto_shash_alignmask_56486 crypto_shash_alignmask 0 56486 NULL
39586 +ieee80211_rx_mgmt_probe_beacon_56491 ieee80211_rx_mgmt_probe_beacon 3 56491 NULL
39587 -+cfs_access_process_vm_56503 cfs_access_process_vm 2-4-0 56503 NULL
39588 +init_map_ip_56508 init_map_ip 5 56508 NULL
39589 +lustre_posix_acl_xattr_reduce_space_56512 lustre_posix_acl_xattr_reduce_space 3 56512 NULL
39590 -+ext4_zeroout_es_56514 ext4_zeroout_es 0 56514 NULL
39591 -+cfg80211_connect_result_56515 cfg80211_connect_result 6-4 56515 NULL
39592 ++cfg80211_connect_result_56515 cfg80211_connect_result 4-6 56515 NULL
39593 +ip_options_get_56538 ip_options_get 4 56538 NULL
39594 +ll_wr_track_id_56544 ll_wr_track_id 2 56544 NULL
39595 -+vb2_queue_or_prepare_buf_56547 vb2_queue_or_prepare_buf 0 56547 NULL
39596 -+ocfs2_change_extent_flag_56549 ocfs2_change_extent_flag 5 56549 NULL
39597 +alloc_apertures_56561 alloc_apertures 1 56561 NULL
39598 +rs_sta_dbgfs_stats_table_read_56573 rs_sta_dbgfs_stats_table_read 3 56573 NULL
39599 +portcntrs_2_read_56586 portcntrs_2_read 3 56586 NULL
39600 +event_filter_write_56609 event_filter_write 3 56609 NULL
39601 +nvme_trans_log_temperature_56613 nvme_trans_log_temperature 3 56613 NULL
39602 ++edac_device_create_block_56619 edac_device_create_block 0 56619 NULL
39603 +gather_array_56641 gather_array 3 56641 NULL
39604 -+lookup_extent_backref_56644 lookup_extent_backref 9-0 56644 NULL
39605 ++lookup_extent_backref_56644 lookup_extent_backref 9 56644 NULL
39606 +uvc_debugfs_stats_read_56651 uvc_debugfs_stats_read 3 56651 NULL
39607 +tg3_nvram_write_block_56666 tg3_nvram_write_block 3 56666 NULL
39608 -+btrfs_cow_block_56678 btrfs_cow_block 0 56678 NULL
39609 -+snd_gus_dram_read_56686 snd_gus_dram_read 4 56686 NULL nohasharray
39610 -+da9055_gpio_to_irq_56686 da9055_gpio_to_irq 2 56686 &snd_gus_dram_read_56686
39611 -+build_map_info_56696 build_map_info 2 56696 NULL
39612 ++snd_gus_dram_read_56686 snd_gus_dram_read 4 56686 NULL
39613 +dvb_ringbuffer_read_user_56702 dvb_ringbuffer_read_user 3-0 56702 NULL
39614 +sta_flags_read_56710 sta_flags_read 3 56710 NULL
39615 +ipv6_getsockopt_sticky_56711 ipv6_getsockopt_sticky 5 56711 NULL
39616 +__wa_xfer_setup_segs_56725 __wa_xfer_setup_segs 2 56725 NULL
39617 +__copy_from_user_ll_56738 __copy_from_user_ll 0-3 56738 NULL
39618 -+pcpu_populate_chunk_56741 pcpu_populate_chunk 3-2 56741 NULL
39619 +drm_agp_bind_pages_56748 drm_agp_bind_pages 3 56748 NULL
39620 +btrfsic_map_block_56751 btrfsic_map_block 2 56751 NULL
39621 -+alloc_iommu_56778 alloc_iommu 2-3-0 56778 NULL
39622 -+hash_lookup_56792 hash_lookup 2 56792 NULL nohasharray
39623 -+ttm_alloc_new_pages_56792 ttm_alloc_new_pages 5 56792 &hash_lookup_56792
39624 ++ttm_alloc_new_pages_56792 ttm_alloc_new_pages 5 56792 NULL
39625 +do_syslog_56807 do_syslog 3 56807 NULL
39626 -+ext4_ext_rm_idx_56827 ext4_ext_rm_idx 0 56827 NULL
39627 -+mtdchar_write_56831 mtdchar_write 3 56831 NULL nohasharray
39628 -+ntfs_rl_realloc_56831 ntfs_rl_realloc 3 56831 &mtdchar_write_56831
39629 -+sysctl_sync_threshold_56835 sysctl_sync_threshold 0 56835 NULL
39630 ++mtdchar_write_56831 mtdchar_write 3 56831 NULL
39631 +snd_rawmidi_kernel_write1_56847 snd_rawmidi_kernel_write1 4-0 56847 NULL
39632 +si476x_radio_read_agc_blob_56849 si476x_radio_read_agc_blob 3 56849 NULL
39633 -+wb_lookup_56858 wb_lookup 2 56858 NULL
39634 +ext3_xattr_ibody_get_56880 ext3_xattr_ibody_get 0 56880 NULL
39635 +pvr2_debugifc_print_status_56890 pvr2_debugifc_print_status 3 56890 NULL
39636 +debug_debug3_read_56894 debug_debug3_read 3 56894 NULL
39637 +batadv_tt_update_changes_56895 batadv_tt_update_changes 3 56895 NULL
39638 +hfsplus_find_cat_56899 hfsplus_find_cat 0 56899 NULL
39639 +hfsplus_setxattr_56902 hfsplus_setxattr 4 56902 NULL
39640 -+__bitmap_clear_bits_56912 __bitmap_clear_bits 3 56912 NULL
39641 +strcspn_56913 strcspn 0 56913 NULL
39642 +__kfifo_out_56927 __kfifo_out 0-3 56927 NULL
39643 -+journal_init_revoke_56933 journal_init_revoke 2 56933 NULL nohasharray
39644 -+CopyBufferToControlPacket_56933 CopyBufferToControlPacket 0 56933 &journal_init_revoke_56933
39645 ++journal_init_revoke_56933 journal_init_revoke 2 56933 NULL
39646 +nouveau_xtensa_create__56952 nouveau_xtensa_create_ 8 56952 NULL
39647 +diva_get_driver_info_56967 diva_get_driver_info 0 56967 NULL
39648 +nouveau_device_create__56984 nouveau_device_create_ 6 56984 NULL
39649 @@ -110909,35 +111633,29 @@ index 0000000..3d6cc0f
39650 +vlsi_alloc_ring_57003 vlsi_alloc_ring 3-4 57003 NULL
39651 +btrfs_super_csum_size_57004 btrfs_super_csum_size 0 57004 NULL
39652 +aircable_process_packet_57027 aircable_process_packet 4 57027 NULL
39653 -+i915_gem_evict_everything_57038 i915_gem_evict_everything 0 57038 NULL
39654 -+skb_network_offset_57043 skb_network_offset 0 57043 NULL nohasharray
39655 -+ieee80211_if_fmt_state_57043 ieee80211_if_fmt_state 3 57043 &skb_network_offset_57043
39656 ++ieee80211_if_fmt_state_57043 ieee80211_if_fmt_state 3 57043 NULL nohasharray
39657 ++skb_network_offset_57043 skb_network_offset 0 57043 &ieee80211_if_fmt_state_57043
39658 +bytes_to_samples_57049 bytes_to_samples 0-2 57049 NULL
39659 +xfs_buf_read_map_57053 xfs_buf_read_map 3 57053 NULL
39660 -+__wl_get_peb_57058 __wl_get_peb 0 57058 NULL
39661 +cx2341x_ctrl_new_std_57061 cx2341x_ctrl_new_std 4 57061 NULL
39662 +sca3000_read_data_57064 sca3000_read_data 4 57064 NULL
39663 +pcmcia_replace_cis_57066 pcmcia_replace_cis 3 57066 NULL
39664 +tracing_set_trace_write_57096 tracing_set_trace_write 3 57096 NULL
39665 +altera_get_note_57099 altera_get_note 6 57099 NULL
39666 +hpfs_readpages_57106 hpfs_readpages 4 57106 NULL
39667 -+snd_pcm_hw_params_old_user_57108 snd_pcm_hw_params_old_user 0 57108 NULL
39668 +crypto_compress_ctxsize_57109 crypto_compress_ctxsize 0 57109 NULL
39669 +sysfs_write_file_57116 sysfs_write_file 3 57116 NULL
39670 +cipso_v4_gentag_loc_57119 cipso_v4_gentag_loc 0 57119 NULL
39671 -+nl80211_send_deauth_57136 nl80211_send_deauth 4 57136 NULL nohasharray
39672 -+rds_ib_sub_signaled_57136 rds_ib_sub_signaled 2 57136 &nl80211_send_deauth_57136 nohasharray
39673 -+ima_show_htable_value_57136 ima_show_htable_value 2 57136 &rds_ib_sub_signaled_57136
39674 ++rds_ib_sub_signaled_57136 rds_ib_sub_signaled 2 57136 NULL nohasharray
39675 ++nl80211_send_deauth_57136 nl80211_send_deauth 4 57136 &rds_ib_sub_signaled_57136 nohasharray
39676 ++ima_show_htable_value_57136 ima_show_htable_value 2 57136 &nl80211_send_deauth_57136
39677 +snd_sonicvibes_getdmac_57140 snd_sonicvibes_getdmac 0 57140 NULL
39678 -+changed_inode_57156 changed_inode 0 57156 NULL
39679 +udl_prime_create_57159 udl_prime_create 2 57159 NULL
39680 -+__ipath_get_user_pages_57166 __ipath_get_user_pages 1-2 57166 NULL
39681 +stk_prepare_sio_buffers_57168 stk_prepare_sio_buffers 2 57168 NULL
39682 +rx_hw_stuck_read_57179 rx_hw_stuck_read 3 57179 NULL
39683 -+ocfs2_claim_metadata_57192 ocfs2_claim_metadata 0 57192 NULL
39684 ++hash_netnet6_expire_57191 hash_netnet6_expire 4 57191 NULL
39685 +tt3650_ci_msg_57219 tt3650_ci_msg 4 57219 NULL
39686 +dma_fifo_alloc_57236 dma_fifo_alloc 5-3-2 57236 NULL
39687 -+flush_space_57241 flush_space 3-0 57241 NULL
39688 +rsxx_cram_write_57244 rsxx_cram_write 3 57244 NULL
39689 +ieee80211_if_fmt_tsf_57249 ieee80211_if_fmt_tsf 3 57249 NULL
39690 +oprofilefs_ulong_from_user_57251 oprofilefs_ulong_from_user 3 57251 NULL
39691 @@ -110945,108 +111663,83 @@ index 0000000..3d6cc0f
39692 +lbs_sleepparams_write_57283 lbs_sleepparams_write 3 57283 NULL
39693 +pstore_file_read_57288 pstore_file_read 3 57288 NULL
39694 +snd_pcm_read_57289 snd_pcm_read 3 57289 NULL
39695 -+fw_file_size_57307 fw_file_size 0 57307 NULL
39696 +ftdi_elan_write_57309 ftdi_elan_write 3 57309 NULL
39697 +write_file_regval_57313 write_file_regval 3 57313 NULL
39698 +__mxt_write_reg_57326 __mxt_write_reg 3 57326 NULL
39699 -+ocfs2_xattr_shrink_size_57328 ocfs2_xattr_shrink_size 3 57328 NULL
39700 +usblp_read_57342 usblp_read 3 57342 NULL
39701 +print_devstats_dot11RTSFailureCount_57347 print_devstats_dot11RTSFailureCount 3 57347 NULL
39702 +dio_send_cur_page_57348 dio_send_cur_page 0 57348 NULL
39703 +tipc_bclink_stats_57372 tipc_bclink_stats 2 57372 NULL
39704 -+max8997_irq_domain_map_57375 max8997_irq_domain_map 2 57375 NULL
39705 +tty_register_device_attr_57381 tty_register_device_attr 2 57381 NULL
39706 +read_file_blob_57406 read_file_blob 3 57406 NULL
39707 +enclosure_register_57412 enclosure_register 3 57412 NULL
39708 +compat_keyctl_instantiate_key_iov_57431 compat_keyctl_instantiate_key_iov 3 57431 NULL
39709 +copy_to_user_fromio_57432 copy_to_user_fromio 3 57432 NULL
39710 +__roundup_pow_of_two_57461 __roundup_pow_of_two 0 57461 NULL
39711 -+crypto_tfm_alg_blocksize_57463 crypto_tfm_alg_blocksize 0 57463 NULL
39712 +sisusb_clear_vram_57466 sisusb_clear_vram 2-3 57466 NULL
39713 -+blk_flush_cur_seq_57467 blk_flush_cur_seq 0 57467 NULL
39714 -+ieee80211_if_read_flags_57470 ieee80211_if_read_flags 3 57470 NULL nohasharray
39715 -+sep_lock_user_pages_57470 sep_lock_user_pages 2-3 57470 &ieee80211_if_read_flags_57470
39716 -+ocfs2_write_cluster_57483 ocfs2_write_cluster 9-8-2 57483 NULL
39717 ++ieee80211_if_read_flags_57470 ieee80211_if_read_flags 3 57470 NULL
39718 ++tipc_port_reject_sections_57478 tipc_port_reject_sections 4 57478 NULL
39719 +bnad_debugfs_write_regwr_57500 bnad_debugfs_write_regwr 3 57500 NULL
39720 +skb_headlen_57501 skb_headlen 0 57501 NULL
39721 +copy_in_user_57502 copy_in_user 3 57502 NULL
39722 +ckhdid_printf_57505 ckhdid_printf 2 57505 NULL
39723 +init_tag_map_57515 init_tag_map 3 57515 NULL
39724 -+wil_read_file_ssid_57517 wil_read_file_ssid 3 57517 NULL nohasharray
39725 -+il_dbgfs_force_reset_read_57517 il_dbgfs_force_reset_read 3 57517 &wil_read_file_ssid_57517 nohasharray
39726 -+btrfs_insert_inode_extref_57517 btrfs_insert_inode_extref 0 57517 &il_dbgfs_force_reset_read_57517
39727 ++il_dbgfs_force_reset_read_57517 il_dbgfs_force_reset_read 3 57517 NULL nohasharray
39728 ++wil_read_file_ssid_57517 wil_read_file_ssid 3 57517 &il_dbgfs_force_reset_read_57517
39729 +cmm_read_57520 cmm_read 3 57520 NULL
39730 +inode_permission_57531 inode_permission 0 57531 NULL
39731 +acpi_dev_get_resources_57534 acpi_dev_get_resources 0 57534 NULL
39732 +ptlrpc_lprocfs_hp_ratio_seq_write_57537 ptlrpc_lprocfs_hp_ratio_seq_write 3 57537 NULL
39733 -+ReadHDLCPnP_57559 ReadHDLCPnP 0 57559 NULL nohasharray
39734 -+ext4_group_first_block_no_57559 ext4_group_first_block_no 0-2 57559 &ReadHDLCPnP_57559
39735 ++ReadHDLCPnP_57559 ReadHDLCPnP 0 57559 NULL
39736 +obd_unpackmd_57563 obd_unpackmd 0 57563 NULL
39737 +snd_pcm_playback_ioctl1_57569 snd_pcm_playback_ioctl1 0 57569 NULL
39738 +get_bridge_ifindices_57579 get_bridge_ifindices 0 57579 NULL
39739 +ldlm_cli_enqueue_local_57582 ldlm_cli_enqueue_local 11 57582 NULL
39740 +il_dbgfs_interrupt_write_57591 il_dbgfs_interrupt_write 3 57591 NULL
39741 +read_file_spectral_fft_period_57593 read_file_spectral_fft_period 3 57593 NULL
39742 -+wm831x_gpio_to_irq_57614 wm831x_gpio_to_irq 2 57614 NULL
39743 -+vma_kernel_pagesize_57616 vma_kernel_pagesize 0 57616 NULL
39744 +tx_tx_retry_template_read_57623 tx_tx_retry_template_read 3 57623 NULL
39745 +sisusbcon_putcs_57630 sisusbcon_putcs 3 57630 NULL
39746 +mem_read_57631 mem_read 3 57631 NULL
39747 -+tc3589x_irq_map_57639 tc3589x_irq_map 2 57639 NULL
39748 +r3964_write_57662 r3964_write 4 57662 NULL
39749 +proc_ns_readlink_57664 proc_ns_readlink 3 57664 NULL
39750 +__lgwrite_57669 __lgwrite 4 57669 NULL
39751 +f1x_match_to_this_node_57695 f1x_match_to_this_node 3 57695 NULL
39752 +i2400m_rx_stats_read_57706 i2400m_rx_stats_read 3 57706 NULL
39753 -+snd_interval_value_57713 snd_interval_value 0 57713 NULL
39754 +ieee80211_if_read_dot11MeshHWMPconfirmationInterval_57722 ieee80211_if_read_dot11MeshHWMPconfirmationInterval 3 57722 NULL
39755 -+i915_gem_object_get_pages_57734 i915_gem_object_get_pages 0 57734 NULL
39756 +nouveau_gpio_create__57735 nouveau_gpio_create_ 4-5 57735 NULL
39757 -+compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 NULL nohasharray
39758 -+pppol2tp_recvmsg_57742 pppol2tp_recvmsg 4 57742 &compat_sys_set_mempolicy_57742
39759 ++pppol2tp_recvmsg_57742 pppol2tp_recvmsg 4 57742 NULL nohasharray
39760 ++compat_sys_set_mempolicy_57742 compat_sys_set_mempolicy 3 57742 &pppol2tp_recvmsg_57742
39761 +ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval_57762 ieee80211_if_fmt_dot11MeshHWMPpreqMinInterval 3 57762 NULL
39762 -+SYSC_process_vm_writev_57776 SYSC_process_vm_writev 5-3 57776 NULL
39763 ++SYSC_process_vm_writev_57776 SYSC_process_vm_writev 3-5 57776 NULL
39764 +apei_exec_collect_resources_57788 apei_exec_collect_resources 0 57788 NULL
39765 +ld2_57794 ld2 0 57794 NULL
39766 +ivtv_read_57796 ivtv_read 3 57796 NULL
39767 -+generic_ptrace_peekdata_57806 generic_ptrace_peekdata 2 57806 NULL
39768 -+ipath_user_sdma_num_pages_57813 ipath_user_sdma_num_pages 0 57813 NULL
39769 +bfad_debugfs_read_regrd_57830 bfad_debugfs_read_regrd 3 57830 NULL
39770 +copy_to_user_57835 copy_to_user 3-0 57835 NULL
39771 +flash_read_57843 flash_read 3 57843 NULL
39772 +kiblnd_create_tx_pool_57846 kiblnd_create_tx_pool 2 57846 NULL
39773 -+process_all_new_xattrs_57881 process_all_new_xattrs 0 57881 NULL
39774 +xt_alloc_table_info_57903 xt_alloc_table_info 1 57903 NULL
39775 -+atomic_add_return_unchecked_57910 atomic_add_return_unchecked 0-1 57910 NULL nohasharray
39776 -+iio_read_first_n_kfifo_57910 iio_read_first_n_kfifo 2 57910 &atomic_add_return_unchecked_57910
39777 ++iio_read_first_n_kfifo_57910 iio_read_first_n_kfifo 2 57910 NULL
39778 +memcg_caches_array_size_57918 memcg_caches_array_size 0-1 57918 NULL
39779 +twl_i2c_write_57923 twl_i2c_write 3-4 57923 NULL
39780 +__snd_gf1_look16_57925 __snd_gf1_look16 0 57925 NULL
39781 +sel_read_handle_unknown_57933 sel_read_handle_unknown 3 57933 NULL
39782 -+nvc0_vm_create_57942 nvc0_vm_create 2-3 57942 NULL
39783 +xfs_mru_cache_create_57943 xfs_mru_cache_create 3 57943 NULL
39784 +key_algorithm_read_57946 key_algorithm_read 3 57946 NULL
39785 +ip_set_alloc_57953 ip_set_alloc 1 57953 NULL nohasharray
39786 +ioat3_dca_count_dca_slots_57953 ioat3_dca_count_dca_slots 0 57953 &ip_set_alloc_57953
39787 -+c2_reg_user_mr_57982 c2_reg_user_mr 2-3 57982 NULL
39788 -+interleave_nodes_57992 interleave_nodes 0 57992 NULL
39789 +do_rx_dma_57996 do_rx_dma 5 57996 NULL
39790 +rx_reset_counter_read_58001 rx_reset_counter_read 3 58001 NULL
39791 +iwl_dbgfs_ucode_rx_stats_read_58023 iwl_dbgfs_ucode_rx_stats_read 3 58023 NULL
39792 +io_playback_transfer_58030 io_playback_transfer 4 58030 NULL
39793 -+ext4_block_bitmap_58033 ext4_block_bitmap 0 58033 NULL
39794 +mce_async_out_58056 mce_async_out 3 58056 NULL
39795 +ocfs2_find_leaf_58065 ocfs2_find_leaf 0 58065 NULL
39796 +dt3155_alloc_coherent_58073 dt3155_alloc_coherent 2 58073 NULL
39797 +cm4040_write_58079 cm4040_write 3 58079 NULL
39798 +ipv6_flowlabel_opt_58135 ipv6_flowlabel_opt 3 58135 NULL nohasharray
39799 -+slhc_init_58135 slhc_init 2-1 58135 &ipv6_flowlabel_opt_58135
39800 -+ocfs2_reserve_clusters_58164 ocfs2_reserve_clusters 0 58164 NULL
39801 -+ext4_bg_num_gdb_58171 ext4_bg_num_gdb 0 58171 NULL
39802 ++slhc_init_58135 slhc_init 1-2 58135 &ipv6_flowlabel_opt_58135
39803 +garmin_write_bulk_58191 garmin_write_bulk 3 58191 NULL
39804 +ieee80211_if_fmt_flags_58205 ieee80211_if_fmt_flags 3 58205 NULL
39805 -+sysfs_add_file_mode_58222 sysfs_add_file_mode 0 58222 NULL
39806 -+hva_to_pfn_58241 hva_to_pfn 1-0 58241 NULL
39807 +btrfsic_create_link_to_next_block_58246 btrfsic_create_link_to_next_block 4 58246 NULL
39808 +read_file_debug_58256 read_file_debug 3 58256 NULL
39809 +osc_max_dirty_mb_seq_write_58263 osc_max_dirty_mb_seq_write 3 58263 NULL
39810 @@ -111055,36 +111748,27 @@ index 0000000..3d6cc0f
39811 +kstrtos8_from_user_58268 kstrtos8_from_user 2 58268 NULL
39812 +acpi_ds_build_internal_package_obj_58271 acpi_ds_build_internal_package_obj 3 58271 NULL
39813 +iscsi_decode_text_input_58292 iscsi_decode_text_input 4 58292 NULL
39814 -+intel_alloc_coherent_58302 intel_alloc_coherent 2 58302 NULL
39815 +ieee80211_if_read_dot11MeshTTL_58307 ieee80211_if_read_dot11MeshTTL 3 58307 NULL
39816 -+i915_wait_seqno_58309 i915_wait_seqno 0 58309 NULL
39817 +tx_tx_start_int_templates_read_58324 tx_tx_start_int_templates_read 3 58324 NULL
39818 -+ext4_ext_truncate_extend_restart_58331 ext4_ext_truncate_extend_restart 3-0 58331 NULL
39819 -+diva_init_dma_map_58336 diva_init_dma_map 3 58336 NULL
39820 ++ext4_ext_truncate_extend_restart_58331 ext4_ext_truncate_extend_restart 3 58331 NULL
39821 +__copy_from_user_swizzled_58337 __copy_from_user_swizzled 2-4 58337 NULL
39822 -+next_pidmap_58347 next_pidmap 2-0 58347 NULL
39823 +SyS_migrate_pages_58348 SyS_migrate_pages 2 58348 NULL
39824 -+save_hint_58359 save_hint 2 58359 NULL
39825 -+vmw_ttm_tt_create_58369 vmw_ttm_tt_create 2 58369 NULL nohasharray
39826 -+brcmf_debugfs_sdio_counter_read_58369 brcmf_debugfs_sdio_counter_read 3 58369 &vmw_ttm_tt_create_58369
39827 -+hash_ipportnet6_expire_58379 hash_ipportnet6_expire 3 58379 NULL
39828 ++brcmf_debugfs_sdio_counter_read_58369 brcmf_debugfs_sdio_counter_read 3 58369 NULL
39829 +il_dbgfs_status_read_58388 il_dbgfs_status_read 3 58388 NULL
39830 +_drbd_md_sync_page_io_58403 _drbd_md_sync_page_io 6 58403 NULL
39831 -+kvm_mmu_write_protect_pt_masked_58406 kvm_mmu_write_protect_pt_masked 3-4 58406 NULL nohasharray
39832 ++kvm_mmu_write_protect_pt_masked_58406 kvm_mmu_write_protect_pt_masked 3 58406 NULL nohasharray
39833 +idetape_pad_zeros_58406 idetape_pad_zeros 2 58406 &kvm_mmu_write_protect_pt_masked_58406
39834 +i2400m_pld_size_58415 i2400m_pld_size 0 58415 NULL
39835 -+__mlx4_alloc_mtt_range_58418 __mlx4_alloc_mtt_range 2 58418 NULL
39836 +capabilities_read_58457 capabilities_read 3 58457 NULL
39837 -+batadv_iv_ogm_aggr_packet_58462 batadv_iv_ogm_aggr_packet 3 58462 NULL
39838 +lpfc_idiag_baracc_read_58466 lpfc_idiag_baracc_read 3 58466 NULL nohasharray
39839 +compat_do_ipt_set_ctl_58466 compat_do_ipt_set_ctl 4 58466 &lpfc_idiag_baracc_read_58466
39840 +nv_rd08_58472 nv_rd08 0 58472 NULL
39841 ++acpi_tables_sysfs_init_58477 acpi_tables_sysfs_init 0 58477 NULL
39842 +snd_gf1_read_addr_58483 snd_gf1_read_addr 0 58483 NULL
39843 +snd_rme96_capture_copy_58484 snd_rme96_capture_copy 5 58484 NULL
39844 +btrfs_cont_expand_58498 btrfs_cont_expand 2-3 58498 NULL
39845 +rndis_add_response_58544 rndis_add_response 2 58544 NULL
39846 -+__clear_discard_58546 __clear_discard 2 58546 NULL
39847 -+wrap_max_58548 wrap_max 0-1-2 58548 NULL
39848 ++ldlm_srv_pool_shrink_58554 ldlm_srv_pool_shrink 0 58554 NULL
39849 +wep_decrypt_fail_read_58567 wep_decrypt_fail_read 3 58567 NULL
39850 +scnprint_mac_oui_58578 scnprint_mac_oui 3-0 58578 NULL
39851 +get_rhf_errstring_58582 get_rhf_errstring 3 58582 NULL
39852 @@ -111093,48 +111777,33 @@ index 0000000..3d6cc0f
39853 +xip_file_read_58592 xip_file_read 3 58592 NULL
39854 +ecryptfs_write_end_58594 ecryptfs_write_end 5-3 58594 NULL
39855 +radeon_bo_size_58606 radeon_bo_size 0 58606 NULL
39856 -+ebt_buf_count_58607 ebt_buf_count 0 58607 NULL
39857 -+xfs_iomap_write_delay_58616 xfs_iomap_write_delay 2 58616 NULL
39858 +skb_copy_to_page_nocache_58624 skb_copy_to_page_nocache 6 58624 NULL
39859 -+filemap_fdatawrite_range_58630 filemap_fdatawrite_range 0 58630 NULL
39860 -+vb2_qbuf_58631 vb2_qbuf 0 58631 NULL
39861 -+module_alloc_update_bounds_rx_58634 module_alloc_update_bounds_rx 1 58634 NULL
39862 +tx_tx_start_fw_gen_read_58648 tx_tx_start_fw_gen_read 3 58648 NULL
39863 -+ocfs2_block_to_cluster_start_58653 ocfs2_block_to_cluster_start 2 58653 NULL
39864 +iwl_dbgfs_rx_handlers_write_58655 iwl_dbgfs_rx_handlers_write 3 58655 NULL
39865 -+__gfn_to_pfn_58671 __gfn_to_pfn 2 58671 NULL
39866 +find_zero_58685 find_zero 0-1 58685 NULL
39867 +uwb_bce_print_IEs_58686 uwb_bce_print_IEs 4 58686 NULL
39868 +tps6586x_writes_58689 tps6586x_writes 2-3 58689 NULL
39869 -+vmalloc_node_58700 vmalloc_node 1-2 58700 NULL
39870 +vx_send_msg_58711 vx_send_msg 0 58711 NULL
39871 -+i915_gem_execbuffer_reserve_58722 i915_gem_execbuffer_reserve 0 58722 NULL
39872 -+da9052_gpio_to_irq_58729 da9052_gpio_to_irq 2 58729 NULL
39873 +csum_exist_in_range_58730 csum_exist_in_range 2-3 58730 NULL
39874 +frames_to_bytes_58741 frames_to_bytes 0-2 58741 NULL
39875 +ieee80211_if_write_tkip_mic_test_58748 ieee80211_if_write_tkip_mic_test 3 58748 NULL
39876 +agp_allocate_memory_58761 agp_allocate_memory 2 58761 NULL
39877 -+oblock_to_dblock_58762 oblock_to_dblock 0-2 58762 NULL
39878 +regmap_calc_reg_len_58795 regmap_calc_reg_len 0 58795 NULL
39879 +raw_send_hdrinc_58803 raw_send_hdrinc 4 58803 NULL
39880 +isku_sysfs_read_58806 isku_sysfs_read 5 58806 NULL
39881 -+write_file_58812 write_file 4 58812 NULL
39882 +ep_read_58813 ep_read 3 58813 NULL
39883 +command_write_58841 command_write 3 58841 NULL
39884 -+ocfs2_truncate_log_append_58850 ocfs2_truncate_log_append 3-0 58850 NULL
39885 +ath6kl_wmi_send_action_cmd_58860 ath6kl_wmi_send_action_cmd 7 58860 NULL
39886 +gs_alloc_req_58883 gs_alloc_req 2 58883 NULL
39887 +esas2r_change_queue_depth_58886 esas2r_change_queue_depth 2 58886 NULL
39888 +lprocfs_wr_pinger_recov_58914 lprocfs_wr_pinger_recov 3 58914 NULL
39889 +print_devstats_dot11FCSErrorCount_58919 print_devstats_dot11FCSErrorCount 3 58919 NULL
39890 +pipeline_cs_rx_packet_out_read_58926 pipeline_cs_rx_packet_out_read 3 58926 NULL
39891 -+SyS_pread64_58935 SyS_pread64 3 58935 NULL
39892 ++sptlrpc_import_sec_adapt_58948 sptlrpc_import_sec_adapt 0 58948 NULL
39893 +wait_table_hash_nr_entries_58962 wait_table_hash_nr_entries 0 58962 NULL
39894 +ieee80211_if_fmt_dot11MeshHWMPactivePathToRootTimeout_58965 ieee80211_if_fmt_dot11MeshHWMPactivePathToRootTimeout 3 58965 NULL
39895 +crypto_aead_ivsize_58970 crypto_aead_ivsize 0 58970 NULL
39896 -+__mem_cgroup_try_charge_58976 __mem_cgroup_try_charge 0 58976 NULL
39897 -+init_list_58990 init_list 3 58990 NULL
39898 -+remap_to_cache_dirty_58991 remap_to_cache_dirty 4-3 58991 NULL
39899 ++init_list_set_59005 init_list_set 3 59005 NULL
39900 +ep_write_59008 ep_write 3 59008 NULL
39901 +lpfc_idiag_baracc_write_59014 lpfc_idiag_baracc_write 3 59014 NULL
39902 +SyS_preadv_59029 SyS_preadv 3 59029 NULL
39903 @@ -111143,20 +111812,17 @@ index 0000000..3d6cc0f
39904 +crypto_aead_reqsize_59039 crypto_aead_reqsize 0 59039 NULL
39905 +regmap_bulk_write_59049 regmap_bulk_write 2-4 59049 NULL
39906 +sysfs_link_sibling_59078 sysfs_link_sibling 0 59078 NULL
39907 -+do_perf_sw_event_59099 do_perf_sw_event 3 59099 NULL
39908 +mmc_sd_num_wr_blocks_59112 mmc_sd_num_wr_blocks 0 59112 NULL
39909 +scsi_io_completion_59122 scsi_io_completion 2 59122 NULL
39910 -+init_status_page_59124 init_status_page 0 59124 NULL
39911 +nfc_llcp_send_i_frame_59130 nfc_llcp_send_i_frame 3 59130 NULL
39912 +print_devstats_dot11RTSSuccessCount_59145 print_devstats_dot11RTSSuccessCount 3 59145 NULL nohasharray
39913 +framebuffer_alloc_59145 framebuffer_alloc 1 59145 &print_devstats_dot11RTSSuccessCount_59145
39914 -+ocfs2_claim_local_alloc_bits_59147 ocfs2_claim_local_alloc_bits 0 59147 NULL
39915 +radeon_compat_ioctl_59150 radeon_compat_ioctl 2 59150 NULL
39916 +pvr2_hdw_report_clients_59152 pvr2_hdw_report_clients 3 59152 NULL
39917 ++md_getxattr_59161 md_getxattr 0 59161 NULL
39918 +ksize_59176 ksize 0 59176 NULL
39919 +setup_window_59178 setup_window 4-2-5-7 59178 NULL
39920 -+ocfs2_move_extent_59187 ocfs2_move_extent 3-5-2 59187 NULL
39921 -+validate_exec_list_59204 validate_exec_list 0 59204 NULL
39922 ++ocfs2_move_extent_59187 ocfs2_move_extent 2-5 59187 NULL
39923 +xfs_iext_realloc_indirect_59211 xfs_iext_realloc_indirect 2 59211 NULL
39924 +check_mapped_selector_name_59216 check_mapped_selector_name 5 59216 NULL
39925 +dt3155_read_59226 dt3155_read 3 59226 NULL
39926 @@ -111164,91 +111830,65 @@ index 0000000..3d6cc0f
39927 +tty_prepare_flip_string_flags_59240 tty_prepare_flip_string_flags 4 59240 NULL
39928 +nla_len_59258 nla_len 0 59258 NULL
39929 +drbd_bm_write_page_59290 drbd_bm_write_page 2 59290 NULL
39930 -+__push_leaf_right_59302 __push_leaf_right 0 59302 NULL
39931 -+btrfs_insert_dir_item_59304 btrfs_insert_dir_item 4-0 59304 NULL
39932 ++btrfs_insert_dir_item_59304 btrfs_insert_dir_item 4 59304 NULL
39933 +fd_copyout_59323 fd_copyout 3 59323 NULL
39934 +read_9287_modal_eeprom_59327 read_9287_modal_eeprom 3 59327 NULL
39935 +rx_defrag_in_process_called_read_59338 rx_defrag_in_process_called_read 3 59338 NULL
39936 -+paging64_get_level1_sp_gpa_59346 paging64_get_level1_sp_gpa 0 59346 NULL nohasharray
39937 -+xfs_attrmulti_attr_set_59346 xfs_attrmulti_attr_set 4 59346 &paging64_get_level1_sp_gpa_59346
39938 ++xfs_attrmulti_attr_set_59346 xfs_attrmulti_attr_set 4 59346 NULL
39939 +__map_request_59350 __map_request 0 59350 NULL
39940 -+xfs_dir2_sf_entsize_59366 xfs_dir2_sf_entsize 0-2 59366 NULL
39941 -+blk_flush_policy_59368 blk_flush_policy 0 59368 NULL
39942 +f2fs_fallocate_59377 f2fs_fallocate 3-4 59377 NULL
39943 +pvr2_debugifc_print_info_59380 pvr2_debugifc_print_info 3 59380 NULL
39944 -+ocfs2_replay_truncate_records_59382 ocfs2_replay_truncate_records 0 59382 NULL
39945 +journal_init_dev_59384 journal_init_dev 5 59384 NULL
39946 ++__net_get_random_once_59389 __net_get_random_once 2 59389 NULL
39947 +isku_sysfs_read_keys_function_59412 isku_sysfs_read_keys_function 6 59412 NULL
39948 +pci_ctrl_read_59424 pci_ctrl_read 0 59424 NULL
39949 +vxge_hw_ring_rxds_per_block_get_59425 vxge_hw_ring_rxds_per_block_get 0 59425 NULL
39950 -+snd_pcm_tstamp_59431 snd_pcm_tstamp 0 59431 NULL
39951 +SyS_sched_setaffinity_59442 SyS_sched_setaffinity 2 59442 NULL
39952 -+fs_path_ensure_buf_59445 fs_path_ensure_buf 2-0 59445 NULL
39953 -+descriptor_loc_59446 descriptor_loc 3 59446 NULL
39954 -+block_rsv_use_bytes_59464 block_rsv_use_bytes 0 59464 NULL
39955 -+shrink_tnc_trees_59481 shrink_tnc_trees 0 59481 NULL
39956 -+btrfs_del_dir_entries_in_log_59490 btrfs_del_dir_entries_in_log 0 59490 NULL
39957 ++fs_path_ensure_buf_59445 fs_path_ensure_buf 2 59445 NULL
39958 +ib_copy_from_udata_59502 ib_copy_from_udata 3 59502 NULL
39959 -+rds_pin_pages_59507 rds_pin_pages 1-2 59507 NULL
39960 -+kmalloc_large_node_59542 kmalloc_large_node 3 59542 NULL
39961 -+ext4_resize_fs_59543 ext4_resize_fs 2 59543 NULL
39962 ++mic_vringh_copy_59523 mic_vringh_copy 4 59523 NULL
39963 +mpi_get_nbits_59551 mpi_get_nbits 0 59551 NULL
39964 +tunables_write_59563 tunables_write 3 59563 NULL
39965 +__copy_from_user_ll_nozero_59571 __copy_from_user_ll_nozero 0-3 59571 NULL
39966 +write_pbl_59583 write_pbl 4 59583 NULL
39967 +memdup_user_59590 memdup_user 2 59590 NULL
39968 -+tps6586x_irq_get_virq_59601 tps6586x_irq_get_virq 2 59601 NULL
39969 -+mem_fwlog_free_mem_blks_read_59616 mem_fwlog_free_mem_blks_read 3 59616 NULL nohasharray
39970 -+xrcdn_free_res_59616 xrcdn_free_res 5 59616 &mem_fwlog_free_mem_blks_read_59616
39971 ++xrcdn_free_res_59616 xrcdn_free_res 5 59616 NULL nohasharray
39972 ++mem_fwlog_free_mem_blks_read_59616 mem_fwlog_free_mem_blks_read 3 59616 &xrcdn_free_res_59616
39973 +ath6kl_endpoint_stats_write_59621 ath6kl_endpoint_stats_write 3 59621 NULL
39974 +mtrr_write_59622 mtrr_write 3 59622 NULL
39975 -+ocfs2_adjust_rightmost_branch_59623 ocfs2_adjust_rightmost_branch 0 59623 NULL
39976 -+find_first_zero_bit_59636 find_first_zero_bit 0-2 59636 NULL
39977 ++find_first_zero_bit_59636 find_first_zero_bit 0 59636 NULL
39978 +SyS_setdomainname_59646 SyS_setdomainname 2 59646 NULL
39979 +hidraw_read_59650 hidraw_read 3 59650 NULL
39980 +v9fs_xattr_set_acl_59651 v9fs_xattr_set_acl 4 59651 NULL
39981 -+paravirt_sched_clock_59660 paravirt_sched_clock 0 59660 NULL
39982 +__devcgroup_check_permission_59665 __devcgroup_check_permission 0 59665 NULL
39983 +iwl_dbgfs_mac_params_read_59666 iwl_dbgfs_mac_params_read 3 59666 NULL
39984 +alloc_dca_provider_59670 alloc_dca_provider 2 59670 NULL
39985 +mic_calc_failure_read_59700 mic_calc_failure_read 3 59700 NULL
39986 +ioperm_get_59701 ioperm_get 4-3 59701 NULL
39987 -+snd_pcm_info_user_59711 snd_pcm_info_user 0 59711 NULL
39988 +prism2_info_scanresults_59729 prism2_info_scanresults 3 59729 NULL
39989 +ieee80211_if_read_fwded_unicast_59740 ieee80211_if_read_fwded_unicast 3 59740 NULL
39990 +fat_direct_IO_59741 fat_direct_IO 4 59741 NULL
39991 +qib_decode_7220_sdma_errs_59745 qib_decode_7220_sdma_errs 4 59745 NULL
39992 +strnlen_59746 strnlen 0 59746 NULL
39993 -+process_all_refs_59754 process_all_refs 0 59754 NULL nohasharray
39994 -+ext3_acl_count_59754 ext3_acl_count 0-1 59754 &process_all_refs_59754
39995 -+process_new_xattr_59755 process_new_xattr 0 59755 NULL
39996 ++ext3_acl_count_59754 ext3_acl_count 0-1 59754 NULL
39997 +long_retry_limit_read_59766 long_retry_limit_read 3 59766 NULL
39998 +venus_remove_59781 venus_remove 4 59781 NULL
39999 +mei_nfc_recv_59784 mei_nfc_recv 3 59784 NULL
40000 -+xlog_do_recover_59789 xlog_do_recover 3 59789 NULL
40001 -+msb_get_zone_from_lba_59800 msb_get_zone_from_lba 0-1 59800 NULL
40002 ++C_SYSC_preadv_59801 C_SYSC_preadv 3 59801 NULL
40003 +ipw_write_59807 ipw_write 3 59807 NULL
40004 +scsi_init_shared_tag_map_59812 scsi_init_shared_tag_map 2 59812 NULL
40005 +ieee80211_if_read_dot11MeshHWMPmaxPREQretries_59829 ieee80211_if_read_dot11MeshHWMPmaxPREQretries 3 59829 NULL
40006 +gspca_dev_probe2_59833 gspca_dev_probe2 4 59833 NULL
40007 -+fs64_to_cpu_59845 fs64_to_cpu 0 59845 NULL
40008 +regmap_raw_write_async_59849 regmap_raw_write_async 2-4 59849 NULL
40009 -+intel_ring_wait_request_59865 intel_ring_wait_request 0 59865 NULL
40010 +pvr2_ioread_set_sync_key_59882 pvr2_ioread_set_sync_key 3 59882 NULL
40011 -+shmem_zero_setup_59885 shmem_zero_setup 0 59885 NULL nohasharray
40012 -+start_transaction_59885 start_transaction 2 59885 &shmem_zero_setup_59885
40013 +l2cap_sock_recvmsg_59886 l2cap_sock_recvmsg 4 59886 NULL
40014 +ffs_prepare_buffer_59892 ffs_prepare_buffer 2 59892 NULL
40015 -+ocfs2_extend_rotate_transaction_59894 ocfs2_extend_rotate_transaction 0 59894 NULL
40016 -+swiotlb_map_page_59909 swiotlb_map_page 3 59909 NULL
40017 ++ocfs2_extend_rotate_transaction_59894 ocfs2_extend_rotate_transaction 2-3 59894 NULL
40018 +aic7xxx_abort_waiting_scb_59932 aic7xxx_abort_waiting_scb 0 59932 NULL
40019 +kvm_mmu_notifier_invalidate_range_start_59944 kvm_mmu_notifier_invalidate_range_start 3-4 59944 NULL
40020 -+ocfs2_expand_inline_ref_root_59945 ocfs2_expand_inline_ref_root 0 59945 NULL
40021 -+il_dbgfs_rxon_flags_read_59950 il_dbgfs_rxon_flags_read 3 59950 NULL nohasharray
40022 -+dapm_widget_power_read_file_59950 dapm_widget_power_read_file 3 59950 &il_dbgfs_rxon_flags_read_59950
40023 -+lookup_node_59953 lookup_node 2 59953 NULL
40024 ++dapm_widget_power_read_file_59950 dapm_widget_power_read_file 3 59950 NULL nohasharray
40025 ++il_dbgfs_rxon_flags_read_59950 il_dbgfs_rxon_flags_read 3 59950 &dapm_widget_power_read_file_59950
40026 +il_dbgfs_missed_beacon_read_59956 il_dbgfs_missed_beacon_read 3 59956 NULL
40027 -+kvm_set_cr3_59965 kvm_set_cr3 2 59965 NULL
40028 +__arch_hweight16_59975 __arch_hweight16 0 59975 NULL
40029 +osd_req_read_kern_59990 osd_req_read_kern 5 59990 NULL
40030 +ghash_async_setkey_60001 ghash_async_setkey 3 60001 NULL
40031 @@ -111259,14 +111899,11 @@ index 0000000..3d6cc0f
40032 +xlog_bread_offset_60030 xlog_bread_offset 3 60030 NULL
40033 +bio_integrity_hw_sectors_60039 bio_integrity_hw_sectors 0-2 60039 NULL
40034 +do_ip6t_set_ctl_60040 do_ip6t_set_ctl 4 60040 NULL
40035 -+pin_2_irq_60050 pin_2_irq 0-3 60050 NULL nohasharray
40036 -+vcs_size_60050 vcs_size 0 60050 &pin_2_irq_60050
40037 ++vcs_size_60050 vcs_size 0 60050 NULL
40038 +gru_alloc_gts_60056 gru_alloc_gts 3-2 60056 NULL
40039 -+open_cur_inode_file_60057 open_cur_inode_file 0 60057 NULL
40040 +compat_writev_60063 compat_writev 3 60063 NULL
40041 +ath6kl_listen_int_write_60066 ath6kl_listen_int_write 3 60066 NULL
40042 +c4iw_num_stags_60073 c4iw_num_stags 0 60073 NULL
40043 -+mp_register_gsi_60079 mp_register_gsi 2 60079 NULL
40044 +rxrpc_kernel_send_data_60083 rxrpc_kernel_send_data 3 60083 NULL
40045 +ieee80211_if_fmt_fwded_frames_60103 ieee80211_if_fmt_fwded_frames 3 60103 NULL
40046 +SYSC_msgsnd_60113 SYSC_msgsnd 3 60113 NULL
40047 @@ -111275,38 +111912,27 @@ index 0000000..3d6cc0f
40048 +ld_usb_read_60156 ld_usb_read 3 60156 NULL
40049 +jmb38x_ms_count_slots_60164 jmb38x_ms_count_slots 0 60164 NULL
40050 +init_state_60165 init_state 2 60165 NULL
40051 -+sg_build_sgat_60179 sg_build_sgat 3 60179 NULL nohasharray
40052 -+jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 &sg_build_sgat_60179
40053 ++jffs2_alloc_full_dirent_60179 jffs2_alloc_full_dirent 1 60179 NULL nohasharray
40054 ++sg_build_sgat_60179 sg_build_sgat 3 60179 &jffs2_alloc_full_dirent_60179
40055 +fuse_async_req_send_60183 fuse_async_req_send 0-3 60183 NULL
40056 +rx_rx_tkip_replays_read_60193 rx_rx_tkip_replays_read 3 60193 NULL
40057 +qib_reg_phys_mr_60202 qib_reg_phys_mr 3 60202 NULL
40058 +btrfs_get_token_16_60220 btrfs_get_token_16 0 60220 NULL
40059 -+arizona_map_irq_60230 arizona_map_irq 2 60230 NULL nohasharray
40060 -+__phys_addr_nodebug_60230 __phys_addr_nodebug 0 60230 &arizona_map_irq_60230
40061 -+wm831x_irq_60254 wm831x_irq 2 60254 NULL
40062 -+irq_alloc_domain_generic_chips_60264 irq_alloc_domain_generic_chips 3-2 60264 NULL
40063 ++irq_alloc_domain_generic_chips_60264 irq_alloc_domain_generic_chips 2-3 60264 NULL
40064 ++display_crc_ctl_write_60273 display_crc_ctl_write 3 60273 NULL
40065 +printer_write_60276 printer_write 3 60276 NULL
40066 -+alloc_irq_pin_list_60277 alloc_irq_pin_list 1 60277 NULL
40067 +do_xip_mapping_read_60297 do_xip_mapping_read 5 60297 NULL
40068 +getDataLength_60301 getDataLength 0 60301 NULL
40069 -+xfs_next_bit_60322 xfs_next_bit 0-3 60322 NULL
40070 -+inorder_to_tree_60331 inorder_to_tree 1-0 60331 NULL
40071 +usb_alphatrack_write_60341 usb_alphatrack_write 3 60341 NULL
40072 +__kfifo_from_user_r_60345 __kfifo_from_user_r 5-3 60345 NULL
40073 -+max_unfragmented_pages_60362 max_unfragmented_pages 0 60362 NULL
40074 +dccp_setsockopt_60367 dccp_setsockopt 5 60367 NULL
40075 -+ubi_eba_atomic_leb_change_60379 ubi_eba_atomic_leb_change 0-5 60379 NULL
40076 -+instruction_pointer_60384 instruction_pointer 0 60384 NULL
40077 -+drop_outstanding_extent_60390 drop_outstanding_extent 0 60390 NULL
40078 +mthca_alloc_resize_buf_60394 mthca_alloc_resize_buf 3 60394 NULL
40079 +ocfs2_zero_extend_60396 ocfs2_zero_extend 3 60396 NULL
40080 +driver_names_read_60399 driver_names_read 3 60399 NULL
40081 -+paging32_walk_addr_generic_60415 paging32_walk_addr_generic 4 60415 NULL
40082 +simple_alloc_urb_60420 simple_alloc_urb 3 60420 NULL
40083 +excessive_retries_read_60425 excessive_retries_read 3 60425 NULL
40084 -+tstats_write_60432 tstats_write 3 60432 NULL nohasharray
40085 -+kmalloc_60432 kmalloc 1 60432 &tstats_write_60432
40086 -+scaled_div32_60442 scaled_div32 2-1-0 60442 NULL
40087 ++kmalloc_60432 kmalloc 1 60432 NULL nohasharray
40088 ++tstats_write_60432 tstats_write 3 60432 &kmalloc_60432
40089 +snd_hda_get_num_raw_conns_60462 snd_hda_get_num_raw_conns 0 60462 NULL
40090 +crypto_shash_setkey_60483 crypto_shash_setkey 3 60483 NULL
40091 +lustre_msg_early_size_60496 lustre_msg_early_size 0 60496 NULL
40092 @@ -111314,21 +111940,12 @@ index 0000000..3d6cc0f
40093 +nonpaging_map_60551 nonpaging_map 4 60551 NULL
40094 +osc_lockless_truncate_seq_write_60553 osc_lockless_truncate_seq_write 3 60553 NULL
40095 +tracing_entries_write_60563 tracing_entries_write 3 60563 NULL
40096 -+hash_net6_expire_60598 hash_net6_expire 3 60598 NULL
40097 -+btrfs_add_delayed_tree_ref_60602 btrfs_add_delayed_tree_ref 0 60602 NULL
40098 +skb_transport_offset_60619 skb_transport_offset 0 60619 NULL
40099 +wl1273_fm_fops_write_60621 wl1273_fm_fops_write 3 60621 NULL
40100 -+usb_control_msg_60624 usb_control_msg 0 60624 NULL
40101 +acl_alloc_stack_init_60630 acl_alloc_stack_init 1 60630 NULL
40102 -+free_dind_blocks_60635 free_dind_blocks 0 60635 NULL
40103 -+ubifs_recover_leb_60639 ubifs_recover_leb 3 60639 NULL
40104 +__proc_lnet_stats_60647 __proc_lnet_stats 5 60647 NULL
40105 -+mv_ffc64_60648 mv_ffc64 1 60648 NULL
40106 +if_sdio_host_to_card_60666 if_sdio_host_to_card 4 60666 NULL
40107 -+run_clustered_refs_60668 run_clustered_refs 0 60668 NULL
40108 +ieee80211_if_read_dot11MeshConfirmTimeout_60670 ieee80211_if_read_dot11MeshConfirmTimeout 3 60670 NULL
40109 -+btrfs_reserve_extent_60674 btrfs_reserve_extent 5-0 60674 NULL
40110 -+init_data_container_60709 init_data_container 1 60709 NULL
40111 +vga_rcrt_60731 vga_rcrt 0 60731 NULL
40112 +snd_ice1712_ds_read_60754 snd_ice1712_ds_read 0 60754 NULL
40113 +raid_status_60755 raid_status 5 60755 NULL
40114 @@ -111336,12 +111953,9 @@ index 0000000..3d6cc0f
40115 +opticon_write_60775 opticon_write 4 60775 NULL
40116 +acl_alloc_num_60778 acl_alloc_num 1-2 60778 NULL
40117 +snd_pcm_oss_readv3_60792 snd_pcm_oss_readv3 3 60792 NULL
40118 -+block_rsv_migrate_bytes_60843 block_rsv_migrate_bytes 0 60843 NULL
40119 +pwr_tx_with_ps_read_60851 pwr_tx_with_ps_read 3 60851 NULL
40120 -+alloc_buf_60864 alloc_buf 2-3 60864 NULL
40121 ++alloc_buf_60864 alloc_buf 3-2 60864 NULL
40122 +generic_writepages_60871 generic_writepages 0 60871 NULL
40123 -+tipc_createport_60875 tipc_createport 4 60875 NULL
40124 -+ubifs_read_one_lp_60882 ubifs_read_one_lp 0 60882 NULL
40125 +ext4_update_inline_data_60888 ext4_update_inline_data 3 60888 NULL
40126 +iio_debugfs_read_reg_60908 iio_debugfs_read_reg 3 60908 NULL
40127 +libcfs_sock_ioctl_60915 libcfs_sock_ioctl 0 60915 NULL
40128 @@ -111349,7 +111963,7 @@ index 0000000..3d6cc0f
40129 +scrub_chunk_60926 scrub_chunk 5 60926 NULL
40130 +submit_extent_page_60928 submit_extent_page 5 60928 NULL
40131 +pti_char_write_60960 pti_char_write 3 60960 NULL
40132 -+mwifiex_alloc_sdio_mpa_buffers_60961 mwifiex_alloc_sdio_mpa_buffers 3-2 60961 NULL
40133 ++mwifiex_alloc_sdio_mpa_buffers_60961 mwifiex_alloc_sdio_mpa_buffers 2-3 60961 NULL
40134 +__a2mp_build_60987 __a2mp_build 3 60987 NULL
40135 +hsc_msg_alloc_60990 hsc_msg_alloc 1 60990 NULL
40136 +ath6kl_lrssi_roam_read_61022 ath6kl_lrssi_roam_read 3 61022 NULL
40137 @@ -111358,75 +111972,51 @@ index 0000000..3d6cc0f
40138 +lpfc_idiag_queacc_write_61043 lpfc_idiag_queacc_write 3 61043 NULL
40139 +symtab_init_61050 symtab_init 2 61050 NULL
40140 +fuse_send_write_61053 fuse_send_write 0-4 61053 NULL
40141 -+snd_pcm_pause_61054 snd_pcm_pause 0 61054 NULL
40142 -+bitmap_scnlistprintf_61062 bitmap_scnlistprintf 0-4-2 61062 NULL
40143 ++bitmap_scnlistprintf_61062 bitmap_scnlistprintf 0-2 61062 NULL
40144 +ahash_align_buffer_size_61070 ahash_align_buffer_size 0-1-2 61070 NULL
40145 -+journal_stop_61080 journal_stop 0 61080 NULL
40146 -+snd_pcm_update_hw_ptr0_61084 snd_pcm_update_hw_ptr0 0 61084 NULL
40147 +get_derived_key_61100 get_derived_key 4 61100 NULL
40148 -+mem_cgroup_cache_charge_61101 mem_cgroup_cache_charge 0 61101 NULL
40149 +i40e_calculate_l2fpm_size_61104 i40e_calculate_l2fpm_size 0-1-2-3-4 61104 NULL
40150 +alloc_chrdev_region_61112 alloc_chrdev_region 0 61112 NULL
40151 +__probe_kernel_read_61119 __probe_kernel_read 3 61119 NULL
40152 -+vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1-2 61126 NULL
40153 ++vmemmap_alloc_block_buf_61126 vmemmap_alloc_block_buf 1 61126 NULL
40154 +afs_proc_cells_write_61139 afs_proc_cells_write 3 61139 NULL
40155 +brcmf_sdio_chip_cr4_exitdl_61143 brcmf_sdio_chip_cr4_exitdl 4 61143 NULL
40156 -+__vmalloc_61168 __vmalloc 1 61168 NULL
40157 -+event_oom_late_read_61175 event_oom_late_read 3 61175 NULL nohasharray
40158 -+pair_device_61175 pair_device 4 61175 &event_oom_late_read_61175
40159 ++pair_device_61175 pair_device 4 61175 NULL nohasharray
40160 ++event_oom_late_read_61175 event_oom_late_read 3 61175 &pair_device_61175
40161 +dio_bio_add_page_61178 dio_bio_add_page 0 61178 NULL
40162 -+btrfs_reloc_post_snapshot_61189 btrfs_reloc_post_snapshot 0 61189 NULL
40163 +SyS_prctl_61202 SyS_prctl 4 61202 NULL
40164 +arch_hibernation_header_save_61212 arch_hibernation_header_save 0 61212 NULL
40165 +smk_read_ambient_61220 smk_read_ambient 3 61220 NULL
40166 -+__verify_planes_array_61249 __verify_planes_array 0 61249 NULL
40167 -+find_get_pages_tag_61270 find_get_pages_tag 0 61270 NULL nohasharray
40168 -+ifalias_store_61270 ifalias_store 4 61270 &find_get_pages_tag_61270 nohasharray
40169 -+btrfs_bio_alloc_61270 btrfs_bio_alloc 3 61270 &ifalias_store_61270
40170 -+kick_a_thread_61273 kick_a_thread 0 61273 NULL
40171 -+hfsplus_getxattr_finder_info_61283 hfsplus_getxattr_finder_info 0 61283 NULL nohasharray
40172 -+vortex_adbdma_getlinearpos_61283 vortex_adbdma_getlinearpos 0 61283 &hfsplus_getxattr_finder_info_61283
40173 ++btrfs_bio_alloc_61270 btrfs_bio_alloc 3 61270 NULL nohasharray
40174 ++find_get_pages_tag_61270 find_get_pages_tag 0 61270 &btrfs_bio_alloc_61270 nohasharray
40175 ++ifalias_store_61270 ifalias_store 4 61270 &find_get_pages_tag_61270
40176 ++vortex_adbdma_getlinearpos_61283 vortex_adbdma_getlinearpos 0 61283 NULL nohasharray
40177 ++hfsplus_getxattr_finder_info_61283 hfsplus_getxattr_finder_info 0 61283 &vortex_adbdma_getlinearpos_61283
40178 +nvme_trans_copy_to_user_61288 nvme_trans_copy_to_user 3 61288 NULL
40179 -+ext4_issue_discard_61305 ext4_issue_discard 2 61305 NULL
40180 +xfer_from_user_61307 xfer_from_user 3 61307 NULL
40181 -+ocfs2_get_sector_61309 ocfs2_get_sector 4 61309 NULL
40182 -+timespec_to_ns_61317 timespec_to_ns 0 61317 NULL
40183 +xfrm_user_sec_ctx_size_61320 xfrm_user_sec_ctx_size 0 61320 NULL
40184 +C_SYSC_msgsnd_61330 C_SYSC_msgsnd 3 61330 NULL
40185 +write_file_spectral_short_repeat_61335 write_file_spectral_short_repeat 3 61335 NULL
40186 -+__fls_61340 __fls 0 61340 NULL nohasharray
40187 -+st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 &__fls_61340
40188 -+do_splice_direct_61341 do_splice_direct 5 61341 NULL nohasharray
40189 -+rx_rx_wa_ba_not_expected_read_61341 rx_rx_wa_ba_not_expected_read 3 61341 &do_splice_direct_61341
40190 -+__dm_get_reserved_ios_61342 __dm_get_reserved_ios 0-2-3 61342 NULL
40191 ++st5481_setup_isocpipes_61340 st5481_setup_isocpipes 6-4 61340 NULL
40192 ++rx_rx_wa_ba_not_expected_read_61341 rx_rx_wa_ba_not_expected_read 3 61341 NULL
40193 ++__dm_get_reserved_ios_61342 __dm_get_reserved_ios 0-3-2 61342 NULL
40194 +f1x_map_sysaddr_to_csrow_61344 f1x_map_sysaddr_to_csrow 2 61344 NULL
40195 -+kvm_apic_id_61363 kvm_apic_id 0 61363 NULL
40196 +debug_debug4_read_61367 debug_debug4_read 3 61367 NULL
40197 -+get_inode_info_61387 get_inode_info 0 61387 NULL
40198 +system_enable_write_61396 system_enable_write 3 61396 NULL
40199 -+size_entry_mwt_61400 size_entry_mwt 0 61400 NULL
40200 +xfs_zero_remaining_bytes_61423 xfs_zero_remaining_bytes 3 61423 NULL
40201 -+i915_emit_box_61436 i915_emit_box 0 61436 NULL
40202 -+dma_ops_area_alloc_61440 dma_ops_area_alloc 3-4-5-0 61440 NULL
40203 -+tc3589x_irq_unmap_61447 tc3589x_irq_unmap 2 61447 NULL
40204 +unix_stream_sendmsg_61455 unix_stream_sendmsg 4 61455 NULL
40205 +snd_pcm_lib_writev_transfer_61483 snd_pcm_lib_writev_transfer 5-4-2 61483 NULL
40206 +btrfs_item_size_61485 btrfs_item_size 0 61485 NULL
40207 +ocfs2_get_refcount_rec_61514 ocfs2_get_refcount_rec 0 61514 NULL
40208 -+__vmalloc_area_node_61525 __vmalloc_area_node 4 61525 NULL
40209 +erst_errno_61526 erst_errno 0 61526 NULL
40210 -+ntfs_attr_lookup_61539 ntfs_attr_lookup 0 61539 NULL
40211 -+get_ohm_of_thermistor_61545 get_ohm_of_thermistor 2 61545 NULL
40212 +trace_options_core_write_61551 trace_options_core_write 3 61551 NULL
40213 -+o2hb_pop_count_61553 o2hb_pop_count 2 61553 NULL
40214 +dvb_net_ioctl_61559 dvb_net_ioctl 2 61559 NULL
40215 -+alloc_pgtable_page_61562 alloc_pgtable_page 1 61562 NULL
40216 +parport_pc_fifo_write_block_dma_61568 parport_pc_fifo_write_block_dma 3 61568 NULL
40217 +fan_proc_write_61569 fan_proc_write 3 61569 NULL
40218 +ieee80211_if_read_rc_rateidx_mask_2ghz_61570 ieee80211_if_read_rc_rateidx_mask_2ghz 3 61570 NULL
40219 +ldlm_pool_rw_atomic_seq_write_61572 ldlm_pool_rw_atomic_seq_write 3 61572 NULL
40220 +seq_open_private_61589 seq_open_private 3 61589 NULL
40221 -+ept_gpte_to_gfn_lvl_61591 ept_gpte_to_gfn_lvl 0-2-1 61591 NULL
40222 ++ept_gpte_to_gfn_lvl_61591 ept_gpte_to_gfn_lvl 0-1-2 61591 NULL
40223 +netlink_recvmsg_61600 netlink_recvmsg 4 61600 NULL
40224 +nfs4_init_uniform_client_string_61601 nfs4_init_uniform_client_string 3 61601 NULL
40225 +configfs_write_file_61621 configfs_write_file 3 61621 NULL
40226 @@ -111436,47 +112026,40 @@ index 0000000..3d6cc0f
40227 +resize_stripes_61650 resize_stripes 2 61650 NULL
40228 +ttm_page_pool_free_61661 ttm_page_pool_free 2-0 61661 NULL
40229 +insert_one_name_61668 insert_one_name 7 61668 NULL
40230 -+snd_pcm_playback_avail_61671 snd_pcm_playback_avail 0 61671 NULL
40231 +qib_format_hwmsg_61679 qib_format_hwmsg 2 61679 NULL
40232 +lock_loop_61681 lock_loop 1 61681 NULL
40233 +__do_tune_cpucache_61684 __do_tune_cpucache 2 61684 NULL
40234 +filter_read_61692 filter_read 3 61692 NULL
40235 -+prog_page_61711 prog_page 2 61711 NULL
40236 +iov_length_61716 iov_length 0 61716 NULL
40237 +fragmentation_threshold_read_61718 fragmentation_threshold_read 3 61718 NULL
40238 +null_alloc_reqbuf_61719 null_alloc_reqbuf 3 61719 NULL
40239 +read_file_interrupt_61742 read_file_interrupt 3 61742 NULL nohasharray
40240 +read_file_regval_61742 read_file_regval 3 61742 &read_file_interrupt_61742
40241 +SyS_sendto_61763 SyS_sendto 6 61763 NULL
40242 -+gfs2_meta_wait_61773 gfs2_meta_wait 0 61773 NULL
40243 -+num_counter_active_61789 num_counter_active 0 61789 NULL
40244 +mls_compute_context_len_61812 mls_compute_context_len 0 61812 NULL
40245 -+tps80031_irq_init_61830 tps80031_irq_init 3 61830 NULL
40246 +bfad_debugfs_write_regwr_61841 bfad_debugfs_write_regwr 3 61841 NULL
40247 -+regcache_sync_block_61846 regcache_sync_block 4-5 61846 NULL
40248 -+fs_path_prepare_for_add_61854 fs_path_prepare_for_add 2-0 61854 NULL
40249 ++regcache_sync_block_61846 regcache_sync_block 5-4 61846 NULL
40250 ++ath9k_hw_def_dump_eeprom_61853 ath9k_hw_def_dump_eeprom 5-4 61853 NULL
40251 ++fs_path_prepare_for_add_61854 fs_path_prepare_for_add 2 61854 NULL
40252 +evdev_compute_buffer_size_61863 evdev_compute_buffer_size 0 61863 NULL
40253 +SYSC_lsetxattr_61869 SYSC_lsetxattr 4 61869 NULL
40254 +get_fw_name_61874 get_fw_name 3 61874 NULL
40255 -+twl4030_sih_setup_61878 twl4030_sih_setup 3-0 61878 NULL
40256 -+btrfs_ioctl_clone_61886 btrfs_ioctl_clone 4-3-5 61886 NULL
40257 ++btrfs_ioctl_clone_61886 btrfs_ioctl_clone 3-4-5 61886 NULL
40258 +lprocfs_write_frac_u64_helper_61897 lprocfs_write_frac_u64_helper 2 61897 NULL
40259 +lov_mds_md_stripecnt_61899 lov_mds_md_stripecnt 0-1 61899 NULL
40260 -+clear_refs_write_61904 clear_refs_write 3 61904 NULL
40261 ++clear_refs_write_61904 clear_refs_write 3 61904 NULL nohasharray
40262 ++import_sec_check_expire_61904 import_sec_check_expire 0 61904 &clear_refs_write_61904
40263 +rx_filter_arp_filter_read_61914 rx_filter_arp_filter_read 3 61914 NULL
40264 +au0828_init_isoc_61917 au0828_init_isoc 3-2-4 61917 NULL
40265 +sctp_sendmsg_61919 sctp_sendmsg 4 61919 NULL
40266 -+ocfs2_reserve_new_metadata_blocks_61926 ocfs2_reserve_new_metadata_blocks 0 61926 NULL
40267 ++edac_device_create_instance_61940 edac_device_create_instance 0 61940 NULL
40268 +SyS_kexec_load_61946 SyS_kexec_load 2 61946 NULL
40269 -+gfn_to_pfn_memslot_atomic_61947 gfn_to_pfn_memslot_atomic 2 61947 NULL
40270 +il4965_ucode_rx_stats_read_61948 il4965_ucode_rx_stats_read 3 61948 NULL
40271 +squashfs_read_id_index_table_61961 squashfs_read_id_index_table 4 61961 NULL
40272 +fix_read_error_61965 fix_read_error 4 61965 NULL
40273 -+mlx4_alloc_mtt_range_61966 mlx4_alloc_mtt_range 2 61966 NULL
40274 -+ocfs2_quota_write_61972 ocfs2_quota_write 5-4 61972 NULL
40275 ++ocfs2_quota_write_61972 ocfs2_quota_write 4-5 61972 NULL
40276 +fd_locked_ioctl_61978 fd_locked_ioctl 3 61978 NULL
40277 +cow_file_range_61979 cow_file_range 3 61979 NULL
40278 -+module_alloc_exec_61991 module_alloc_exec 1 61991 NULL
40279 +dequeue_event_62000 dequeue_event 3 62000 NULL
40280 +xt_compat_match_offset_62011 xt_compat_match_offset 0 62011 NULL
40281 +SyS_setxattr_62019 SyS_setxattr 4 62019 NULL
40282 @@ -111486,19 +112069,16 @@ index 0000000..3d6cc0f
40283 +sctp_user_addto_chunk_62047 sctp_user_addto_chunk 2-3 62047 NULL
40284 +do_pselect_62061 do_pselect 1 62061 NULL
40285 +pcpu_alloc_bootmem_62074 pcpu_alloc_bootmem 2 62074 NULL
40286 -+get_domain_for_dev_62099 get_domain_for_dev 2 62099 NULL
40287 -+ipath_user_sdma_pin_pages_62100 ipath_user_sdma_pin_pages 3-5-4 62100 NULL
40288 +jffs2_security_setxattr_62107 jffs2_security_setxattr 4 62107 NULL
40289 +btrfs_direct_IO_62114 btrfs_direct_IO 4 62114 NULL
40290 +ip_recv_error_62117 ip_recv_error 3 62117 NULL
40291 +generic_block_fiemap_62122 generic_block_fiemap 4 62122 NULL
40292 +llc_ui_header_len_62131 llc_ui_header_len 0 62131 NULL
40293 -+qib_diag_write_62133 qib_diag_write 3 62133 NULL nohasharray
40294 -+kobject_add_varg_62133 kobject_add_varg 0 62133 &qib_diag_write_62133
40295 -+ql_status_62135 ql_status 5 62135 NULL nohasharray
40296 -+device_add_attrs_62135 device_add_attrs 0 62135 &ql_status_62135
40297 ++kobject_add_varg_62133 kobject_add_varg 0 62133 NULL nohasharray
40298 ++qib_diag_write_62133 qib_diag_write 3 62133 &kobject_add_varg_62133
40299 ++device_add_attrs_62135 device_add_attrs 0 62135 NULL nohasharray
40300 ++ql_status_62135 ql_status 5 62135 &device_add_attrs_62135
40301 +video_usercopy_62151 video_usercopy 2 62151 NULL
40302 -+wrmWithLock_62164 wrmWithLock 0 62164 NULL
40303 +SyS_getxattr_62166 SyS_getxattr 4 62166 NULL
40304 +prism54_wpa_bss_ie_get_62173 prism54_wpa_bss_ie_get 0 62173 NULL
40305 +write_file_dfs_62180 write_file_dfs 3 62180 NULL
40306 @@ -111507,17 +112087,13 @@ index 0000000..3d6cc0f
40307 +sock_kmalloc_62205 sock_kmalloc 2 62205 NULL
40308 +SYSC_setgroups16_62232 SYSC_setgroups16 1 62232 NULL
40309 +nfsd_read_file_62241 nfsd_read_file 6 62241 NULL
40310 -+allocate_partition_62245 allocate_partition 4 62245 NULL
40311 -+security_file_permission_62278 security_file_permission 0 62278 NULL
40312 ++subtract_dirty_62242 subtract_dirty 2-3 62242 NULL
40313 +get_random_int_62279 get_random_int 0 62279 NULL
40314 -+__qib_get_user_pages_62287 __qib_get_user_pages 1-2 62287 NULL
40315 +il_dbgfs_sram_read_62296 il_dbgfs_sram_read 3 62296 NULL
40316 +sparse_early_usemaps_alloc_pgdat_section_62304 sparse_early_usemaps_alloc_pgdat_section 2 62304 NULL
40317 -+ocfs2_find_victim_alloc_group_62306 ocfs2_find_victim_alloc_group 0 62306 NULL
40318 +subsystem_filter_read_62310 subsystem_filter_read 3 62310 NULL
40319 -+vmemmap_pgd_populate_62315 vmemmap_pgd_populate 2 62315 NULL
40320 -+timespec_to_jiffies_62321 timespec_to_jiffies 0 62321 NULL
40321 +Wb35Reg_BurstWrite_62327 Wb35Reg_BurstWrite 4 62327 NULL
40322 ++ocfs2_xattr_buckets_per_cluster_62330 ocfs2_xattr_buckets_per_cluster 0 62330 NULL
40323 +subseq_list_62332 subseq_list 3-0 62332 NULL
40324 +ll_statahead_max_seq_write_62333 ll_statahead_max_seq_write 3 62333 NULL
40325 +flash_write_62354 flash_write 3 62354 NULL
40326 @@ -111525,29 +112101,23 @@ index 0000000..3d6cc0f
40327 +rx_rx_timeout_read_62389 rx_rx_timeout_read 3 62389 NULL
40328 +altera_irscan_62396 altera_irscan 2 62396 NULL
40329 +set_ssp_62411 set_ssp 4 62411 NULL
40330 -+mlx4_en_create_rx_ring_62498 mlx4_en_create_rx_ring 3 62498 NULL
40331 +ext_rts51x_sd_execute_read_data_62501 ext_rts51x_sd_execute_read_data 9 62501 NULL
40332 -+mtip_get_next_rr_node_62502 mtip_get_next_rr_node 0 62502 NULL
40333 -+ocfs2_path_bh_journal_access_62504 ocfs2_path_bh_journal_access 0 62504 NULL
40334 +pep_sendmsg_62524 pep_sendmsg 4 62524 NULL
40335 -+test_iso_queue_62534 test_iso_queue 5 62534 NULL nohasharray
40336 -+__kmalloc_node_track_caller_62534 __kmalloc_node_track_caller 3 62534 &test_iso_queue_62534
40337 ++test_iso_queue_62534 test_iso_queue 5 62534 NULL
40338 +debugfs_read_62535 debugfs_read 3 62535 NULL
40339 +sco_sock_sendmsg_62542 sco_sock_sendmsg 4 62542 NULL
40340 +qib_refresh_qsfp_cache_62547 qib_refresh_qsfp_cache 0 62547 NULL
40341 ++link_send_sections_long_62557 link_send_sections_long 3 62557 NULL
40342 +xfrm_user_policy_62573 xfrm_user_policy 4 62573 NULL
40343 ++compat_SyS_rt_sigpending_62580 compat_SyS_rt_sigpending 2 62580 NULL
40344 +get_subdir_62581 get_subdir 3 62581 NULL
40345 +nfsd_vfs_read_62605 nfsd_vfs_read 6 62605 NULL
40346 -+get_desc_base_62617 get_desc_base 0 62617 NULL
40347 -+iommu_area_alloc_62619 iommu_area_alloc 2-3-4-7-0 62619 NULL
40348 ++tipc_port_recv_sections_62609 tipc_port_recv_sections 3 62609 NULL
40349 ++dut_mode_write_62630 dut_mode_write 3 62630 NULL
40350 +vfs_fsync_range_62635 vfs_fsync_range 0 62635 NULL
40351 +lpfc_sli4_queue_alloc_62646 lpfc_sli4_queue_alloc 3 62646 NULL
40352 -+write_62671 write 3 62671 NULL
40353 +ocfs2_wait_for_mask_interruptible_62675 ocfs2_wait_for_mask_interruptible 0 62675 NULL
40354 +printer_req_alloc_62687 printer_req_alloc 2 62687 NULL
40355 -+ext4_ind_map_blocks_62690 ext4_ind_map_blocks 0 62690 NULL
40356 -+htb_remove_class_from_row_62692 htb_remove_class_from_row 3 62692 NULL
40357 -+qla4_83xx_rd_reg_62693 qla4_83xx_rd_reg 0 62693 NULL
40358 +bioset_integrity_create_62708 bioset_integrity_create 2 62708 NULL
40359 +gfs2_log_write_62717 gfs2_log_write 3 62717 NULL
40360 +rdm_62719 rdm 0 62719 NULL
40361 @@ -111556,20 +112126,14 @@ index 0000000..3d6cc0f
40362 +lov_verify_lmm_62747 lov_verify_lmm 2 62747 NULL
40363 +mwifiex_rdeeprom_write_62754 mwifiex_rdeeprom_write 3 62754 NULL
40364 +ax25_sendmsg_62770 ax25_sendmsg 4 62770 NULL
40365 -+page_key_alloc_62771 page_key_alloc 0 62771 NULL
40366 +C_SYSC_ipc_62776 C_SYSC_ipc 3 62776 NULL
40367 +SyS_sched_getaffinity_62786 SyS_sched_getaffinity 2 62786 NULL
40368 +dm_stats_account_io_62787 dm_stats_account_io 3 62787 NULL
40369 -+posix_acl_valid_62788 posix_acl_valid 0 62788 NULL
40370 -+is_first_ref_62805 is_first_ref 0 62805 NULL
40371 +tracing_total_entries_read_62817 tracing_total_entries_read 3 62817 NULL
40372 -+name_cache_insert_62822 name_cache_insert 0 62822 NULL
40373 -+BeceemEEPROMBulkRead_62835 BeceemEEPROMBulkRead 0 62835 NULL
40374 +__rounddown_pow_of_two_62836 __rounddown_pow_of_two 0 62836 NULL
40375 +bio_get_nr_vecs_62838 bio_get_nr_vecs 0 62838 NULL
40376 +xlog_recover_add_to_trans_62839 xlog_recover_add_to_trans 4 62839 NULL
40377 +rx_fcs_err_read_62844 rx_fcs_err_read 3 62844 NULL
40378 -+set_swbp_62853 set_swbp 3 62853 NULL
40379 +read_nic_io_dword_62859 read_nic_io_dword 0 62859 NULL
40380 +l2tp_ip6_recvmsg_62874 l2tp_ip6_recvmsg 4 62874 NULL
40381 +aoechr_write_62883 aoechr_write 3 62883 NULL
40382 @@ -111577,101 +112141,58 @@ index 0000000..3d6cc0f
40383 +ocfs2_validate_gd_parent_62905 ocfs2_validate_gd_parent 0 62905 NULL
40384 +mempool_create_slab_pool_62907 mempool_create_slab_pool 1 62907 NULL
40385 +getdqbuf_62908 getdqbuf 1 62908 NULL
40386 -+try_async_pf_62914 try_async_pf 3 62914 NULL nohasharray
40387 -+SyS_remap_file_pages_62914 SyS_remap_file_pages 1-2 62914 &try_async_pf_62914
40388 +ll_statahead_agl_seq_write_62928 ll_statahead_agl_seq_write 3 62928 NULL
40389 -+atomic64_sub_return_62941 atomic64_sub_return 1 62941 NULL
40390 +agp_create_user_memory_62955 agp_create_user_memory 1 62955 NULL
40391 -+send_write_62969 send_write 0-3 62969 NULL
40392 -+__ext3_journal_stop_63017 __ext3_journal_stop 0 63017 NULL
40393 -+alloc_mem_cgroup_per_zone_info_63024 alloc_mem_cgroup_per_zone_info 2 63024 NULL
40394 +kstrtoull_from_user_63026 kstrtoull_from_user 2 63026 NULL
40395 -+PTR_ERR_63033 PTR_ERR 0 63033 NULL nohasharray
40396 -+__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 &PTR_ERR_63033
40397 ++__vb2_perform_fileio_63033 __vb2_perform_fileio 3 63033 NULL
40398 +pipeline_defrag_to_csum_swi_read_63037 pipeline_defrag_to_csum_swi_read 3 63037 NULL
40399 +scsi_host_alloc_63041 scsi_host_alloc 2 63041 NULL
40400 -+run_delayed_tree_ref_63042 run_delayed_tree_ref 0 63042 NULL
40401 +unlink1_63059 unlink1 3 63059 NULL
40402 -+__do_munmap_63063 __do_munmap 0 63063 NULL
40403 +xen_set_nslabs_63066 xen_set_nslabs 0 63066 NULL
40404 +iwl_dbgfs_fw_rx_stats_read_63070 iwl_dbgfs_fw_rx_stats_read 3 63070 NULL
40405 -+ocfs2_decrease_refcount_63078 ocfs2_decrease_refcount 4-3-0 63078 NULL
40406 -+find_extent_in_eb_63082 find_extent_in_eb 0 63082 NULL
40407 -+sep_prepare_input_output_dma_table_in_dcb_63087 sep_prepare_input_output_dma_table_in_dcb 4-5-3-2 63087 NULL
40408 -+__ocfs2_flush_truncate_log_63097 __ocfs2_flush_truncate_log 0 63097 NULL
40409 ++sep_prepare_input_output_dma_table_in_dcb_63087 sep_prepare_input_output_dma_table_in_dcb 4-5 63087 NULL
40410 +iwl_dbgfs_sensitivity_read_63116 iwl_dbgfs_sensitivity_read 3 63116 NULL
40411 +ext4_chunk_trans_blocks_63123 ext4_chunk_trans_blocks 0-2 63123 NULL
40412 -+alloc_cblock_63133 alloc_cblock 2 63133 NULL
40413 -+snd_pcm_status_user_63140 snd_pcm_status_user 0 63140 NULL
40414 -+ubifs_change_one_lp_63157 ubifs_change_one_lp 0 63157 NULL
40415 +smk_write_revoke_subj_63173 smk_write_revoke_subj 3 63173 NULL
40416 +SyS_syslog_63178 SyS_syslog 3 63178 NULL
40417 -+security_policydb_len_63198 security_policydb_len 0 63198 NULL
40418 +vme_master_read_63221 vme_master_read 0 63221 NULL
40419 +SyS_gethostname_63227 SyS_gethostname 2 63227 NULL
40420 -+module_alloc_update_bounds_rw_63233 module_alloc_update_bounds_rw 1 63233 NULL
40421 +ptp_read_63251 ptp_read 4 63251 NULL
40422 +xfs_dir2_leaf_getdents_63262 xfs_dir2_leaf_getdents 3 63262 NULL
40423 -+ntfs_attr_can_be_non_resident_63267 ntfs_attr_can_be_non_resident 0 63267 NULL
40424 +raid5_resize_63306 raid5_resize 2 63306 NULL
40425 +proc_info_read_63344 proc_info_read 3 63344 NULL
40426 +ps_upsd_max_sptime_read_63362 ps_upsd_max_sptime_read 3 63362 NULL
40427 +idmouse_read_63374 idmouse_read 3 63374 NULL
40428 -+edac_pci_alloc_ctl_info_63388 edac_pci_alloc_ctl_info 1 63388 NULL nohasharray
40429 -+usbnet_read_cmd_nopm_63388 usbnet_read_cmd_nopm 7 63388 &edac_pci_alloc_ctl_info_63388
40430 ++usbnet_read_cmd_nopm_63388 usbnet_read_cmd_nopm 7 63388 NULL nohasharray
40431 ++edac_pci_alloc_ctl_info_63388 edac_pci_alloc_ctl_info 1 63388 &usbnet_read_cmd_nopm_63388
40432 +rxpipe_missed_beacon_host_int_trig_rx_data_read_63405 rxpipe_missed_beacon_host_int_trig_rx_data_read 3 63405 NULL
40433 +nouveau_event_create_63411 nouveau_event_create 1 63411 NULL
40434 +l2cap_sock_sendmsg_63427 l2cap_sock_sendmsg 4 63427 NULL
40435 -+sep_prepare_input_output_dma_table_63429 sep_prepare_input_output_dma_table 3-4-2 63429 NULL
40436 -+gfn_to_hva_many_63437 gfn_to_hva_many 2-0 63437 NULL
40437 +nfsd_symlink_63442 nfsd_symlink 6 63442 NULL
40438 -+lookup_dir_item_inode_63447 lookup_dir_item_inode 0 63447 NULL
40439 -+i915_gem_object_get_fence_63455 i915_gem_object_get_fence 0 63455 NULL
40440 -+__do_kmalloc_node_63461 __do_kmalloc_node 3 63461 NULL
40441 +si5351_bulk_write_63468 si5351_bulk_write 2-3 63468 NULL
40442 +snd_info_entry_write_63474 snd_info_entry_write 3 63474 NULL
40443 -+do_work_63483 do_work 0 63483 NULL
40444 +reada_find_extent_63486 reada_find_extent 2 63486 NULL
40445 -+__copy_from_user_ll_nocache_63487 __copy_from_user_ll_nocache 0-3 63487 NULL
40446 -+read_kcore_63488 read_kcore 3 63488 NULL nohasharray
40447 -+alloc_reserved_tree_block_63488 alloc_reserved_tree_block 0 63488 &read_kcore_63488
40448 -+save_hint_63497 save_hint 2 63497 NULL
40449 -+wl1271_tx_min_rate_get_63498 wl1271_tx_min_rate_get 2 63498 NULL
40450 -+sis_voice_irq_63501 sis_voice_irq 1 63501 NULL
40451 ++read_kcore_63488 read_kcore 3 63488 NULL
40452 +snd_pcm_plug_write_transfer_63503 snd_pcm_plug_write_transfer 0-3 63503 NULL
40453 -+efx_mcdi_rpc_async_63529 efx_mcdi_rpc_async 5-4 63529 NULL
40454 -+ubi_more_leb_change_data_63534 ubi_more_leb_change_data 4-0 63534 NULL
40455 ++efx_mcdi_rpc_async_63529 efx_mcdi_rpc_async 4-5 63529 NULL
40456 ++ubi_more_leb_change_data_63534 ubi_more_leb_change_data 4 63534 NULL
40457 +write_file_spectral_period_63536 write_file_spectral_period 3 63536 NULL
40458 +if_sdio_read_scratch_63540 if_sdio_read_scratch 0 63540 NULL
40459 +append_to_buffer_63550 append_to_buffer 3 63550 NULL
40460 -+dbg_leb_write_63555 dbg_leb_write 4-5 63555 NULL nohasharray
40461 -+kvm_write_guest_page_63555 kvm_write_guest_page 2-5 63555 &dbg_leb_write_63555
40462 -+ubifs_lpt_scan_nolock_63572 ubifs_lpt_scan_nolock 0 63572 NULL
40463 -+iwch_reg_user_mr_63575 iwch_reg_user_mr 2-3 63575 NULL
40464 -+ocfs2_calc_trunc_pos_63576 ocfs2_calc_trunc_pos 4 63576 NULL
40465 ++kvm_write_guest_page_63555 kvm_write_guest_page 5 63555 NULL
40466 +rproc_alloc_63577 rproc_alloc 5 63577 NULL
40467 -+ext3_clear_blocks_63597 ext3_clear_blocks 4-5 63597 NULL
40468 +write_debug_level_63613 write_debug_level 3 63613 NULL
40469 -+module_alloc_63630 module_alloc 1 63630 NULL
40470 -+ntfs_malloc_nofs_nofail_63631 ntfs_malloc_nofs_nofail 1 63631 NULL
40471 +symbol_build_supp_rates_63634 symbol_build_supp_rates 0 63634 NULL
40472 -+_ubh_find_next_zero_bit__63640 _ubh_find_next_zero_bit_ 3-5-4 63640 NULL
40473 -+ext4_ext_get_access_63642 ext4_ext_get_access 0 63642 NULL
40474 +proc_loginuid_write_63648 proc_loginuid_write 3 63648 NULL
40475 +ValidateDSDParamsChecksum_63654 ValidateDSDParamsChecksum 3 63654 NULL
40476 +ldlm_cli_enqueue_63657 ldlm_cli_enqueue 8 63657 NULL
40477 +hidraw_ioctl_63658 hidraw_ioctl 2 63658 NULL
40478 -+vbi_read_63673 vbi_read 3 63673 NULL nohasharray
40479 -+xen_register_pirq_63673 xen_register_pirq 1-2 63673 &vbi_read_63673
40480 ++vbi_read_63673 vbi_read 3 63673 NULL
40481 +write_file_spectral_fft_period_63696 write_file_spectral_fft_period 3 63696 NULL
40482 -+bin_search_63697 bin_search 0 63697 NULL
40483 -+arizona_irq_map_63709 arizona_irq_map 2 63709 NULL
40484 -+ocfs2_et_root_journal_access_63713 ocfs2_et_root_journal_access 0 63713 NULL
40485 +nouveau_object_create__63715 nouveau_object_create_ 5 63715 NULL
40486 -+btrfs_insert_delayed_dir_index_63720 btrfs_insert_delayed_dir_index 4-0 63720 NULL
40487 ++btrfs_insert_delayed_dir_index_63720 btrfs_insert_delayed_dir_index 4 63720 NULL
40488 +selinux_secctx_to_secid_63744 selinux_secctx_to_secid 2 63744 NULL
40489 +snd_pcm_oss_read1_63771 snd_pcm_oss_read1 3 63771 NULL
40490 -+snd_pcm_link_63772 snd_pcm_link 0 63772 NULL
40491 +snd_opl4_mem_proc_read_63774 snd_opl4_mem_proc_read 5 63774 NULL
40492 +spidev_compat_ioctl_63778 spidev_compat_ioctl 2 63778 NULL
40493 +mwifiex_11n_create_rx_reorder_tbl_63806 mwifiex_11n_create_rx_reorder_tbl 4 63806 NULL
40494 @@ -111679,74 +112200,52 @@ index 0000000..3d6cc0f
40495 +prepare_copy_63826 prepare_copy 2 63826 NULL
40496 +sel_write_load_63830 sel_write_load 3 63830 NULL
40497 +ll_readlink_63836 ll_readlink 3 63836 NULL
40498 -+IsSectionWritable_63842 IsSectionWritable 0 63842 NULL
40499 +proc_pid_attr_write_63845 proc_pid_attr_write 3 63845 NULL
40500 -+divas_write_63901 divas_write 3 63901 NULL
40501 -+IsOffsetWritable_63902 IsOffsetWritable 0 63902 NULL nohasharray
40502 -+xhci_alloc_stream_info_63902 xhci_alloc_stream_info 3 63902 &IsOffsetWritable_63902
40503 ++xhci_alloc_stream_info_63902 xhci_alloc_stream_info 3 63902 NULL
40504 +uvc_alloc_urb_buffers_63922 uvc_alloc_urb_buffers 0-2-3 63922 NULL
40505 +snd_compr_write_63923 snd_compr_write 3 63923 NULL
40506 -+acpi_ev_get_gpe_xrupt_block_63924 acpi_ev_get_gpe_xrupt_block 1 63924 NULL
40507 -+tipc_send2port_63935 tipc_send2port 5 63935 NULL
40508 +afs_send_simple_reply_63940 afs_send_simple_reply 3 63940 NULL
40509 +__team_options_register_63941 __team_options_register 3 63941 NULL
40510 +macvtap_recvmsg_63949 macvtap_recvmsg 4 63949 NULL
40511 -+generic_acl_init_63955 generic_acl_init 0 63955 NULL
40512 -+domain_pfn_mapping_63957 domain_pfn_mapping 4 63957 NULL
40513 -+diva_xdi_write_63975 diva_xdi_write 4 63975 NULL
40514 ++sysfs_add_one_63969 sysfs_add_one 0 63969 NULL
40515 ++set_bredr_63975 set_bredr 4 63975 NULL
40516 ++construct_key_and_link_63985 construct_key_and_link 3 63985 NULL
40517 +rs_extent_to_bm_page_63996 rs_extent_to_bm_page 0-1 63996 NULL
40518 +read_file_frameerrors_64001 read_file_frameerrors 3 64001 NULL
40519 +hfsplus_security_setxattr_64009 hfsplus_security_setxattr 4 64009 NULL
40520 -+C_SYSC_sendfile64_64017 C_SYSC_sendfile64 4 64017 NULL
40521 +SyS_rt_sigpending_64018 SyS_rt_sigpending 2 64018 NULL
40522 -+offset_to_vaddr_64025 offset_to_vaddr 0-2 64025 NULL
40523 +dbAllocDmapLev_64030 dbAllocDmapLev 0 64030 NULL
40524 -+resize_async_buffer_64031 resize_async_buffer 4 64031 NULL
40525 +SyS_fsetxattr_64039 SyS_fsetxattr 4 64039 NULL
40526 -+tfrc_calc_x_reverse_lookup_64057 tfrc_calc_x_reverse_lookup 0 64057 NULL
40527 -+__sock_create_64069 __sock_create 0 64069 NULL
40528 +get_u8_64076 get_u8 0 64076 NULL
40529 +xilly_malloc_64077 xilly_malloc 2 64077 NULL
40530 -+btrfs_copy_root_64079 btrfs_copy_root 0 64079 NULL
40531 +sl_realloc_bufs_64086 sl_realloc_bufs 2 64086 NULL
40532 -+clear_update_marker_64088 clear_update_marker 0 64088 NULL nohasharray
40533 -+vmci_handle_arr_get_size_64088 vmci_handle_arr_get_size 0 64088 &clear_update_marker_64088
40534 ++vmci_handle_arr_get_size_64088 vmci_handle_arr_get_size 0 64088 NULL
40535 +lbs_highrssi_read_64089 lbs_highrssi_read 3 64089 NULL
40536 +SyS_set_mempolicy_64096 SyS_set_mempolicy 3 64096 NULL
40537 +SyS_mq_timedsend_64107 SyS_mq_timedsend 3 64107 NULL
40538 +rdma_addr_size_64116 rdma_addr_size 0 64116 NULL
40539 +do_load_xattr_datum_64118 do_load_xattr_datum 0 64118 NULL
40540 +bypass_wd_write_64120 bypass_wd_write 3 64120 NULL
40541 -+ol_quota_entries_per_block_64122 ol_quota_entries_per_block 0 64122 NULL
40542 +ext4_prepare_inline_data_64124 ext4_prepare_inline_data 3 64124 NULL
40543 -+init_bch_64130 init_bch 2-1 64130 NULL
40544 -+SYSC_ptrace_64136 SYSC_ptrace 3 64136 NULL
40545 ++init_bch_64130 init_bch 1-2 64130 NULL
40546 +ablkcipher_copy_iv_64140 ablkcipher_copy_iv 3 64140 NULL
40547 ++read_div_64147 read_div 0 64147 NULL
40548 +dlfb_ops_write_64150 dlfb_ops_write 3 64150 NULL
40549 -+__comedi_buf_alloc_64155 __comedi_buf_alloc 3 64155 NULL
40550 +cpumask_scnprintf_64170 cpumask_scnprintf 0-2 64170 NULL
40551 -+ocfs2_reserve_blocks_for_rec_trunc_64206 ocfs2_reserve_blocks_for_rec_trunc 0 64206 NULL
40552 +xfs_vm_direct_IO_64223 xfs_vm_direct_IO 4 64223 NULL
40553 +read_pulse_64227 read_pulse 0-3 64227 NULL
40554 +ea_len_64229 ea_len 0 64229 NULL
40555 -+btrfs_make_block_group_64241 btrfs_make_block_group 0 64241 NULL
40556 -+__btrfs_update_delayed_inode_64248 __btrfs_update_delayed_inode 0 64248 NULL
40557 +io_capture_transfer_64276 io_capture_transfer 4 64276 NULL
40558 +btrfs_file_extent_offset_64278 btrfs_file_extent_offset 0 64278 NULL
40559 -+btrfs_next_item_64285 btrfs_next_item 0 64285 NULL
40560 +sta_current_tx_rate_read_64286 sta_current_tx_rate_read 3 64286 NULL
40561 -+event_id_read_64288 event_id_read 3 64288 NULL nohasharray
40562 -+xfs_dir_cilookup_result_64288 xfs_dir_cilookup_result 3 64288 &event_id_read_64288
40563 ++xfs_dir_cilookup_result_64288 xfs_dir_cilookup_result 3 64288 NULL nohasharray
40564 ++event_id_read_64288 event_id_read 3 64288 &xfs_dir_cilookup_result_64288
40565 +ocfs2_block_check_validate_bhs_64302 ocfs2_block_check_validate_bhs 0 64302 NULL
40566 +snd_hda_get_sub_nodes_64304 snd_hda_get_sub_nodes 0 64304 NULL
40567 +error_error_bar_retry_read_64305 error_error_bar_retry_read 3 64305 NULL
40568 -+ffz_64324 ffz 0-1 64324 NULL
40569 -+map_region_64328 map_region 1 64328 NULL
40570 +sisusbcon_clear_64329 sisusbcon_clear 4-3-5 64329 NULL
40571 +ts_write_64336 ts_write 3 64336 NULL
40572 +usbtmc_write_64340 usbtmc_write 3 64340 NULL
40573 -+do_write_orph_node_64343 do_write_orph_node 2 64343 NULL
40574 -+ft1000_read_reg_64352 ft1000_read_reg 0 64352 NULL
40575 +bnx2x_vfop_mcast_cmd_64354 bnx2x_vfop_mcast_cmd 5 64354 NULL
40576 +user_regset_copyin_64360 user_regset_copyin 7 64360 NULL
40577 +wlc_phy_loadsampletable_nphy_64367 wlc_phy_loadsampletable_nphy 3 64367 NULL
40578 @@ -111760,16 +112259,13 @@ index 0000000..3d6cc0f
40579 +rx_hdr_overflow_read_64407 rx_hdr_overflow_read 3 64407 NULL
40580 +snd_card_create_64418 snd_card_create 4 64418 NULL nohasharray
40581 +keyctl_get_security_64418 keyctl_get_security 3 64418 &snd_card_create_64418
40582 -+nl80211_send_mgmt_64419 nl80211_send_mgmt 7 64419 NULL
40583 +oom_adj_write_64428 oom_adj_write 3 64428 NULL
40584 -+ext4_trim_extent_64431 ext4_trim_extent 4 64431 NULL nohasharray
40585 -+read_file_spectral_short_repeat_64431 read_file_spectral_short_repeat 3 64431 &ext4_trim_extent_64431
40586 ++read_file_spectral_short_repeat_64431 read_file_spectral_short_repeat 3 64431 NULL
40587 +ax25_recvmsg_64441 ax25_recvmsg 4 64441 NULL
40588 +single_open_size_64483 single_open_size 4 64483 NULL
40589 +p54_parse_rssical_64493 p54_parse_rssical 3 64493 NULL
40590 +msg_data_sz_64503 msg_data_sz 0 64503 NULL
40591 -+remove_uuid_64505 remove_uuid 4 64505 NULL nohasharray
40592 -+handle_abnormal_pfn_64505 handle_abnormal_pfn 3 64505 &remove_uuid_64505
40593 ++remove_uuid_64505 remove_uuid 4 64505 NULL
40594 +crypto_blkcipher_alignmask_64520 crypto_blkcipher_alignmask 0 64520 NULL
40595 +opera1_usb_i2c_msgxfer_64521 opera1_usb_i2c_msgxfer 4 64521 NULL
40596 +iwl_dbgfs_ucode_tracing_write_64524 iwl_dbgfs_ucode_tracing_write 3 64524 NULL
40597 @@ -111777,33 +112273,26 @@ index 0000000..3d6cc0f
40598 +prctl_set_mm_64538 prctl_set_mm 3 64538 NULL
40599 +SyS_bind_64544 SyS_bind 3 64544 NULL
40600 +rbd_obj_read_sync_64554 rbd_obj_read_sync 4-3 64554 NULL
40601 -+__btrfs_prealloc_file_range_64557 __btrfs_prealloc_file_range 3-0 64557 NULL
40602 ++__btrfs_prealloc_file_range_64557 __btrfs_prealloc_file_range 3 64557 NULL
40603 +__spi_sync_64561 __spi_sync 0 64561 NULL nohasharray
40604 +ll_max_rw_chunk_seq_write_64561 ll_max_rw_chunk_seq_write 3 64561 &__spi_sync_64561
40605 +__apei_exec_run_64563 __apei_exec_run 0 64563 NULL
40606 +kstrtoul_from_user_64569 kstrtoul_from_user 2 64569 NULL
40607 +do_erase_64574 do_erase 4 64574 NULL
40608 +fanotify_write_64623 fanotify_write 3 64623 NULL
40609 -+ocfs2_remove_refcount_extent_64631 ocfs2_remove_refcount_extent 0 64631 NULL
40610 -+to_dblock_64655 to_dblock 0-1 64655 NULL
40611 +regmap_read_debugfs_64658 regmap_read_debugfs 5 64658 NULL
40612 +ocfs2_read_xattr_block_64661 ocfs2_read_xattr_block 0 64661 NULL nohasharray
40613 -+tlbflush_read_file_64661 tlbflush_read_file 3 64661 &ocfs2_read_xattr_block_64661 nohasharray
40614 -+pool_create_64661 pool_create 3 64661 &tlbflush_read_file_64661
40615 ++tlbflush_read_file_64661 tlbflush_read_file 3 64661 &ocfs2_read_xattr_block_64661
40616 +efx_tsoh_get_buffer_64664 efx_tsoh_get_buffer 3 64664 NULL
40617 +rx_rx_out_of_mpdu_nodes_read_64668 rx_rx_out_of_mpdu_nodes_read 3 64668 NULL
40618 +nr_free_zone_pages_64680 nr_free_zone_pages 0 64680 NULL
40619 -+sec_bulk_write_64691 sec_bulk_write 2-3 64691 NULL nohasharray
40620 -+mremap_to_64691 mremap_to 0-3 64691 &sec_bulk_write_64691
40621 -+pfn_to_hpa_64703 pfn_to_hpa 0-1 64703 NULL
40622 -+ip_select_ident_more_64707 ip_select_ident_more 4 64707 NULL
40623 ++sec_bulk_write_64691 sec_bulk_write 2-3 64691 NULL
40624 +snd_pcm_oss_capture_position_fixup_64713 snd_pcm_oss_capture_position_fixup 0 64713 NULL
40625 +dapm_bias_read_file_64715 dapm_bias_read_file 3 64715 NULL
40626 +atomic_add_return_64720 atomic_add_return 0-1 64720 NULL
40627 +i2400m_msg_to_dev_64722 i2400m_msg_to_dev 3 64722 NULL
40628 +AscGetChipVersion_64737 AscGetChipVersion 0 64737 NULL
40629 +squashfs_read_inode_lookup_table_64739 squashfs_read_inode_lookup_table 4 64739 NULL
40630 -+perf_swevent_event_64745 perf_swevent_event 2 64745 NULL
40631 +bio_map_kern_64751 bio_map_kern 3 64751 NULL
40632 +rt2x00debug_write_csr_64753 rt2x00debug_write_csr 3 64753 NULL
40633 +message_for_md_64777 message_for_md 5 64777 NULL
40634 @@ -111814,87 +112303,60 @@ index 0000000..3d6cc0f
40635 +proc_projid_map_write_64810 proc_projid_map_write 3 64810 NULL
40636 +megaraid_change_queue_depth_64815 megaraid_change_queue_depth 2 64815 NULL
40637 +ecryptfs_send_miscdev_64816 ecryptfs_send_miscdev 2 64816 NULL
40638 -+vaddr_get_pfn_64818 vaddr_get_pfn 1 64818 NULL
40639 -+gfn_to_page_64826 gfn_to_page 2 64826 NULL
40640 +do_kimage_alloc_64827 do_kimage_alloc 3 64827 NULL
40641 +altera_set_dr_pre_64862 altera_set_dr_pre 2 64862 NULL
40642 -+gfn_to_pfn_64870 gfn_to_pfn 2 64870 NULL
40643 +lprocfs_write_u64_helper_64880 lprocfs_write_u64_helper 2 64880 NULL
40644 +ffs_epfile_io_64886 ffs_epfile_io 3 64886 NULL
40645 -+mk_pid_64894 mk_pid 0-3 64894 NULL
40646 +ieee80211_if_read_ave_beacon_64924 ieee80211_if_read_ave_beacon 3 64924 NULL
40647 -+usb_reset_and_verify_device_64933 usb_reset_and_verify_device 0 64933 NULL
40648 -+ubifs_wbuf_write_nolock_64946 ubifs_wbuf_write_nolock 3 64946 NULL
40649 +ip_options_get_from_user_64958 ip_options_get_from_user 4 64958 NULL
40650 -+acpi_os_install_interrupt_handler_64968 acpi_os_install_interrupt_handler 1 64968 NULL
40651 +traceprobe_probes_write_64969 traceprobe_probes_write 3 64969 NULL
40652 +suspend_dtim_interval_read_64971 suspend_dtim_interval_read 3 64971 NULL
40653 -+ext2_group_first_block_no_64972 ext2_group_first_block_no 0-2 64972 NULL
40654 +crypto_ahash_digestsize_65014 crypto_ahash_digestsize 0 65014 NULL
40655 +insert_dent_65034 insert_dent 7 65034 NULL
40656 +snd_hda_get_pin_label_65035 snd_hda_get_pin_label 5 65035 NULL
40657 +ext4_ind_trans_blocks_65053 ext4_ind_trans_blocks 0-2 65053 NULL
40658 +pcibios_enable_device_65059 pcibios_enable_device 0 65059 NULL
40659 -+make_idx_node_65068 make_idx_node 0 65068 NULL
40660 -+count_run_65072 count_run 0-2-4-5 65072 NULL
40661 +__alloc_bootmem_node_high_65076 __alloc_bootmem_node_high 2 65076 NULL
40662 ++batadv_socket_write_65083 batadv_socket_write 3 65083 NULL
40663 +ocfs2_truncate_cluster_pages_65086 ocfs2_truncate_cluster_pages 2 65086 NULL
40664 -+send_create_inode_65090 send_create_inode 0 65090 NULL nohasharray
40665 -+ath9k_dump_mci_btcoex_65090 ath9k_dump_mci_btcoex 0 65090 &send_create_inode_65090
40666 ++ath9k_dump_mci_btcoex_65090 ath9k_dump_mci_btcoex 3-0 65090 NULL
40667 +uasp_alloc_cmd_65097 uasp_alloc_cmd 0 65097 NULL
40668 -+__ext3_journal_dirty_metadata_65103 __ext3_journal_dirty_metadata 0 65103 NULL
40669 +generic_ocp_write_65107 generic_ocp_write 4 65107 NULL
40670 -+kswapd_shrink_zone_65174 kswapd_shrink_zone 4 65174 NULL
40671 -+i2c_smbus_xfer_emulated_65183 i2c_smbus_xfer_emulated 0 65183 NULL
40672 -+btrfs_run_delayed_items_nr_65204 btrfs_run_delayed_items_nr 0 65204 NULL
40673 +rx_rx_done_read_65217 rx_rx_done_read 3 65217 NULL
40674 +print_endpoint_stat_65232 print_endpoint_stat 3-4-0 65232 NULL
40675 -+journal_get_write_access_65243 journal_get_write_access 0 65243 NULL
40676 +whci_n_caps_65247 whci_n_caps 0 65247 NULL
40677 -+kmem_zalloc_greedy_65268 kmem_zalloc_greedy 3-2 65268 NULL
40678 +kmalloc_parameter_65279 kmalloc_parameter 1 65279 NULL
40679 +compat_core_sys_select_65285 compat_core_sys_select 1 65285 NULL
40680 -+get_unaligned_le16_65293 get_unaligned_le16 0 65293 NULL
40681 +mpi_set_buffer_65294 mpi_set_buffer 3 65294 NULL
40682 +redirected_tty_write_65297 redirected_tty_write 3 65297 NULL
40683 +get_var_len_65304 get_var_len 0 65304 NULL
40684 +unpack_array_65318 unpack_array 0 65318 NULL
40685 +pci_vpd_find_tag_65325 pci_vpd_find_tag 0-2 65325 NULL
40686 +dccp_setsockopt_service_65336 dccp_setsockopt_service 4 65336 NULL
40687 -+init_list_set_65351 init_list_set 3-2 65351 NULL
40688 +dma_rx_requested_read_65354 dma_rx_requested_read 3 65354 NULL
40689 -+batadv_tt_save_orig_buffer_65361 batadv_tt_save_orig_buffer 4 65361 NULL
40690 +alloc_cpu_rmap_65363 alloc_cpu_rmap 1 65363 NULL
40691 -+__ext4_new_inode_65370 __ext4_new_inode 5 65370 NULL
40692 +SyS_writev_65372 SyS_writev 3 65372 NULL
40693 -+mi_set_context_65395 mi_set_context 0 65395 NULL
40694 +__alloc_bootmem_nopanic_65397 __alloc_bootmem_nopanic 1 65397 NULL
40695 +trace_seq_to_user_65398 trace_seq_to_user 3 65398 NULL
40696 -+mtd_get_device_size_65400 mtd_get_device_size 0 65400 NULL
40697 +__read_vmcore_65402 __read_vmcore 2 65402 NULL
40698 +usb_ep_enable_65405 usb_ep_enable 0 65405 NULL
40699 -+ocfs2_write_begin_nolock_65410 ocfs2_write_begin_nolock 4-3 65410 NULL
40700 -+drm_calloc_large_65421 drm_calloc_large 2-1 65421 NULL
40701 ++ocfs2_write_begin_nolock_65410 ocfs2_write_begin_nolock 3-4 65410 NULL
40702 +device_add_groups_65423 device_add_groups 0 65423 NULL
40703 +xpc_kzalloc_cacheline_aligned_65433 xpc_kzalloc_cacheline_aligned 1 65433 NULL
40704 -+vmalloc_to_pfn_65437 vmalloc_to_pfn 0 65437 NULL
40705 +usb_alloc_coherent_65444 usb_alloc_coherent 2 65444 NULL
40706 +il_dbgfs_wd_timeout_write_65464 il_dbgfs_wd_timeout_write 3 65464 NULL
40707 -+ext4_es_zeroout_65465 ext4_es_zeroout 0 65465 NULL
40708 +clear_user_65470 clear_user 2 65470 NULL
40709 -+__pcibus_to_node_65489 __pcibus_to_node 0 65489 NULL nohasharray
40710 -+dpcm_state_read_file_65489 dpcm_state_read_file 3 65489 &__pcibus_to_node_65489
40711 -+lookup_inline_extent_backref_65493 lookup_inline_extent_backref 9-0 65493 NULL
40712 -+qib_create_ctxtdata_65497 qib_create_ctxtdata 3 65497 NULL
40713 ++dpcm_state_read_file_65489 dpcm_state_read_file 3 65489 NULL
40714 ++lookup_inline_extent_backref_65493 lookup_inline_extent_backref 9 65493 NULL
40715 +nvme_trans_standard_inquiry_page_65526 nvme_trans_standard_inquiry_page 4 65526 NULL
40716 diff --git a/tools/gcc/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin.c
40717 new file mode 100644
40718 -index 0000000..50f8464
40719 +index 0000000..94aa56d
40720 --- /dev/null
40721 +++ b/tools/gcc/size_overflow_plugin.c
40722 -@@ -0,0 +1,4072 @@
40723 +@@ -0,0 +1,4040 @@
40724 +/*
40725 -+ * Copyright 2011, 2012, 2013, 2014 by Emese Revfy <re.emese@×××××.com>
40726 ++ * Copyright 2011-2014 by Emese Revfy <re.emese@×××××.com>
40727 + * Licensed under the GPL v2, or (at your option) v3
40728 + *
40729 + * Homepage:
40730 @@ -111912,32 +112374,15 @@ index 0000000..50f8464
40731 + * $ gcc -fplugin=size_overflow_plugin.so test.c -O2
40732 + */
40733 +
40734 -+#include "gcc-plugin.h"
40735 -+#include "config.h"
40736 -+#include "system.h"
40737 -+#include "coretypes.h"
40738 -+#include "tree.h"
40739 -+#include "tree-pass.h"
40740 -+#include "intl.h"
40741 -+#include "plugin-version.h"
40742 -+#include "tm.h"
40743 -+#include "toplev.h"
40744 -+#include "function.h"
40745 -+#include "tree-flow.h"
40746 -+#include "plugin.h"
40747 -+#include "gimple.h"
40748 -+#include "diagnostic.h"
40749 -+#include "cfgloop.h"
40750 ++#include "gcc-common.h"
40751 +
40752 -+#if BUILDING_GCC_VERSION >= 4008
40753 -+#define TODO_dump_func 0
40754 -+#define TODO_dump_cgraph 0
40755 -+#endif
40756 ++int plugin_is_GPL_compatible;
40757 ++
40758 ++static struct plugin_info size_overflow_plugin_info = {
40759 ++ .version = "20140128",
40760 ++ .help = "no-size-overflow\tturn off size overflow checking\n",
40761 ++};
40762 +
40763 -+#define __unused __attribute__((__unused__))
40764 -+#define ASM_NAME(node) IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(node))
40765 -+#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node))
40766 -+#define NAME_LEN(node) IDENTIFIER_LENGTH(DECL_NAME(node))
40767 +#define BEFORE_STMT true
40768 +#define AFTER_STMT false
40769 +#define CREATE_NEW_VAR NULL_TREE
40770 @@ -111957,10 +112402,6 @@ index 0000000..50f8464
40771 +#define YES_ASM_STR "# size_overflow MARK_YES "
40772 +#define OK_ASM_STR "# size_overflow "
40773 +
40774 -+#if BUILDING_GCC_VERSION == 4005
40775 -+#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
40776 -+#endif
40777 -+
40778 +struct size_overflow_hash {
40779 + const struct size_overflow_hash * const next;
40780 + const char * const name;
40781 @@ -111979,7 +112420,7 @@ index 0000000..50f8464
40782 + struct visited *next;
40783 + const_tree fndecl;
40784 + unsigned int num;
40785 -+ const_gimple first_stmt;
40786 ++ const_tree rhs;
40787 +};
40788 +
40789 +struct next_cgraph_node {
40790 @@ -112005,9 +112446,6 @@ index 0000000..50f8464
40791 + gimple intentional_mark_from_gimple;
40792 +};
40793 +
40794 -+int plugin_is_GPL_compatible;
40795 -+void debug_gimple_stmt(gimple gs);
40796 -+
40797 +static tree report_size_overflow_decl;
40798 +static const_tree const_char_ptr_type_node;
40799 +
40800 @@ -112021,11 +112459,6 @@ index 0000000..50f8464
40801 +static tree get_size_overflow_type(gimple stmt, const_tree node);
40802 +static tree dup_assign(struct pointer_set_t *visited, gimple oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
40803 +
40804 -+static struct plugin_info size_overflow_plugin_info = {
40805 -+ .version = "20140111beta",
40806 -+ .help = "no-size-overflow\tturn off size overflow checking\n",
40807 -+};
40808 -+
40809 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
40810 +{
40811 + unsigned int arg_count;
40812 @@ -112230,7 +112663,7 @@ index 0000000..50f8464
40813 +struct function_hash {
40814 + size_t tree_codes_len;
40815 + unsigned char tree_codes[CODES_LIMIT];
40816 -+ tree fndecl;
40817 ++ const_tree fndecl;
40818 + unsigned int hash;
40819 +};
40820 +
40821 @@ -112322,7 +112755,7 @@ index 0000000..50f8464
40822 + set_node_codes(TREE_VALUE(arg), fn_hash_data);
40823 +}
40824 +
40825 -+static const struct size_overflow_hash *get_function_hash(tree fndecl)
40826 ++static const struct size_overflow_hash *get_function_hash(const_tree fndecl)
40827 +{
40828 + const struct size_overflow_hash *entry;
40829 + struct function_hash fn_hash_data;
40830 @@ -112338,7 +112771,7 @@ index 0000000..50f8464
40831 + set_function_codes(&fn_hash_data);
40832 + gcc_assert(fn_hash_data.tree_codes_len != 0);
40833 +
40834 -+ func_name = ASM_NAME(fn_hash_data.fndecl);
40835 ++ func_name = DECL_NAME_POINTER(fn_hash_data.fndecl);
40836 + set_hash(func_name, &fn_hash_data);
40837 +
40838 + entry = size_overflow_hash[fn_hash_data.hash];
40839 @@ -112351,7 +112784,7 @@ index 0000000..50f8464
40840 + return NULL;
40841 +}
40842 +
40843 -+static void print_missing_msg(tree func, unsigned int argnum)
40844 ++static void print_missing_msg(const_tree func, unsigned int argnum)
40845 +{
40846 + location_t loc;
40847 + const char *curfunc;
40848 @@ -112361,7 +112794,7 @@ index 0000000..50f8464
40849 + fn_hash_data.tree_codes_len = 0;
40850 +
40851 + loc = DECL_SOURCE_LOCATION(fn_hash_data.fndecl);
40852 -+ curfunc = ASM_NAME(fn_hash_data.fndecl);
40853 ++ curfunc = DECL_NAME_POINTER(fn_hash_data.fndecl);
40854 +
40855 + set_function_codes(&fn_hash_data);
40856 + set_hash(curfunc, &fn_hash_data);
40857 @@ -112378,7 +112811,7 @@ index 0000000..50f8464
40858 + arg = SSA_NAME_VAR(arg);
40859 +
40860 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
40861 -+ if (!operand_equal_p(arg, var, 0) && strcmp(NAME(var), NAME(arg)))
40862 ++ if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
40863 + continue;
40864 + if (!skip_types(var))
40865 + return argnum;
40866 @@ -112391,9 +112824,7 @@ index 0000000..50f8464
40867 +{
40868 + tree new_var = create_tmp_var(type, "cicus");
40869 +
40870 -+#if BUILDING_GCC_VERSION <= 4007
40871 + add_referenced_var(new_var);
40872 -+#endif
40873 + return new_var;
40874 +}
40875 +
40876 @@ -112612,7 +113043,7 @@ index 0000000..50f8464
40877 +
40878 + if (rhs2 != NULL_TREE)
40879 + gimple_assign_set_rhs2(stmt, rhs2);
40880 -+#if BUILDING_GCC_VERSION >= 4007
40881 ++#if BUILDING_GCC_VERSION >= 4006
40882 + if (rhs3 != NULL_TREE)
40883 + gimple_assign_set_rhs3(stmt, rhs3);
40884 +#endif
40885 @@ -112635,9 +113066,9 @@ index 0000000..50f8464
40886 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
40887 +
40888 + if (bb->index == 0) {
40889 -+ first_bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
40890 ++ first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
40891 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
40892 -+ set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR);
40893 ++ set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
40894 + bb = first_bb;
40895 + }
40896 +
40897 @@ -112751,9 +113182,9 @@ index 0000000..50f8464
40898 +}
40899 +
40900 +#if BUILDING_GCC_VERSION <= 4007
40901 -+static tree create_new_phi_node(VEC(tree, gc) *args, tree ssa_name_var, gimple oldstmt)
40902 ++static tree create_new_phi_node(VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
40903 +#else
40904 -+static tree create_new_phi_node(vec<tree, va_gc> *args, tree ssa_name_var, gimple oldstmt)
40905 ++static tree create_new_phi_node(vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gimple oldstmt)
40906 +#endif
40907 +{
40908 + gimple new_phi;
40909 @@ -112762,7 +113193,7 @@ index 0000000..50f8464
40910 + location_t loc = gimple_location(oldstmt);
40911 +
40912 +#if BUILDING_GCC_VERSION <= 4007
40913 -+ gcc_assert(!VEC_empty(tree, args));
40914 ++ gcc_assert(!VEC_empty(tree, *args));
40915 +#else
40916 + gcc_assert(!args->is_empty());
40917 +#endif
40918 @@ -112771,21 +113202,17 @@ index 0000000..50f8464
40919 + result = gimple_phi_result(new_phi);
40920 + ssa_name_var = SSA_NAME_VAR(result);
40921 +
40922 -+
40923 -+#if BUILDING_GCC_VERSION == 4005
40924 -+ for (i = 0; i < VEC_length(tree, args); i++) {
40925 -+ arg = VEC_index(tree, args, i);
40926 -+#elif BUILDING_GCC_VERSION <= 4007
40927 -+ FOR_EACH_VEC_ELT(tree, args, i, arg) {
40928 ++#if BUILDING_GCC_VERSION <= 4007
40929 ++ FOR_EACH_VEC_ELT(tree, *args, i, arg) {
40930 +#else
40931 -+ FOR_EACH_VEC_ELT(*args, i, arg) {
40932 ++ FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
40933 +#endif
40934 + arg = create_new_phi_arg(ssa_name_var, arg, oldstmt, i);
40935 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
40936 + }
40937 +
40938 +#if BUILDING_GCC_VERSION <= 4007
40939 -+ VEC_free(tree, gc, args);
40940 ++ VEC_free(tree, heap, *args);
40941 +#else
40942 + vec_free(args);
40943 +#endif
40944 @@ -112797,19 +113224,14 @@ index 0000000..50f8464
40945 +{
40946 + tree ssa_name_var = NULL_TREE;
40947 +#if BUILDING_GCC_VERSION <= 4007
40948 -+ VEC(tree, gc) *args;
40949 ++ VEC(tree, heap) *args = NULL;
40950 +#else
40951 -+ vec<tree, va_gc> *args;
40952 ++ vec<tree, va_heap, vl_embed> *args = NULL;
40953 +#endif
40954 + gimple oldstmt = get_def_stmt(orig_result);
40955 + unsigned int i, len = gimple_phi_num_args(oldstmt);
40956 +
40957 + pointer_set_insert(visited, oldstmt);
40958 -+#if BUILDING_GCC_VERSION <= 4007
40959 -+ args = VEC_alloc(tree, gc, len);
40960 -+#else
40961 -+ vec_alloc(args, len);
40962 -+#endif
40963 + for (i = 0; i < len; i++) {
40964 + tree arg, new_arg;
40965 +
40966 @@ -112826,13 +113248,17 @@ index 0000000..50f8464
40967 + }
40968 +
40969 +#if BUILDING_GCC_VERSION <= 4007
40970 -+ VEC_safe_push(tree, gc, args, new_arg);
40971 ++ VEC_safe_push(tree, heap, args, new_arg);
40972 +#else
40973 + vec_safe_push(args, new_arg);
40974 +#endif
40975 + }
40976 +
40977 ++#if BUILDING_GCC_VERSION <= 4007
40978 ++ return create_new_phi_node(&args, ssa_name_var, oldstmt);
40979 ++#else
40980 + return create_new_phi_node(args, ssa_name_var, oldstmt);
40981 ++#endif
40982 +}
40983 +
40984 +static tree change_assign_rhs(gimple stmt, const_tree orig_rhs, tree new_rhs)
40985 @@ -113100,20 +113526,6 @@ index 0000000..50f8464
40986 + return build1(ADDR_EXPR, ptr_type_node, string);
40987 +}
40988 +
40989 -+#if BUILDING_GCC_VERSION <= 4006
40990 -+struct cgraph_node *cgraph_get_create_node(tree decl);
40991 -+
40992 -+struct cgraph_node *cgraph_get_create_node(tree decl)
40993 -+{
40994 -+ struct cgraph_node *node;
40995 -+
40996 -+ node = cgraph_get_node(decl);
40997 -+ if (node)
40998 -+ return node;
40999 -+ return cgraph_node(decl);
41000 -+}
41001 -+#endif
41002 -+
41003 +static void insert_cond_result(struct cgraph_node *caller_node, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
41004 +{
41005 + gimple func_stmt;
41006 @@ -113142,12 +113554,12 @@ index 0000000..50f8464
41007 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
41008 + loc_file = create_string_param(loc_file);
41009 +
41010 -+ current_func = build_string(NAME_LEN(current_function_decl) + 1, NAME(current_function_decl));
41011 ++ current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
41012 + current_func = create_string_param(current_func);
41013 +
41014 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
41015 + call_count++;
41016 -+ len = asprintf(&ssa_name_buf, "%s_%u %s, count: %u\n", NAME(SSA_NAME_VAR(arg)), SSA_NAME_VERSION(arg), min ? "min" : "max", call_count);
41017 ++ len = asprintf(&ssa_name_buf, "%s_%u %s, count: %u\n", DECL_NAME_POINTER(SSA_NAME_VAR(arg)), SSA_NAME_VERSION(arg), min ? "min" : "max", call_count);
41018 + gcc_assert(len > 0);
41019 + ssa_name = build_string(len + 1, ssa_name_buf);
41020 + free(ssa_name_buf);
41021 @@ -113160,11 +113572,7 @@ index 0000000..50f8464
41022 + callee_node = cgraph_get_create_node(report_size_overflow_decl);
41023 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
41024 +
41025 -+#if BUILDING_GCC_VERSION <= 4006
41026 + edge = cgraph_create_edge(caller_node, callee_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
41027 -+#else
41028 -+ edge = cgraph_create_edge(caller_node, callee_node, func_stmt, bb_true->count, frequency);
41029 -+#endif
41030 + gcc_assert(edge != NULL);
41031 +}
41032 +
41033 @@ -113461,7 +113869,7 @@ index 0000000..50f8464
41034 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
41035 +}
41036 +
41037 -+#if BUILDING_GCC_VERSION >= 4007
41038 ++#if BUILDING_GCC_VERSION >= 4006
41039 +static tree get_new_rhs(struct pointer_set_t *visited, struct cgraph_node *caller_node, tree size_overflow_type, tree rhs)
41040 +{
41041 + if (is_gimple_constant(rhs))
41042 @@ -113583,7 +113991,7 @@ index 0000000..50f8464
41043 + return handle_unary_ops(visited, caller_node, def_stmt);
41044 + case 3:
41045 + return handle_binary_ops(visited, caller_node, lhs);
41046 -+#if BUILDING_GCC_VERSION >= 4007
41047 ++#if BUILDING_GCC_VERSION >= 4006
41048 + case 4:
41049 + return handle_ternary_ops(visited, caller_node, lhs);
41050 +#endif
41051 @@ -113626,7 +114034,7 @@ index 0000000..50f8464
41052 + case 2:
41053 + set_rhs = &gimple_assign_set_rhs2;
41054 + break;
41055 -+#if BUILDING_GCC_VERSION > 4005
41056 ++#if BUILDING_GCC_VERSION >= 4006
41057 + case 3:
41058 + set_rhs = &gimple_assign_set_rhs3;
41059 + break;
41060 @@ -113645,7 +114053,7 @@ index 0000000..50f8464
41061 + update_stmt(stmt);
41062 +}
41063 +
41064 -+static unsigned int get_correct_arg_count(unsigned int argnum, tree fndecl)
41065 ++static unsigned int get_correct_arg_count(unsigned int argnum, const_tree fndecl)
41066 +{
41067 + const struct size_overflow_hash *hash;
41068 + unsigned int new_argnum;
41069 @@ -113672,7 +114080,7 @@ index 0000000..50f8464
41070 + gcc_assert(origarg != NULL_TREE);
41071 +
41072 + for (arg = DECL_ARGUMENTS(fndecl), new_argnum = 1; arg; arg = TREE_CHAIN(arg), new_argnum++)
41073 -+ if (operand_equal_p(origarg, arg, 0) || !strcmp(NAME(origarg), NAME(arg)))
41074 ++ if (operand_equal_p(origarg, arg, 0) || !strcmp(DECL_NAME_POINTER(origarg), DECL_NAME_POINTER(arg)))
41075 + return new_argnum;
41076 +
41077 + return CANNOT_FIND_ARG;
41078 @@ -113685,20 +114093,12 @@ index 0000000..50f8464
41079 + struct next_cgraph_node *cur_node;
41080 +
41081 + if (fndecl == RET_CHECK)
41082 -+#if BUILDING_GCC_VERSION <= 4007
41083 -+ new_callee_fndecl = node->decl;
41084 -+#else
41085 -+ new_callee_fndecl = node->symbol.decl;
41086 -+#endif
41087 ++ new_callee_fndecl = NODE_DECL(node);
41088 + else
41089 + new_callee_fndecl = fndecl;
41090 +
41091 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
41092 -+#if BUILDING_GCC_VERSION <= 4007
41093 -+ if (!operand_equal_p(cur_node->current_function->decl, node->decl, 0))
41094 -+#else
41095 -+ if (!operand_equal_p(cur_node->current_function->symbol.decl, node->symbol.decl, 0))
41096 -+#endif
41097 ++ if (!operand_equal_p(NODE_DECL(cur_node->current_function), NODE_DECL(node), 0))
41098 + continue;
41099 + if (!operand_equal_p(cur_node->callee_fndecl, new_callee_fndecl, 0))
41100 + continue;
41101 @@ -113724,11 +114124,7 @@ index 0000000..50f8464
41102 + new_node->next = NULL;
41103 + new_node->num = num;
41104 + if (fndecl == RET_CHECK)
41105 -+#if BUILDING_GCC_VERSION <= 4007
41106 -+ new_node->callee_fndecl = node->decl;
41107 -+#else
41108 -+ new_node->callee_fndecl = node->symbol.decl;
41109 -+#endif
41110 ++ new_node->callee_fndecl = NODE_DECL(node);
41111 + else
41112 + new_node->callee_fndecl = fndecl;
41113 +
41114 @@ -113765,7 +114161,7 @@ index 0000000..50f8464
41115 + return false;
41116 +}
41117 +
41118 -+static bool is_in_hash_table(tree fndecl, unsigned int num)
41119 ++static bool is_in_hash_table(const_tree fndecl, unsigned int num)
41120 +{
41121 + const struct size_overflow_hash *hash;
41122 +
41123 @@ -113805,7 +114201,7 @@ index 0000000..50f8464
41124 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
41125 + * If the function is missing everywhere then print the missing message into stderr.
41126 + */
41127 -+static bool is_missing_function(tree orig_fndecl, unsigned int num)
41128 ++static bool is_missing_function(const_tree orig_fndecl, unsigned int num)
41129 +{
41130 + switch (DECL_FUNCTION_CODE(orig_fndecl)) {
41131 +#if BUILDING_GCC_VERSION >= 4008
41132 @@ -113821,9 +114217,9 @@ index 0000000..50f8464
41133 + }
41134 +
41135 + // skip test.c
41136 -+ if (strcmp(NAME(current_function_decl), "coolmalloc")) {
41137 ++ if (strcmp(DECL_NAME_POINTER(current_function_decl), "coolmalloc")) {
41138 + if (lookup_attribute("size_overflow", DECL_ATTRIBUTES(orig_fndecl)))
41139 -+ warning(0, "unnecessary size_overflow attribute on: %s\n", NAME(orig_fndecl));
41140 ++ warning(0, "unnecessary size_overflow attribute on: %s\n", DECL_NAME_POINTER(orig_fndecl));
41141 + }
41142 +
41143 + if (is_in_hash_table(orig_fndecl, num))
41144 @@ -113848,7 +114244,7 @@ index 0000000..50f8464
41145 +static struct next_cgraph_node *check_missing_overflow_attribute_and_create_next_node(struct next_cgraph_node *cnodes, struct missing_functions *missing_fn_head)
41146 +{
41147 + unsigned int num;
41148 -+ tree orig_fndecl;
41149 ++ const_tree orig_fndecl;
41150 + struct cgraph_node *next_node = NULL;
41151 +
41152 + orig_fndecl = DECL_ORIGIN(missing_fn_head->fndecl);
41153 @@ -113875,10 +114271,7 @@ index 0000000..50f8464
41154 + tree node;
41155 + struct missing_functions *cur, *missing_fn_head = NULL;
41156 +
41157 -+#if BUILDING_GCC_VERSION == 4005
41158 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
41159 -+ node = VEC_index(tree, cur_node->last_nodes, i);
41160 -+#elif BUILDING_GCC_VERSION <= 4007
41161 ++#if BUILDING_GCC_VERSION <= 4007
41162 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, node) {
41163 +#else
41164 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, node) {
41165 @@ -114146,7 +114539,7 @@ index 0000000..50f8464
41166 + return;
41167 +
41168 + loc = DECL_SOURCE_LOCATION(decl);
41169 -+ inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", NAME(decl), argnum);
41170 ++ inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
41171 +}
41172 +
41173 +/* Get the type of the intentional_overflow attribute of a node
41174 @@ -114200,10 +114593,7 @@ index 0000000..50f8464
41175 + tree last_node;
41176 + enum mark mark = MARK_NO;
41177 +
41178 -+#if BUILDING_GCC_VERSION == 4005
41179 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
41180 -+ last_node = VEC_index(tree, cur_node->last_nodes, i);
41181 -+#elif BUILDING_GCC_VERSION <= 4007
41182 ++#if BUILDING_GCC_VERSION <= 4007
41183 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, last_node) {
41184 +#else
41185 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, last_node) {
41186 @@ -114331,10 +114721,7 @@ index 0000000..50f8464
41187 + if (code != PARM_DECL && code != FUNCTION_DECL && code != COMPONENT_REF)
41188 + return;
41189 +
41190 -+#if BUILDING_GCC_VERSION == 4005
41191 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
41192 -+ element = VEC_index(tree, cur_node->last_nodes, i);
41193 -+#elif BUILDING_GCC_VERSION <= 4007
41194 ++#if BUILDING_GCC_VERSION <= 4007
41195 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, element) {
41196 +#else
41197 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, element) {
41198 @@ -114591,7 +114978,8 @@ index 0000000..50f8464
41199 +static struct interesting_node *handle_stmt_by_cgraph_nodes_call(struct interesting_node *head, gimple stmt, struct next_cgraph_node *next_node)
41200 +{
41201 + unsigned int argnum;
41202 -+ tree fndecl, arg;
41203 ++ tree arg;
41204 ++ const_tree fndecl;
41205 + struct next_cgraph_node *cur_node;
41206 +
41207 + fndecl = gimple_call_fndecl(stmt);
41208 @@ -114739,6 +115127,7 @@ index 0000000..50f8464
41209 +
41210 + if (gimple_asm_noutputs(stmt) == 0) {
41211 + gsi = gsi_for_stmt(stmt);
41212 ++ ipa_remove_stmt_references(cgraph_get_create_node(current_function_decl), stmt);
41213 + gsi_remove(&gsi, true);
41214 + return;
41215 + }
41216 @@ -114803,7 +115192,7 @@ index 0000000..50f8464
41217 + basic_block bb;
41218 + struct interesting_node *head = NULL;
41219 +
41220 -+ FOR_ALL_BB(bb) {
41221 ++ FOR_ALL_BB_FN(bb, cfun) {
41222 + gimple_stmt_iterator gsi;
41223 +
41224 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
41225 @@ -114865,7 +115254,7 @@ index 0000000..50f8464
41226 + new_visited = (struct visited *)xmalloc(sizeof(*new_visited));
41227 + new_visited->fndecl = cur_node->fndecl;
41228 + new_visited->num = cur_node->num;
41229 -+ new_visited->first_stmt = cur_node->first_stmt;
41230 ++ new_visited->rhs = cur_node->node;
41231 + new_visited->next = NULL;
41232 +
41233 + if (!head)
41234 @@ -114890,7 +115279,7 @@ index 0000000..50f8464
41235 + continue;
41236 + if (cur_node->num != cur->num)
41237 + continue;
41238 -+ if (cur_node->first_stmt == cur->first_stmt)
41239 ++ if (cur_node->node == cur->rhs)
41240 + return true;
41241 + }
41242 + return false;
41243 @@ -114911,7 +115300,7 @@ index 0000000..50f8464
41244 +{
41245 + basic_block bb;
41246 +
41247 -+ FOR_ALL_BB(bb) {
41248 ++ FOR_ALL_BB_FN(bb, cfun) {
41249 + gimple_stmt_iterator si;
41250 +
41251 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
41252 @@ -114929,11 +115318,7 @@ index 0000000..50f8464
41253 + struct interesting_node *head, *cur_node;
41254 + struct next_cgraph_node *cur_cnodes, *cnodes_head = NULL;
41255 +
41256 -+#if BUILDING_GCC_VERSION <= 4007
41257 -+ set_current_function_decl(node->decl);
41258 -+#else
41259 -+ set_current_function_decl(node->symbol.decl);
41260 -+#endif
41261 ++ set_current_function_decl(NODE_DECL(node));
41262 + call_count = 0;
41263 +
41264 + head = collect_interesting_stmts(next_node);
41265 @@ -114971,7 +115356,7 @@ index 0000000..50f8464
41266 +{
41267 + basic_block bb;
41268 +
41269 -+ FOR_ALL_BB(bb) {
41270 ++ FOR_ALL_BB_FN(bb, cfun) {
41271 + gimple_stmt_iterator si;
41272 +
41273 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
41274 @@ -114981,38 +115366,6 @@ index 0000000..50f8464
41275 + }
41276 +}
41277 +
41278 -+#if BUILDING_GCC_VERSION <= 4006
41279 -+static bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
41280 -+{
41281 -+ return node->analyzed && !node->thunk.thunk_p && !node->alias;
41282 -+}
41283 -+
41284 -+static struct cgraph_node *cgraph_first_function_with_gimple_body(void)
41285 -+{
41286 -+ struct cgraph_node *node;
41287 -+
41288 -+ for (node = cgraph_nodes; node; node = node->next) {
41289 -+ if (cgraph_function_with_gimple_body_p(node))
41290 -+ return node;
41291 -+ }
41292 -+ return NULL;
41293 -+}
41294 -+
41295 -+static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
41296 -+{
41297 -+ for (node = node->next; node; node = node->next) {
41298 -+ if (cgraph_function_with_gimple_body_p(node))
41299 -+ return node;
41300 -+ }
41301 -+ return NULL;
41302 -+}
41303 -+
41304 -+#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
41305 -+ for ((node) = cgraph_first_function_with_gimple_body (); (node); \
41306 -+ (node) = cgraph_next_function_with_gimple_body (node))
41307 -+
41308 -+#endif
41309 -+
41310 +// Main entry point of the ipa pass: erases the plf flag of all stmts and iterates over all the functions
41311 +static unsigned int search_function(void)
41312 +{
41313 @@ -115020,11 +115373,7 @@ index 0000000..50f8464
41314 + struct visited *visited = NULL;
41315 +
41316 + FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) {
41317 -+#if BUILDING_GCC_VERSION <= 4007
41318 -+ set_current_function_decl(node->decl);
41319 -+#else
41320 -+ set_current_function_decl(node->symbol.decl);
41321 -+#endif
41322 ++ set_current_function_decl(NODE_DECL(node));
41323 + set_plf_false();
41324 + unset_current_function_decl();
41325 + }
41326 @@ -115042,24 +115391,34 @@ index 0000000..50f8464
41327 + return 0;
41328 +}
41329 +
41330 -+static struct ipa_opt_pass_d pass_ipa = {
41331 ++#if BUILDING_GCC_VERSION >= 4009
41332 ++static const struct pass_data ipa_pass_data = {
41333 ++#else
41334 ++static struct ipa_opt_pass_d ipa_pass = {
41335 + .pass = {
41336 ++#endif
41337 + .type = SIMPLE_IPA_PASS,
41338 + .name = "size_overflow",
41339 +#if BUILDING_GCC_VERSION >= 4008
41340 + .optinfo_flags = OPTGROUP_NONE,
41341 +#endif
41342 ++#if BUILDING_GCC_VERSION >= 4009
41343 ++ .has_gate = false,
41344 ++ .has_execute = true,
41345 ++#else
41346 + .gate = NULL,
41347 + .execute = search_function,
41348 + .sub = NULL,
41349 + .next = NULL,
41350 + .static_pass_number = 0,
41351 ++#endif
41352 + .tv_id = TV_NONE,
41353 + .properties_required = 0,
41354 + .properties_provided = 0,
41355 + .properties_destroyed = 0,
41356 + .todo_flags_start = 0,
41357 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_ggc_collect | TODO_verify_flow | TODO_dump_cgraph | TODO_dump_func | TODO_update_ssa_no_phi,
41358 ++#if BUILDING_GCC_VERSION < 4009
41359 + },
41360 + .generate_summary = NULL,
41361 + .write_summary = NULL,
41362 @@ -115072,8 +115431,28 @@ index 0000000..50f8464
41363 + .function_transform_todo_flags_start = 0,
41364 + .function_transform = NULL,
41365 + .variable_transform = NULL,
41366 ++#endif
41367 +};
41368 +
41369 ++#if BUILDING_GCC_VERSION >= 4009
41370 ++namespace {
41371 ++class ipa_pass : public ipa_opt_pass_d {
41372 ++public:
41373 ++ ipa_pass() : ipa_opt_pass_d(ipa_pass_data, g, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL) {}
41374 ++ unsigned int execute() { return search_function(); }
41375 ++};
41376 ++}
41377 ++#endif
41378 ++
41379 ++static struct opt_pass *make_ipa_pass(void)
41380 ++{
41381 ++#if BUILDING_GCC_VERSION >= 4009
41382 ++ return new ipa_pass();
41383 ++#else
41384 ++ return &ipa_pass.pass;
41385 ++#endif
41386 ++}
41387 ++
41388 +// data for the size_overflow asm stmt
41389 +struct asm_data {
41390 + gimple def_stmt;
41391 @@ -115378,9 +115757,9 @@ index 0000000..50f8464
41392 + unsigned int len;
41393 +
41394 + if (argnum == 0)
41395 -+ fn_name = NAME(current_function_decl);
41396 ++ fn_name = DECL_NAME_POINTER(current_function_decl);
41397 + else
41398 -+ fn_name = NAME(gimple_call_fndecl(stmt));
41399 ++ fn_name = DECL_NAME_POINTER(gimple_call_fndecl(stmt));
41400 +
41401 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, argnum);
41402 + gcc_assert(len > 0);
41403 @@ -115766,7 +116145,7 @@ index 0000000..50f8464
41404 +{
41405 + basic_block bb;
41406 +
41407 -+ FOR_ALL_BB(bb) {
41408 ++ FOR_ALL_BB_FN(bb, cfun) {
41409 + gimple_stmt_iterator gsi;
41410 +
41411 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
41412 @@ -115789,27 +116168,57 @@ index 0000000..50f8464
41413 + * this pass inserts asm stmts to mark the interesting args
41414 + * that the ipa pass will detect and insert the size overflow checks for.
41415 + */
41416 ++#if BUILDING_GCC_VERSION >= 4009
41417 ++static const struct pass_data insert_size_overflow_asm_pass_data = {
41418 ++#else
41419 +static struct gimple_opt_pass insert_size_overflow_asm_pass = {
41420 + .pass = {
41421 ++#endif
41422 + .type = GIMPLE_PASS,
41423 + .name = "insert_size_overflow_asm",
41424 +#if BUILDING_GCC_VERSION >= 4008
41425 + .optinfo_flags = OPTGROUP_NONE,
41426 +#endif
41427 ++#if BUILDING_GCC_VERSION >= 4009
41428 ++ .has_gate = false,
41429 ++ .has_execute = true,
41430 ++#else
41431 + .gate = NULL,
41432 + .execute = search_interesting_functions,
41433 + .sub = NULL,
41434 + .next = NULL,
41435 + .static_pass_number = 0,
41436 ++#endif
41437 + .tv_id = TV_NONE,
41438 + .properties_required = PROP_cfg,
41439 + .properties_provided = 0,
41440 + .properties_destroyed = 0,
41441 + .todo_flags_start = 0,
41442 + .todo_flags_finish = TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow
41443 ++#if BUILDING_GCC_VERSION < 4009
41444 + }
41445 ++#endif
41446 +};
41447 +
41448 ++#if BUILDING_GCC_VERSION >= 4009
41449 ++namespace {
41450 ++class insert_size_overflow_asm_pass : public gimple_opt_pass {
41451 ++public:
41452 ++ insert_size_overflow_asm_pass() : gimple_opt_pass(insert_size_overflow_asm_pass_data, g) {}
41453 ++ unsigned int execute() { return search_interesting_functions(); }
41454 ++};
41455 ++}
41456 ++#endif
41457 ++
41458 ++static struct opt_pass *make_insert_size_overflow_asm_pass(void)
41459 ++{
41460 ++#if BUILDING_GCC_VERSION >= 4009
41461 ++ return new insert_size_overflow_asm_pass();
41462 ++#else
41463 ++ return &insert_size_overflow_asm_pass.pass;
41464 ++#endif
41465 ++}
41466 ++
41467 +// Create the noreturn report_size_overflow() function decl.
41468 +static void start_unit_callback(void __unused *gcc_data, void __unused *user_data)
41469 +{
41470 @@ -115840,17 +116249,12 @@ index 0000000..50f8464
41471 + FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) {
41472 + basic_block bb;
41473 +
41474 -+#if BUILDING_GCC_VERSION <= 4007
41475 -+ push_cfun(DECL_STRUCT_FUNCTION(node->decl));
41476 -+ current_function_decl = node->decl;
41477 -+#else
41478 -+ push_cfun(DECL_STRUCT_FUNCTION(node->symbol.decl));
41479 -+ current_function_decl = node->symbol.decl;
41480 -+#endif
41481 ++ push_cfun(DECL_STRUCT_FUNCTION(NODE_DECL(node)));
41482 ++ current_function_decl = NODE_DECL(node);
41483 +
41484 -+ fprintf(stderr, "-----------------------------------------\n%s\n-----------------------------------------\n", NAME(current_function_decl));
41485 ++ fprintf(stderr, "-----------------------------------------\n%s\n-----------------------------------------\n", DECL_NAME_POINTER(current_function_decl));
41486 +
41487 -+ FOR_ALL_BB(bb) {
41488 ++ FOR_ALL_BB_FN(bb, cfun) {
41489 + gimple_stmt_iterator si;
41490 +
41491 + fprintf(stderr, "<bb %u>:\n", bb->index);
41492 @@ -115872,24 +116276,34 @@ index 0000000..50f8464
41493 + return 0;
41494 +}
41495 +
41496 -+static struct ipa_opt_pass_d pass_dump = {
41497 ++#if BUILDING_GCC_VERSION >= 4009
41498 ++static const struct pass_data dump_pass_data = {
41499 ++#else
41500 ++static struct ipa_opt_pass_d dump_pass = {
41501 + .pass = {
41502 ++#endif
41503 + .type = SIMPLE_IPA_PASS,
41504 + .name = "dump",
41505 +#if BUILDING_GCC_VERSION >= 4008
41506 + .optinfo_flags = OPTGROUP_NONE,
41507 +#endif
41508 ++#if BUILDING_GCC_VERSION >= 4009
41509 ++ .has_gate = false,
41510 ++ .has_execute = true,
41511 ++#else
41512 + .gate = NULL,
41513 + .execute = dump_functions,
41514 + .sub = NULL,
41515 + .next = NULL,
41516 + .static_pass_number = 0,
41517 ++#endif
41518 + .tv_id = TV_NONE,
41519 + .properties_required = 0,
41520 + .properties_provided = 0,
41521 + .properties_destroyed = 0,
41522 + .todo_flags_start = 0,
41523 + .todo_flags_finish = 0,
41524 ++#if BUILDING_GCC_VERSION < 4009
41525 + },
41526 + .generate_summary = NULL,
41527 + .write_summary = NULL,
41528 @@ -115902,7 +116316,27 @@ index 0000000..50f8464
41529 + .function_transform_todo_flags_start = 0,
41530 + .function_transform = NULL,
41531 + .variable_transform = NULL,
41532 ++#endif
41533 ++};
41534 ++
41535 ++#if BUILDING_GCC_VERSION >= 4009
41536 ++namespace {
41537 ++class dump_pass : public ipa_opt_pass_d {
41538 ++public:
41539 ++ dump_pass() : ipa_opt_pass_d(dump_pass_data, g, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL) {}
41540 ++ unsigned int execute() { return dump_functions(); }
41541 +};
41542 ++}
41543 ++#endif
41544 ++
41545 ++static struct opt_pass *make_dump_pass(void)
41546 ++{
41547 ++#if BUILDING_GCC_VERSION >= 4009
41548 ++ return new dump_pass();
41549 ++#else
41550 ++ return &dump_pass.pass;
41551 ++#endif
41552 ++}
41553 +
41554 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
41555 +{
41556 @@ -115911,34 +116345,30 @@ index 0000000..50f8464
41557 + const int argc = plugin_info->argc;
41558 + const struct plugin_argument * const argv = plugin_info->argv;
41559 + bool enable = true;
41560 -+
41561 -+ struct register_pass_info insert_size_overflow_asm_pass_info = {
41562 -+ .pass = &insert_size_overflow_asm_pass.pass,
41563 -+ .reference_pass_name = "ssa",
41564 -+ .ref_pass_instance_number = 1,
41565 -+ .pos_op = PASS_POS_INSERT_AFTER
41566 -+ };
41567 -+
41568 -+ struct register_pass_info __unused dump_before_pass_info = {
41569 -+ .pass = &pass_dump.pass,
41570 -+ .reference_pass_name = "increase_alignment",
41571 -+ .ref_pass_instance_number = 1,
41572 -+ .pos_op = PASS_POS_INSERT_BEFORE
41573 -+ };
41574 -+
41575 -+ struct register_pass_info ipa_pass_info = {
41576 -+ .pass = &pass_ipa.pass,
41577 -+ .reference_pass_name = "increase_alignment",
41578 -+ .ref_pass_instance_number = 1,
41579 -+ .pos_op = PASS_POS_INSERT_BEFORE
41580 -+ };
41581 -+
41582 -+ struct register_pass_info __unused dump_after_pass_info = {
41583 -+ .pass = &pass_dump.pass,
41584 -+ .reference_pass_name = "increase_alignment",
41585 -+ .ref_pass_instance_number = 1,
41586 -+ .pos_op = PASS_POS_INSERT_BEFORE
41587 -+ };
41588 ++ struct register_pass_info insert_size_overflow_asm_pass_info;
41589 ++ struct register_pass_info __unused dump_before_pass_info;
41590 ++ struct register_pass_info __unused dump_after_pass_info;
41591 ++ struct register_pass_info ipa_pass_info;
41592 ++
41593 ++ insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
41594 ++ insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
41595 ++ insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
41596 ++ insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
41597 ++
41598 ++ dump_before_pass_info.pass = make_dump_pass();
41599 ++ dump_before_pass_info.reference_pass_name = "increase_alignment";
41600 ++ dump_before_pass_info.ref_pass_instance_number = 1;
41601 ++ dump_before_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
41602 ++
41603 ++ ipa_pass_info.pass = make_ipa_pass();
41604 ++ ipa_pass_info.reference_pass_name = "increase_alignment";
41605 ++ ipa_pass_info.ref_pass_instance_number = 1;
41606 ++ ipa_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
41607 ++
41608 ++ dump_after_pass_info.pass = make_dump_pass();
41609 ++ dump_after_pass_info.reference_pass_name = "increase_alignment";
41610 ++ dump_after_pass_info.ref_pass_instance_number = 1;
41611 ++ dump_after_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
41612 +
41613 + if (!plugin_default_version_check(version, &gcc_version)) {
41614 + error(G_("incompatible gcc/plugin versions"));
41615 @@ -115967,12 +116397,12 @@ index 0000000..50f8464
41616 +}
41617 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
41618 new file mode 100644
41619 -index 0000000..ac2901e
41620 +index 0000000..a4f816a
41621 --- /dev/null
41622 +++ b/tools/gcc/stackleak_plugin.c
41623 -@@ -0,0 +1,327 @@
41624 +@@ -0,0 +1,341 @@
41625 +/*
41626 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
41627 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
41628 + * Licensed under the GPL v2
41629 + *
41630 + * Note: the choice of the license means that the compilation process is
41631 @@ -115990,31 +116420,8 @@ index 0000000..ac2901e
41632 + * BUGS:
41633 + * - none known
41634 + */
41635 -+#include "gcc-plugin.h"
41636 -+#include "config.h"
41637 -+#include "system.h"
41638 -+#include "coretypes.h"
41639 -+#include "tree.h"
41640 -+#include "tree-pass.h"
41641 -+#include "flags.h"
41642 -+#include "intl.h"
41643 -+#include "toplev.h"
41644 -+#include "plugin.h"
41645 -+//#include "expr.h" where are you...
41646 -+#include "diagnostic.h"
41647 -+#include "plugin-version.h"
41648 -+#include "tm.h"
41649 -+#include "function.h"
41650 -+#include "basic-block.h"
41651 -+#include "gimple.h"
41652 -+#include "rtl.h"
41653 -+#include "emit-rtl.h"
41654 +
41655 -+#if BUILDING_GCC_VERSION >= 4008
41656 -+#define TODO_dump_func 0
41657 -+#endif
41658 -+
41659 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
41660 ++#include "gcc-common.h"
41661 +
41662 +int plugin_is_GPL_compatible;
41663 +
41664 @@ -116024,62 +116431,11 @@ index 0000000..ac2901e
41665 +static bool init_locals;
41666 +
41667 +static struct plugin_info stackleak_plugin_info = {
41668 -+ .version = "201302112000",
41669 ++ .version = "201401260140",
41670 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
41671 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
41672 +};
41673 +
41674 -+static bool gate_stackleak_track_stack(void);
41675 -+static unsigned int execute_stackleak_tree_instrument(void);
41676 -+static unsigned int execute_stackleak_final(void);
41677 -+
41678 -+static struct gimple_opt_pass stackleak_tree_instrument_pass = {
41679 -+ .pass = {
41680 -+ .type = GIMPLE_PASS,
41681 -+ .name = "stackleak_tree_instrument",
41682 -+#if BUILDING_GCC_VERSION >= 4008
41683 -+ .optinfo_flags = OPTGROUP_NONE,
41684 -+#endif
41685 -+ .gate = gate_stackleak_track_stack,
41686 -+ .execute = execute_stackleak_tree_instrument,
41687 -+ .sub = NULL,
41688 -+ .next = NULL,
41689 -+ .static_pass_number = 0,
41690 -+ .tv_id = TV_NONE,
41691 -+ .properties_required = PROP_gimple_leh | PROP_cfg,
41692 -+ .properties_provided = 0,
41693 -+ .properties_destroyed = 0,
41694 -+ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
41695 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
41696 -+ }
41697 -+};
41698 -+
41699 -+static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
41700 -+ .pass = {
41701 -+ .type = RTL_PASS,
41702 -+ .name = "stackleak_final",
41703 -+#if BUILDING_GCC_VERSION >= 4008
41704 -+ .optinfo_flags = OPTGROUP_NONE,
41705 -+#endif
41706 -+ .gate = gate_stackleak_track_stack,
41707 -+ .execute = execute_stackleak_final,
41708 -+ .sub = NULL,
41709 -+ .next = NULL,
41710 -+ .static_pass_number = 0,
41711 -+ .tv_id = TV_NONE,
41712 -+ .properties_required = 0,
41713 -+ .properties_provided = 0,
41714 -+ .properties_destroyed = 0,
41715 -+ .todo_flags_start = 0,
41716 -+ .todo_flags_finish = TODO_dump_func
41717 -+ }
41718 -+};
41719 -+
41720 -+static bool gate_stackleak_track_stack(void)
41721 -+{
41722 -+ return track_frame_size >= 0;
41723 -+}
41724 -+
41725 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
41726 +{
41727 + gimple check_alloca;
41728 @@ -116109,23 +116465,6 @@ index 0000000..ac2901e
41729 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
41730 +}
41731 +
41732 -+#if BUILDING_GCC_VERSION == 4005
41733 -+static bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
41734 -+{
41735 -+ tree fndecl;
41736 -+
41737 -+ if (!is_gimple_call(stmt))
41738 -+ return false;
41739 -+ fndecl = gimple_call_fndecl(stmt);
41740 -+ if (!fndecl)
41741 -+ return false;
41742 -+ if (DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
41743 -+ return false;
41744 -+// print_node(stderr, "pax", fndecl, 4);
41745 -+ return DECL_FUNCTION_CODE(fndecl) == code;
41746 -+}
41747 -+#endif
41748 -+
41749 +static bool is_alloca(gimple stmt)
41750 +{
41751 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
41752 @@ -116144,10 +116483,10 @@ index 0000000..ac2901e
41753 + basic_block bb, entry_bb;
41754 + bool prologue_instrumented = false, is_leaf = true;
41755 +
41756 -+ entry_bb = ENTRY_BLOCK_PTR_FOR_FUNCTION(cfun)->next_bb;
41757 ++ entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
41758 +
41759 + // 1. loop through BBs and GIMPLE statements
41760 -+ FOR_EACH_BB(bb) {
41761 ++ FOR_EACH_BB_FN(bb, cfun) {
41762 + gimple_stmt_iterator gsi;
41763 +
41764 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
41765 @@ -116185,9 +116524,9 @@ index 0000000..ac2901e
41766 + if (!prologue_instrumented) {
41767 + gimple_stmt_iterator gsi;
41768 +
41769 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
41770 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
41771 + if (dom_info_available_p(CDI_DOMINATORS))
41772 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
41773 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
41774 + gsi = gsi_start_bb(bb);
41775 + stackleak_add_instrumentation(&gsi);
41776 + }
41777 @@ -116244,25 +116583,130 @@ index 0000000..ac2901e
41778 + return 0;
41779 +}
41780 +
41781 ++static bool gate_stackleak_track_stack(void)
41782 ++{
41783 ++ return track_frame_size >= 0;
41784 ++}
41785 ++
41786 ++#if BUILDING_GCC_VERSION >= 4009
41787 ++static const struct pass_data stackleak_tree_instrument_pass_data = {
41788 ++#else
41789 ++static struct gimple_opt_pass stackleak_tree_instrument_pass = {
41790 ++ .pass = {
41791 ++#endif
41792 ++ .type = GIMPLE_PASS,
41793 ++ .name = "stackleak_tree_instrument",
41794 ++#if BUILDING_GCC_VERSION >= 4008
41795 ++ .optinfo_flags = OPTGROUP_NONE,
41796 ++#endif
41797 ++#if BUILDING_GCC_VERSION >= 4009
41798 ++ .has_gate = true,
41799 ++ .has_execute = true,
41800 ++#else
41801 ++ .gate = gate_stackleak_track_stack,
41802 ++ .execute = execute_stackleak_tree_instrument,
41803 ++ .sub = NULL,
41804 ++ .next = NULL,
41805 ++ .static_pass_number = 0,
41806 ++#endif
41807 ++ .tv_id = TV_NONE,
41808 ++ .properties_required = PROP_gimple_leh | PROP_cfg,
41809 ++ .properties_provided = 0,
41810 ++ .properties_destroyed = 0,
41811 ++ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
41812 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
41813 ++#if BUILDING_GCC_VERSION < 4009
41814 ++ }
41815 ++#endif
41816 ++};
41817 ++
41818 ++#if BUILDING_GCC_VERSION >= 4009
41819 ++static const struct pass_data stackleak_final_rtl_opt_pass_data = {
41820 ++#else
41821 ++static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
41822 ++ .pass = {
41823 ++#endif
41824 ++ .type = RTL_PASS,
41825 ++ .name = "stackleak_final",
41826 ++#if BUILDING_GCC_VERSION >= 4008
41827 ++ .optinfo_flags = OPTGROUP_NONE,
41828 ++#endif
41829 ++#if BUILDING_GCC_VERSION >= 4009
41830 ++ .has_gate = true,
41831 ++ .has_execute = true,
41832 ++#else
41833 ++ .gate = gate_stackleak_track_stack,
41834 ++ .execute = execute_stackleak_final,
41835 ++ .sub = NULL,
41836 ++ .next = NULL,
41837 ++ .static_pass_number = 0,
41838 ++#endif
41839 ++ .tv_id = TV_NONE,
41840 ++ .properties_required = 0,
41841 ++ .properties_provided = 0,
41842 ++ .properties_destroyed = 0,
41843 ++ .todo_flags_start = 0,
41844 ++ .todo_flags_finish = TODO_dump_func
41845 ++#if BUILDING_GCC_VERSION < 4009
41846 ++ }
41847 ++#endif
41848 ++};
41849 ++
41850 ++#if BUILDING_GCC_VERSION >= 4009
41851 ++namespace {
41852 ++class stackleak_tree_instrument_pass : public gimple_opt_pass {
41853 ++public:
41854 ++ stackleak_tree_instrument_pass() : gimple_opt_pass(stackleak_tree_instrument_pass_data, g) {}
41855 ++ bool gate() { return gate_stackleak_track_stack(); }
41856 ++ unsigned int execute() { return execute_stackleak_tree_instrument(); }
41857 ++};
41858 ++
41859 ++class stackleak_final_rtl_opt_pass : public rtl_opt_pass {
41860 ++public:
41861 ++ stackleak_final_rtl_opt_pass() : rtl_opt_pass(stackleak_final_rtl_opt_pass_data, g) {}
41862 ++ bool gate() { return gate_stackleak_track_stack(); }
41863 ++ unsigned int execute() { return execute_stackleak_final(); }
41864 ++};
41865 ++}
41866 ++#endif
41867 ++
41868 ++static struct opt_pass *make_stackleak_tree_instrument_pass(void)
41869 ++{
41870 ++#if BUILDING_GCC_VERSION >= 4009
41871 ++ return new stackleak_tree_instrument_pass();
41872 ++#else
41873 ++ return &stackleak_tree_instrument_pass.pass;
41874 ++#endif
41875 ++}
41876 ++
41877 ++static struct opt_pass *make_stackleak_final_rtl_opt_pass(void)
41878 ++{
41879 ++#if BUILDING_GCC_VERSION >= 4009
41880 ++ return new stackleak_final_rtl_opt_pass();
41881 ++#else
41882 ++ return &stackleak_final_rtl_opt_pass.pass;
41883 ++#endif
41884 ++}
41885 ++
41886 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
41887 +{
41888 + const char * const plugin_name = plugin_info->base_name;
41889 + const int argc = plugin_info->argc;
41890 + const struct plugin_argument * const argv = plugin_info->argv;
41891 + int i;
41892 -+ struct register_pass_info stackleak_tree_instrument_pass_info = {
41893 -+ .pass = &stackleak_tree_instrument_pass.pass,
41894 -+// .reference_pass_name = "tree_profile",
41895 -+ .reference_pass_name = "optimized",
41896 -+ .ref_pass_instance_number = 1,
41897 -+ .pos_op = PASS_POS_INSERT_BEFORE
41898 -+ };
41899 -+ struct register_pass_info stackleak_final_pass_info = {
41900 -+ .pass = &stackleak_final_rtl_opt_pass.pass,
41901 -+ .reference_pass_name = "final",
41902 -+ .ref_pass_instance_number = 1,
41903 -+ .pos_op = PASS_POS_INSERT_BEFORE
41904 -+ };
41905 ++ struct register_pass_info stackleak_tree_instrument_pass_info;
41906 ++ struct register_pass_info stackleak_final_pass_info;
41907 ++
41908 ++ stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
41909 ++// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
41910 ++ stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
41911 ++ stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
41912 ++ stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
41913 ++
41914 ++ stackleak_final_pass_info.pass = make_stackleak_final_rtl_opt_pass();
41915 ++ stackleak_final_pass_info.reference_pass_name = "final";
41916 ++ stackleak_final_pass_info.ref_pass_instance_number = 1;
41917 ++ stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
41918 +
41919 + if (!plugin_default_version_check(version, &gcc_version)) {
41920 + error(G_("incompatible gcc/plugin versions"));
41921 @@ -116300,12 +116744,12 @@ index 0000000..ac2901e
41922 +}
41923 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
41924 new file mode 100644
41925 -index 0000000..4fae911
41926 +index 0000000..796569a
41927 --- /dev/null
41928 +++ b/tools/gcc/structleak_plugin.c
41929 -@@ -0,0 +1,277 @@
41930 +@@ -0,0 +1,273 @@
41931 +/*
41932 -+ * Copyright 2013 by PaX Team <pageexec@××××××××.hu>
41933 ++ * Copyright 2013-2014 by PaX Team <pageexec@××××××××.hu>
41934 + * Licensed under the GPL v2
41935 + *
41936 + * Note: the choice of the license means that the compilation process is
41937 @@ -116330,38 +116774,15 @@ index 0000000..4fae911
41938 + * increase type coverage
41939 + */
41940 +
41941 -+#include "gcc-plugin.h"
41942 -+#include "config.h"
41943 -+#include "system.h"
41944 -+#include "coretypes.h"
41945 -+#include "tree.h"
41946 -+#include "tree-pass.h"
41947 -+#include "intl.h"
41948 -+#include "plugin-version.h"
41949 -+#include "tm.h"
41950 -+#include "toplev.h"
41951 -+#include "function.h"
41952 -+#include "tree-flow.h"
41953 -+#include "plugin.h"
41954 -+#include "gimple.h"
41955 -+#include "diagnostic.h"
41956 -+#include "cfgloop.h"
41957 -+#include "langhooks.h"
41958 -+
41959 -+#if BUILDING_GCC_VERSION >= 4008
41960 -+#define TODO_dump_func 0
41961 -+#endif
41962 -+
41963 -+#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node))
41964 ++#include "gcc-common.h"
41965 +
41966 -+// unused type flag in all versions 4.5-4.8
41967 ++// unused C type flag in all versions 4.5-4.9
41968 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_3(TYPE)
41969 +
41970 +int plugin_is_GPL_compatible;
41971 -+void debug_gimple_stmt(gimple gs);
41972 +
41973 +static struct plugin_info structleak_plugin_info = {
41974 -+ .version = "201304082245",
41975 ++ .version = "201401260140",
41976 + .help = "disable\tdo not activate plugin\n",
41977 +};
41978 +
41979 @@ -116439,7 +116860,7 @@ index 0000000..4fae911
41980 +
41981 + // this is the original entry bb before the forced split
41982 + // TODO: check further BBs in case more splits occured before us
41983 -+ bb = ENTRY_BLOCK_PTR->next_bb->next_bb;
41984 ++ bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb->next_bb;
41985 +
41986 + // first check if the variable is already initialized, warn otherwise
41987 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
41988 @@ -116471,7 +116892,7 @@ index 0000000..4fae911
41989 +
41990 + // build the initializer stmt
41991 + init_stmt = gimple_build_assign(var, initializer);
41992 -+ gsi = gsi_start_bb(ENTRY_BLOCK_PTR->next_bb);
41993 ++ gsi = gsi_start_bb(ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb);
41994 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
41995 + update_stmt(init_stmt);
41996 +}
41997 @@ -116481,25 +116902,15 @@ index 0000000..4fae911
41998 + basic_block bb;
41999 + unsigned int ret = 0;
42000 + tree var;
42001 -+
42002 -+#if BUILDING_GCC_VERSION == 4005
42003 -+ tree vars;
42004 -+#else
42005 + unsigned int i;
42006 -+#endif
42007 +
42008 + // split the first bb where we can put the forced initializers
42009 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
42010 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
42011 + if (dom_info_available_p(CDI_DOMINATORS))
42012 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
42013 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
42014 +
42015 + // enumarate all local variables and forcibly initialize our targets
42016 -+#if BUILDING_GCC_VERSION == 4005
42017 -+ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) {
42018 -+ var = TREE_VALUE(vars);
42019 -+#else
42020 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
42021 -+#endif
42022 + tree type = TREE_TYPE(var);
42023 +
42024 + gcc_assert(DECL_P(var));
42025 @@ -116518,27 +116929,57 @@ index 0000000..4fae911
42026 + return ret;
42027 +}
42028 +
42029 ++#if BUILDING_GCC_VERSION >= 4009
42030 ++static const struct pass_data structleak_pass_data = {
42031 ++#else
42032 +static struct gimple_opt_pass structleak_pass = {
42033 + .pass = {
42034 ++#endif
42035 + .type = GIMPLE_PASS,
42036 + .name = "structleak",
42037 +#if BUILDING_GCC_VERSION >= 4008
42038 + .optinfo_flags = OPTGROUP_NONE,
42039 +#endif
42040 ++#if BUILDING_GCC_VERSION >= 4009
42041 ++ .has_gate = false,
42042 ++ .has_execute = true,
42043 ++#else
42044 + .gate = NULL,
42045 + .execute = handle_function,
42046 + .sub = NULL,
42047 + .next = NULL,
42048 + .static_pass_number = 0,
42049 ++#endif
42050 + .tv_id = TV_NONE,
42051 + .properties_required = PROP_cfg,
42052 + .properties_provided = 0,
42053 + .properties_destroyed = 0,
42054 + .todo_flags_start = 0,
42055 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow
42056 ++#if BUILDING_GCC_VERSION < 4009
42057 + }
42058 ++#endif
42059 +};
42060 +
42061 ++#if BUILDING_GCC_VERSION >= 4009
42062 ++namespace {
42063 ++class structleak_pass : public gimple_opt_pass {
42064 ++public:
42065 ++ structleak_pass() : gimple_opt_pass(structleak_pass_data, g) {}
42066 ++ unsigned int execute() { return handle_function(); }
42067 ++};
42068 ++}
42069 ++#endif
42070 ++
42071 ++static struct opt_pass *make_structleak_pass(void)
42072 ++{
42073 ++#if BUILDING_GCC_VERSION >= 4009
42074 ++ return new structleak_pass();
42075 ++#else
42076 ++ return &structleak_pass.pass;
42077 ++#endif
42078 ++}
42079 ++
42080 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
42081 +{
42082 + int i;
42083 @@ -116546,13 +116987,12 @@ index 0000000..4fae911
42084 + const int argc = plugin_info->argc;
42085 + const struct plugin_argument * const argv = plugin_info->argv;
42086 + bool enable = true;
42087 ++ struct register_pass_info structleak_pass_info;
42088 +
42089 -+ struct register_pass_info structleak_pass_info = {
42090 -+ .pass = &structleak_pass.pass,
42091 -+ .reference_pass_name = "ssa",
42092 -+ .ref_pass_instance_number = 1,
42093 -+ .pos_op = PASS_POS_INSERT_AFTER
42094 -+ };
42095 ++ structleak_pass_info.pass = make_structleak_pass();
42096 ++ structleak_pass_info.reference_pass_name = "ssa";
42097 ++ structleak_pass_info.ref_pass_instance_number = 1;
42098 ++ structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
42099 +
42100 + if (!plugin_default_version_check(version, &gcc_version)) {
42101 + error(G_("incompatible gcc/plugin versions"));
42102 @@ -116607,11 +117047,11 @@ index 6789d78..4afd019e 100644
42103 +
42104 #endif
42105 diff --git a/tools/perf/util/include/linux/compiler.h b/tools/perf/util/include/linux/compiler.h
42106 -index 96b919d..c49bb74 100644
42107 +index b003ad7..c0a02f8 100644
42108 --- a/tools/perf/util/include/linux/compiler.h
42109 +++ b/tools/perf/util/include/linux/compiler.h
42110 -@@ -18,4 +18,12 @@
42111 - #define __force
42112 +@@ -27,4 +27,12 @@
42113 + # define __weak __attribute__((weak))
42114 #endif
42115
42116 +#ifndef __size_overflow
42117 @@ -116624,10 +117064,10 @@ index 96b919d..c49bb74 100644
42118 +
42119 #endif
42120 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
42121 -index aac732d..bc87a5d 100644
42122 +index 4f588bc..d3cfc5c 100644
42123 --- a/virt/kvm/kvm_main.c
42124 +++ b/virt/kvm/kvm_main.c
42125 -@@ -75,12 +75,17 @@ LIST_HEAD(vm_list);
42126 +@@ -76,12 +76,17 @@ LIST_HEAD(vm_list);
42127
42128 static cpumask_var_t cpus_hardware_enabled;
42129 static int kvm_usage_count = 0;
42130 @@ -116647,7 +117087,7 @@ index aac732d..bc87a5d 100644
42131
42132 struct dentry *kvm_debugfs_dir;
42133
42134 -@@ -749,7 +754,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
42135 +@@ -751,7 +756,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
42136 /* We can read the guest memory with __xxx_user() later on. */
42137 if ((mem->slot < KVM_USER_MEM_SLOTS) &&
42138 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
42139 @@ -116656,15 +117096,15 @@ index aac732d..bc87a5d 100644
42140 (void __user *)(unsigned long)mem->userspace_addr,
42141 mem->memory_size)))
42142 goto out;
42143 -@@ -1613,8 +1618,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
42144 +@@ -1615,9 +1620,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
42145
42146 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
42147 {
42148 -- return kvm_write_guest_page(kvm, gfn, (const void *) empty_zero_page,
42149 -- offset, len);
42150 +- const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
42151 + int r;
42152 + unsigned long addr;
42153 -+
42154 +
42155 +- return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
42156 + addr = gfn_to_hva(kvm, gfn);
42157 + if (kvm_is_error_hva(addr))
42158 + return -EFAULT;
42159 @@ -116676,7 +117116,7 @@ index aac732d..bc87a5d 100644
42160 }
42161 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
42162
42163 -@@ -1867,7 +1881,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
42164 +@@ -1872,7 +1885,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
42165 return 0;
42166 }
42167
42168 @@ -116685,16 +117125,16 @@ index aac732d..bc87a5d 100644
42169 .release = kvm_vcpu_release,
42170 .unlocked_ioctl = kvm_vcpu_ioctl,
42171 #ifdef CONFIG_COMPAT
42172 -@@ -2553,7 +2567,7 @@ static int kvm_vm_mmap(struct file *file, struct vm_area_struct *vma)
42173 - return 0;
42174 +@@ -2532,7 +2545,7 @@ out:
42175 }
42176 + #endif
42177
42178 -static struct file_operations kvm_vm_fops = {
42179 +static file_operations_no_const kvm_vm_fops __read_only = {
42180 .release = kvm_vm_release,
42181 .unlocked_ioctl = kvm_vm_ioctl,
42182 #ifdef CONFIG_COMPAT
42183 -@@ -2654,7 +2668,7 @@ out:
42184 +@@ -2632,7 +2645,7 @@ out:
42185 return r;
42186 }
42187
42188 @@ -116703,7 +117143,7 @@ index aac732d..bc87a5d 100644
42189 .unlocked_ioctl = kvm_dev_ioctl,
42190 .compat_ioctl = kvm_dev_ioctl,
42191 .llseek = noop_llseek,
42192 -@@ -2680,7 +2694,7 @@ static void hardware_enable_nolock(void *junk)
42193 +@@ -2658,7 +2671,7 @@ static void hardware_enable_nolock(void *junk)
42194
42195 if (r) {
42196 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
42197 @@ -116712,7 +117152,7 @@ index aac732d..bc87a5d 100644
42198 printk(KERN_INFO "kvm: enabling virtualization on "
42199 "CPU%d failed\n", cpu);
42200 }
42201 -@@ -2734,10 +2748,10 @@ static int hardware_enable_all(void)
42202 +@@ -2714,10 +2727,10 @@ static int hardware_enable_all(void)
42203
42204 kvm_usage_count++;
42205 if (kvm_usage_count == 1) {
42206 @@ -116725,7 +117165,7 @@ index aac732d..bc87a5d 100644
42207 hardware_disable_all_nolock();
42208 r = -EBUSY;
42209 }
42210 -@@ -3171,7 +3185,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
42211 +@@ -3148,7 +3161,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
42212 kvm_arch_vcpu_put(vcpu);
42213 }
42214
42215 @@ -116734,7 +117174,7 @@ index aac732d..bc87a5d 100644
42216 struct module *module)
42217 {
42218 int r;
42219 -@@ -3218,7 +3232,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42220 +@@ -3195,7 +3208,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42221 if (!vcpu_align)
42222 vcpu_align = __alignof__(struct kvm_vcpu);
42223 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
42224 @@ -116743,7 +117183,7 @@ index aac732d..bc87a5d 100644
42225 if (!kvm_vcpu_cache) {
42226 r = -ENOMEM;
42227 goto out_free_3;
42228 -@@ -3228,9 +3242,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42229 +@@ -3205,9 +3218,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42230 if (r)
42231 goto out_free;
42232
42233 @@ -116755,7 +117195,7 @@ index aac732d..bc87a5d 100644
42234
42235 r = misc_register(&kvm_dev);
42236 if (r) {
42237 -@@ -3240,9 +3256,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42238 +@@ -3217,9 +3232,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
42239
42240 register_syscore_ops(&kvm_syscore_ops);
42241
42242
42243 diff --git a/3.12.8/4425_grsec_remove_EI_PAX.patch b/3.13.0/4425_grsec_remove_EI_PAX.patch
42244 similarity index 100%
42245 rename from 3.12.8/4425_grsec_remove_EI_PAX.patch
42246 rename to 3.13.0/4425_grsec_remove_EI_PAX.patch
42247
42248 diff --git a/3.12.8/4427_force_XATTR_PAX_tmpfs.patch b/3.13.0/4427_force_XATTR_PAX_tmpfs.patch
42249 similarity index 100%
42250 rename from 3.12.8/4427_force_XATTR_PAX_tmpfs.patch
42251 rename to 3.13.0/4427_force_XATTR_PAX_tmpfs.patch
42252
42253 diff --git a/3.12.8/4430_grsec-remove-localversion-grsec.patch b/3.13.0/4430_grsec-remove-localversion-grsec.patch
42254 similarity index 100%
42255 rename from 3.12.8/4430_grsec-remove-localversion-grsec.patch
42256 rename to 3.13.0/4430_grsec-remove-localversion-grsec.patch
42257
42258 diff --git a/3.12.8/4435_grsec-mute-warnings.patch b/3.13.0/4435_grsec-mute-warnings.patch
42259 similarity index 100%
42260 rename from 3.12.8/4435_grsec-mute-warnings.patch
42261 rename to 3.13.0/4435_grsec-mute-warnings.patch
42262
42263 diff --git a/3.12.8/4440_grsec-remove-protected-paths.patch b/3.13.0/4440_grsec-remove-protected-paths.patch
42264 similarity index 100%
42265 rename from 3.12.8/4440_grsec-remove-protected-paths.patch
42266 rename to 3.13.0/4440_grsec-remove-protected-paths.patch
42267
42268 diff --git a/3.12.8/4450_grsec-kconfig-default-gids.patch b/3.13.0/4450_grsec-kconfig-default-gids.patch
42269 similarity index 100%
42270 rename from 3.12.8/4450_grsec-kconfig-default-gids.patch
42271 rename to 3.13.0/4450_grsec-kconfig-default-gids.patch
42272
42273 diff --git a/3.12.8/4465_selinux-avc_audit-log-curr_ip.patch b/3.13.0/4465_selinux-avc_audit-log-curr_ip.patch
42274 similarity index 100%
42275 rename from 3.12.8/4465_selinux-avc_audit-log-curr_ip.patch
42276 rename to 3.13.0/4465_selinux-avc_audit-log-curr_ip.patch
42277
42278 diff --git a/3.12.8/4470_disable-compat_vdso.patch b/3.13.0/4470_disable-compat_vdso.patch
42279 similarity index 100%
42280 rename from 3.12.8/4470_disable-compat_vdso.patch
42281 rename to 3.13.0/4470_disable-compat_vdso.patch
42282
42283 diff --git a/3.12.8/4475_emutramp_default_on.patch b/3.13.0/4475_emutramp_default_on.patch
42284 similarity index 100%
42285 rename from 3.12.8/4475_emutramp_default_on.patch
42286 rename to 3.13.0/4475_emutramp_default_on.patch
42287
42288 diff --git a/3.2.54/0000_README b/3.2.54/0000_README
42289 index 30d9794..2c130eb 100644
42290 --- a/3.2.54/0000_README
42291 +++ b/3.2.54/0000_README
42292 @@ -134,7 +134,7 @@ Patch: 1053_linux-3.2.54.patch
42293 From: http://www.kernel.org
42294 Desc: Linux 3.2.54
42295
42296 -Patch: 4420_grsecurity-3.0-3.2.54-201401191012.patch
42297 +Patch: 4420_grsecurity-3.0-3.2.54-201401272346.patch
42298 From: http://www.grsecurity.net
42299 Desc: hardened-sources base patch from upstream grsecurity
42300
42301
42302 diff --git a/3.2.54/4420_grsecurity-3.0-3.2.54-201401191012.patch b/3.2.54/4420_grsecurity-3.0-3.2.54-201401272346.patch
42303 similarity index 99%
42304 rename from 3.2.54/4420_grsecurity-3.0-3.2.54-201401191012.patch
42305 rename to 3.2.54/4420_grsecurity-3.0-3.2.54-201401272346.patch
42306 index ec718f0..3607efc 100644
42307 --- a/3.2.54/4420_grsecurity-3.0-3.2.54-201401191012.patch
42308 +++ b/3.2.54/4420_grsecurity-3.0-3.2.54-201401272346.patch
42309 @@ -10576,7 +10576,7 @@ index fd84387..887aa7e 100644
42310 (unsigned long)create_aout_tables((char __user *)bprm->p, bprm);
42311 /* start thread */
42312 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
42313 -index 6557769..dfa8ead 100644
42314 +index 6557769..c135ca5 100644
42315 --- a/arch/x86/ia32/ia32_signal.c
42316 +++ b/arch/x86/ia32/ia32_signal.c
42317 @@ -73,6 +73,10 @@ int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from)
42318 @@ -10599,6 +10599,15 @@ index 6557769..dfa8ead 100644
42319 set_fs(seg);
42320 if (ret >= 0 && uoss_ptr) {
42321 if (!access_ok(VERIFY_WRITE, uoss_ptr, sizeof(stack_ia32_t)))
42322 +@@ -276,7 +280,7 @@ asmlinkage long sys32_sigreturn(struct pt_regs *regs)
42323 + if (__get_user(set.sig[0], &frame->sc.oldmask)
42324 + || (_COMPAT_NSIG_WORDS > 1
42325 + && __copy_from_user((((char *) &set.sig) + 4),
42326 +- &frame->extramask,
42327 ++ frame->extramask,
42328 + sizeof(frame->extramask))))
42329 + goto badframe;
42330 +
42331 @@ -370,7 +374,7 @@ static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
42332 */
42333 static void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
42334 @@ -10626,6 +10635,15 @@ index 6557769..dfa8ead 100644
42335 return (void __user *) sp;
42336 }
42337
42338 +@@ -447,7 +451,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
42339 + restorer = VDSO32_SYMBOL(current->mm->context.vdso,
42340 + sigreturn);
42341 + else
42342 +- restorer = &frame->retcode;
42343 ++ restorer = frame->retcode;
42344 + }
42345 +
42346 + put_user_try {
42347 @@ -457,7 +461,7 @@ int ia32_setup_frame(int sig, struct k_sigaction *ka,
42348 * These are actually not used anymore, but left because some
42349 * gdb versions depend on them as a marker.
42350 @@ -10654,7 +10672,7 @@ index 6557769..dfa8ead 100644
42351 else
42352 - restorer = VDSO32_SYMBOL(current->mm->context.vdso,
42353 - rt_sigreturn);
42354 -+ restorer = &frame->retcode;
42355 ++ restorer = frame->retcode;
42356 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
42357
42358 /*
42359 @@ -18487,7 +18505,7 @@ index d2d488b8..a4f589f 100644
42360
42361 /*
42362 diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
42363 -index 6274f5f..65df16d 100644
42364 +index 6274f5f..5eb09cb 100644
42365 --- a/arch/x86/kernel/entry_64.S
42366 +++ b/arch/x86/kernel/entry_64.S
42367 @@ -55,6 +55,8 @@
42368 @@ -18927,20 +18945,32 @@ index 6274f5f..65df16d 100644
42369
42370 /* save complete stack frame */
42371 .pushsection .kprobes.text, "ax"
42372 -@@ -386,9 +677,10 @@ ENTRY(save_paranoid)
42373 +@@ -386,10 +677,21 @@ ENTRY(save_paranoid)
42374 js 1f /* negative -> in kernel */
42375 SWAPGS
42376 xorl %ebx,%ebx
42377 -1: ret
42378 -+1: pax_force_retaddr_bts
42379 ++1:
42380 ++#ifdef CONFIG_PAX_MEMORY_UDEREF
42381 ++ testb $3, CS+8(%rsp)
42382 ++ jnz 1f
42383 ++ pax_enter_kernel
42384 ++ jmp 2f
42385 ++1: pax_enter_kernel_user
42386 ++2:
42387 ++#else
42388 ++ pax_enter_kernel
42389 ++#endif
42390 ++ pax_force_retaddr
42391 + ret
42392 CFI_ENDPROC
42393 -END(save_paranoid)
42394 +- .popsection
42395 +ENDPROC(save_paranoid)
42396 - .popsection
42397
42398 /*
42399 -@@ -410,7 +702,7 @@ ENTRY(ret_from_fork)
42400 + * A newly forked process directly context switches into this address.
42401 +@@ -410,7 +712,7 @@ ENTRY(ret_from_fork)
42402
42403 RESTORE_REST
42404
42405 @@ -18949,7 +18979,7 @@ index 6274f5f..65df16d 100644
42406 je int_ret_from_sys_call
42407
42408 testl $_TIF_IA32, TI_flags(%rcx) # 32-bit compat task needs IRET
42409 -@@ -420,7 +712,7 @@ ENTRY(ret_from_fork)
42410 +@@ -420,7 +722,7 @@ ENTRY(ret_from_fork)
42411 jmp ret_from_sys_call # go to the SYSRET fastpath
42412
42413 CFI_ENDPROC
42414 @@ -18958,7 +18988,7 @@ index 6274f5f..65df16d 100644
42415
42416 /*
42417 * System call entry. Up to 6 arguments in registers are supported.
42418 -@@ -456,7 +748,7 @@ END(ret_from_fork)
42419 +@@ -456,7 +758,7 @@ END(ret_from_fork)
42420 ENTRY(system_call)
42421 CFI_STARTPROC simple
42422 CFI_SIGNAL_FRAME
42423 @@ -18967,7 +18997,7 @@ index 6274f5f..65df16d 100644
42424 CFI_REGISTER rip,rcx
42425 /*CFI_REGISTER rflags,r11*/
42426 SWAPGS_UNSAFE_STACK
42427 -@@ -469,12 +761,18 @@ ENTRY(system_call_after_swapgs)
42428 +@@ -469,12 +771,18 @@ ENTRY(system_call_after_swapgs)
42429
42430 movq %rsp,PER_CPU_VAR(old_rsp)
42431 movq PER_CPU_VAR(kernel_stack),%rsp
42432 @@ -18987,7 +19017,7 @@ index 6274f5f..65df16d 100644
42433 movq %rax,ORIG_RAX-ARGOFFSET(%rsp)
42434 movq %rcx,RIP-ARGOFFSET(%rsp)
42435 CFI_REL_OFFSET rip,RIP-ARGOFFSET
42436 -@@ -503,6 +801,8 @@ sysret_check:
42437 +@@ -503,6 +811,8 @@ sysret_check:
42438 andl %edi,%edx
42439 jnz sysret_careful
42440 CFI_REMEMBER_STATE
42441 @@ -18996,7 +19026,7 @@ index 6274f5f..65df16d 100644
42442 /*
42443 * sysretq will re-enable interrupts:
42444 */
42445 -@@ -561,6 +861,9 @@ auditsys:
42446 +@@ -561,6 +871,9 @@ auditsys:
42447 movq %rax,%rsi /* 2nd arg: syscall number */
42448 movl $AUDIT_ARCH_X86_64,%edi /* 1st arg: audit arch */
42449 call audit_syscall_entry
42450 @@ -19006,7 +19036,7 @@ index 6274f5f..65df16d 100644
42451 LOAD_ARGS 0 /* reload call-clobbered registers */
42452 jmp system_call_fastpath
42453
42454 -@@ -591,12 +894,15 @@ tracesys:
42455 +@@ -591,12 +904,15 @@ tracesys:
42456 FIXUP_TOP_OF_STACK %rdi
42457 movq %rsp,%rdi
42458 call syscall_trace_enter
42459 @@ -19023,7 +19053,7 @@ index 6274f5f..65df16d 100644
42460 RESTORE_REST
42461 cmpq $__NR_syscall_max,%rax
42462 ja int_ret_from_sys_call /* RAX(%rsp) set to -ENOSYS above */
42463 -@@ -612,7 +918,7 @@ tracesys:
42464 +@@ -612,7 +928,7 @@ tracesys:
42465 GLOBAL(int_ret_from_sys_call)
42466 DISABLE_INTERRUPTS(CLBR_NONE)
42467 TRACE_IRQS_OFF
42468 @@ -19032,7 +19062,7 @@ index 6274f5f..65df16d 100644
42469 je retint_restore_args
42470 movl $_TIF_ALLWORK_MASK,%edi
42471 /* edi: mask to check */
42472 -@@ -623,7 +929,9 @@ GLOBAL(int_with_check)
42473 +@@ -623,7 +939,9 @@ GLOBAL(int_with_check)
42474 andl %edi,%edx
42475 jnz int_careful
42476 andl $~TS_COMPAT,TI_status(%rcx)
42477 @@ -19043,7 +19073,7 @@ index 6274f5f..65df16d 100644
42478
42479 /* Either reschedule or signal or syscall exit tracking needed. */
42480 /* First do a reschedule test. */
42481 -@@ -669,7 +977,7 @@ int_restore_rest:
42482 +@@ -669,7 +987,7 @@ int_restore_rest:
42483 TRACE_IRQS_OFF
42484 jmp int_with_check
42485 CFI_ENDPROC
42486 @@ -19052,7 +19082,7 @@ index 6274f5f..65df16d 100644
42487
42488 /*
42489 * Certain special system calls that need to save a complete full stack frame.
42490 -@@ -677,15 +985,13 @@ END(system_call)
42491 +@@ -677,15 +995,13 @@ END(system_call)
42492 .macro PTREGSCALL label,func,arg
42493 ENTRY(\label)
42494 PARTIAL_FRAME 1 8 /* offset 8: return address */
42495 @@ -19069,7 +19099,7 @@ index 6274f5f..65df16d 100644
42496 .endm
42497
42498 PTREGSCALL stub_clone, sys_clone, %r8
42499 -@@ -700,12 +1006,17 @@ ENTRY(ptregscall_common)
42500 +@@ -700,12 +1016,17 @@ ENTRY(ptregscall_common)
42501 movq_cfi_restore R15+8, r15
42502 movq_cfi_restore R14+8, r14
42503 movq_cfi_restore R13+8, r13
42504 @@ -19089,7 +19119,7 @@ index 6274f5f..65df16d 100644
42505
42506 ENTRY(stub_execve)
42507 CFI_STARTPROC
42508 -@@ -720,7 +1031,7 @@ ENTRY(stub_execve)
42509 +@@ -720,7 +1041,7 @@ ENTRY(stub_execve)
42510 RESTORE_REST
42511 jmp int_ret_from_sys_call
42512 CFI_ENDPROC
42513 @@ -19098,7 +19128,7 @@ index 6274f5f..65df16d 100644
42514
42515 /*
42516 * sigreturn is special because it needs to restore all registers on return.
42517 -@@ -738,7 +1049,7 @@ ENTRY(stub_rt_sigreturn)
42518 +@@ -738,7 +1059,7 @@ ENTRY(stub_rt_sigreturn)
42519 RESTORE_REST
42520 jmp int_ret_from_sys_call
42521 CFI_ENDPROC
42522 @@ -19107,7 +19137,7 @@ index 6274f5f..65df16d 100644
42523
42524 /*
42525 * Build the entry stubs and pointer table with some assembler magic.
42526 -@@ -773,7 +1084,7 @@ vector=vector+1
42527 +@@ -773,7 +1094,7 @@ vector=vector+1
42528 2: jmp common_interrupt
42529 .endr
42530 CFI_ENDPROC
42531 @@ -19116,7 +19146,7 @@ index 6274f5f..65df16d 100644
42532
42533 .previous
42534 END(interrupt)
42535 -@@ -790,9 +1101,19 @@ END(interrupt)
42536 +@@ -790,9 +1111,19 @@ END(interrupt)
42537 /* 0(%rsp): ~(interrupt number) */
42538 .macro interrupt func
42539 /* reserve pt_regs for scratch regs and rbp */
42540 @@ -19138,7 +19168,7 @@ index 6274f5f..65df16d 100644
42541 call \func
42542 .endm
42543
42544 -@@ -818,13 +1139,13 @@ ret_from_intr:
42545 +@@ -818,13 +1149,13 @@ ret_from_intr:
42546 /* Restore saved previous stack */
42547 popq %rsi
42548 CFI_DEF_CFA_REGISTER rsi
42549 @@ -19155,7 +19185,7 @@ index 6274f5f..65df16d 100644
42550 je retint_kernel
42551
42552 /* Interrupt came from user space */
42553 -@@ -846,12 +1167,16 @@ retint_swapgs: /* return to user-space */
42554 +@@ -846,12 +1177,16 @@ retint_swapgs: /* return to user-space */
42555 * The iretq could re-enable interrupts:
42556 */
42557 DISABLE_INTERRUPTS(CLBR_ANY)
42558 @@ -19172,7 +19202,7 @@ index 6274f5f..65df16d 100644
42559 /*
42560 * The iretq could re-enable interrupts:
42561 */
42562 -@@ -940,7 +1265,7 @@ ENTRY(retint_kernel)
42563 +@@ -940,7 +1275,7 @@ ENTRY(retint_kernel)
42564 #endif
42565
42566 CFI_ENDPROC
42567 @@ -19181,7 +19211,7 @@ index 6274f5f..65df16d 100644
42568 /*
42569 * End of kprobes section
42570 */
42571 -@@ -956,7 +1281,7 @@ ENTRY(\sym)
42572 +@@ -956,7 +1291,7 @@ ENTRY(\sym)
42573 interrupt \do_sym
42574 jmp ret_from_intr
42575 CFI_ENDPROC
42576 @@ -19190,22 +19220,7 @@ index 6274f5f..65df16d 100644
42577 .endm
42578
42579 #ifdef CONFIG_SMP
42580 -@@ -1021,12 +1346,22 @@ ENTRY(\sym)
42581 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
42582 - call error_entry
42583 - DEFAULT_FRAME 0
42584 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42585 -+ testb $3, CS(%rsp)
42586 -+ jnz 1f
42587 -+ pax_enter_kernel
42588 -+ jmp 2f
42589 -+1: pax_enter_kernel_user
42590 -+2:
42591 -+#else
42592 -+ pax_enter_kernel
42593 -+#endif
42594 - movq %rsp,%rdi /* pt_regs pointer */
42595 - xorl %esi,%esi /* no error code */
42596 +@@ -1026,7 +1361,7 @@ ENTRY(\sym)
42597 call \do_sym
42598 jmp error_exit /* %ebx: no swapgs flag */
42599 CFI_ENDPROC
42600 @@ -19214,22 +19229,7 @@ index 6274f5f..65df16d 100644
42601 .endm
42602
42603 .macro paranoidzeroentry sym do_sym
42604 -@@ -1038,15 +1373,25 @@ ENTRY(\sym)
42605 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
42606 - call save_paranoid
42607 - TRACE_IRQS_OFF
42608 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42609 -+ testb $3, CS(%rsp)
42610 -+ jnz 1f
42611 -+ pax_enter_kernel
42612 -+ jmp 2f
42613 -+1: pax_enter_kernel_user
42614 -+2:
42615 -+#else
42616 -+ pax_enter_kernel
42617 -+#endif
42618 - movq %rsp,%rdi /* pt_regs pointer */
42619 - xorl %esi,%esi /* no error code */
42620 +@@ -1043,10 +1378,10 @@ ENTRY(\sym)
42621 call \do_sym
42622 jmp paranoid_exit /* %ebx: no swapgs flag */
42623 CFI_ENDPROC
42624 @@ -19242,20 +19242,8 @@ index 6274f5f..65df16d 100644
42625 .macro paranoidzeroentry_ist sym do_sym ist
42626 ENTRY(\sym)
42627 INTR_FRAME
42628 -@@ -1056,14 +1401,30 @@ ENTRY(\sym)
42629 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
42630 - call save_paranoid
42631 +@@ -1058,12 +1393,18 @@ ENTRY(\sym)
42632 TRACE_IRQS_OFF
42633 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42634 -+ testb $3, CS(%rsp)
42635 -+ jnz 1f
42636 -+ pax_enter_kernel
42637 -+ jmp 2f
42638 -+1: pax_enter_kernel_user
42639 -+2:
42640 -+#else
42641 -+ pax_enter_kernel
42642 -+#endif
42643 movq %rsp,%rdi /* pt_regs pointer */
42644 xorl %esi,%esi /* no error code */
42645 +#ifdef CONFIG_SMP
42646 @@ -19274,23 +19262,7 @@ index 6274f5f..65df16d 100644
42647 .endm
42648
42649 .macro errorentry sym do_sym
42650 -@@ -1074,13 +1435,23 @@ ENTRY(\sym)
42651 - CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
42652 - call error_entry
42653 - DEFAULT_FRAME 0
42654 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42655 -+ testb $3, CS(%rsp)
42656 -+ jnz 1f
42657 -+ pax_enter_kernel
42658 -+ jmp 2f
42659 -+1: pax_enter_kernel_user
42660 -+2:
42661 -+#else
42662 -+ pax_enter_kernel
42663 -+#endif
42664 - movq %rsp,%rdi /* pt_regs pointer */
42665 - movq ORIG_RAX(%rsp),%rsi /* get error code */
42666 - movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
42667 +@@ -1080,7 +1421,7 @@ ENTRY(\sym)
42668 call \do_sym
42669 jmp error_exit /* %ebx: no swapgs flag */
42670 CFI_ENDPROC
42671 @@ -19299,23 +19271,7 @@ index 6274f5f..65df16d 100644
42672 .endm
42673
42674 /* error code is on the stack already */
42675 -@@ -1093,13 +1464,23 @@ ENTRY(\sym)
42676 - call save_paranoid
42677 - DEFAULT_FRAME 0
42678 - TRACE_IRQS_OFF
42679 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42680 -+ testb $3, CS(%rsp)
42681 -+ jnz 1f
42682 -+ pax_enter_kernel
42683 -+ jmp 2f
42684 -+1: pax_enter_kernel_user
42685 -+2:
42686 -+#else
42687 -+ pax_enter_kernel
42688 -+#endif
42689 - movq %rsp,%rdi /* pt_regs pointer */
42690 - movq ORIG_RAX(%rsp),%rsi /* get error code */
42691 - movq $-1,ORIG_RAX(%rsp) /* no syscall to restart */
42692 +@@ -1099,7 +1440,7 @@ ENTRY(\sym)
42693 call \do_sym
42694 jmp paranoid_exit /* %ebx: no swapgs flag */
42695 CFI_ENDPROC
42696 @@ -19324,7 +19280,7 @@ index 6274f5f..65df16d 100644
42697 .endm
42698
42699 zeroentry divide_error do_divide_error
42700 -@@ -1129,9 +1510,10 @@ gs_change:
42701 +@@ -1129,9 +1470,10 @@ gs_change:
42702 2: mfence /* workaround */
42703 SWAPGS
42704 popfq_cfi
42705 @@ -19336,7 +19292,7 @@ index 6274f5f..65df16d 100644
42706
42707 .section __ex_table,"a"
42708 .align 8
42709 -@@ -1153,13 +1535,14 @@ ENTRY(kernel_thread_helper)
42710 +@@ -1153,13 +1495,14 @@ ENTRY(kernel_thread_helper)
42711 * Here we are in the child and the registers are set as they were
42712 * at kernel_thread() invocation in the parent.
42713 */
42714 @@ -19352,7 +19308,7 @@ index 6274f5f..65df16d 100644
42715
42716 /*
42717 * execve(). This function needs to use IRET, not SYSRET, to set up all state properly.
42718 -@@ -1186,11 +1569,11 @@ ENTRY(kernel_execve)
42719 +@@ -1186,11 +1529,11 @@ ENTRY(kernel_execve)
42720 RESTORE_REST
42721 testq %rax,%rax
42722 je int_ret_from_sys_call
42723 @@ -19366,7 +19322,7 @@ index 6274f5f..65df16d 100644
42724
42725 /* Call softirq on interrupt stack. Interrupts are off. */
42726 ENTRY(call_softirq)
42727 -@@ -1208,9 +1591,10 @@ ENTRY(call_softirq)
42728 +@@ -1208,9 +1551,10 @@ ENTRY(call_softirq)
42729 CFI_DEF_CFA_REGISTER rsp
42730 CFI_ADJUST_CFA_OFFSET -8
42731 decl PER_CPU_VAR(irq_count)
42732 @@ -19378,7 +19334,7 @@ index 6274f5f..65df16d 100644
42733
42734 #ifdef CONFIG_XEN
42735 zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
42736 -@@ -1248,7 +1632,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
42737 +@@ -1248,7 +1592,7 @@ ENTRY(xen_do_hypervisor_callback) # do_hypervisor_callback(struct *pt_regs)
42738 decl PER_CPU_VAR(irq_count)
42739 jmp error_exit
42740 CFI_ENDPROC
42741 @@ -19387,7 +19343,7 @@ index 6274f5f..65df16d 100644
42742
42743 /*
42744 * Hypervisor uses this for application faults while it executes.
42745 -@@ -1307,7 +1691,7 @@ ENTRY(xen_failsafe_callback)
42746 +@@ -1307,7 +1651,7 @@ ENTRY(xen_failsafe_callback)
42747 SAVE_ALL
42748 jmp error_exit
42749 CFI_ENDPROC
42750 @@ -19396,7 +19352,7 @@ index 6274f5f..65df16d 100644
42751
42752 apicinterrupt XEN_HVM_EVTCHN_CALLBACK \
42753 xen_hvm_callback_vector xen_evtchn_do_upcall
42754 -@@ -1356,16 +1740,31 @@ ENTRY(paranoid_exit)
42755 +@@ -1356,16 +1700,31 @@ ENTRY(paranoid_exit)
42756 TRACE_IRQS_OFF
42757 testl %ebx,%ebx /* swapgs needed? */
42758 jnz paranoid_restore
42759 @@ -19429,7 +19385,7 @@ index 6274f5f..65df16d 100644
42760 jmp irq_return
42761 paranoid_userspace:
42762 GET_THREAD_INFO(%rcx)
42763 -@@ -1394,7 +1793,7 @@ paranoid_schedule:
42764 +@@ -1394,7 +1753,7 @@ paranoid_schedule:
42765 TRACE_IRQS_OFF
42766 jmp paranoid_userspace
42767 CFI_ENDPROC
42768 @@ -19438,7 +19394,7 @@ index 6274f5f..65df16d 100644
42769
42770 /*
42771 * Exception entry point. This expects an error code/orig_rax on the stack.
42772 -@@ -1421,12 +1820,13 @@ ENTRY(error_entry)
42773 +@@ -1421,12 +1780,23 @@ ENTRY(error_entry)
42774 movq_cfi r14, R14+8
42775 movq_cfi r15, R15+8
42776 xorl %ebx,%ebx
42777 @@ -19448,12 +19404,22 @@ index 6274f5f..65df16d 100644
42778 error_swapgs:
42779 SWAPGS
42780 error_sti:
42781 ++#ifdef CONFIG_PAX_MEMORY_UDEREF
42782 ++ testb $3, CS+8(%rsp)
42783 ++ jnz 1f
42784 ++ pax_enter_kernel
42785 ++ jmp 2f
42786 ++1: pax_enter_kernel_user
42787 ++2:
42788 ++#else
42789 ++ pax_enter_kernel
42790 ++#endif
42791 TRACE_IRQS_OFF
42792 -+ pax_force_retaddr_bts
42793 ++ pax_force_retaddr
42794 ret
42795
42796 /*
42797 -@@ -1453,7 +1853,7 @@ bstep_iret:
42798 +@@ -1453,7 +1823,7 @@ bstep_iret:
42799 movq %rcx,RIP+8(%rsp)
42800 jmp error_swapgs
42801 CFI_ENDPROC
42802 @@ -19462,7 +19428,7 @@ index 6274f5f..65df16d 100644
42803
42804
42805 /* ebx: no swapgs flag (1: don't need swapgs, 0: need it) */
42806 -@@ -1473,7 +1873,7 @@ ENTRY(error_exit)
42807 +@@ -1473,7 +1843,7 @@ ENTRY(error_exit)
42808 jnz retint_careful
42809 jmp retint_swapgs
42810 CFI_ENDPROC
42811 @@ -19471,25 +19437,15 @@ index 6274f5f..65df16d 100644
42812
42813
42814 /* runs on exception stack */
42815 -@@ -1485,6 +1885,17 @@ ENTRY(nmi)
42816 +@@ -1485,6 +1855,7 @@ ENTRY(nmi)
42817 CFI_ADJUST_CFA_OFFSET ORIG_RAX-R15
42818 call save_paranoid
42819 DEFAULT_FRAME 0
42820 -+#ifdef CONFIG_PAX_MEMORY_UDEREF
42821 -+ testb $3, CS(%rsp)
42822 -+ jnz 1f
42823 -+ pax_enter_kernel
42824 -+ jmp 2f
42825 -+1: pax_enter_kernel_user
42826 -+2:
42827 -+#else
42828 -+ pax_enter_kernel
42829 -+#endif
42830 +
42831 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
42832 movq %rsp,%rdi
42833 movq $-1,%rsi
42834 -@@ -1495,12 +1906,28 @@ ENTRY(nmi)
42835 +@@ -1495,12 +1866,28 @@ ENTRY(nmi)
42836 DISABLE_INTERRUPTS(CLBR_NONE)
42837 testl %ebx,%ebx /* swapgs needed? */
42838 jnz nmi_restore
42839 @@ -19519,7 +19475,7 @@ index 6274f5f..65df16d 100644
42840 jmp irq_return
42841 nmi_userspace:
42842 GET_THREAD_INFO(%rcx)
42843 -@@ -1529,14 +1956,14 @@ nmi_schedule:
42844 +@@ -1529,14 +1916,14 @@ nmi_schedule:
42845 jmp paranoid_exit
42846 CFI_ENDPROC
42847 #endif
42848 @@ -22899,7 +22855,7 @@ index 9a0e312..e6f66f2 100644
42849 .long sys_restart_syscall /* 0 - old "setup()" system call, used for restarting */
42850 .long sys_exit
42851 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
42852 -index e2410e2..b98a4fd 100644
42853 +index e2410e2..5e8d841 100644
42854 --- a/arch/x86/kernel/tboot.c
42855 +++ b/arch/x86/kernel/tboot.c
42856 @@ -219,7 +219,7 @@ static int tboot_setup_sleep(void)
42857 @@ -22916,7 +22872,7 @@ index e2410e2..b98a4fd 100644
42858 switch_to_tboot_pt();
42859
42860 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
42861 -+ shutdown = (void *)tboot->shutdown_entry;
42862 ++ shutdown = (void *)(unsigned long)tboot->shutdown_entry;
42863 shutdown();
42864
42865 /* should not reach here */
42866 @@ -31309,9 +31265,18 @@ index c0ab25c..9d49f8f 100644
42867 if (blk_verify_command(rq->cmd, has_write_perm))
42868 return -EPERM;
42869 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
42870 -index 7b72502..646105c 100644
42871 +index 7b72502..3d7b647 100644
42872 --- a/block/compat_ioctl.c
42873 +++ b/block/compat_ioctl.c
42874 +@@ -155,7 +155,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
42875 + cgc = compat_alloc_user_space(sizeof(*cgc));
42876 + cgc32 = compat_ptr(arg);
42877 +
42878 +- if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
42879 ++ if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
42880 + get_user(data, &cgc32->buffer) ||
42881 + put_user(compat_ptr(data), &cgc->buffer) ||
42882 + copy_in_user(&cgc->buflen, &cgc32->buflen,
42883 @@ -340,7 +340,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
42884 err |= __get_user(f->spec1, &uf->spec1);
42885 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
42886 @@ -36275,7 +36240,7 @@ index 98723cb..10ca85b 100644
42887 return -EINVAL;
42888 }
42889 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
42890 -index 3f1799b..3a853eb 100644
42891 +index 3f1799b..7d5796a 100644
42892 --- a/drivers/gpu/drm/drm_crtc.c
42893 +++ b/drivers/gpu/drm/drm_crtc.c
42894 @@ -1379,7 +1379,7 @@ int drm_mode_getconnector(struct drm_device *dev, void *data,
42895 @@ -36343,6 +36308,15 @@ index 3f1799b..3a853eb 100644
42896 list_for_each_entry(prop_enum, &property->enum_blob_list, head) {
42897
42898 if (copy_to_user(&enum_ptr[copied].value, &prop_enum->value, sizeof(uint64_t))) {
42899 +@@ -2293,7 +2293,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42900 + goto done;
42901 + }
42902 +
42903 +- if (copy_to_user(&enum_ptr[copied].name,
42904 ++ if (copy_to_user(enum_ptr[copied].name,
42905 + &prop_enum->name, DRM_PROP_NAME_LEN)) {
42906 + ret = -EFAULT;
42907 + goto done;
42908 @@ -2308,7 +2308,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42909 if ((out_resp->count_enum_blobs >= blob_count) && blob_count) {
42910 copied = 0;
42911 @@ -41245,7 +41219,7 @@ index a0895bf..b451f5b 100644
42912 .open = timblogiw_open,
42913 .release = timblogiw_close,
42914 diff --git a/drivers/media/video/v4l2-compat-ioctl32.c b/drivers/media/video/v4l2-compat-ioctl32.c
42915 -index c68531b..82a9ea0 100644
42916 +index c68531b..5b2fb1d 100644
42917 --- a/drivers/media/video/v4l2-compat-ioctl32.c
42918 +++ b/drivers/media/video/v4l2-compat-ioctl32.c
42919 @@ -332,7 +332,7 @@ struct v4l2_buffer32 {
42920 @@ -41266,6 +41240,66 @@ index c68531b..82a9ea0 100644
42921 enum v4l2_memory memory)
42922 {
42923 if (copy_in_user(up32, up, 2 * sizeof(__u32)) ||
42924 +@@ -424,7 +424,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
42925 + * by passing a very big num_planes value */
42926 + uplane = compat_alloc_user_space(num_planes *
42927 + sizeof(struct v4l2_plane));
42928 +- kp->m.planes = uplane;
42929 ++ kp->m.planes = (struct v4l2_plane __force_kernel *)uplane;
42930 +
42931 + while (--num_planes >= 0) {
42932 + ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
42933 +@@ -491,7 +491,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
42934 + if (num_planes == 0)
42935 + return 0;
42936 +
42937 +- uplane = kp->m.planes;
42938 ++ uplane = (struct v4l2_plane __force_user *)kp->m.planes;
42939 + if (get_user(p, &up->m.planes))
42940 + return -EFAULT;
42941 + uplane32 = compat_ptr(p);
42942 +@@ -541,7 +541,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
42943 + get_user(kp->capability, &up->capability) ||
42944 + get_user(kp->flags, &up->flags))
42945 + return -EFAULT;
42946 +- kp->base = compat_ptr(tmp);
42947 ++ kp->base = (void __force_kernel *)compat_ptr(tmp);
42948 + get_v4l2_pix_format(&kp->fmt, &up->fmt);
42949 + return 0;
42950 + }
42951 +@@ -647,7 +647,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
42952 + n * sizeof(struct v4l2_ext_control32)))
42953 + return -EFAULT;
42954 + kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
42955 +- kp->controls = kcontrols;
42956 ++ kp->controls = (struct v4l2_ext_control __force_kernel *)kcontrols;
42957 + while (--n >= 0) {
42958 + if (copy_in_user(kcontrols, ucontrols, sizeof(*ucontrols)))
42959 + return -EFAULT;
42960 +@@ -669,7 +669,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
42961 + static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext_controls32 __user *up)
42962 + {
42963 + struct v4l2_ext_control32 __user *ucontrols;
42964 +- struct v4l2_ext_control __user *kcontrols = kp->controls;
42965 ++ struct v4l2_ext_control __user *kcontrols = (struct v4l2_ext_control __force_user *)kp->controls;
42966 + int n = kp->count;
42967 + compat_caddr_t p;
42968 +
42969 +diff --git a/drivers/media/video/v4l2-ctrls.c b/drivers/media/video/v4l2-ctrls.c
42970 +index 0f415da..5dc98ef 100644
42971 +--- a/drivers/media/video/v4l2-ctrls.c
42972 ++++ b/drivers/media/video/v4l2-ctrls.c
42973 +@@ -1075,8 +1075,8 @@ static int validate_new(const struct v4l2_ctrl *ctrl, struct v4l2_ext_control *c
42974 + return 0;
42975 +
42976 + case V4L2_CTRL_TYPE_STRING:
42977 +- len = strlen(s);
42978 +- if (len < ctrl->minimum)
42979 ++ len = strlen_user(s);
42980 ++ if (!len || len < ctrl->minimum)
42981 + return -ERANGE;
42982 + if ((len - ctrl->minimum) % ctrl->step)
42983 + return -ERANGE;
42984 diff --git a/drivers/media/video/v4l2-device.c b/drivers/media/video/v4l2-device.c
42985 index 8b0777f..e29f31e 100644
42986 --- a/drivers/media/video/v4l2-device.c
42987 @@ -41283,7 +41317,7 @@ index 8b0777f..e29f31e 100644
42988
42989 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
42990 diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
42991 -index 639abee..e2336f4 100644
42992 +index 639abee..a027e4f 100644
42993 --- a/drivers/media/video/v4l2-ioctl.c
42994 +++ b/drivers/media/video/v4l2-ioctl.c
42995 @@ -2197,7 +2197,7 @@ static unsigned long cmd_input_size(unsigned int cmd)
42996 @@ -41313,6 +41347,15 @@ index 639abee..e2336f4 100644
42997 *kernel_ptr = (void *)&ctrls->controls;
42998 *array_size = sizeof(struct v4l2_ext_control)
42999 * ctrls->count;
43000 +@@ -2312,7 +2312,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
43001 + err = -EINVAL;
43002 +
43003 + if (has_array_args) {
43004 +- *kernel_ptr = user_ptr;
43005 ++ *kernel_ptr = (void __force_kernel *)user_ptr;
43006 + if (copy_to_user(user_ptr, mbuf, array_size))
43007 + err = -EFAULT;
43008 + goto out_array_args;
43009 diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
43010 index 7d754fb..474273b 100644
43011 --- a/drivers/media/video/vivi.c
43012 @@ -42126,6 +42169,19 @@ index ba168a7..399925d6 100644
43013 skb_reserve(st_gdata->rx_skb,
43014 st_gdata->list[type]->reserve);
43015 /* next 2 required for BT only */
43016 +diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
43017 +index 4802f7f..5ae431e 100644
43018 +--- a/drivers/mmc/card/block.c
43019 ++++ b/drivers/mmc/card/block.c
43020 +@@ -399,7 +399,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
43021 + if (idata->ic.postsleep_min_us)
43022 + usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
43023 +
43024 +- if (copy_to_user(&(ic_ptr->response), cmd.resp, sizeof(cmd.resp))) {
43025 ++ if (copy_to_user(ic_ptr->response, cmd.resp, sizeof(cmd.resp))) {
43026 + err = -EFAULT;
43027 + goto cmd_rel_host;
43028 + }
43029 diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
43030 index 83b51b5..ec2396c 100644
43031 --- a/drivers/mmc/host/sdhci-pci.c
43032 @@ -42948,9 +43004,18 @@ index 301b39e..345c414 100644
43033 };
43034
43035 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
43036 -index b0f9015..93da3cf 100644
43037 +index b0f9015..edcb1f3 100644
43038 --- a/drivers/net/macvtap.c
43039 +++ b/drivers/net/macvtap.c
43040 +@@ -924,7 +924,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
43041 + return -ENOLINK;
43042 +
43043 + ret = 0;
43044 +- if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
43045 ++ if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
43046 + put_user(q->flags, &ifr->ifr_flags))
43047 + ret = -EFAULT;
43048 + dev_put(vlan->dev);
43049 @@ -1085,7 +1085,7 @@ static int macvtap_device_event(struct notifier_block *unused,
43050 return NOTIFY_DONE;
43051 }
43052 @@ -47945,7 +48010,7 @@ index 5c3960d..15cf8fc 100644
43053 goto out1;
43054 }
43055 diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
43056 -index 0a22808..130eafe 100644
43057 +index 0a22808..b3bdf50 100644
43058 --- a/drivers/video/fbmem.c
43059 +++ b/drivers/video/fbmem.c
43060 @@ -428,7 +428,7 @@ static void fb_do_show_logo(struct fb_info *info, struct fb_image *image,
43061 @@ -47975,6 +48040,15 @@ index 0a22808..130eafe 100644
43062 return -EINVAL;
43063 if (!registered_fb[con2fb.framebuffer])
43064 request_module("fb%d", con2fb.framebuffer);
43065 +@@ -1260,7 +1260,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
43066 + __u32 data;
43067 + int err;
43068 +
43069 +- err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
43070 ++ err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
43071 +
43072 + data = (__u32) (unsigned long) fix->smem_start;
43073 + err |= put_user(data, &fix32->smem_start);
43074 diff --git a/drivers/video/geode/gx1fb_core.c b/drivers/video/geode/gx1fb_core.c
43075 index 5a5d092..265c5ed 100644
43076 --- a/drivers/video/geode/gx1fb_core.c
43077 @@ -53604,7 +53678,7 @@ index 112e45a..b59845b 100644
43078
43079 /*
43080 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
43081 -index f854cf9..d513829 100644
43082 +index f854cf9..5132aab 100644
43083 --- a/fs/compat_ioctl.c
43084 +++ b/fs/compat_ioctl.c
43085 @@ -623,7 +623,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
43086 @@ -53632,7 +53706,7 @@ index f854cf9..d513829 100644
43087 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
43088 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
43089 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
43090 -+ copy_in_user(p->l_pad, &p32->l_pad, 4*sizeof(u32)))
43091 ++ copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
43092 return -EFAULT;
43093
43094 return ioctl_preallocate(file, p);
43095 @@ -53895,7 +53969,7 @@ index 451b9b8..12e5a03 100644
43096
43097 out_free_fd:
43098 diff --git a/fs/exec.c b/fs/exec.c
43099 -index 78199eb..e6c84a8 100644
43100 +index 78199eb..793dc44 100644
43101 --- a/fs/exec.c
43102 +++ b/fs/exec.c
43103 @@ -55,12 +55,35 @@
43104 @@ -54096,7 +54170,7 @@ index 78199eb..e6c84a8 100644
43105 mm_segment_t oldfs = get_fs();
43106 struct user_arg_ptr argv = {
43107 - .ptr.native = (const char __user *const __user *)__argv,
43108 -+ .ptr.native = (const char __force_user * const __force_user *)__argv,
43109 ++ .ptr.native = (const char __user * const __force_user *)__argv,
43110 };
43111
43112 set_fs(KERNEL_DS);
43113 @@ -62758,7 +62832,7 @@ index 0000000..c4717f9
43114 +endmenu
43115 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
43116 new file mode 100644
43117 -index 0000000..2f8793f
43118 +index 0000000..65d159f
43119 --- /dev/null
43120 +++ b/grsecurity/Makefile
43121 @@ -0,0 +1,43 @@
43122 @@ -62768,7 +62842,7 @@ index 0000000..2f8793f
43123 +#
43124 +# All code in this directory and various hooks inserted throughout the kernel
43125 +# are copyright Brad Spengler - Open Source Security, Inc., and released
43126 -+# under the GPL v2 or higher
43127 ++# under the GPL v2
43128 +
43129 +KBUILD_CFLAGS += -Werror
43130 +
43131 @@ -79188,6 +79262,19 @@ index 6f8fbcf..8259001 100644
43132 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
43133 + MODULE_GRSEC
43134
43135 +diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
43136 +index 45a7698..76e6993 100644
43137 +--- a/include/linux/videodev2.h
43138 ++++ b/include/linux/videodev2.h
43139 +@@ -1062,7 +1062,7 @@ struct v4l2_ext_control {
43140 + union {
43141 + __s32 value;
43142 + __s64 value64;
43143 +- char *string;
43144 ++ char __user *string;
43145 + };
43146 + } __attribute__ ((packed));
43147 +
43148 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
43149 index 4bde182..943f335 100644
43150 --- a/include/linux/vmalloc.h
43151 @@ -94280,6 +94367,37 @@ index 963f285..3e3874d 100644
43152 struct vlan_net *vn;
43153
43154 vn = net_generic(net, vlan_net_id);
43155 +diff --git a/net/9p/client.c b/net/9p/client.c
43156 +index 854ca7a..fc1bfc8 100644
43157 +--- a/net/9p/client.c
43158 ++++ b/net/9p/client.c
43159 +@@ -582,7 +582,7 @@ static int p9_check_zc_errors(struct p9_client *c, struct p9_req_t *req,
43160 + len - inline_len);
43161 + } else {
43162 + err = copy_from_user(ename + inline_len,
43163 +- uidata, len - inline_len);
43164 ++ (char __force_user *)uidata, len - inline_len);
43165 + if (err) {
43166 + err = -EFAULT;
43167 + goto out_free;
43168 +@@ -1528,7 +1528,7 @@ p9_client_read(struct p9_fid *fid, char *data, char __user *udata, u64 offset,
43169 + kernel_buf = 1;
43170 + indata = data;
43171 + } else
43172 +- indata = (char *)udata;
43173 ++ indata = (__force_kernel char *)udata;
43174 + /*
43175 + * response header len is 11
43176 + * PDU Header(7) + IO Size (4)
43177 +@@ -1603,7 +1603,7 @@ p9_client_write(struct p9_fid *fid, char *data, const char __user *udata,
43178 + kernel_buf = 1;
43179 + odata = data;
43180 + } else
43181 +- odata = (char *)udata;
43182 ++ odata = (char __force_kernel *)udata;
43183 + req = p9_client_zc_rpc(clnt, P9_TWRITE, NULL, odata, 0, rsize,
43184 + P9_ZC_HDR_SZ, kernel_buf, "dqd",
43185 + fid->fid, offset, rsize);
43186 diff --git a/net/9p/mod.c b/net/9p/mod.c
43187 index 2664d12..b2803fe 100644
43188 --- a/net/9p/mod.c
43189 @@ -99971,7 +100089,7 @@ index 8da4481..d02565e 100644
43190 + (rtt >> sctp_rto_alpha);
43191 } else {
43192 diff --git a/net/socket.c b/net/socket.c
43193 -index d4faade..ab65211 100644
43194 +index d4faade..1c51abc 100644
43195 --- a/net/socket.c
43196 +++ b/net/socket.c
43197 @@ -88,6 +88,7 @@
43198 @@ -100141,7 +100259,7 @@ index d4faade..ab65211 100644
43199 * the protocol.
43200 */
43201
43202 -+asmlinkage long sys_sendto(int, void *, size_t, unsigned, struct sockaddr *, int);
43203 ++asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
43204 +
43205 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
43206 unsigned, flags, struct sockaddr __user *, addr,
43207 @@ -100165,15 +100283,18 @@ index d4faade..ab65211 100644
43208 uaddr_len = COMPAT_NAMELEN(msg);
43209 if (MSG_CMSG_COMPAT & flags)
43210 err = verify_compat_iovec(msg_sys, iov,
43211 -@@ -2792,7 +2859,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
43212 +@@ -2792,9 +2859,9 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
43213 }
43214
43215 ifr = compat_alloc_user_space(buf_size);
43216 - rxnfc = (void *)ifr + ALIGN(sizeof(struct ifreq), 8);
43217 + rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
43218
43219 - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
43220 +- if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
43221 ++ if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
43222 return -EFAULT;
43223 +
43224 + if (put_user(convert_in ? rxnfc : compat_ptr(data),
43225 @@ -2816,12 +2883,12 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
43226 offsetof(struct ethtool_rxnfc, fs.ring_cookie));
43227
43228 @@ -100208,7 +100329,7 @@ index d4faade..ab65211 100644
43229 copy_in_user(&compat_rxnfc->rule_cnt, &rxnfc->rule_cnt,
43230 sizeof(rxnfc->rule_cnt)))
43231 return -EFAULT;
43232 -@@ -2908,7 +2975,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
43233 +@@ -2908,14 +2975,14 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
43234 old_fs = get_fs();
43235 set_fs(KERNEL_DS);
43236 err = dev_ioctl(net, cmd,
43237 @@ -100217,6 +100338,14 @@ index d4faade..ab65211 100644
43238 set_fs(old_fs);
43239
43240 return err;
43241 + case SIOCBONDSLAVEINFOQUERY:
43242 + case SIOCBONDINFOQUERY:
43243 + uifr = compat_alloc_user_space(sizeof(*uifr));
43244 +- if (copy_in_user(&uifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
43245 ++ if (copy_in_user(uifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
43246 + return -EFAULT;
43247 +
43248 + if (get_user(data, &ifr32->ifr_ifru.ifru_data))
43249 @@ -3017,7 +3084,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
43250
43251 old_fs = get_fs();
43252 @@ -105084,7 +105213,7 @@ index 0000000..50f2f2f
43253 +size_overflow_hash.h
43254 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
43255 new file mode 100644
43256 -index 0000000..144dbee
43257 +index 0000000..270a5bc
43258 --- /dev/null
43259 +++ b/tools/gcc/Makefile
43260 @@ -0,0 +1,45 @@
43261 @@ -105099,7 +105228,7 @@ index 0000000..144dbee
43262 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu99 -ggdb
43263 +else
43264 +HOSTLIBS := hostcxxlibs
43265 -+HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu++98 -ggdb -Wno-unused-parameter
43266 ++HOST_EXTRACXXFLAGS += -I$(GCCPLUGINS_DIR)/include -std=gnu++98 -fno-rtti -ggdb -Wno-unused-parameter
43267 +endif
43268 +
43269 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
43270 @@ -105135,12 +105264,12 @@ index 0000000..144dbee
43271 +targets += size_overflow_hash.h
43272 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
43273 new file mode 100644
43274 -index 0000000..22f03c0
43275 +index 0000000..5452feea
43276 --- /dev/null
43277 +++ b/tools/gcc/checker_plugin.c
43278 -@@ -0,0 +1,172 @@
43279 +@@ -0,0 +1,150 @@
43280 +/*
43281 -+ * Copyright 2011 by the PaX Team <pageexec@××××××××.hu>
43282 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
43283 + * Licensed under the GPL v2
43284 + *
43285 + * Note: the choice of the license means that the compilation process is
43286 @@ -105156,27 +105285,8 @@ index 0000000..22f03c0
43287 + * BUGS:
43288 + * - none known
43289 + */
43290 -+#include "gcc-plugin.h"
43291 -+#include "config.h"
43292 -+#include "system.h"
43293 -+#include "coretypes.h"
43294 -+#include "tree.h"
43295 -+#include "tree-pass.h"
43296 -+#include "flags.h"
43297 -+#include "intl.h"
43298 -+#include "toplev.h"
43299 -+#include "plugin.h"
43300 -+//#include "expr.h" where are you...
43301 -+#include "diagnostic.h"
43302 -+#include "plugin-version.h"
43303 -+#include "tm.h"
43304 -+#include "function.h"
43305 -+#include "basic-block.h"
43306 -+#include "gimple.h"
43307 -+#include "rtl.h"
43308 -+#include "emit-rtl.h"
43309 -+#include "tree-flow.h"
43310 -+#include "target.h"
43311 ++
43312 ++#include "gcc-common.h"
43313 +
43314 +extern void c_register_addr_space (const char *str, addr_space_t as);
43315 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
43316 @@ -105185,13 +105295,10 @@ index 0000000..22f03c0
43317 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
43318 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
43319 +
43320 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
43321 -+extern rtx emit_move_insn(rtx x, rtx y);
43322 -+
43323 +int plugin_is_GPL_compatible;
43324 +
43325 +static struct plugin_info checker_plugin_info = {
43326 -+ .version = "201111150100",
43327 ++ .version = "201304082245",
43328 + .help = NULL,
43329 +};
43330 +
43331 @@ -105313,12 +105420,12 @@ index 0000000..22f03c0
43332 +}
43333 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
43334 new file mode 100644
43335 -index 0000000..414fe5e
43336 +index 0000000..06dcfda
43337 --- /dev/null
43338 +++ b/tools/gcc/colorize_plugin.c
43339 -@@ -0,0 +1,151 @@
43340 +@@ -0,0 +1,169 @@
43341 +/*
43342 -+ * Copyright 2012-2013 by PaX Team <pageexec@××××××××.hu>
43343 ++ * Copyright 2012-2014 by PaX Team <pageexec@××××××××.hu>
43344 + * Licensed under the GPL v2
43345 + *
43346 + * Note: the choice of the license means that the compilation process is
43347 @@ -105330,24 +105437,12 @@ index 0000000..414fe5e
43348 + *
43349 + */
43350 +
43351 -+#include "gcc-plugin.h"
43352 -+#include "config.h"
43353 -+#include "system.h"
43354 -+#include "coretypes.h"
43355 -+#include "tree.h"
43356 -+#include "tree-pass.h"
43357 -+#include "flags.h"
43358 -+#include "intl.h"
43359 -+#include "toplev.h"
43360 -+#include "plugin.h"
43361 -+#include "diagnostic.h"
43362 -+#include "plugin-version.h"
43363 -+#include "tm.h"
43364 ++#include "gcc-common.h"
43365 +
43366 +int plugin_is_GPL_compatible;
43367 +
43368 +static struct plugin_info colorize_plugin_info = {
43369 -+ .version = "201302112000",
43370 ++ .version = "201401260140",
43371 + .help = NULL,
43372 +};
43373 +
43374 @@ -105422,27 +105517,57 @@ index 0000000..414fe5e
43375 + return 0;
43376 +}
43377 +
43378 -+struct simple_ipa_opt_pass pass_ipa_colorize_rearm = {
43379 ++#if BUILDING_GCC_VERSION >= 4009
43380 ++static const struct pass_data colorize_rearm_pass_data = {
43381 ++#else
43382 ++struct simple_ipa_opt_pass colorize_rearm_pass = {
43383 + .pass = {
43384 ++#endif
43385 + .type = SIMPLE_IPA_PASS,
43386 + .name = "colorize_rearm",
43387 +#if BUILDING_GCC_VERSION >= 4008
43388 + .optinfo_flags = OPTGROUP_NONE,
43389 +#endif
43390 ++#if BUILDING_GCC_VERSION >= 4009
43391 ++ .has_gate = false,
43392 ++ .has_execute = true,
43393 ++#else
43394 + .gate = NULL,
43395 + .execute = execute_colorize_rearm,
43396 + .sub = NULL,
43397 + .next = NULL,
43398 + .static_pass_number = 0,
43399 ++#endif
43400 + .tv_id = TV_NONE,
43401 + .properties_required = 0,
43402 + .properties_provided = 0,
43403 + .properties_destroyed = 0,
43404 + .todo_flags_start = 0,
43405 + .todo_flags_finish = 0
43406 ++#if BUILDING_GCC_VERSION < 4009
43407 + }
43408 ++#endif
43409 +};
43410 +
43411 ++#if BUILDING_GCC_VERSION >= 4009
43412 ++namespace {
43413 ++class colorize_rearm_pass : public simple_ipa_opt_pass {
43414 ++public:
43415 ++ colorize_rearm_pass() : simple_ipa_opt_pass(colorize_rearm_pass_data, g) {}
43416 ++ unsigned int execute() { return execute_colorize_rearm(); }
43417 ++};
43418 ++}
43419 ++#endif
43420 ++
43421 ++static struct opt_pass *make_colorize_rearm_pass(void)
43422 ++{
43423 ++#if BUILDING_GCC_VERSION >= 4009
43424 ++ return new colorize_rearm_pass();
43425 ++#else
43426 ++ return &colorize_rearm_pass.pass;
43427 ++#endif
43428 ++}
43429 ++
43430 +static void colorize_start_unit(void *gcc_data, void *user_data)
43431 +{
43432 + colorize_arm();
43433 @@ -105451,12 +105576,12 @@ index 0000000..414fe5e
43434 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
43435 +{
43436 + const char * const plugin_name = plugin_info->base_name;
43437 -+ struct register_pass_info colorize_rearm_pass_info = {
43438 -+ .pass = &pass_ipa_colorize_rearm.pass,
43439 -+ .reference_pass_name = "*free_lang_data",
43440 -+ .ref_pass_instance_number = 1,
43441 -+ .pos_op = PASS_POS_INSERT_AFTER
43442 -+ };
43443 ++ struct register_pass_info colorize_rearm_pass_info;
43444 ++
43445 ++ colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
43446 ++ colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
43447 ++ colorize_rearm_pass_info.ref_pass_instance_number = 1;
43448 ++ colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
43449 +
43450 + if (!plugin_default_version_check(version, &gcc_version)) {
43451 + error(G_("incompatible gcc/plugin versions"));
43452 @@ -105470,13 +105595,13 @@ index 0000000..414fe5e
43453 +}
43454 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
43455 new file mode 100644
43456 -index 0000000..59bf839
43457 +index 0000000..4f67ac1
43458 --- /dev/null
43459 +++ b/tools/gcc/constify_plugin.c
43460 -@@ -0,0 +1,557 @@
43461 +@@ -0,0 +1,552 @@
43462 +/*
43463 + * Copyright 2011 by Emese Revfy <re.emese@×××××.com>
43464 -+ * Copyright 2011-2013 by PaX Team <pageexec@××××××××.hu>
43465 ++ * Copyright 2011-2014 by PaX Team <pageexec@××××××××.hu>
43466 + * Licensed under the GPL v2, or (at your option) v3
43467 + *
43468 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
43469 @@ -105489,38 +105614,15 @@ index 0000000..59bf839
43470 + * $ gcc -fplugin=constify_plugin.so test.c -O2
43471 + */
43472 +
43473 -+#include "gcc-plugin.h"
43474 -+#include "config.h"
43475 -+#include "system.h"
43476 -+#include "coretypes.h"
43477 -+#include "tree.h"
43478 -+#include "tree-pass.h"
43479 -+#include "flags.h"
43480 -+#include "intl.h"
43481 -+#include "toplev.h"
43482 -+#include "plugin.h"
43483 -+#include "diagnostic.h"
43484 -+#include "plugin-version.h"
43485 -+#include "tm.h"
43486 -+#include "function.h"
43487 -+#include "basic-block.h"
43488 -+#include "gimple.h"
43489 -+#include "rtl.h"
43490 -+#include "emit-rtl.h"
43491 -+#include "tree-flow.h"
43492 -+#include "target.h"
43493 -+#include "langhooks.h"
43494 -+
43495 -+// should come from c-tree.h if only it were installed for gcc 4.5...
43496 -+#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
43497 ++#include "gcc-common.h"
43498 +
43499 -+// unused type flag in all versions 4.5-4.8
43500 ++// unused C type flag in all versions 4.5-4.9
43501 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
43502 +
43503 +int plugin_is_GPL_compatible;
43504 +
43505 +static struct plugin_info const_plugin_info = {
43506 -+ .version = "201401140130",
43507 ++ .version = "201401270210",
43508 + .help = "no-constify\tturn off constification\n",
43509 +};
43510 +
43511 @@ -105595,7 +105697,7 @@ index 0000000..59bf839
43512 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
43513 +
43514 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
43515 -+ gcc_assert(!TYPE_READONLY(node));
43516 ++// gcc_assert(!TYPE_READONLY(node));
43517 + return false;
43518 + }
43519 +
43520 @@ -105624,15 +105726,17 @@ index 0000000..59bf839
43521 +
43522 + // special case handling of simple ptr-to-same-array-type members
43523 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
43524 -+ const_tree ptrtype = TREE_TYPE(TREE_TYPE(field));
43525 ++ tree ptrtype = TREE_TYPE(TREE_TYPE(field));
43526 +
43527 ++ if (TREE_TYPE(TREE_TYPE(field)) == type)
43528 ++ continue;
43529 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
43530 + continue;
43531 -+ if (TREE_TYPE(TREE_TYPE(field)) == type)
43532 ++ if (!constified(ptrtype))
43533 + continue;
43534 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
43535 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
43536 -+ TREE_TYPE(TREE_TYPE(field)) = type;
43537 ++ TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
43538 + }
43539 + continue;
43540 + }
43541 @@ -105858,13 +105962,8 @@ index 0000000..59bf839
43542 +{
43543 + struct varpool_node *node;
43544 +
43545 -+#if BUILDING_GCC_VERSION <= 4007
43546 -+ for (node = varpool_nodes; node; node = node->next) {
43547 -+ tree var = node->decl;
43548 -+#else
43549 + FOR_EACH_VARIABLE(node) {
43550 -+ tree var = node->symbol.decl;
43551 -+#endif
43552 ++ tree var = NODE_DECL(node);
43553 + tree type = TREE_TYPE(var);
43554 +
43555 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
43556 @@ -105894,18 +105993,9 @@ index 0000000..59bf839
43557 + unsigned int ret = 0;
43558 + tree var;
43559 +
43560 -+#if BUILDING_GCC_VERSION == 4005
43561 -+ tree vars;
43562 -+#else
43563 + unsigned int i;
43564 -+#endif
43565 +
43566 -+#if BUILDING_GCC_VERSION == 4005
43567 -+ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) {
43568 -+ var = TREE_VALUE(vars);
43569 -+#else
43570 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
43571 -+#endif
43572 + tree type = TREE_TYPE(var);
43573 +
43574 + gcc_assert(DECL_P(var));
43575 @@ -105927,26 +106017,56 @@ index 0000000..59bf839
43576 + return ret;
43577 +}
43578 +
43579 -+static struct gimple_opt_pass pass_local_variable = {
43580 -+ {
43581 ++#if BUILDING_GCC_VERSION >= 4009
43582 ++static const struct pass_data check_local_variables_pass_data = {
43583 ++#else
43584 ++static struct gimple_opt_pass check_local_variables_pass = {
43585 ++ .pass = {
43586 ++#endif
43587 + .type = GIMPLE_PASS,
43588 + .name = "check_local_variables",
43589 +#if BUILDING_GCC_VERSION >= 4008
43590 + .optinfo_flags = OPTGROUP_NONE,
43591 +#endif
43592 ++#if BUILDING_GCC_VERSION >= 4009
43593 ++ .has_gate = false,
43594 ++ .has_execute = true,
43595 ++#else
43596 + .gate = NULL,
43597 + .execute = check_local_variables,
43598 + .sub = NULL,
43599 + .next = NULL,
43600 + .static_pass_number = 0,
43601 ++#endif
43602 + .tv_id = TV_NONE,
43603 + .properties_required = 0,
43604 + .properties_provided = 0,
43605 + .properties_destroyed = 0,
43606 + .todo_flags_start = 0,
43607 + .todo_flags_finish = 0
43608 ++#if BUILDING_GCC_VERSION < 4009
43609 + }
43610 ++#endif
43611 ++};
43612 ++
43613 ++#if BUILDING_GCC_VERSION >= 4009
43614 ++namespace {
43615 ++class check_local_variables_pass : public gimple_opt_pass {
43616 ++public:
43617 ++ check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
43618 ++ unsigned int execute() { return check_local_variables(); }
43619 +};
43620 ++}
43621 ++#endif
43622 ++
43623 ++static struct opt_pass *make_check_local_variables_pass(void)
43624 ++{
43625 ++#if BUILDING_GCC_VERSION >= 4009
43626 ++ return new check_local_variables_pass();
43627 ++#else
43628 ++ return &check_local_variables_pass.pass;
43629 ++#endif
43630 ++}
43631 +
43632 +static struct {
43633 + const char *name;
43634 @@ -105995,12 +106115,12 @@ index 0000000..59bf839
43635 + int i;
43636 + bool constify = true;
43637 +
43638 -+ struct register_pass_info local_variable_pass_info = {
43639 -+ .pass = &pass_local_variable.pass,
43640 -+ .reference_pass_name = "ssa",
43641 -+ .ref_pass_instance_number = 1,
43642 -+ .pos_op = PASS_POS_INSERT_BEFORE
43643 -+ };
43644 ++ struct register_pass_info check_local_variables_pass_info;
43645 ++
43646 ++ check_local_variables_pass_info.pass = make_check_local_variables_pass();
43647 ++ check_local_variables_pass_info.reference_pass_name = "ssa";
43648 ++ check_local_variables_pass_info.ref_pass_instance_number = 1;
43649 ++ check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
43650 +
43651 + if (!plugin_default_version_check(version, &gcc_version)) {
43652 + error(G_("incompatible gcc/plugin versions"));
43653 @@ -106024,13 +106144,286 @@ index 0000000..59bf839
43654 + if (constify) {
43655 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
43656 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
43657 -+ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &local_variable_pass_info);
43658 ++ register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
43659 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
43660 + }
43661 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
43662 +
43663 + return 0;
43664 +}
43665 +diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
43666 +new file mode 100644
43667 +index 0000000..986f39b
43668 +--- /dev/null
43669 ++++ b/tools/gcc/gcc-common.h
43670 +@@ -0,0 +1,267 @@
43671 ++#ifndef GCC_COMMON_H_INCLUDED
43672 ++#define GCC_COMMON_H_INCLUDED
43673 ++
43674 ++#include "plugin.h"
43675 ++#include "bversion.h"
43676 ++#include "plugin-version.h"
43677 ++#include "config.h"
43678 ++#include "system.h"
43679 ++#include "coretypes.h"
43680 ++#include "tm.h"
43681 ++#include "line-map.h"
43682 ++#include "input.h"
43683 ++#include "tree.h"
43684 ++
43685 ++#include "tree-inline.h"
43686 ++#include "version.h"
43687 ++#include "rtl.h"
43688 ++#include "tm_p.h"
43689 ++#include "flags.h"
43690 ++//#include "insn-attr.h"
43691 ++//#include "insn-config.h"
43692 ++//#include "insn-flags.h"
43693 ++#include "hard-reg-set.h"
43694 ++//#include "recog.h"
43695 ++#include "output.h"
43696 ++#include "except.h"
43697 ++#include "function.h"
43698 ++#include "toplev.h"
43699 ++//#include "expr.h"
43700 ++#include "basic-block.h"
43701 ++#include "intl.h"
43702 ++#include "ggc.h"
43703 ++//#include "regs.h"
43704 ++#include "timevar.h"
43705 ++
43706 ++#include "params.h"
43707 ++#include "pointer-set.h"
43708 ++#include "emit-rtl.h"
43709 ++//#include "reload.h"
43710 ++//#include "ira.h"
43711 ++//#include "dwarf2asm.h"
43712 ++#include "debug.h"
43713 ++#include "target.h"
43714 ++#include "langhooks.h"
43715 ++#include "cfgloop.h"
43716 ++//#include "hosthooks.h"
43717 ++#include "cgraph.h"
43718 ++#include "opts.h"
43719 ++//#include "coverage.h"
43720 ++//#include "value-prof.h"
43721 ++
43722 ++#if BUILDING_GCC_VERSION >= 4007
43723 ++#include "tree-pretty-print.h"
43724 ++#include "gimple-pretty-print.h"
43725 ++#include "c-tree.h"
43726 ++//#include "alloc-pool.h"
43727 ++#endif
43728 ++
43729 ++#if BUILDING_GCC_VERSION <= 4008
43730 ++#include "tree-flow.h"
43731 ++#endif
43732 ++
43733 ++#include "diagnostic.h"
43734 ++//#include "tree-diagnostic.h"
43735 ++#include "tree-dump.h"
43736 ++#include "tree-pass.h"
43737 ++//#include "df.h"
43738 ++#include "predict.h"
43739 ++//#include "lto-streamer.h"
43740 ++#include "ipa-utils.h"
43741 ++
43742 ++#if BUILDING_GCC_VERSION >= 4009
43743 ++#include "varasm.h"
43744 ++#include "stor-layout.h"
43745 ++#include "internal-fn.h"
43746 ++#include "gimple-expr.h"
43747 ++//#include "diagnostic-color.h"
43748 ++#include "context.h"
43749 ++#include "tree-ssa-alias.h"
43750 ++#include "stringpool.h"
43751 ++#include "tree-ssanames.h"
43752 ++#include "print-tree.h"
43753 ++#include "tree-eh.h"
43754 ++#endif
43755 ++
43756 ++#include "gimple.h"
43757 ++
43758 ++#if BUILDING_GCC_VERSION >= 4009
43759 ++#include "tree-ssa-operands.h"
43760 ++#include "tree-phinodes.h"
43761 ++#include "gimple-iterator.h"
43762 ++#include "gimple-ssa.h"
43763 ++#include "ssa-iterators.h"
43764 ++#endif
43765 ++
43766 ++//#include "expr.h" where are you...
43767 ++extern rtx emit_move_insn(rtx x, rtx y);
43768 ++
43769 ++#define __unused __attribute__((__unused__))
43770 ++
43771 ++#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
43772 ++#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
43773 ++
43774 ++#if BUILDING_GCC_VERSION == 4005
43775 ++#define FOR_EACH_LOCAL_DECL(FUN, I, D) for (tree vars = (FUN)->local_decls; vars && (D = TREE_VALUE(vars)); vars = TREE_CHAIN(vars), I)
43776 ++#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
43777 ++#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
43778 ++
43779 ++static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
43780 ++{
43781 ++ tree fndecl;
43782 ++
43783 ++ if (!is_gimple_call(stmt))
43784 ++ return false;
43785 ++ fndecl = gimple_call_fndecl(stmt);
43786 ++ if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
43787 ++ return false;
43788 ++// print_node(stderr, "pax", fndecl, 4);
43789 ++ return DECL_FUNCTION_CODE(fndecl) == code;
43790 ++}
43791 ++
43792 ++static inline bool is_simple_builtin(tree decl)
43793 ++{
43794 ++ if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
43795 ++ return false;
43796 ++
43797 ++ switch (DECL_FUNCTION_CODE(decl)) {
43798 ++ /* Builtins that expand to constants. */
43799 ++ case BUILT_IN_CONSTANT_P:
43800 ++ case BUILT_IN_EXPECT:
43801 ++ case BUILT_IN_OBJECT_SIZE:
43802 ++ case BUILT_IN_UNREACHABLE:
43803 ++ /* Simple register moves or loads from stack. */
43804 ++ case BUILT_IN_RETURN_ADDRESS:
43805 ++ case BUILT_IN_EXTRACT_RETURN_ADDR:
43806 ++ case BUILT_IN_FROB_RETURN_ADDR:
43807 ++ case BUILT_IN_RETURN:
43808 ++ case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
43809 ++ case BUILT_IN_FRAME_ADDRESS:
43810 ++ case BUILT_IN_VA_END:
43811 ++ case BUILT_IN_STACK_SAVE:
43812 ++ case BUILT_IN_STACK_RESTORE:
43813 ++ /* Exception state returns or moves registers around. */
43814 ++ case BUILT_IN_EH_FILTER:
43815 ++ case BUILT_IN_EH_POINTER:
43816 ++ case BUILT_IN_EH_COPY_VALUES:
43817 ++ return true;
43818 ++
43819 ++ default:
43820 ++ return false;
43821 ++ }
43822 ++}
43823 ++#endif
43824 ++
43825 ++#if BUILDING_GCC_VERSION <= 4006
43826 ++#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
43827 ++#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
43828 ++
43829 ++// should come from c-tree.h if only it were installed for gcc 4.5...
43830 ++#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
43831 ++
43832 ++#define get_random_seed(noinit) ({ \
43833 ++ unsigned HOST_WIDE_INT seed; \
43834 ++ sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
43835 ++ seed * seed; })
43836 ++
43837 ++static inline bool gimple_clobber_p(gimple s)
43838 ++{
43839 ++ return false;
43840 ++}
43841 ++
43842 ++static inline tree builtin_decl_implicit(enum built_in_function fncode)
43843 ++{
43844 ++ return implicit_built_in_decls[fncode];
43845 ++}
43846 ++
43847 ++static inline struct cgraph_node *cgraph_get_create_node(tree decl)
43848 ++{
43849 ++ struct cgraph_node *node = cgraph_get_node(decl);
43850 ++
43851 ++ return node ? node : cgraph_node(decl);
43852 ++}
43853 ++
43854 ++static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
43855 ++{
43856 ++ return node->analyzed && !node->thunk.thunk_p && !node->alias;
43857 ++}
43858 ++
43859 ++static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
43860 ++{
43861 ++ struct cgraph_node *node;
43862 ++
43863 ++ for (node = cgraph_nodes; node; node = node->next)
43864 ++ if (cgraph_function_with_gimple_body_p(node))
43865 ++ return node;
43866 ++ return NULL;
43867 ++}
43868 ++
43869 ++static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
43870 ++{
43871 ++ for (node = node->next; node; node = node->next)
43872 ++ if (cgraph_function_with_gimple_body_p(node))
43873 ++ return node;
43874 ++ return NULL;
43875 ++}
43876 ++
43877 ++#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
43878 ++ for ((node) = cgraph_first_function_with_gimple_body(); (node); \
43879 ++ (node) = cgraph_next_function_with_gimple_body(node))
43880 ++#endif
43881 ++
43882 ++#if BUILDING_GCC_VERSION == 4006
43883 ++extern void debug_gimple_stmt(gimple);
43884 ++extern void debug_gimple_seq(gimple_seq);
43885 ++extern void print_gimple_seq(FILE *, gimple_seq, int, int);
43886 ++extern void print_gimple_stmt(FILE *, gimple, int, int);
43887 ++extern void print_gimple_expr(FILE *, gimple, int, int);
43888 ++extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
43889 ++#endif
43890 ++
43891 ++#if BUILDING_GCC_VERSION <= 4007
43892 ++#define FOR_EACH_VARIABLE(node) for (node = varpool_nodes; node; node = node->next)
43893 ++
43894 ++static inline bool gimple_store_p(gimple gs)
43895 ++{
43896 ++ tree lhs = gimple_get_lhs(gs);
43897 ++ return lhs && !is_gimple_reg(lhs);
43898 ++}
43899 ++#endif
43900 ++
43901 ++#if BUILDING_GCC_VERSION >= 4007
43902 ++#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
43903 ++ cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
43904 ++#endif
43905 ++
43906 ++#if BUILDING_GCC_VERSION <= 4008
43907 ++#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
43908 ++#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
43909 ++
43910 ++static inline const char *get_tree_code_name(enum tree_code code)
43911 ++{
43912 ++ gcc_assert(code < MAX_TREE_CODES);
43913 ++ return tree_code_name[code];
43914 ++}
43915 ++
43916 ++#define ipa_remove_stmt_references(cnode, stmt)
43917 ++#endif
43918 ++
43919 ++#if BUILDING_GCC_VERSION == 4008
43920 ++#define NODE_DECL(node) node->symbol.decl
43921 ++#else
43922 ++#define NODE_DECL(node) node->decl
43923 ++#endif
43924 ++
43925 ++#if BUILDING_GCC_VERSION >= 4008
43926 ++#define add_referenced_var(var)
43927 ++#define mark_sym_for_renaming(var)
43928 ++#define varpool_mark_needed_node(node)
43929 ++#define TODO_dump_func 0
43930 ++#define TODO_dump_cgraph 0
43931 ++#endif
43932 ++
43933 ++#if BUILDING_GCC_VERSION >= 4009
43934 ++#define TODO_ggc_collect 0
43935 ++#endif
43936 ++
43937 ++#endif
43938 diff --git a/tools/gcc/generate_size_overflow_hash.sh b/tools/gcc/generate_size_overflow_hash.sh
43939 new file mode 100644
43940 index 0000000..e518932
43941 @@ -106133,12 +106526,12 @@ index 0000000..e518932
43942 +exit 0
43943 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
43944 new file mode 100644
43945 -index 0000000..568b360
43946 +index 0000000..b559327
43947 --- /dev/null
43948 +++ b/tools/gcc/kallocstat_plugin.c
43949 -@@ -0,0 +1,170 @@
43950 +@@ -0,0 +1,182 @@
43951 +/*
43952 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
43953 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
43954 + * Licensed under the GPL v2
43955 + *
43956 + * Note: the choice of the license means that the compilation process is
43957 @@ -106153,30 +106546,16 @@ index 0000000..568b360
43958 + * BUGS:
43959 + * - none known
43960 + */
43961 -+#include "gcc-plugin.h"
43962 -+#include "config.h"
43963 -+#include "system.h"
43964 -+#include "coretypes.h"
43965 -+#include "tree.h"
43966 -+#include "tree-pass.h"
43967 -+#include "flags.h"
43968 -+#include "intl.h"
43969 -+#include "toplev.h"
43970 -+#include "plugin.h"
43971 -+//#include "expr.h" where are you...
43972 -+#include "diagnostic.h"
43973 -+#include "plugin-version.h"
43974 -+#include "tm.h"
43975 -+#include "function.h"
43976 -+#include "basic-block.h"
43977 -+#include "gimple.h"
43978 -+#include "rtl.h"
43979 -+#include "emit-rtl.h"
43980 +
43981 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
43982 ++#include "gcc-common.h"
43983 +
43984 +int plugin_is_GPL_compatible;
43985 +
43986 ++static struct plugin_info kallocstat_plugin_info = {
43987 ++ .version = "201401260140",
43988 ++ .help = NULL
43989 ++};
43990 ++
43991 +static const char * const kalloc_functions[] = {
43992 + "__kmalloc",
43993 + "kmalloc",
43994 @@ -106189,33 +106568,6 @@ index 0000000..568b360
43995 + "kzalloc_node",
43996 +};
43997 +
43998 -+static struct plugin_info kallocstat_plugin_info = {
43999 -+ .version = "201302112000",
44000 -+};
44001 -+
44002 -+static unsigned int execute_kallocstat(void);
44003 -+
44004 -+static struct gimple_opt_pass kallocstat_pass = {
44005 -+ .pass = {
44006 -+ .type = GIMPLE_PASS,
44007 -+ .name = "kallocstat",
44008 -+#if BUILDING_GCC_VERSION >= 4008
44009 -+ .optinfo_flags = OPTGROUP_NONE,
44010 -+#endif
44011 -+ .gate = NULL,
44012 -+ .execute = execute_kallocstat,
44013 -+ .sub = NULL,
44014 -+ .next = NULL,
44015 -+ .static_pass_number = 0,
44016 -+ .tv_id = TV_NONE,
44017 -+ .properties_required = 0,
44018 -+ .properties_provided = 0,
44019 -+ .properties_destroyed = 0,
44020 -+ .todo_flags_start = 0,
44021 -+ .todo_flags_finish = 0
44022 -+ }
44023 -+};
44024 -+
44025 +static bool is_kalloc(const char *fnname)
44026 +{
44027 + size_t i;
44028 @@ -106231,52 +106583,54 @@ index 0000000..568b360
44029 + basic_block bb;
44030 +
44031 + // 1. loop through BBs and GIMPLE statements
44032 -+ FOR_EACH_BB(bb) {
44033 ++ FOR_EACH_BB_FN(bb, cfun) {
44034 + gimple_stmt_iterator gsi;
44035 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
44036 + // gimple match:
44037 + tree fndecl, size;
44038 -+ gimple call_stmt;
44039 ++ gimple stmt;
44040 + const char *fnname;
44041 +
44042 + // is it a call
44043 -+ call_stmt = gsi_stmt(gsi);
44044 -+ if (!is_gimple_call(call_stmt))
44045 ++ stmt = gsi_stmt(gsi);
44046 ++ if (!is_gimple_call(stmt))
44047 + continue;
44048 -+ fndecl = gimple_call_fndecl(call_stmt);
44049 ++ fndecl = gimple_call_fndecl(stmt);
44050 + if (fndecl == NULL_TREE)
44051 + continue;
44052 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
44053 + continue;
44054 +
44055 + // is it a call to k*alloc
44056 -+ fnname = IDENTIFIER_POINTER(DECL_NAME(fndecl));
44057 ++ fnname = DECL_NAME_POINTER(fndecl);
44058 + if (!is_kalloc(fnname))
44059 + continue;
44060 +
44061 -+ // is the size arg the result of a simple const assignment
44062 -+ size = gimple_call_arg(call_stmt, 0);
44063 ++ // is the size arg const or the result of a simple const assignment
44064 ++ size = gimple_call_arg(stmt, 0);
44065 + while (true) {
44066 -+ gimple def_stmt;
44067 + expanded_location xloc;
44068 + size_t size_val;
44069 +
44070 ++ if (TREE_CONSTANT(size)) {
44071 ++ xloc = expand_location(gimple_location(stmt));
44072 ++ if (!xloc.file)
44073 ++ xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
44074 ++ size_val = TREE_INT_CST_LOW(size);
44075 ++ fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
44076 ++ break;
44077 ++ }
44078 ++
44079 + if (TREE_CODE(size) != SSA_NAME)
44080 + break;
44081 -+ def_stmt = SSA_NAME_DEF_STMT(size);
44082 -+ if (!def_stmt || !is_gimple_assign(def_stmt))
44083 ++ stmt = SSA_NAME_DEF_STMT(size);
44084 ++//debug_gimple_stmt(stmt);
44085 ++//debug_tree(size);
44086 ++ if (!stmt || !is_gimple_assign(stmt))
44087 + break;
44088 -+ if (gimple_num_ops(def_stmt) != 2)
44089 ++ if (gimple_num_ops(stmt) != 2)
44090 + break;
44091 -+ size = gimple_assign_rhs1(def_stmt);
44092 -+ if (!TREE_CONSTANT(size))
44093 -+ continue;
44094 -+ xloc = expand_location(gimple_location(def_stmt));
44095 -+ if (!xloc.file)
44096 -+ xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
44097 -+ size_val = TREE_INT_CST_LOW(size);
44098 -+ fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
44099 -+ break;
44100 ++ size = gimple_assign_rhs1(stmt);
44101 + }
44102 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
44103 +//debug_tree(gimple_call_fn(call_stmt));
44104 @@ -106287,15 +106641,66 @@ index 0000000..568b360
44105 + return 0;
44106 +}
44107 +
44108 ++#if BUILDING_GCC_VERSION >= 4009
44109 ++static const struct pass_data kallocstat_pass_data = {
44110 ++#else
44111 ++static struct gimple_opt_pass kallocstat_pass = {
44112 ++ .pass = {
44113 ++#endif
44114 ++ .type = GIMPLE_PASS,
44115 ++ .name = "kallocstat",
44116 ++#if BUILDING_GCC_VERSION >= 4008
44117 ++ .optinfo_flags = OPTGROUP_NONE,
44118 ++#endif
44119 ++#if BUILDING_GCC_VERSION >= 4009
44120 ++ .has_gate = false,
44121 ++ .has_execute = true,
44122 ++#else
44123 ++ .gate = NULL,
44124 ++ .execute = execute_kallocstat,
44125 ++ .sub = NULL,
44126 ++ .next = NULL,
44127 ++ .static_pass_number = 0,
44128 ++#endif
44129 ++ .tv_id = TV_NONE,
44130 ++ .properties_required = 0,
44131 ++ .properties_provided = 0,
44132 ++ .properties_destroyed = 0,
44133 ++ .todo_flags_start = 0,
44134 ++ .todo_flags_finish = 0
44135 ++#if BUILDING_GCC_VERSION < 4009
44136 ++ }
44137 ++#endif
44138 ++};
44139 ++
44140 ++#if BUILDING_GCC_VERSION >= 4009
44141 ++namespace {
44142 ++class kallocstat_pass : public gimple_opt_pass {
44143 ++public:
44144 ++ kallocstat_pass() : gimple_opt_pass(kallocstat_pass_data, g) {}
44145 ++ unsigned int execute() { return execute_kallocstat(); }
44146 ++};
44147 ++}
44148 ++#endif
44149 ++
44150 ++static struct opt_pass *make_kallocstat_pass(void)
44151 ++{
44152 ++#if BUILDING_GCC_VERSION >= 4009
44153 ++ return new kallocstat_pass();
44154 ++#else
44155 ++ return &kallocstat_pass.pass;
44156 ++#endif
44157 ++}
44158 ++
44159 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
44160 +{
44161 + const char * const plugin_name = plugin_info->base_name;
44162 -+ struct register_pass_info kallocstat_pass_info = {
44163 -+ .pass = &kallocstat_pass.pass,
44164 -+ .reference_pass_name = "ssa",
44165 -+ .ref_pass_instance_number = 1,
44166 -+ .pos_op = PASS_POS_INSERT_AFTER
44167 -+ };
44168 ++ struct register_pass_info kallocstat_pass_info;
44169 ++
44170 ++ kallocstat_pass_info.pass = make_kallocstat_pass();
44171 ++ kallocstat_pass_info.reference_pass_name = "ssa";
44172 ++ kallocstat_pass_info.ref_pass_instance_number = 1;
44173 ++ kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
44174 +
44175 + if (!plugin_default_version_check(version, &gcc_version)) {
44176 + error(G_("incompatible gcc/plugin versions"));
44177 @@ -106309,12 +106714,12 @@ index 0000000..568b360
44178 +}
44179 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
44180 new file mode 100644
44181 -index 0000000..a25306b
44182 +index 0000000..dd73713
44183 --- /dev/null
44184 +++ b/tools/gcc/kernexec_plugin.c
44185 -@@ -0,0 +1,474 @@
44186 +@@ -0,0 +1,519 @@
44187 +/*
44188 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
44189 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
44190 + * Licensed under the GPL v2
44191 + *
44192 + * Note: the choice of the license means that the compilation process is
44193 @@ -106329,134 +106734,19 @@ index 0000000..a25306b
44194 + * BUGS:
44195 + * - none known
44196 + */
44197 -+#include "gcc-plugin.h"
44198 -+#include "config.h"
44199 -+#include "system.h"
44200 -+#include "coretypes.h"
44201 -+#include "tree.h"
44202 -+#include "tree-pass.h"
44203 -+#include "flags.h"
44204 -+#include "intl.h"
44205 -+#include "toplev.h"
44206 -+#include "plugin.h"
44207 -+//#include "expr.h" where are you...
44208 -+#include "diagnostic.h"
44209 -+#include "plugin-version.h"
44210 -+#include "tm.h"
44211 -+#include "function.h"
44212 -+#include "basic-block.h"
44213 -+#include "gimple.h"
44214 -+#include "rtl.h"
44215 -+#include "emit-rtl.h"
44216 -+#include "tree-flow.h"
44217 +
44218 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
44219 -+extern rtx emit_move_insn(rtx x, rtx y);
44220 -+
44221 -+#if BUILDING_GCC_VERSION <= 4006
44222 -+#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
44223 -+#endif
44224 -+
44225 -+#if BUILDING_GCC_VERSION >= 4008
44226 -+#define TODO_dump_func 0
44227 -+#endif
44228 ++#include "gcc-common.h"
44229 +
44230 +int plugin_is_GPL_compatible;
44231 +
44232 +static struct plugin_info kernexec_plugin_info = {
44233 -+ .version = "201308230150",
44234 ++ .version = "201401260140",
44235 + .help = "method=[bts|or]\tinstrumentation method\n"
44236 +};
44237 +
44238 -+static unsigned int execute_kernexec_reload(void);
44239 -+static unsigned int execute_kernexec_fptr(void);
44240 -+static unsigned int execute_kernexec_retaddr(void);
44241 -+static bool kernexec_cmodel_check(void);
44242 -+
44243 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
44244 +static void (*kernexec_instrument_retaddr)(rtx);
44245 +
44246 -+static struct gimple_opt_pass kernexec_reload_pass = {
44247 -+ .pass = {
44248 -+ .type = GIMPLE_PASS,
44249 -+ .name = "kernexec_reload",
44250 -+#if BUILDING_GCC_VERSION >= 4008
44251 -+ .optinfo_flags = OPTGROUP_NONE,
44252 -+#endif
44253 -+ .gate = kernexec_cmodel_check,
44254 -+ .execute = execute_kernexec_reload,
44255 -+ .sub = NULL,
44256 -+ .next = NULL,
44257 -+ .static_pass_number = 0,
44258 -+ .tv_id = TV_NONE,
44259 -+ .properties_required = 0,
44260 -+ .properties_provided = 0,
44261 -+ .properties_destroyed = 0,
44262 -+ .todo_flags_start = 0,
44263 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
44264 -+ }
44265 -+};
44266 -+
44267 -+static struct gimple_opt_pass kernexec_fptr_pass = {
44268 -+ .pass = {
44269 -+ .type = GIMPLE_PASS,
44270 -+ .name = "kernexec_fptr",
44271 -+#if BUILDING_GCC_VERSION >= 4008
44272 -+ .optinfo_flags = OPTGROUP_NONE,
44273 -+#endif
44274 -+ .gate = kernexec_cmodel_check,
44275 -+ .execute = execute_kernexec_fptr,
44276 -+ .sub = NULL,
44277 -+ .next = NULL,
44278 -+ .static_pass_number = 0,
44279 -+ .tv_id = TV_NONE,
44280 -+ .properties_required = 0,
44281 -+ .properties_provided = 0,
44282 -+ .properties_destroyed = 0,
44283 -+ .todo_flags_start = 0,
44284 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
44285 -+ }
44286 -+};
44287 -+
44288 -+static struct rtl_opt_pass kernexec_retaddr_pass = {
44289 -+ .pass = {
44290 -+ .type = RTL_PASS,
44291 -+ .name = "kernexec_retaddr",
44292 -+#if BUILDING_GCC_VERSION >= 4008
44293 -+ .optinfo_flags = OPTGROUP_NONE,
44294 -+#endif
44295 -+ .gate = kernexec_cmodel_check,
44296 -+ .execute = execute_kernexec_retaddr,
44297 -+ .sub = NULL,
44298 -+ .next = NULL,
44299 -+ .static_pass_number = 0,
44300 -+ .tv_id = TV_NONE,
44301 -+ .properties_required = 0,
44302 -+ .properties_provided = 0,
44303 -+ .properties_destroyed = 0,
44304 -+ .todo_flags_start = 0,
44305 -+ .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
44306 -+ }
44307 -+};
44308 -+
44309 -+static bool kernexec_cmodel_check(void)
44310 -+{
44311 -+ tree section;
44312 -+
44313 -+ if (ix86_cmodel != CM_KERNEL)
44314 -+ return false;
44315 -+
44316 -+ section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
44317 -+ if (!section || !TREE_VALUE(section))
44318 -+ return true;
44319 -+
44320 -+ section = TREE_VALUE(TREE_VALUE(section));
44321 -+ if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
44322 -+ return true;
44323 -+
44324 -+ return false;
44325 -+}
44326 -+
44327 +/*
44328 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
44329 + */
44330 @@ -106479,7 +106769,7 @@ index 0000000..a25306b
44331 + basic_block bb;
44332 +
44333 + // 1. loop through BBs and GIMPLE statements
44334 -+ FOR_EACH_BB(bb) {
44335 ++ FOR_EACH_BB_FN(bb, cfun) {
44336 + gimple_stmt_iterator gsi;
44337 +
44338 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
44339 @@ -106522,9 +106812,7 @@ index 0000000..a25306b
44340 +
44341 + // create temporary unsigned long variable used for bitops and cast fptr to it
44342 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
44343 -+#if BUILDING_GCC_VERSION <= 4007
44344 + add_referenced_var(intptr);
44345 -+#endif
44346 + intptr = make_ssa_name(intptr, NULL);
44347 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
44348 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
44349 @@ -106543,9 +106831,7 @@ index 0000000..a25306b
44350 +
44351 + // cast temporary unsigned long back to a temporary fptr variable
44352 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
44353 -+#if BUILDING_GCC_VERSION <= 4007
44354 + add_referenced_var(new_fptr);
44355 -+#endif
44356 + new_fptr = make_ssa_name(new_fptr, NULL);
44357 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
44358 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
44359 @@ -106574,9 +106860,7 @@ index 0000000..a25306b
44360 +
44361 + // create temporary fptr variable
44362 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
44363 -+#if BUILDING_GCC_VERSION <= 4007
44364 + add_referenced_var(new_fptr);
44365 -+#endif
44366 + new_fptr = make_ssa_name(new_fptr, NULL);
44367 +
44368 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
44369 @@ -106610,7 +106894,7 @@ index 0000000..a25306b
44370 + basic_block bb;
44371 +
44372 + // 1. loop through BBs and GIMPLE statements
44373 -+ FOR_EACH_BB(bb) {
44374 ++ FOR_EACH_BB_FN(bb, cfun) {
44375 + gimple_stmt_iterator gsi;
44376 +
44377 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
44378 @@ -106723,30 +107007,196 @@ index 0000000..a25306b
44379 + return 0;
44380 +}
44381 +
44382 ++static bool kernexec_cmodel_check(void)
44383 ++{
44384 ++ tree section;
44385 ++
44386 ++ if (ix86_cmodel != CM_KERNEL)
44387 ++ return false;
44388 ++
44389 ++ section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
44390 ++ if (!section || !TREE_VALUE(section))
44391 ++ return true;
44392 ++
44393 ++ section = TREE_VALUE(TREE_VALUE(section));
44394 ++ if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
44395 ++ return true;
44396 ++
44397 ++ return false;
44398 ++}
44399 ++
44400 ++#if BUILDING_GCC_VERSION >= 4009
44401 ++static const struct pass_data kernexec_reload_pass_data = {
44402 ++#else
44403 ++static struct gimple_opt_pass kernexec_reload_pass = {
44404 ++ .pass = {
44405 ++#endif
44406 ++ .type = GIMPLE_PASS,
44407 ++ .name = "kernexec_reload",
44408 ++#if BUILDING_GCC_VERSION >= 4008
44409 ++ .optinfo_flags = OPTGROUP_NONE,
44410 ++#endif
44411 ++#if BUILDING_GCC_VERSION >= 4009
44412 ++ .has_gate = true,
44413 ++ .has_execute = true,
44414 ++#else
44415 ++ .gate = kernexec_cmodel_check,
44416 ++ .execute = execute_kernexec_reload,
44417 ++ .sub = NULL,
44418 ++ .next = NULL,
44419 ++ .static_pass_number = 0,
44420 ++#endif
44421 ++ .tv_id = TV_NONE,
44422 ++ .properties_required = 0,
44423 ++ .properties_provided = 0,
44424 ++ .properties_destroyed = 0,
44425 ++ .todo_flags_start = 0,
44426 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
44427 ++#if BUILDING_GCC_VERSION < 4009
44428 ++ }
44429 ++#endif
44430 ++};
44431 ++
44432 ++#if BUILDING_GCC_VERSION >= 4009
44433 ++static const struct pass_data kernexec_fptr_pass_data = {
44434 ++#else
44435 ++static struct gimple_opt_pass kernexec_fptr_pass = {
44436 ++ .pass = {
44437 ++#endif
44438 ++ .type = GIMPLE_PASS,
44439 ++ .name = "kernexec_fptr",
44440 ++#if BUILDING_GCC_VERSION >= 4008
44441 ++ .optinfo_flags = OPTGROUP_NONE,
44442 ++#endif
44443 ++#if BUILDING_GCC_VERSION >= 4009
44444 ++ .has_gate = true,
44445 ++ .has_execute = true,
44446 ++#else
44447 ++ .gate = kernexec_cmodel_check,
44448 ++ .execute = execute_kernexec_fptr,
44449 ++ .sub = NULL,
44450 ++ .next = NULL,
44451 ++ .static_pass_number = 0,
44452 ++#endif
44453 ++ .tv_id = TV_NONE,
44454 ++ .properties_required = 0,
44455 ++ .properties_provided = 0,
44456 ++ .properties_destroyed = 0,
44457 ++ .todo_flags_start = 0,
44458 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
44459 ++#if BUILDING_GCC_VERSION < 4009
44460 ++ }
44461 ++#endif
44462 ++};
44463 ++
44464 ++#if BUILDING_GCC_VERSION >= 4009
44465 ++static const struct pass_data kernexec_retaddr_pass_data = {
44466 ++#else
44467 ++static struct rtl_opt_pass kernexec_retaddr_pass = {
44468 ++ .pass = {
44469 ++#endif
44470 ++ .type = RTL_PASS,
44471 ++ .name = "kernexec_retaddr",
44472 ++#if BUILDING_GCC_VERSION >= 4008
44473 ++ .optinfo_flags = OPTGROUP_NONE,
44474 ++#endif
44475 ++#if BUILDING_GCC_VERSION >= 4009
44476 ++ .has_gate = true,
44477 ++ .has_execute = true,
44478 ++#else
44479 ++ .gate = kernexec_cmodel_check,
44480 ++ .execute = execute_kernexec_retaddr,
44481 ++ .sub = NULL,
44482 ++ .next = NULL,
44483 ++ .static_pass_number = 0,
44484 ++#endif
44485 ++ .tv_id = TV_NONE,
44486 ++ .properties_required = 0,
44487 ++ .properties_provided = 0,
44488 ++ .properties_destroyed = 0,
44489 ++ .todo_flags_start = 0,
44490 ++ .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
44491 ++#if BUILDING_GCC_VERSION < 4009
44492 ++ }
44493 ++#endif
44494 ++};
44495 ++
44496 ++#if BUILDING_GCC_VERSION >= 4009
44497 ++namespace {
44498 ++class kernexec_reload_pass : public gimple_opt_pass {
44499 ++public:
44500 ++ kernexec_reload_pass() : gimple_opt_pass(kernexec_reload_pass_data, g) {}
44501 ++ bool gate() { return kernexec_cmodel_check(); }
44502 ++ unsigned int execute() { return execute_kernexec_reload(); }
44503 ++};
44504 ++
44505 ++class kernexec_fptr_pass : public gimple_opt_pass {
44506 ++public:
44507 ++ kernexec_fptr_pass() : gimple_opt_pass(kernexec_fptr_pass_data, g) {}
44508 ++ bool gate() { return kernexec_cmodel_check(); }
44509 ++ unsigned int execute() { return execute_kernexec_fptr(); }
44510 ++};
44511 ++
44512 ++class kernexec_retaddr_pass : public rtl_opt_pass {
44513 ++public:
44514 ++ kernexec_retaddr_pass() : rtl_opt_pass(kernexec_retaddr_pass_data, g) {}
44515 ++ bool gate() { return kernexec_cmodel_check(); }
44516 ++ unsigned int execute() { return execute_kernexec_retaddr(); }
44517 ++};
44518 ++}
44519 ++#endif
44520 ++
44521 ++static struct opt_pass *make_kernexec_reload_pass(void)
44522 ++{
44523 ++#if BUILDING_GCC_VERSION >= 4009
44524 ++ return new kernexec_reload_pass();
44525 ++#else
44526 ++ return &kernexec_reload_pass.pass;
44527 ++#endif
44528 ++}
44529 ++
44530 ++static struct opt_pass *make_kernexec_fptr_pass(void)
44531 ++{
44532 ++#if BUILDING_GCC_VERSION >= 4009
44533 ++ return new kernexec_fptr_pass();
44534 ++#else
44535 ++ return &kernexec_fptr_pass.pass;
44536 ++#endif
44537 ++}
44538 ++
44539 ++static struct opt_pass *make_kernexec_retaddr_pass(void)
44540 ++{
44541 ++#if BUILDING_GCC_VERSION >= 4009
44542 ++ return new kernexec_retaddr_pass();
44543 ++#else
44544 ++ return &kernexec_retaddr_pass.pass;
44545 ++#endif
44546 ++}
44547 ++
44548 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
44549 +{
44550 + const char * const plugin_name = plugin_info->base_name;
44551 + const int argc = plugin_info->argc;
44552 + const struct plugin_argument * const argv = plugin_info->argv;
44553 + int i;
44554 -+ struct register_pass_info kernexec_reload_pass_info = {
44555 -+ .pass = &kernexec_reload_pass.pass,
44556 -+ .reference_pass_name = "ssa",
44557 -+ .ref_pass_instance_number = 1,
44558 -+ .pos_op = PASS_POS_INSERT_AFTER
44559 -+ };
44560 -+ struct register_pass_info kernexec_fptr_pass_info = {
44561 -+ .pass = &kernexec_fptr_pass.pass,
44562 -+ .reference_pass_name = "ssa",
44563 -+ .ref_pass_instance_number = 1,
44564 -+ .pos_op = PASS_POS_INSERT_AFTER
44565 -+ };
44566 -+ struct register_pass_info kernexec_retaddr_pass_info = {
44567 -+ .pass = &kernexec_retaddr_pass.pass,
44568 -+ .reference_pass_name = "pro_and_epilogue",
44569 -+ .ref_pass_instance_number = 1,
44570 -+ .pos_op = PASS_POS_INSERT_AFTER
44571 -+ };
44572 ++ struct register_pass_info kernexec_reload_pass_info;
44573 ++ struct register_pass_info kernexec_fptr_pass_info;
44574 ++ struct register_pass_info kernexec_retaddr_pass_info;
44575 ++
44576 ++ kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
44577 ++ kernexec_reload_pass_info.reference_pass_name = "ssa";
44578 ++ kernexec_reload_pass_info.ref_pass_instance_number = 1;
44579 ++ kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
44580 ++
44581 ++ kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
44582 ++ kernexec_fptr_pass_info.reference_pass_name = "ssa";
44583 ++ kernexec_fptr_pass_info.ref_pass_instance_number = 1;
44584 ++ kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
44585 ++
44586 ++ kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
44587 ++ kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
44588 ++ kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
44589 ++ kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
44590 +
44591 + if (!plugin_default_version_check(version, &gcc_version)) {
44592 + error(G_("incompatible gcc/plugin versions"));
44593 @@ -106789,12 +107239,12 @@ index 0000000..a25306b
44594 +}
44595 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
44596 new file mode 100644
44597 -index 0000000..679b9ef
44598 +index 0000000..f04b680
44599 --- /dev/null
44600 +++ b/tools/gcc/latent_entropy_plugin.c
44601 -@@ -0,0 +1,335 @@
44602 +@@ -0,0 +1,325 @@
44603 +/*
44604 -+ * Copyright 2012-2013 by the PaX Team <pageexec@××××××××.hu>
44605 ++ * Copyright 2012-2014 by the PaX Team <pageexec@××××××××.hu>
44606 + * Licensed under the GPL v2
44607 + *
44608 + * Note: the choice of the license means that the compilation process is
44609 @@ -106813,65 +107263,18 @@ index 0000000..679b9ef
44610 + * BUGS:
44611 + * - LTO needs -flto-partition=none for now
44612 + */
44613 -+#include "gcc-plugin.h"
44614 -+#include "config.h"
44615 -+#include "system.h"
44616 -+#include "coretypes.h"
44617 -+#include "tree.h"
44618 -+#include "tree-pass.h"
44619 -+#include "flags.h"
44620 -+#include "intl.h"
44621 -+#include "toplev.h"
44622 -+#include "plugin.h"
44623 -+//#include "expr.h" where are you...
44624 -+#include "diagnostic.h"
44625 -+#include "plugin-version.h"
44626 -+#include "tm.h"
44627 -+#include "function.h"
44628 -+#include "basic-block.h"
44629 -+#include "gimple.h"
44630 -+#include "rtl.h"
44631 -+#include "emit-rtl.h"
44632 -+#include "tree-flow.h"
44633 -+#include "langhooks.h"
44634 +
44635 -+#if BUILDING_GCC_VERSION >= 4008
44636 -+#define TODO_dump_func 0
44637 -+#endif
44638 ++#include "gcc-common.h"
44639 +
44640 +int plugin_is_GPL_compatible;
44641 +
44642 +static tree latent_entropy_decl;
44643 +
44644 +static struct plugin_info latent_entropy_plugin_info = {
44645 -+ .version = "201308230230",
44646 ++ .version = "201401260140",
44647 + .help = NULL
44648 +};
44649 +
44650 -+static unsigned int execute_latent_entropy(void);
44651 -+static bool gate_latent_entropy(void);
44652 -+
44653 -+static struct gimple_opt_pass latent_entropy_pass = {
44654 -+ .pass = {
44655 -+ .type = GIMPLE_PASS,
44656 -+ .name = "latent_entropy",
44657 -+#if BUILDING_GCC_VERSION >= 4008
44658 -+ .optinfo_flags = OPTGROUP_NONE,
44659 -+#endif
44660 -+ .gate = gate_latent_entropy,
44661 -+ .execute = execute_latent_entropy,
44662 -+ .sub = NULL,
44663 -+ .next = NULL,
44664 -+ .static_pass_number = 0,
44665 -+ .tv_id = TV_NONE,
44666 -+ .properties_required = PROP_gimple_leh | PROP_cfg,
44667 -+ .properties_provided = 0,
44668 -+ .properties_destroyed = 0,
44669 -+ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
44670 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
44671 -+ }
44672 -+};
44673 -+
44674 +static unsigned HOST_WIDE_INT seed;
44675 +static unsigned HOST_WIDE_INT get_random_const(void)
44676 +{
44677 @@ -106982,17 +107385,13 @@ index 0000000..679b9ef
44678 +
44679 + // 1. create temporary copy of latent_entropy
44680 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
44681 -+#if BUILDING_GCC_VERSION <= 4007
44682 + add_referenced_var(temp);
44683 -+#endif
44684 +
44685 + // 2. read...
44686 + temp = make_ssa_name(temp, NULL);
44687 + assign = gimple_build_assign(temp, latent_entropy_decl);
44688 + SSA_NAME_DEF_STMT(temp) = assign;
44689 -+#if BUILDING_GCC_VERSION <= 4007
44690 + add_referenced_var(latent_entropy_decl);
44691 -+#endif
44692 + gsi = gsi_after_labels(bb);
44693 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
44694 + update_stmt(assign);
44695 @@ -107021,13 +107420,9 @@ index 0000000..679b9ef
44696 + if (!latent_entropy_decl) {
44697 + struct varpool_node *node;
44698 +
44699 -+#if BUILDING_GCC_VERSION <= 4007
44700 -+ for (node = varpool_nodes; node; node = node->next) {
44701 -+ tree var = node->decl;
44702 -+#else
44703 + FOR_EACH_VARIABLE(node) {
44704 -+ tree var = node->symbol.decl;
44705 -+#endif
44706 ++ tree var = NODE_DECL(node);
44707 ++
44708 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
44709 + continue;
44710 + latent_entropy_decl = var;
44711 @@ -107044,15 +107439,13 @@ index 0000000..679b9ef
44712 +
44713 + // 1. create local entropy variable
44714 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
44715 -+#if BUILDING_GCC_VERSION <= 4007
44716 + add_referenced_var(local_entropy);
44717 + mark_sym_for_renaming(local_entropy);
44718 -+#endif
44719 +
44720 + // 2. initialize local entropy variable
44721 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
44722 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
44723 + if (dom_info_available_p(CDI_DOMINATORS))
44724 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
44725 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
44726 + gsi = gsi_start_bb(bb);
44727 +
44728 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
44729 @@ -107063,15 +107456,15 @@ index 0000000..679b9ef
44730 + bb = bb->next_bb;
44731 +
44732 + // 3. instrument each BB with an operation on the local entropy variable
44733 -+ while (bb != EXIT_BLOCK_PTR) {
44734 ++ while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
44735 + perturb_local_entropy(bb, local_entropy);
44736 +//debug_bb(bb);
44737 + bb = bb->next_bb;
44738 + };
44739 +
44740 + // 4. mix local entropy into the global entropy variable
44741 -+ perturb_latent_entropy(EXIT_BLOCK_PTR->prev_bb, local_entropy);
44742 -+//debug_bb(EXIT_BLOCK_PTR->prev_bb);
44743 ++ perturb_latent_entropy(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb, local_entropy);
44744 ++//debug_bb(EXIT_BLOCK_PTR_FOR_FN(cfun)->prev_bb);
44745 + return 0;
44746 +}
44747 +
44748 @@ -107079,12 +107472,7 @@ index 0000000..679b9ef
44749 +{
44750 + tree latent_entropy_type;
44751 +
44752 -+#if BUILDING_GCC_VERSION >= 4007
44753 + seed = get_random_seed(false);
44754 -+#else
44755 -+ sscanf(get_random_seed(false), "%" HOST_WIDE_INT_PRINT "x", &seed);
44756 -+ seed *= seed;
44757 -+#endif
44758 +
44759 + if (in_lto_p)
44760 + return;
44761 @@ -107106,15 +107494,67 @@ index 0000000..679b9ef
44762 +// varpool_mark_needed_node(latent_entropy_decl);
44763 +}
44764 +
44765 ++#if BUILDING_GCC_VERSION >= 4009
44766 ++static const struct pass_data latent_entropy_pass_data = {
44767 ++#else
44768 ++static struct gimple_opt_pass latent_entropy_pass = {
44769 ++ .pass = {
44770 ++#endif
44771 ++ .type = GIMPLE_PASS,
44772 ++ .name = "latent_entropy",
44773 ++#if BUILDING_GCC_VERSION >= 4008
44774 ++ .optinfo_flags = OPTGROUP_NONE,
44775 ++#endif
44776 ++#if BUILDING_GCC_VERSION >= 4009
44777 ++ .has_gate = true,
44778 ++ .has_execute = true,
44779 ++#else
44780 ++ .gate = gate_latent_entropy,
44781 ++ .execute = execute_latent_entropy,
44782 ++ .sub = NULL,
44783 ++ .next = NULL,
44784 ++ .static_pass_number = 0,
44785 ++#endif
44786 ++ .tv_id = TV_NONE,
44787 ++ .properties_required = PROP_gimple_leh | PROP_cfg,
44788 ++ .properties_provided = 0,
44789 ++ .properties_destroyed = 0,
44790 ++ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
44791 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
44792 ++#if BUILDING_GCC_VERSION < 4009
44793 ++ }
44794 ++#endif
44795 ++};
44796 ++
44797 ++#if BUILDING_GCC_VERSION >= 4009
44798 ++namespace {
44799 ++class latent_entropy_pass : public gimple_opt_pass {
44800 ++public:
44801 ++ latent_entropy_pass() : gimple_opt_pass(latent_entropy_pass_data, g) {}
44802 ++ bool gate() { return gate_latent_entropy(); }
44803 ++ unsigned int execute() { return execute_latent_entropy(); }
44804 ++};
44805 ++}
44806 ++#endif
44807 ++
44808 ++static struct opt_pass *make_latent_entropy_pass(void)
44809 ++{
44810 ++#if BUILDING_GCC_VERSION >= 4009
44811 ++ return new latent_entropy_pass();
44812 ++#else
44813 ++ return &latent_entropy_pass.pass;
44814 ++#endif
44815 ++}
44816 ++
44817 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
44818 +{
44819 + const char * const plugin_name = plugin_info->base_name;
44820 -+ struct register_pass_info latent_entropy_pass_info = {
44821 -+ .pass = &latent_entropy_pass.pass,
44822 -+ .reference_pass_name = "optimized",
44823 -+ .ref_pass_instance_number = 1,
44824 -+ .pos_op = PASS_POS_INSERT_BEFORE
44825 -+ };
44826 ++ struct register_pass_info latent_entropy_pass_info;
44827 ++
44828 ++ latent_entropy_pass_info.pass = make_latent_entropy_pass();
44829 ++ latent_entropy_pass_info.reference_pass_name = "optimized";
44830 ++ latent_entropy_pass_info.ref_pass_instance_number = 1;
44831 ++ latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
44832 +
44833 + if (!plugin_default_version_check(version, &gcc_version)) {
44834 + error(G_("incompatible gcc/plugin versions"));
44835 @@ -113137,12 +113577,12 @@ index 0000000..7b67f2b
44836 +selnl_msglen_65499 selnl_msglen 0 65499 NULL
44837 diff --git a/tools/gcc/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin.c
44838 new file mode 100644
44839 -index 0000000..50f8464
44840 +index 0000000..94aa56d
44841 --- /dev/null
44842 +++ b/tools/gcc/size_overflow_plugin.c
44843 -@@ -0,0 +1,4072 @@
44844 +@@ -0,0 +1,4040 @@
44845 +/*
44846 -+ * Copyright 2011, 2012, 2013, 2014 by Emese Revfy <re.emese@×××××.com>
44847 ++ * Copyright 2011-2014 by Emese Revfy <re.emese@×××××.com>
44848 + * Licensed under the GPL v2, or (at your option) v3
44849 + *
44850 + * Homepage:
44851 @@ -113160,32 +113600,15 @@ index 0000000..50f8464
44852 + * $ gcc -fplugin=size_overflow_plugin.so test.c -O2
44853 + */
44854 +
44855 -+#include "gcc-plugin.h"
44856 -+#include "config.h"
44857 -+#include "system.h"
44858 -+#include "coretypes.h"
44859 -+#include "tree.h"
44860 -+#include "tree-pass.h"
44861 -+#include "intl.h"
44862 -+#include "plugin-version.h"
44863 -+#include "tm.h"
44864 -+#include "toplev.h"
44865 -+#include "function.h"
44866 -+#include "tree-flow.h"
44867 -+#include "plugin.h"
44868 -+#include "gimple.h"
44869 -+#include "diagnostic.h"
44870 -+#include "cfgloop.h"
44871 ++#include "gcc-common.h"
44872 +
44873 -+#if BUILDING_GCC_VERSION >= 4008
44874 -+#define TODO_dump_func 0
44875 -+#define TODO_dump_cgraph 0
44876 -+#endif
44877 ++int plugin_is_GPL_compatible;
44878 ++
44879 ++static struct plugin_info size_overflow_plugin_info = {
44880 ++ .version = "20140128",
44881 ++ .help = "no-size-overflow\tturn off size overflow checking\n",
44882 ++};
44883 +
44884 -+#define __unused __attribute__((__unused__))
44885 -+#define ASM_NAME(node) IDENTIFIER_POINTER(DECL_ASSEMBLER_NAME(node))
44886 -+#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node))
44887 -+#define NAME_LEN(node) IDENTIFIER_LENGTH(DECL_NAME(node))
44888 +#define BEFORE_STMT true
44889 +#define AFTER_STMT false
44890 +#define CREATE_NEW_VAR NULL_TREE
44891 @@ -113205,10 +113628,6 @@ index 0000000..50f8464
44892 +#define YES_ASM_STR "# size_overflow MARK_YES "
44893 +#define OK_ASM_STR "# size_overflow "
44894 +
44895 -+#if BUILDING_GCC_VERSION == 4005
44896 -+#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
44897 -+#endif
44898 -+
44899 +struct size_overflow_hash {
44900 + const struct size_overflow_hash * const next;
44901 + const char * const name;
44902 @@ -113227,7 +113646,7 @@ index 0000000..50f8464
44903 + struct visited *next;
44904 + const_tree fndecl;
44905 + unsigned int num;
44906 -+ const_gimple first_stmt;
44907 ++ const_tree rhs;
44908 +};
44909 +
44910 +struct next_cgraph_node {
44911 @@ -113253,9 +113672,6 @@ index 0000000..50f8464
44912 + gimple intentional_mark_from_gimple;
44913 +};
44914 +
44915 -+int plugin_is_GPL_compatible;
44916 -+void debug_gimple_stmt(gimple gs);
44917 -+
44918 +static tree report_size_overflow_decl;
44919 +static const_tree const_char_ptr_type_node;
44920 +
44921 @@ -113269,11 +113685,6 @@ index 0000000..50f8464
44922 +static tree get_size_overflow_type(gimple stmt, const_tree node);
44923 +static tree dup_assign(struct pointer_set_t *visited, gimple oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
44924 +
44925 -+static struct plugin_info size_overflow_plugin_info = {
44926 -+ .version = "20140111beta",
44927 -+ .help = "no-size-overflow\tturn off size overflow checking\n",
44928 -+};
44929 -+
44930 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
44931 +{
44932 + unsigned int arg_count;
44933 @@ -113478,7 +113889,7 @@ index 0000000..50f8464
44934 +struct function_hash {
44935 + size_t tree_codes_len;
44936 + unsigned char tree_codes[CODES_LIMIT];
44937 -+ tree fndecl;
44938 ++ const_tree fndecl;
44939 + unsigned int hash;
44940 +};
44941 +
44942 @@ -113570,7 +113981,7 @@ index 0000000..50f8464
44943 + set_node_codes(TREE_VALUE(arg), fn_hash_data);
44944 +}
44945 +
44946 -+static const struct size_overflow_hash *get_function_hash(tree fndecl)
44947 ++static const struct size_overflow_hash *get_function_hash(const_tree fndecl)
44948 +{
44949 + const struct size_overflow_hash *entry;
44950 + struct function_hash fn_hash_data;
44951 @@ -113586,7 +113997,7 @@ index 0000000..50f8464
44952 + set_function_codes(&fn_hash_data);
44953 + gcc_assert(fn_hash_data.tree_codes_len != 0);
44954 +
44955 -+ func_name = ASM_NAME(fn_hash_data.fndecl);
44956 ++ func_name = DECL_NAME_POINTER(fn_hash_data.fndecl);
44957 + set_hash(func_name, &fn_hash_data);
44958 +
44959 + entry = size_overflow_hash[fn_hash_data.hash];
44960 @@ -113599,7 +114010,7 @@ index 0000000..50f8464
44961 + return NULL;
44962 +}
44963 +
44964 -+static void print_missing_msg(tree func, unsigned int argnum)
44965 ++static void print_missing_msg(const_tree func, unsigned int argnum)
44966 +{
44967 + location_t loc;
44968 + const char *curfunc;
44969 @@ -113609,7 +114020,7 @@ index 0000000..50f8464
44970 + fn_hash_data.tree_codes_len = 0;
44971 +
44972 + loc = DECL_SOURCE_LOCATION(fn_hash_data.fndecl);
44973 -+ curfunc = ASM_NAME(fn_hash_data.fndecl);
44974 ++ curfunc = DECL_NAME_POINTER(fn_hash_data.fndecl);
44975 +
44976 + set_function_codes(&fn_hash_data);
44977 + set_hash(curfunc, &fn_hash_data);
44978 @@ -113626,7 +114037,7 @@ index 0000000..50f8464
44979 + arg = SSA_NAME_VAR(arg);
44980 +
44981 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
44982 -+ if (!operand_equal_p(arg, var, 0) && strcmp(NAME(var), NAME(arg)))
44983 ++ if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
44984 + continue;
44985 + if (!skip_types(var))
44986 + return argnum;
44987 @@ -113639,9 +114050,7 @@ index 0000000..50f8464
44988 +{
44989 + tree new_var = create_tmp_var(type, "cicus");
44990 +
44991 -+#if BUILDING_GCC_VERSION <= 4007
44992 + add_referenced_var(new_var);
44993 -+#endif
44994 + return new_var;
44995 +}
44996 +
44997 @@ -113860,7 +114269,7 @@ index 0000000..50f8464
44998 +
44999 + if (rhs2 != NULL_TREE)
45000 + gimple_assign_set_rhs2(stmt, rhs2);
45001 -+#if BUILDING_GCC_VERSION >= 4007
45002 ++#if BUILDING_GCC_VERSION >= 4006
45003 + if (rhs3 != NULL_TREE)
45004 + gimple_assign_set_rhs3(stmt, rhs3);
45005 +#endif
45006 @@ -113883,9 +114292,9 @@ index 0000000..50f8464
45007 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
45008 +
45009 + if (bb->index == 0) {
45010 -+ first_bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
45011 ++ first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
45012 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
45013 -+ set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR);
45014 ++ set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
45015 + bb = first_bb;
45016 + }
45017 +
45018 @@ -113999,9 +114408,9 @@ index 0000000..50f8464
45019 +}
45020 +
45021 +#if BUILDING_GCC_VERSION <= 4007
45022 -+static tree create_new_phi_node(VEC(tree, gc) *args, tree ssa_name_var, gimple oldstmt)
45023 ++static tree create_new_phi_node(VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
45024 +#else
45025 -+static tree create_new_phi_node(vec<tree, va_gc> *args, tree ssa_name_var, gimple oldstmt)
45026 ++static tree create_new_phi_node(vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gimple oldstmt)
45027 +#endif
45028 +{
45029 + gimple new_phi;
45030 @@ -114010,7 +114419,7 @@ index 0000000..50f8464
45031 + location_t loc = gimple_location(oldstmt);
45032 +
45033 +#if BUILDING_GCC_VERSION <= 4007
45034 -+ gcc_assert(!VEC_empty(tree, args));
45035 ++ gcc_assert(!VEC_empty(tree, *args));
45036 +#else
45037 + gcc_assert(!args->is_empty());
45038 +#endif
45039 @@ -114019,21 +114428,17 @@ index 0000000..50f8464
45040 + result = gimple_phi_result(new_phi);
45041 + ssa_name_var = SSA_NAME_VAR(result);
45042 +
45043 -+
45044 -+#if BUILDING_GCC_VERSION == 4005
45045 -+ for (i = 0; i < VEC_length(tree, args); i++) {
45046 -+ arg = VEC_index(tree, args, i);
45047 -+#elif BUILDING_GCC_VERSION <= 4007
45048 -+ FOR_EACH_VEC_ELT(tree, args, i, arg) {
45049 ++#if BUILDING_GCC_VERSION <= 4007
45050 ++ FOR_EACH_VEC_ELT(tree, *args, i, arg) {
45051 +#else
45052 -+ FOR_EACH_VEC_ELT(*args, i, arg) {
45053 ++ FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
45054 +#endif
45055 + arg = create_new_phi_arg(ssa_name_var, arg, oldstmt, i);
45056 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
45057 + }
45058 +
45059 +#if BUILDING_GCC_VERSION <= 4007
45060 -+ VEC_free(tree, gc, args);
45061 ++ VEC_free(tree, heap, *args);
45062 +#else
45063 + vec_free(args);
45064 +#endif
45065 @@ -114045,19 +114450,14 @@ index 0000000..50f8464
45066 +{
45067 + tree ssa_name_var = NULL_TREE;
45068 +#if BUILDING_GCC_VERSION <= 4007
45069 -+ VEC(tree, gc) *args;
45070 ++ VEC(tree, heap) *args = NULL;
45071 +#else
45072 -+ vec<tree, va_gc> *args;
45073 ++ vec<tree, va_heap, vl_embed> *args = NULL;
45074 +#endif
45075 + gimple oldstmt = get_def_stmt(orig_result);
45076 + unsigned int i, len = gimple_phi_num_args(oldstmt);
45077 +
45078 + pointer_set_insert(visited, oldstmt);
45079 -+#if BUILDING_GCC_VERSION <= 4007
45080 -+ args = VEC_alloc(tree, gc, len);
45081 -+#else
45082 -+ vec_alloc(args, len);
45083 -+#endif
45084 + for (i = 0; i < len; i++) {
45085 + tree arg, new_arg;
45086 +
45087 @@ -114074,13 +114474,17 @@ index 0000000..50f8464
45088 + }
45089 +
45090 +#if BUILDING_GCC_VERSION <= 4007
45091 -+ VEC_safe_push(tree, gc, args, new_arg);
45092 ++ VEC_safe_push(tree, heap, args, new_arg);
45093 +#else
45094 + vec_safe_push(args, new_arg);
45095 +#endif
45096 + }
45097 +
45098 ++#if BUILDING_GCC_VERSION <= 4007
45099 ++ return create_new_phi_node(&args, ssa_name_var, oldstmt);
45100 ++#else
45101 + return create_new_phi_node(args, ssa_name_var, oldstmt);
45102 ++#endif
45103 +}
45104 +
45105 +static tree change_assign_rhs(gimple stmt, const_tree orig_rhs, tree new_rhs)
45106 @@ -114348,20 +114752,6 @@ index 0000000..50f8464
45107 + return build1(ADDR_EXPR, ptr_type_node, string);
45108 +}
45109 +
45110 -+#if BUILDING_GCC_VERSION <= 4006
45111 -+struct cgraph_node *cgraph_get_create_node(tree decl);
45112 -+
45113 -+struct cgraph_node *cgraph_get_create_node(tree decl)
45114 -+{
45115 -+ struct cgraph_node *node;
45116 -+
45117 -+ node = cgraph_get_node(decl);
45118 -+ if (node)
45119 -+ return node;
45120 -+ return cgraph_node(decl);
45121 -+}
45122 -+#endif
45123 -+
45124 +static void insert_cond_result(struct cgraph_node *caller_node, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
45125 +{
45126 + gimple func_stmt;
45127 @@ -114390,12 +114780,12 @@ index 0000000..50f8464
45128 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
45129 + loc_file = create_string_param(loc_file);
45130 +
45131 -+ current_func = build_string(NAME_LEN(current_function_decl) + 1, NAME(current_function_decl));
45132 ++ current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
45133 + current_func = create_string_param(current_func);
45134 +
45135 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
45136 + call_count++;
45137 -+ len = asprintf(&ssa_name_buf, "%s_%u %s, count: %u\n", NAME(SSA_NAME_VAR(arg)), SSA_NAME_VERSION(arg), min ? "min" : "max", call_count);
45138 ++ len = asprintf(&ssa_name_buf, "%s_%u %s, count: %u\n", DECL_NAME_POINTER(SSA_NAME_VAR(arg)), SSA_NAME_VERSION(arg), min ? "min" : "max", call_count);
45139 + gcc_assert(len > 0);
45140 + ssa_name = build_string(len + 1, ssa_name_buf);
45141 + free(ssa_name_buf);
45142 @@ -114408,11 +114798,7 @@ index 0000000..50f8464
45143 + callee_node = cgraph_get_create_node(report_size_overflow_decl);
45144 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
45145 +
45146 -+#if BUILDING_GCC_VERSION <= 4006
45147 + edge = cgraph_create_edge(caller_node, callee_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
45148 -+#else
45149 -+ edge = cgraph_create_edge(caller_node, callee_node, func_stmt, bb_true->count, frequency);
45150 -+#endif
45151 + gcc_assert(edge != NULL);
45152 +}
45153 +
45154 @@ -114709,7 +115095,7 @@ index 0000000..50f8464
45155 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
45156 +}
45157 +
45158 -+#if BUILDING_GCC_VERSION >= 4007
45159 ++#if BUILDING_GCC_VERSION >= 4006
45160 +static tree get_new_rhs(struct pointer_set_t *visited, struct cgraph_node *caller_node, tree size_overflow_type, tree rhs)
45161 +{
45162 + if (is_gimple_constant(rhs))
45163 @@ -114831,7 +115217,7 @@ index 0000000..50f8464
45164 + return handle_unary_ops(visited, caller_node, def_stmt);
45165 + case 3:
45166 + return handle_binary_ops(visited, caller_node, lhs);
45167 -+#if BUILDING_GCC_VERSION >= 4007
45168 ++#if BUILDING_GCC_VERSION >= 4006
45169 + case 4:
45170 + return handle_ternary_ops(visited, caller_node, lhs);
45171 +#endif
45172 @@ -114874,7 +115260,7 @@ index 0000000..50f8464
45173 + case 2:
45174 + set_rhs = &gimple_assign_set_rhs2;
45175 + break;
45176 -+#if BUILDING_GCC_VERSION > 4005
45177 ++#if BUILDING_GCC_VERSION >= 4006
45178 + case 3:
45179 + set_rhs = &gimple_assign_set_rhs3;
45180 + break;
45181 @@ -114893,7 +115279,7 @@ index 0000000..50f8464
45182 + update_stmt(stmt);
45183 +}
45184 +
45185 -+static unsigned int get_correct_arg_count(unsigned int argnum, tree fndecl)
45186 ++static unsigned int get_correct_arg_count(unsigned int argnum, const_tree fndecl)
45187 +{
45188 + const struct size_overflow_hash *hash;
45189 + unsigned int new_argnum;
45190 @@ -114920,7 +115306,7 @@ index 0000000..50f8464
45191 + gcc_assert(origarg != NULL_TREE);
45192 +
45193 + for (arg = DECL_ARGUMENTS(fndecl), new_argnum = 1; arg; arg = TREE_CHAIN(arg), new_argnum++)
45194 -+ if (operand_equal_p(origarg, arg, 0) || !strcmp(NAME(origarg), NAME(arg)))
45195 ++ if (operand_equal_p(origarg, arg, 0) || !strcmp(DECL_NAME_POINTER(origarg), DECL_NAME_POINTER(arg)))
45196 + return new_argnum;
45197 +
45198 + return CANNOT_FIND_ARG;
45199 @@ -114933,20 +115319,12 @@ index 0000000..50f8464
45200 + struct next_cgraph_node *cur_node;
45201 +
45202 + if (fndecl == RET_CHECK)
45203 -+#if BUILDING_GCC_VERSION <= 4007
45204 -+ new_callee_fndecl = node->decl;
45205 -+#else
45206 -+ new_callee_fndecl = node->symbol.decl;
45207 -+#endif
45208 ++ new_callee_fndecl = NODE_DECL(node);
45209 + else
45210 + new_callee_fndecl = fndecl;
45211 +
45212 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
45213 -+#if BUILDING_GCC_VERSION <= 4007
45214 -+ if (!operand_equal_p(cur_node->current_function->decl, node->decl, 0))
45215 -+#else
45216 -+ if (!operand_equal_p(cur_node->current_function->symbol.decl, node->symbol.decl, 0))
45217 -+#endif
45218 ++ if (!operand_equal_p(NODE_DECL(cur_node->current_function), NODE_DECL(node), 0))
45219 + continue;
45220 + if (!operand_equal_p(cur_node->callee_fndecl, new_callee_fndecl, 0))
45221 + continue;
45222 @@ -114972,11 +115350,7 @@ index 0000000..50f8464
45223 + new_node->next = NULL;
45224 + new_node->num = num;
45225 + if (fndecl == RET_CHECK)
45226 -+#if BUILDING_GCC_VERSION <= 4007
45227 -+ new_node->callee_fndecl = node->decl;
45228 -+#else
45229 -+ new_node->callee_fndecl = node->symbol.decl;
45230 -+#endif
45231 ++ new_node->callee_fndecl = NODE_DECL(node);
45232 + else
45233 + new_node->callee_fndecl = fndecl;
45234 +
45235 @@ -115013,7 +115387,7 @@ index 0000000..50f8464
45236 + return false;
45237 +}
45238 +
45239 -+static bool is_in_hash_table(tree fndecl, unsigned int num)
45240 ++static bool is_in_hash_table(const_tree fndecl, unsigned int num)
45241 +{
45242 + const struct size_overflow_hash *hash;
45243 +
45244 @@ -115053,7 +115427,7 @@ index 0000000..50f8464
45245 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
45246 + * If the function is missing everywhere then print the missing message into stderr.
45247 + */
45248 -+static bool is_missing_function(tree orig_fndecl, unsigned int num)
45249 ++static bool is_missing_function(const_tree orig_fndecl, unsigned int num)
45250 +{
45251 + switch (DECL_FUNCTION_CODE(orig_fndecl)) {
45252 +#if BUILDING_GCC_VERSION >= 4008
45253 @@ -115069,9 +115443,9 @@ index 0000000..50f8464
45254 + }
45255 +
45256 + // skip test.c
45257 -+ if (strcmp(NAME(current_function_decl), "coolmalloc")) {
45258 ++ if (strcmp(DECL_NAME_POINTER(current_function_decl), "coolmalloc")) {
45259 + if (lookup_attribute("size_overflow", DECL_ATTRIBUTES(orig_fndecl)))
45260 -+ warning(0, "unnecessary size_overflow attribute on: %s\n", NAME(orig_fndecl));
45261 ++ warning(0, "unnecessary size_overflow attribute on: %s\n", DECL_NAME_POINTER(orig_fndecl));
45262 + }
45263 +
45264 + if (is_in_hash_table(orig_fndecl, num))
45265 @@ -115096,7 +115470,7 @@ index 0000000..50f8464
45266 +static struct next_cgraph_node *check_missing_overflow_attribute_and_create_next_node(struct next_cgraph_node *cnodes, struct missing_functions *missing_fn_head)
45267 +{
45268 + unsigned int num;
45269 -+ tree orig_fndecl;
45270 ++ const_tree orig_fndecl;
45271 + struct cgraph_node *next_node = NULL;
45272 +
45273 + orig_fndecl = DECL_ORIGIN(missing_fn_head->fndecl);
45274 @@ -115123,10 +115497,7 @@ index 0000000..50f8464
45275 + tree node;
45276 + struct missing_functions *cur, *missing_fn_head = NULL;
45277 +
45278 -+#if BUILDING_GCC_VERSION == 4005
45279 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
45280 -+ node = VEC_index(tree, cur_node->last_nodes, i);
45281 -+#elif BUILDING_GCC_VERSION <= 4007
45282 ++#if BUILDING_GCC_VERSION <= 4007
45283 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, node) {
45284 +#else
45285 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, node) {
45286 @@ -115394,7 +115765,7 @@ index 0000000..50f8464
45287 + return;
45288 +
45289 + loc = DECL_SOURCE_LOCATION(decl);
45290 -+ inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", NAME(decl), argnum);
45291 ++ inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
45292 +}
45293 +
45294 +/* Get the type of the intentional_overflow attribute of a node
45295 @@ -115448,10 +115819,7 @@ index 0000000..50f8464
45296 + tree last_node;
45297 + enum mark mark = MARK_NO;
45298 +
45299 -+#if BUILDING_GCC_VERSION == 4005
45300 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
45301 -+ last_node = VEC_index(tree, cur_node->last_nodes, i);
45302 -+#elif BUILDING_GCC_VERSION <= 4007
45303 ++#if BUILDING_GCC_VERSION <= 4007
45304 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, last_node) {
45305 +#else
45306 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, last_node) {
45307 @@ -115579,10 +115947,7 @@ index 0000000..50f8464
45308 + if (code != PARM_DECL && code != FUNCTION_DECL && code != COMPONENT_REF)
45309 + return;
45310 +
45311 -+#if BUILDING_GCC_VERSION == 4005
45312 -+ for (i = 0; i < VEC_length(tree, cur_node->last_nodes); i++) {
45313 -+ element = VEC_index(tree, cur_node->last_nodes, i);
45314 -+#elif BUILDING_GCC_VERSION <= 4007
45315 ++#if BUILDING_GCC_VERSION <= 4007
45316 + FOR_EACH_VEC_ELT(tree, cur_node->last_nodes, i, element) {
45317 +#else
45318 + FOR_EACH_VEC_ELT(*cur_node->last_nodes, i, element) {
45319 @@ -115839,7 +116204,8 @@ index 0000000..50f8464
45320 +static struct interesting_node *handle_stmt_by_cgraph_nodes_call(struct interesting_node *head, gimple stmt, struct next_cgraph_node *next_node)
45321 +{
45322 + unsigned int argnum;
45323 -+ tree fndecl, arg;
45324 ++ tree arg;
45325 ++ const_tree fndecl;
45326 + struct next_cgraph_node *cur_node;
45327 +
45328 + fndecl = gimple_call_fndecl(stmt);
45329 @@ -115987,6 +116353,7 @@ index 0000000..50f8464
45330 +
45331 + if (gimple_asm_noutputs(stmt) == 0) {
45332 + gsi = gsi_for_stmt(stmt);
45333 ++ ipa_remove_stmt_references(cgraph_get_create_node(current_function_decl), stmt);
45334 + gsi_remove(&gsi, true);
45335 + return;
45336 + }
45337 @@ -116051,7 +116418,7 @@ index 0000000..50f8464
45338 + basic_block bb;
45339 + struct interesting_node *head = NULL;
45340 +
45341 -+ FOR_ALL_BB(bb) {
45342 ++ FOR_ALL_BB_FN(bb, cfun) {
45343 + gimple_stmt_iterator gsi;
45344 +
45345 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
45346 @@ -116113,7 +116480,7 @@ index 0000000..50f8464
45347 + new_visited = (struct visited *)xmalloc(sizeof(*new_visited));
45348 + new_visited->fndecl = cur_node->fndecl;
45349 + new_visited->num = cur_node->num;
45350 -+ new_visited->first_stmt = cur_node->first_stmt;
45351 ++ new_visited->rhs = cur_node->node;
45352 + new_visited->next = NULL;
45353 +
45354 + if (!head)
45355 @@ -116138,7 +116505,7 @@ index 0000000..50f8464
45356 + continue;
45357 + if (cur_node->num != cur->num)
45358 + continue;
45359 -+ if (cur_node->first_stmt == cur->first_stmt)
45360 ++ if (cur_node->node == cur->rhs)
45361 + return true;
45362 + }
45363 + return false;
45364 @@ -116159,7 +116526,7 @@ index 0000000..50f8464
45365 +{
45366 + basic_block bb;
45367 +
45368 -+ FOR_ALL_BB(bb) {
45369 ++ FOR_ALL_BB_FN(bb, cfun) {
45370 + gimple_stmt_iterator si;
45371 +
45372 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
45373 @@ -116177,11 +116544,7 @@ index 0000000..50f8464
45374 + struct interesting_node *head, *cur_node;
45375 + struct next_cgraph_node *cur_cnodes, *cnodes_head = NULL;
45376 +
45377 -+#if BUILDING_GCC_VERSION <= 4007
45378 -+ set_current_function_decl(node->decl);
45379 -+#else
45380 -+ set_current_function_decl(node->symbol.decl);
45381 -+#endif
45382 ++ set_current_function_decl(NODE_DECL(node));
45383 + call_count = 0;
45384 +
45385 + head = collect_interesting_stmts(next_node);
45386 @@ -116219,7 +116582,7 @@ index 0000000..50f8464
45387 +{
45388 + basic_block bb;
45389 +
45390 -+ FOR_ALL_BB(bb) {
45391 ++ FOR_ALL_BB_FN(bb, cfun) {
45392 + gimple_stmt_iterator si;
45393 +
45394 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
45395 @@ -116229,38 +116592,6 @@ index 0000000..50f8464
45396 + }
45397 +}
45398 +
45399 -+#if BUILDING_GCC_VERSION <= 4006
45400 -+static bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
45401 -+{
45402 -+ return node->analyzed && !node->thunk.thunk_p && !node->alias;
45403 -+}
45404 -+
45405 -+static struct cgraph_node *cgraph_first_function_with_gimple_body(void)
45406 -+{
45407 -+ struct cgraph_node *node;
45408 -+
45409 -+ for (node = cgraph_nodes; node; node = node->next) {
45410 -+ if (cgraph_function_with_gimple_body_p(node))
45411 -+ return node;
45412 -+ }
45413 -+ return NULL;
45414 -+}
45415 -+
45416 -+static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
45417 -+{
45418 -+ for (node = node->next; node; node = node->next) {
45419 -+ if (cgraph_function_with_gimple_body_p(node))
45420 -+ return node;
45421 -+ }
45422 -+ return NULL;
45423 -+}
45424 -+
45425 -+#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
45426 -+ for ((node) = cgraph_first_function_with_gimple_body (); (node); \
45427 -+ (node) = cgraph_next_function_with_gimple_body (node))
45428 -+
45429 -+#endif
45430 -+
45431 +// Main entry point of the ipa pass: erases the plf flag of all stmts and iterates over all the functions
45432 +static unsigned int search_function(void)
45433 +{
45434 @@ -116268,11 +116599,7 @@ index 0000000..50f8464
45435 + struct visited *visited = NULL;
45436 +
45437 + FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) {
45438 -+#if BUILDING_GCC_VERSION <= 4007
45439 -+ set_current_function_decl(node->decl);
45440 -+#else
45441 -+ set_current_function_decl(node->symbol.decl);
45442 -+#endif
45443 ++ set_current_function_decl(NODE_DECL(node));
45444 + set_plf_false();
45445 + unset_current_function_decl();
45446 + }
45447 @@ -116290,24 +116617,34 @@ index 0000000..50f8464
45448 + return 0;
45449 +}
45450 +
45451 -+static struct ipa_opt_pass_d pass_ipa = {
45452 ++#if BUILDING_GCC_VERSION >= 4009
45453 ++static const struct pass_data ipa_pass_data = {
45454 ++#else
45455 ++static struct ipa_opt_pass_d ipa_pass = {
45456 + .pass = {
45457 ++#endif
45458 + .type = SIMPLE_IPA_PASS,
45459 + .name = "size_overflow",
45460 +#if BUILDING_GCC_VERSION >= 4008
45461 + .optinfo_flags = OPTGROUP_NONE,
45462 +#endif
45463 ++#if BUILDING_GCC_VERSION >= 4009
45464 ++ .has_gate = false,
45465 ++ .has_execute = true,
45466 ++#else
45467 + .gate = NULL,
45468 + .execute = search_function,
45469 + .sub = NULL,
45470 + .next = NULL,
45471 + .static_pass_number = 0,
45472 ++#endif
45473 + .tv_id = TV_NONE,
45474 + .properties_required = 0,
45475 + .properties_provided = 0,
45476 + .properties_destroyed = 0,
45477 + .todo_flags_start = 0,
45478 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_ggc_collect | TODO_verify_flow | TODO_dump_cgraph | TODO_dump_func | TODO_update_ssa_no_phi,
45479 ++#if BUILDING_GCC_VERSION < 4009
45480 + },
45481 + .generate_summary = NULL,
45482 + .write_summary = NULL,
45483 @@ -116320,8 +116657,28 @@ index 0000000..50f8464
45484 + .function_transform_todo_flags_start = 0,
45485 + .function_transform = NULL,
45486 + .variable_transform = NULL,
45487 ++#endif
45488 +};
45489 +
45490 ++#if BUILDING_GCC_VERSION >= 4009
45491 ++namespace {
45492 ++class ipa_pass : public ipa_opt_pass_d {
45493 ++public:
45494 ++ ipa_pass() : ipa_opt_pass_d(ipa_pass_data, g, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL) {}
45495 ++ unsigned int execute() { return search_function(); }
45496 ++};
45497 ++}
45498 ++#endif
45499 ++
45500 ++static struct opt_pass *make_ipa_pass(void)
45501 ++{
45502 ++#if BUILDING_GCC_VERSION >= 4009
45503 ++ return new ipa_pass();
45504 ++#else
45505 ++ return &ipa_pass.pass;
45506 ++#endif
45507 ++}
45508 ++
45509 +// data for the size_overflow asm stmt
45510 +struct asm_data {
45511 + gimple def_stmt;
45512 @@ -116626,9 +116983,9 @@ index 0000000..50f8464
45513 + unsigned int len;
45514 +
45515 + if (argnum == 0)
45516 -+ fn_name = NAME(current_function_decl);
45517 ++ fn_name = DECL_NAME_POINTER(current_function_decl);
45518 + else
45519 -+ fn_name = NAME(gimple_call_fndecl(stmt));
45520 ++ fn_name = DECL_NAME_POINTER(gimple_call_fndecl(stmt));
45521 +
45522 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, argnum);
45523 + gcc_assert(len > 0);
45524 @@ -117014,7 +117371,7 @@ index 0000000..50f8464
45525 +{
45526 + basic_block bb;
45527 +
45528 -+ FOR_ALL_BB(bb) {
45529 ++ FOR_ALL_BB_FN(bb, cfun) {
45530 + gimple_stmt_iterator gsi;
45531 +
45532 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
45533 @@ -117037,27 +117394,57 @@ index 0000000..50f8464
45534 + * this pass inserts asm stmts to mark the interesting args
45535 + * that the ipa pass will detect and insert the size overflow checks for.
45536 + */
45537 ++#if BUILDING_GCC_VERSION >= 4009
45538 ++static const struct pass_data insert_size_overflow_asm_pass_data = {
45539 ++#else
45540 +static struct gimple_opt_pass insert_size_overflow_asm_pass = {
45541 + .pass = {
45542 ++#endif
45543 + .type = GIMPLE_PASS,
45544 + .name = "insert_size_overflow_asm",
45545 +#if BUILDING_GCC_VERSION >= 4008
45546 + .optinfo_flags = OPTGROUP_NONE,
45547 +#endif
45548 ++#if BUILDING_GCC_VERSION >= 4009
45549 ++ .has_gate = false,
45550 ++ .has_execute = true,
45551 ++#else
45552 + .gate = NULL,
45553 + .execute = search_interesting_functions,
45554 + .sub = NULL,
45555 + .next = NULL,
45556 + .static_pass_number = 0,
45557 ++#endif
45558 + .tv_id = TV_NONE,
45559 + .properties_required = PROP_cfg,
45560 + .properties_provided = 0,
45561 + .properties_destroyed = 0,
45562 + .todo_flags_start = 0,
45563 + .todo_flags_finish = TODO_dump_func | TODO_verify_ssa | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_flow
45564 ++#if BUILDING_GCC_VERSION < 4009
45565 + }
45566 ++#endif
45567 +};
45568 +
45569 ++#if BUILDING_GCC_VERSION >= 4009
45570 ++namespace {
45571 ++class insert_size_overflow_asm_pass : public gimple_opt_pass {
45572 ++public:
45573 ++ insert_size_overflow_asm_pass() : gimple_opt_pass(insert_size_overflow_asm_pass_data, g) {}
45574 ++ unsigned int execute() { return search_interesting_functions(); }
45575 ++};
45576 ++}
45577 ++#endif
45578 ++
45579 ++static struct opt_pass *make_insert_size_overflow_asm_pass(void)
45580 ++{
45581 ++#if BUILDING_GCC_VERSION >= 4009
45582 ++ return new insert_size_overflow_asm_pass();
45583 ++#else
45584 ++ return &insert_size_overflow_asm_pass.pass;
45585 ++#endif
45586 ++}
45587 ++
45588 +// Create the noreturn report_size_overflow() function decl.
45589 +static void start_unit_callback(void __unused *gcc_data, void __unused *user_data)
45590 +{
45591 @@ -117088,17 +117475,12 @@ index 0000000..50f8464
45592 + FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) {
45593 + basic_block bb;
45594 +
45595 -+#if BUILDING_GCC_VERSION <= 4007
45596 -+ push_cfun(DECL_STRUCT_FUNCTION(node->decl));
45597 -+ current_function_decl = node->decl;
45598 -+#else
45599 -+ push_cfun(DECL_STRUCT_FUNCTION(node->symbol.decl));
45600 -+ current_function_decl = node->symbol.decl;
45601 -+#endif
45602 ++ push_cfun(DECL_STRUCT_FUNCTION(NODE_DECL(node)));
45603 ++ current_function_decl = NODE_DECL(node);
45604 +
45605 -+ fprintf(stderr, "-----------------------------------------\n%s\n-----------------------------------------\n", NAME(current_function_decl));
45606 ++ fprintf(stderr, "-----------------------------------------\n%s\n-----------------------------------------\n", DECL_NAME_POINTER(current_function_decl));
45607 +
45608 -+ FOR_ALL_BB(bb) {
45609 ++ FOR_ALL_BB_FN(bb, cfun) {
45610 + gimple_stmt_iterator si;
45611 +
45612 + fprintf(stderr, "<bb %u>:\n", bb->index);
45613 @@ -117120,24 +117502,34 @@ index 0000000..50f8464
45614 + return 0;
45615 +}
45616 +
45617 -+static struct ipa_opt_pass_d pass_dump = {
45618 ++#if BUILDING_GCC_VERSION >= 4009
45619 ++static const struct pass_data dump_pass_data = {
45620 ++#else
45621 ++static struct ipa_opt_pass_d dump_pass = {
45622 + .pass = {
45623 ++#endif
45624 + .type = SIMPLE_IPA_PASS,
45625 + .name = "dump",
45626 +#if BUILDING_GCC_VERSION >= 4008
45627 + .optinfo_flags = OPTGROUP_NONE,
45628 +#endif
45629 ++#if BUILDING_GCC_VERSION >= 4009
45630 ++ .has_gate = false,
45631 ++ .has_execute = true,
45632 ++#else
45633 + .gate = NULL,
45634 + .execute = dump_functions,
45635 + .sub = NULL,
45636 + .next = NULL,
45637 + .static_pass_number = 0,
45638 ++#endif
45639 + .tv_id = TV_NONE,
45640 + .properties_required = 0,
45641 + .properties_provided = 0,
45642 + .properties_destroyed = 0,
45643 + .todo_flags_start = 0,
45644 + .todo_flags_finish = 0,
45645 ++#if BUILDING_GCC_VERSION < 4009
45646 + },
45647 + .generate_summary = NULL,
45648 + .write_summary = NULL,
45649 @@ -117150,7 +117542,27 @@ index 0000000..50f8464
45650 + .function_transform_todo_flags_start = 0,
45651 + .function_transform = NULL,
45652 + .variable_transform = NULL,
45653 ++#endif
45654 ++};
45655 ++
45656 ++#if BUILDING_GCC_VERSION >= 4009
45657 ++namespace {
45658 ++class dump_pass : public ipa_opt_pass_d {
45659 ++public:
45660 ++ dump_pass() : ipa_opt_pass_d(dump_pass_data, g, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL) {}
45661 ++ unsigned int execute() { return dump_functions(); }
45662 +};
45663 ++}
45664 ++#endif
45665 ++
45666 ++static struct opt_pass *make_dump_pass(void)
45667 ++{
45668 ++#if BUILDING_GCC_VERSION >= 4009
45669 ++ return new dump_pass();
45670 ++#else
45671 ++ return &dump_pass.pass;
45672 ++#endif
45673 ++}
45674 +
45675 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
45676 +{
45677 @@ -117159,34 +117571,30 @@ index 0000000..50f8464
45678 + const int argc = plugin_info->argc;
45679 + const struct plugin_argument * const argv = plugin_info->argv;
45680 + bool enable = true;
45681 -+
45682 -+ struct register_pass_info insert_size_overflow_asm_pass_info = {
45683 -+ .pass = &insert_size_overflow_asm_pass.pass,
45684 -+ .reference_pass_name = "ssa",
45685 -+ .ref_pass_instance_number = 1,
45686 -+ .pos_op = PASS_POS_INSERT_AFTER
45687 -+ };
45688 -+
45689 -+ struct register_pass_info __unused dump_before_pass_info = {
45690 -+ .pass = &pass_dump.pass,
45691 -+ .reference_pass_name = "increase_alignment",
45692 -+ .ref_pass_instance_number = 1,
45693 -+ .pos_op = PASS_POS_INSERT_BEFORE
45694 -+ };
45695 -+
45696 -+ struct register_pass_info ipa_pass_info = {
45697 -+ .pass = &pass_ipa.pass,
45698 -+ .reference_pass_name = "increase_alignment",
45699 -+ .ref_pass_instance_number = 1,
45700 -+ .pos_op = PASS_POS_INSERT_BEFORE
45701 -+ };
45702 -+
45703 -+ struct register_pass_info __unused dump_after_pass_info = {
45704 -+ .pass = &pass_dump.pass,
45705 -+ .reference_pass_name = "increase_alignment",
45706 -+ .ref_pass_instance_number = 1,
45707 -+ .pos_op = PASS_POS_INSERT_BEFORE
45708 -+ };
45709 ++ struct register_pass_info insert_size_overflow_asm_pass_info;
45710 ++ struct register_pass_info __unused dump_before_pass_info;
45711 ++ struct register_pass_info __unused dump_after_pass_info;
45712 ++ struct register_pass_info ipa_pass_info;
45713 ++
45714 ++ insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
45715 ++ insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
45716 ++ insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
45717 ++ insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
45718 ++
45719 ++ dump_before_pass_info.pass = make_dump_pass();
45720 ++ dump_before_pass_info.reference_pass_name = "increase_alignment";
45721 ++ dump_before_pass_info.ref_pass_instance_number = 1;
45722 ++ dump_before_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
45723 ++
45724 ++ ipa_pass_info.pass = make_ipa_pass();
45725 ++ ipa_pass_info.reference_pass_name = "increase_alignment";
45726 ++ ipa_pass_info.ref_pass_instance_number = 1;
45727 ++ ipa_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
45728 ++
45729 ++ dump_after_pass_info.pass = make_dump_pass();
45730 ++ dump_after_pass_info.reference_pass_name = "increase_alignment";
45731 ++ dump_after_pass_info.ref_pass_instance_number = 1;
45732 ++ dump_after_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
45733 +
45734 + if (!plugin_default_version_check(version, &gcc_version)) {
45735 + error(G_("incompatible gcc/plugin versions"));
45736 @@ -117215,12 +117623,12 @@ index 0000000..50f8464
45737 +}
45738 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
45739 new file mode 100644
45740 -index 0000000..ac2901e
45741 +index 0000000..a4f816a
45742 --- /dev/null
45743 +++ b/tools/gcc/stackleak_plugin.c
45744 -@@ -0,0 +1,327 @@
45745 +@@ -0,0 +1,341 @@
45746 +/*
45747 -+ * Copyright 2011-2013 by the PaX Team <pageexec@××××××××.hu>
45748 ++ * Copyright 2011-2014 by the PaX Team <pageexec@××××××××.hu>
45749 + * Licensed under the GPL v2
45750 + *
45751 + * Note: the choice of the license means that the compilation process is
45752 @@ -117238,31 +117646,8 @@ index 0000000..ac2901e
45753 + * BUGS:
45754 + * - none known
45755 + */
45756 -+#include "gcc-plugin.h"
45757 -+#include "config.h"
45758 -+#include "system.h"
45759 -+#include "coretypes.h"
45760 -+#include "tree.h"
45761 -+#include "tree-pass.h"
45762 -+#include "flags.h"
45763 -+#include "intl.h"
45764 -+#include "toplev.h"
45765 -+#include "plugin.h"
45766 -+//#include "expr.h" where are you...
45767 -+#include "diagnostic.h"
45768 -+#include "plugin-version.h"
45769 -+#include "tm.h"
45770 -+#include "function.h"
45771 -+#include "basic-block.h"
45772 -+#include "gimple.h"
45773 -+#include "rtl.h"
45774 -+#include "emit-rtl.h"
45775 +
45776 -+#if BUILDING_GCC_VERSION >= 4008
45777 -+#define TODO_dump_func 0
45778 -+#endif
45779 -+
45780 -+extern void print_gimple_stmt(FILE *, gimple, int, int);
45781 ++#include "gcc-common.h"
45782 +
45783 +int plugin_is_GPL_compatible;
45784 +
45785 @@ -117272,62 +117657,11 @@ index 0000000..ac2901e
45786 +static bool init_locals;
45787 +
45788 +static struct plugin_info stackleak_plugin_info = {
45789 -+ .version = "201302112000",
45790 ++ .version = "201401260140",
45791 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
45792 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
45793 +};
45794 +
45795 -+static bool gate_stackleak_track_stack(void);
45796 -+static unsigned int execute_stackleak_tree_instrument(void);
45797 -+static unsigned int execute_stackleak_final(void);
45798 -+
45799 -+static struct gimple_opt_pass stackleak_tree_instrument_pass = {
45800 -+ .pass = {
45801 -+ .type = GIMPLE_PASS,
45802 -+ .name = "stackleak_tree_instrument",
45803 -+#if BUILDING_GCC_VERSION >= 4008
45804 -+ .optinfo_flags = OPTGROUP_NONE,
45805 -+#endif
45806 -+ .gate = gate_stackleak_track_stack,
45807 -+ .execute = execute_stackleak_tree_instrument,
45808 -+ .sub = NULL,
45809 -+ .next = NULL,
45810 -+ .static_pass_number = 0,
45811 -+ .tv_id = TV_NONE,
45812 -+ .properties_required = PROP_gimple_leh | PROP_cfg,
45813 -+ .properties_provided = 0,
45814 -+ .properties_destroyed = 0,
45815 -+ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
45816 -+ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
45817 -+ }
45818 -+};
45819 -+
45820 -+static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
45821 -+ .pass = {
45822 -+ .type = RTL_PASS,
45823 -+ .name = "stackleak_final",
45824 -+#if BUILDING_GCC_VERSION >= 4008
45825 -+ .optinfo_flags = OPTGROUP_NONE,
45826 -+#endif
45827 -+ .gate = gate_stackleak_track_stack,
45828 -+ .execute = execute_stackleak_final,
45829 -+ .sub = NULL,
45830 -+ .next = NULL,
45831 -+ .static_pass_number = 0,
45832 -+ .tv_id = TV_NONE,
45833 -+ .properties_required = 0,
45834 -+ .properties_provided = 0,
45835 -+ .properties_destroyed = 0,
45836 -+ .todo_flags_start = 0,
45837 -+ .todo_flags_finish = TODO_dump_func
45838 -+ }
45839 -+};
45840 -+
45841 -+static bool gate_stackleak_track_stack(void)
45842 -+{
45843 -+ return track_frame_size >= 0;
45844 -+}
45845 -+
45846 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
45847 +{
45848 + gimple check_alloca;
45849 @@ -117357,23 +117691,6 @@ index 0000000..ac2901e
45850 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
45851 +}
45852 +
45853 -+#if BUILDING_GCC_VERSION == 4005
45854 -+static bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
45855 -+{
45856 -+ tree fndecl;
45857 -+
45858 -+ if (!is_gimple_call(stmt))
45859 -+ return false;
45860 -+ fndecl = gimple_call_fndecl(stmt);
45861 -+ if (!fndecl)
45862 -+ return false;
45863 -+ if (DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
45864 -+ return false;
45865 -+// print_node(stderr, "pax", fndecl, 4);
45866 -+ return DECL_FUNCTION_CODE(fndecl) == code;
45867 -+}
45868 -+#endif
45869 -+
45870 +static bool is_alloca(gimple stmt)
45871 +{
45872 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
45873 @@ -117392,10 +117709,10 @@ index 0000000..ac2901e
45874 + basic_block bb, entry_bb;
45875 + bool prologue_instrumented = false, is_leaf = true;
45876 +
45877 -+ entry_bb = ENTRY_BLOCK_PTR_FOR_FUNCTION(cfun)->next_bb;
45878 ++ entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
45879 +
45880 + // 1. loop through BBs and GIMPLE statements
45881 -+ FOR_EACH_BB(bb) {
45882 ++ FOR_EACH_BB_FN(bb, cfun) {
45883 + gimple_stmt_iterator gsi;
45884 +
45885 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
45886 @@ -117433,9 +117750,9 @@ index 0000000..ac2901e
45887 + if (!prologue_instrumented) {
45888 + gimple_stmt_iterator gsi;
45889 +
45890 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
45891 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
45892 + if (dom_info_available_p(CDI_DOMINATORS))
45893 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
45894 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
45895 + gsi = gsi_start_bb(bb);
45896 + stackleak_add_instrumentation(&gsi);
45897 + }
45898 @@ -117492,25 +117809,130 @@ index 0000000..ac2901e
45899 + return 0;
45900 +}
45901 +
45902 ++static bool gate_stackleak_track_stack(void)
45903 ++{
45904 ++ return track_frame_size >= 0;
45905 ++}
45906 ++
45907 ++#if BUILDING_GCC_VERSION >= 4009
45908 ++static const struct pass_data stackleak_tree_instrument_pass_data = {
45909 ++#else
45910 ++static struct gimple_opt_pass stackleak_tree_instrument_pass = {
45911 ++ .pass = {
45912 ++#endif
45913 ++ .type = GIMPLE_PASS,
45914 ++ .name = "stackleak_tree_instrument",
45915 ++#if BUILDING_GCC_VERSION >= 4008
45916 ++ .optinfo_flags = OPTGROUP_NONE,
45917 ++#endif
45918 ++#if BUILDING_GCC_VERSION >= 4009
45919 ++ .has_gate = true,
45920 ++ .has_execute = true,
45921 ++#else
45922 ++ .gate = gate_stackleak_track_stack,
45923 ++ .execute = execute_stackleak_tree_instrument,
45924 ++ .sub = NULL,
45925 ++ .next = NULL,
45926 ++ .static_pass_number = 0,
45927 ++#endif
45928 ++ .tv_id = TV_NONE,
45929 ++ .properties_required = PROP_gimple_leh | PROP_cfg,
45930 ++ .properties_provided = 0,
45931 ++ .properties_destroyed = 0,
45932 ++ .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
45933 ++ .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
45934 ++#if BUILDING_GCC_VERSION < 4009
45935 ++ }
45936 ++#endif
45937 ++};
45938 ++
45939 ++#if BUILDING_GCC_VERSION >= 4009
45940 ++static const struct pass_data stackleak_final_rtl_opt_pass_data = {
45941 ++#else
45942 ++static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
45943 ++ .pass = {
45944 ++#endif
45945 ++ .type = RTL_PASS,
45946 ++ .name = "stackleak_final",
45947 ++#if BUILDING_GCC_VERSION >= 4008
45948 ++ .optinfo_flags = OPTGROUP_NONE,
45949 ++#endif
45950 ++#if BUILDING_GCC_VERSION >= 4009
45951 ++ .has_gate = true,
45952 ++ .has_execute = true,
45953 ++#else
45954 ++ .gate = gate_stackleak_track_stack,
45955 ++ .execute = execute_stackleak_final,
45956 ++ .sub = NULL,
45957 ++ .next = NULL,
45958 ++ .static_pass_number = 0,
45959 ++#endif
45960 ++ .tv_id = TV_NONE,
45961 ++ .properties_required = 0,
45962 ++ .properties_provided = 0,
45963 ++ .properties_destroyed = 0,
45964 ++ .todo_flags_start = 0,
45965 ++ .todo_flags_finish = TODO_dump_func
45966 ++#if BUILDING_GCC_VERSION < 4009
45967 ++ }
45968 ++#endif
45969 ++};
45970 ++
45971 ++#if BUILDING_GCC_VERSION >= 4009
45972 ++namespace {
45973 ++class stackleak_tree_instrument_pass : public gimple_opt_pass {
45974 ++public:
45975 ++ stackleak_tree_instrument_pass() : gimple_opt_pass(stackleak_tree_instrument_pass_data, g) {}
45976 ++ bool gate() { return gate_stackleak_track_stack(); }
45977 ++ unsigned int execute() { return execute_stackleak_tree_instrument(); }
45978 ++};
45979 ++
45980 ++class stackleak_final_rtl_opt_pass : public rtl_opt_pass {
45981 ++public:
45982 ++ stackleak_final_rtl_opt_pass() : rtl_opt_pass(stackleak_final_rtl_opt_pass_data, g) {}
45983 ++ bool gate() { return gate_stackleak_track_stack(); }
45984 ++ unsigned int execute() { return execute_stackleak_final(); }
45985 ++};
45986 ++}
45987 ++#endif
45988 ++
45989 ++static struct opt_pass *make_stackleak_tree_instrument_pass(void)
45990 ++{
45991 ++#if BUILDING_GCC_VERSION >= 4009
45992 ++ return new stackleak_tree_instrument_pass();
45993 ++#else
45994 ++ return &stackleak_tree_instrument_pass.pass;
45995 ++#endif
45996 ++}
45997 ++
45998 ++static struct opt_pass *make_stackleak_final_rtl_opt_pass(void)
45999 ++{
46000 ++#if BUILDING_GCC_VERSION >= 4009
46001 ++ return new stackleak_final_rtl_opt_pass();
46002 ++#else
46003 ++ return &stackleak_final_rtl_opt_pass.pass;
46004 ++#endif
46005 ++}
46006 ++
46007 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
46008 +{
46009 + const char * const plugin_name = plugin_info->base_name;
46010 + const int argc = plugin_info->argc;
46011 + const struct plugin_argument * const argv = plugin_info->argv;
46012 + int i;
46013 -+ struct register_pass_info stackleak_tree_instrument_pass_info = {
46014 -+ .pass = &stackleak_tree_instrument_pass.pass,
46015 -+// .reference_pass_name = "tree_profile",
46016 -+ .reference_pass_name = "optimized",
46017 -+ .ref_pass_instance_number = 1,
46018 -+ .pos_op = PASS_POS_INSERT_BEFORE
46019 -+ };
46020 -+ struct register_pass_info stackleak_final_pass_info = {
46021 -+ .pass = &stackleak_final_rtl_opt_pass.pass,
46022 -+ .reference_pass_name = "final",
46023 -+ .ref_pass_instance_number = 1,
46024 -+ .pos_op = PASS_POS_INSERT_BEFORE
46025 -+ };
46026 ++ struct register_pass_info stackleak_tree_instrument_pass_info;
46027 ++ struct register_pass_info stackleak_final_pass_info;
46028 ++
46029 ++ stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
46030 ++// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
46031 ++ stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
46032 ++ stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
46033 ++ stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
46034 ++
46035 ++ stackleak_final_pass_info.pass = make_stackleak_final_rtl_opt_pass();
46036 ++ stackleak_final_pass_info.reference_pass_name = "final";
46037 ++ stackleak_final_pass_info.ref_pass_instance_number = 1;
46038 ++ stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
46039 +
46040 + if (!plugin_default_version_check(version, &gcc_version)) {
46041 + error(G_("incompatible gcc/plugin versions"));
46042 @@ -117548,12 +117970,12 @@ index 0000000..ac2901e
46043 +}
46044 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
46045 new file mode 100644
46046 -index 0000000..4fae911
46047 +index 0000000..796569a
46048 --- /dev/null
46049 +++ b/tools/gcc/structleak_plugin.c
46050 -@@ -0,0 +1,277 @@
46051 +@@ -0,0 +1,273 @@
46052 +/*
46053 -+ * Copyright 2013 by PaX Team <pageexec@××××××××.hu>
46054 ++ * Copyright 2013-2014 by PaX Team <pageexec@××××××××.hu>
46055 + * Licensed under the GPL v2
46056 + *
46057 + * Note: the choice of the license means that the compilation process is
46058 @@ -117578,38 +118000,15 @@ index 0000000..4fae911
46059 + * increase type coverage
46060 + */
46061 +
46062 -+#include "gcc-plugin.h"
46063 -+#include "config.h"
46064 -+#include "system.h"
46065 -+#include "coretypes.h"
46066 -+#include "tree.h"
46067 -+#include "tree-pass.h"
46068 -+#include "intl.h"
46069 -+#include "plugin-version.h"
46070 -+#include "tm.h"
46071 -+#include "toplev.h"
46072 -+#include "function.h"
46073 -+#include "tree-flow.h"
46074 -+#include "plugin.h"
46075 -+#include "gimple.h"
46076 -+#include "diagnostic.h"
46077 -+#include "cfgloop.h"
46078 -+#include "langhooks.h"
46079 -+
46080 -+#if BUILDING_GCC_VERSION >= 4008
46081 -+#define TODO_dump_func 0
46082 -+#endif
46083 ++#include "gcc-common.h"
46084 +
46085 -+#define NAME(node) IDENTIFIER_POINTER(DECL_NAME(node))
46086 -+
46087 -+// unused type flag in all versions 4.5-4.8
46088 ++// unused C type flag in all versions 4.5-4.9
46089 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_3(TYPE)
46090 +
46091 +int plugin_is_GPL_compatible;
46092 -+void debug_gimple_stmt(gimple gs);
46093 +
46094 +static struct plugin_info structleak_plugin_info = {
46095 -+ .version = "201304082245",
46096 ++ .version = "201401260140",
46097 + .help = "disable\tdo not activate plugin\n",
46098 +};
46099 +
46100 @@ -117687,7 +118086,7 @@ index 0000000..4fae911
46101 +
46102 + // this is the original entry bb before the forced split
46103 + // TODO: check further BBs in case more splits occured before us
46104 -+ bb = ENTRY_BLOCK_PTR->next_bb->next_bb;
46105 ++ bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb->next_bb;
46106 +
46107 + // first check if the variable is already initialized, warn otherwise
46108 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
46109 @@ -117719,7 +118118,7 @@ index 0000000..4fae911
46110 +
46111 + // build the initializer stmt
46112 + init_stmt = gimple_build_assign(var, initializer);
46113 -+ gsi = gsi_start_bb(ENTRY_BLOCK_PTR->next_bb);
46114 ++ gsi = gsi_start_bb(ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb);
46115 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
46116 + update_stmt(init_stmt);
46117 +}
46118 @@ -117729,25 +118128,15 @@ index 0000000..4fae911
46119 + basic_block bb;
46120 + unsigned int ret = 0;
46121 + tree var;
46122 -+
46123 -+#if BUILDING_GCC_VERSION == 4005
46124 -+ tree vars;
46125 -+#else
46126 + unsigned int i;
46127 -+#endif
46128 +
46129 + // split the first bb where we can put the forced initializers
46130 -+ bb = split_block_after_labels(ENTRY_BLOCK_PTR)->dest;
46131 ++ bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
46132 + if (dom_info_available_p(CDI_DOMINATORS))
46133 -+ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR);
46134 ++ set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
46135 +
46136 + // enumarate all local variables and forcibly initialize our targets
46137 -+#if BUILDING_GCC_VERSION == 4005
46138 -+ for (vars = cfun->local_decls; vars; vars = TREE_CHAIN(vars)) {
46139 -+ var = TREE_VALUE(vars);
46140 -+#else
46141 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
46142 -+#endif
46143 + tree type = TREE_TYPE(var);
46144 +
46145 + gcc_assert(DECL_P(var));
46146 @@ -117766,26 +118155,56 @@ index 0000000..4fae911
46147 + return ret;
46148 +}
46149 +
46150 ++#if BUILDING_GCC_VERSION >= 4009
46151 ++static const struct pass_data structleak_pass_data = {
46152 ++#else
46153 +static struct gimple_opt_pass structleak_pass = {
46154 + .pass = {
46155 ++#endif
46156 + .type = GIMPLE_PASS,
46157 + .name = "structleak",
46158 +#if BUILDING_GCC_VERSION >= 4008
46159 + .optinfo_flags = OPTGROUP_NONE,
46160 +#endif
46161 ++#if BUILDING_GCC_VERSION >= 4009
46162 ++ .has_gate = false,
46163 ++ .has_execute = true,
46164 ++#else
46165 + .gate = NULL,
46166 + .execute = handle_function,
46167 + .sub = NULL,
46168 + .next = NULL,
46169 + .static_pass_number = 0,
46170 ++#endif
46171 + .tv_id = TV_NONE,
46172 + .properties_required = PROP_cfg,
46173 + .properties_provided = 0,
46174 + .properties_destroyed = 0,
46175 + .todo_flags_start = 0,
46176 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow
46177 ++#if BUILDING_GCC_VERSION < 4009
46178 + }
46179 ++#endif
46180 ++};
46181 ++
46182 ++#if BUILDING_GCC_VERSION >= 4009
46183 ++namespace {
46184 ++class structleak_pass : public gimple_opt_pass {
46185 ++public:
46186 ++ structleak_pass() : gimple_opt_pass(structleak_pass_data, g) {}
46187 ++ unsigned int execute() { return handle_function(); }
46188 +};
46189 ++}
46190 ++#endif
46191 ++
46192 ++static struct opt_pass *make_structleak_pass(void)
46193 ++{
46194 ++#if BUILDING_GCC_VERSION >= 4009
46195 ++ return new structleak_pass();
46196 ++#else
46197 ++ return &structleak_pass.pass;
46198 ++#endif
46199 ++}
46200 +
46201 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
46202 +{
46203 @@ -117794,13 +118213,12 @@ index 0000000..4fae911
46204 + const int argc = plugin_info->argc;
46205 + const struct plugin_argument * const argv = plugin_info->argv;
46206 + bool enable = true;
46207 ++ struct register_pass_info structleak_pass_info;
46208 +
46209 -+ struct register_pass_info structleak_pass_info = {
46210 -+ .pass = &structleak_pass.pass,
46211 -+ .reference_pass_name = "ssa",
46212 -+ .ref_pass_instance_number = 1,
46213 -+ .pos_op = PASS_POS_INSERT_AFTER
46214 -+ };
46215 ++ structleak_pass_info.pass = make_structleak_pass();
46216 ++ structleak_pass_info.reference_pass_name = "ssa";
46217 ++ structleak_pass_info.ref_pass_instance_number = 1;
46218 ++ structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
46219 +
46220 + if (!plugin_default_version_check(version, &gcc_version)) {
46221 + error(G_("incompatible gcc/plugin versions"));